1
class A(db.Model):
d = db.DateTimeProperty(auto_now=True)
class B(db.Model):
c = db.TextProperty()
def store(): #1
db.put_async(A(key_name=x,parent=key) for x in x_list) #x_list: 5000
db.put_async(B(c=y,parent=key) for y in y_list) #y_list: 2500*1KB
def store(): #2
db.put_async([A(key_name=x,parent=key) for x in x_list]+
[B(c=y,parent=key) for y in y_list])
db.run_in_transaction(store)
어느 것이 더 적은 메모리를 사용합니까?트랜잭션에서 단일 및 다중 db.put_async() 사이에 메모리 차이가 있습니까?
발전기 또는 별도의 RPC가 차이를 둡니까? 내가 실수하지 않는다면 run_in_transaction()
은 기본적으로 puts를 수집 한 다음 어쨌든 즉시 전송합니다.
"둘 중 누구도 아무 것도하지 않을 것"이란 무엇을 의미합니까? 트랜잭션은 비동기 puts를 차단합니다. –
@pdknsk 맞을지도 모르지만 명시 적으로 기다려야합니다. 이 경우, 결과를 기다릴 때까지 모든 미해결 RPC를 메모리에 보유해야하기 때문에 메모리를 절약 할 수 없습니다. –