0

을 입력하고 약 012,000 개의 엔티티가 있습니다. A입니다.Cloud Datastore - Small Operations를 활용합니다. Google Cloud Datastore에 App Engine을 사용하여

사용자가 로그인 할 때마다 지속적으로 업데이트되는 엔티티의 전체 목록을 사전로드해야합니다. 정적으로 처리 할 수 ​​없습니다. 나는 때문에, 매일 무료 할당량에 남아 있도록

a_keys = A.query().fetch(keys_only=True) 
a_entities = ndb.get_multi(a_keys) 

:

a_entities = A.query().fetch() 

에 : Google 클라우드 데이터 저장소 가격 모델 (https://cloud.google.com/datastore/pricing)을 활용

나는에서 쿼리 코드를 변경 대부분의 읽기 작업을 "Datastore Small Operations"유형으로 전환합니다.이 작업은 내가 읽었던 것처럼 무료로 무제한입니다.

이 솔루션은 안전한가요? 그것이 많이 증가 할 경우 특정 트래픽을 유지할 수 있습니까? 다른 리소스에 영향을 미칩니 까?

keys_only 쿼리는 무료 (단 1 개 동작) 당신

답변

1

감사드립니다. 그러나 다음 줄은 어디입니까 get_multi 실제 엔티티는 무료가 아닙니다. 무료 할당량 내에 남아있는 허점을 발견하지 못했습니다.

+0

감사합니다. 테스트를 통해이 방법이 첫 번째 줄보다 할당량에서 더 나은 경향이 있다는 것을 발견했습니다. memcache 때문인가요? –

+0

@FedericoCapello 값이 memcache에 있으면 비용 관점에서이 접근법의 이점을 얻을 수 있습니다 (공유 memcache 사용 가정). 그러나 성능 관점에서 왕복 2 회가 발생합니다. 대용량 시나리오에서는 주요 핵심 문제를 조심해야합니다. – jcjones1515