0

App Engine 프로덕션 환경에서 이상한 경우가 발생했습니다.ndb 쿼리가 이전 속성 값을 반환합니다.

제대로 업데이트 된 엔티티가 있습니다. Datastore 뷰어에서 업데이트 된 값을 볼 수있었습니다. 쿼리에서 동일한 엔티티를 검색 한 요청도있었습니다. 엔티티가 결과에 표시되었지만 속성의 이전 값을가집니다. memcache를 지워서 문제를 해결할 수있었습니다. 쿼리가 데이터 저장소에서 직접 수행되었으며 memcache에서 반환되지 않았습니다. 커서가 없음으로 초기화 됨

announcements, cursor, more = query.fetch_page(
    msg.valid_data.get('limit') or 40, start_cursor=cursor) 

직접 쿼리가 memcache에서 결과를 반환 할 수있는 경우가 있습니까? 여기에 대해 아무것도 없습니다 ndb caching documentation

커서와 관련이 있습니까?

답변

4

아니요, 이것은 memcache 또는 커서와 관련이 없지만 최종 일관성이 있습니다. 비 상위 쿼리는 업데이트 된 데이터를 반환하도록 명시 적으로 보장되지 않습니다.

structuring data for strong consistency의 설명서를 참조하십시오.

+0

궁극적 인 일관성은 콘텐츠에 나타나는 엔터티에만 영향을 미칠 수 있다고 생각했습니다. 콘텐츠가 아닌 –

+0

아니요, 전혀 아닙니다. 기존 엔터티를 변경 한 다음 쿼리를 수행하면 해당 엔터티의 이전 버전을 다시 가져올 수 있습니다. –

+0

감사합니다. 지금은 이해 –

관련 문제