[Filestore] unconfirmed three stage write cache bypass#5913
Conversation
AI Review SummaryVerdict: ❌ 1 critical-adjacent (Major) issue found Critical issuesNo critical issues found. Major issues
Other findings
This review was generated automatically. Critical issues require attention; other findings are advisory. |
|
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 7365s): some tests FAILED for commit a466280.
🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 34s): some tests FAILED for commit a466280.
🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 32s): some tests FAILED for commit a466280.
|
Some points were really good. |
69f8b59 to
a005632
Compare
|
Note This is an automated comment that will be appended during run. Note All workloads for linux-x86_64-relwithdebinfo have completed. Tip Planned checks for linux-x86_64-relwithdebinfo. 🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 7220s): some tests FAILED for commit a005632.
🟢 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 290s): all tests PASSED for commit a005632.
|
Problem
Currently with unconfirmed writes, we respond from tablet at ExecuteTx stage. At the same time, InMemoryIndexState updates at CompleteTx stage. During this window some requests, that require file metadata can obtain stale values from that cache. The solution is simple, track all commit ids of inflight unconfirmed writes and if some TXes that clash with our inflight writes we force them to bypass the cache and go full TX flow instead of quick reply from cache.
Implemented Solution
Introduced cache bypass mechanic for inflight TXes of unconfirmed writes
Added relevant ut
Issue
#2293