2012-02-21 4 views
1

동일한 엔티티 그룹에 속한 엔티티에 대해 여러 "put"작업을 수행하라는 요청이 있습니다.appengine 데이터 저장소 다중 "puts"트랜잭션 성능

트랜잭션에서 중요한 것은 아니지만 성능에 어떤 영향을 미치는지 궁금해했습니다. 커밋시 하나의 변경 세트 만 기록되므로 성능이 향상 될 수 있습니까?

그 이상의 경우, 트랜잭션 내에서 단일 엔터티에 여러 "put"연산이있는 경우. 마지막에 단 하나의 "put"연산과 다른 것이 있습니까? 당신이 휴가 중에도

답변

1

일부 배경 정보, 앱 엔진 데이터 스토어는 구글의 메가 스토어의 데이터베이스를 기반으로, 당신은 여기에 읽을 수 있습니다 http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//pubs/archive/36971.pdf

슈퍼 빠른 요약 데이터 저장소 성능 이점 경우를 얻을 수 있다는 것입니다 엔티티는 다른 서버에 병렬로 저장되거나 읽혀집니다. 엔티티 그룹 내에서 트랜잭션 의미를 얻기 위해서 모든 트랜잭션은 동일한 서버에서 순차적으로 실행됩니다. 그러므로 그들은 더 천천히 달릴 것입니다.

저는 Google 직원이 아니기 때문에 질문의 마지막 부분에 대해 확신하지 못합니다. 당신은 본질적으로 그들이 단일 풋으로 여러 풋을 덩어리가 될 거래에 대한 최적화가 있는지 묻습니다. 나는 그런 최적화에 대한 언급을 보지 못했다. 나는 존재하지 않는다고 생각한다. 각 put 작업은 본질적으로 엔티티 전체를 작성하므로 단일 엔터티에 대한 여러 개의 put 작업이 끝에있는 단일 put보다 훨씬 나빠질 것으로 예상됩니다.

새로운 ndb API는이를 위해 약간의 최적화를 할 수 있습니다.

관련 문제