2012-10-29 5 views
0

한계가 1MB, according to the docs입니다. 이는 1024**2 바이트라고 가정했으나 분명히 아닙니다.정확한 데이터 저장소 (및 memcache) 엔티티 크기 제한은 무엇이며 어떻게 계산됩니까?

큰 파이썬 객체를 JSON으로 문자열 변환하고, JSON 문자열을 작은 청크로 분할하고, 청크 (BlobProperty)와 별도의 색인 엔티티를 데이터 저장소 (및 memcache, ndb 사용)에 넣는 간단한 함수가 있습니다. . 그리고 이것을 뒤집을 수있는 또 다른 기능.

처음에는 1024**2 청크로 분할했지만 데이터 저장소가 이에 대해 불평했습니다. 현재 1000**2을 사용하고 있으며 오류없이 작동합니다. Guido가 this comment이 아니고 950000 바이트 청크로 분할되는 코드를 사용했다면 이미 내 질문에 대답 할 수있었습니다. 귀도가 그렇게한다면, 내가 생각한 이유 때문일거야. 50K 안전 마진이 필요한 이유는 무엇입니까?

우리는 1 바이트조차 낭비하지 않기 위해 이것에 대한 확실한 답을 얻을 수 있습니다. Blobstore에 대해 알고 있습니다.

답변

1

제한은 1MB, 즉 2 바이트입니다.하지만이 제한은 모든 메타 데이터 및 인코딩 오버 헤드를 포함하는 엔티티의 인코딩 된 버전에 대한 것입니다.

하나의 옵션은 약간의 흔들림을 남기는 것입니다. 또 다른 방법은 오류를 포착하고 필요한 경우 청크를 세분하는 것입니다.

그러나 이와 같이 물건을 나눠야하는 경우 데이터 저장소보다 데이터 저장 공간이 더 좋습니다.

+0

오버 헤드 및 메타 데이터를 계산할 수 있습니까? 엔터티가 데이터 저장소에 저장되기 전에 완전히 패키지화되어 있습니까? 아니면 데이터 저장소 자체가 추가 오버 헤드를 추가합니까? 나는 Blobstore에 대해 알고 있지만 엔티티가 자주 덮어 쓰기 때문에 추가 관리가 필요합니다. 어쨌든 몇 MB 밖에 없습니다. –

관련 문제