기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SubscriptionChangeList 처리 후 읽기 잠금 해제
업데이트를 시작하면 이전 틱의 다른 파티션에 커밋된 데이터에 대한 공유 메모리 세그먼트가 생깁니다. 독자는 이러한 공유 메모리 세그먼트를 잠글 수 있습니다. 모든 독자가 잠금을 해제하기 전까지는 앱을 완전히 커밋할 수 없습니다. 최적화를 위해 앱은 Api::SubscriptionChangelist
항목을 처리한 후 잠금을 해제하도록 Api::ReleaseReadLeases()
를 호출해야 합니다. 그러면 커밋 시 경합이 줄어듭니다. Api::Commit()
은 기본적으로 읽기 임대를 해제하지만 구독 업데이트를 처리한 후 읽기 임대를 수동으로 릴리스하는 것이 가장 좋습니다.
예
Result<void> ProcessSubscriptionChanges(Transaction& transaction) { WEAVERRUNTIME_TRY(ProcessSubscriptionChanges(transaction)); /** * Done processing Api::SubscriptionChangeList items. * Release read locks. */ WEAVERRUNTIME_EXPECT(Api::ReleaseReadLeases(transaction)); ... }