什么是确切的数据存储(和memcache)实体大小限制,以及如何计算?

时间:2012-10-29 11:49:56

标签: google-app-engine

限制为 1MB according to the docs,我认为这意味着1024**2个字节,但显然不是。

我有一个简单的函数,它将大型python对象串行化为JSON,将JSON字符串拆分为更小的块,并将块(作为BlobProperty)和单独的索引实体放入数据存储区(和memcache,使用ndb)。还有另一个功能可以解决这个问题。

首先,我尝试拆分成1024**2块,但数据存储区抱怨它。目前我正在使用1000**2,它运行正常。我可以在这里回答我自己的问题,如果它不是Guido的this comment,代码可以分成950000个字节的块。如果Guido这样做,那一定是我想的原因。为什么50K安全边际?

也许我们可以得到一个明确的答案,不要浪费一个字节。我知道Blobstore。

1 个答案:

答案 0 :(得分:1)

限制为1MB - 即2 20 字节 - 但该限制适用于实体的编码版本,其中包括所有元数据和编码开销。

一种选择是留下一些摆动空间,就像你正在做的那样。另一种方法是捕获错误并在必要时细分块。

但是,如果你不得不像这样拆分,那么Blobstore可能是比数据存储更好的数据选择。