Conversation
|
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 7008s): some tests FAILED for commit 3b9e79d.
🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 184s): some tests FAILED for commit 3b9e79d.
🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 180s): some tests FAILED for commit 3b9e79d.
|
|
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 27185s): some tests FAILED for commit d9dfe9e.
🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 23869s): some tests FAILED for commit d9dfe9e.
|
…oncurrent WriteData/SetNodeAttr/AllocateData requests
…ate only size + small TNode cleanup
…pair + added uts for it
…ationRace finally fixed
…ationRace test cleanup
d9dfe9e to
b430327
Compare
|
|
||
| NProto::TError ResetAttrTimeout( | ||
| char* data, | ||
| ui64 len, |
| const TNodeIdVisitor& visitor) | ||
| { | ||
| #if defined(FUSE_VIRTIO) | ||
| while (len > sizeof(fuse_direntplus)) { |
There was a problem hiding this comment.
probably add commit that expect no name with 0 lens
| content.GetSize()); | ||
| TBuffer c(content.GetData(), content.GetSize()); | ||
|
|
||
| ResetAttrTimeout(c.Data(), c.Size(), [&] (ui64 ino) { |
There was a problem hiding this comment.
will it work as expected for '.' and '..'
|
|
||
| if (self->CheckResponse(self, *callContext, req, response)) { | ||
| // | ||
| // Disallow result caching for all concurrently running operations |
There was a problem hiding this comment.
should we take care about WriteBufLocal as well?
| struct TContent | ||
| { | ||
| TBufferPtr Buffer; | ||
| ui64 AttrVersion = 0; |
There was a problem hiding this comment.
we do not serialize it, that means we will reset it, meaning, that after restart we will have stale caches. probably discussion is needed
| entry.entry_timeout = GetEntryCacheTimeout(attrs).SecondsFloat(); | ||
|
|
||
| ConvertAttr(Config->GetPreferredBlockSize(), node->Attrs, entry.attr); | ||
| } else { |
There was a problem hiding this comment.
not clear why, probably some comment here can help
Notes
GlobalAttrVersioncounter - incrementing it every time upon attr-modifying operation completionTNodeCacheupon each attr-modifying operation completion and setting the just-incrementedGlobalAttrVersionas this node's versionTNodeCacheupon attr-reading operation startTNodeCachehas changed since the start of the operationextra:
TDirectoryBuilderto a separate .h/.cpp file pair and added unit tests for itNodeCacheLockintoTNodeCachesoTNodeCacheis now thread-safeTNodeCachebenchmarkTNodeCachesharding by node id to reduce contention (the results can be checked via the added benchmark)Issue
#5293