From 1cf326edf3485733b74523bc81827680f8f1bb1f Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Wed, 2 Apr 2025 09:20:27 -0400 Subject: [SharedCache] Improve FileAccessorWriteLog performance Just use a vector. In the future we can turn off the write log if the system has given us ample descriptors, and we can also add a page based cache. --- view/sharedcache/core/FileAccessorCache.cpp | 2 +- view/sharedcache/core/FileAccessorCache.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'view/sharedcache') diff --git a/view/sharedcache/core/FileAccessorCache.cpp b/view/sharedcache/core/FileAccessorCache.cpp index 047bbe19..e281ec5f 100644 --- a/view/sharedcache/core/FileAccessorCache.cpp +++ b/view/sharedcache/core/FileAccessorCache.cpp @@ -73,7 +73,7 @@ void FileAccessorWriteLog::AddPointer(const size_t address, const size_t pointer { // TODO: A sharded map here would be better. see: rust dashmap std::unique_lock lock(m_persistedMutex); - m_persistedPointers[address] = pointer; + m_persistedPointers.emplace_back(address, pointer); } void FileAccessorWriteLog::ApplyWrites(MappedFileAccessor& accessor) diff --git a/view/sharedcache/core/FileAccessorCache.h b/view/sharedcache/core/FileAccessorCache.h index bb2f8084..0ef6595a 100644 --- a/view/sharedcache/core/FileAccessorCache.h +++ b/view/sharedcache/core/FileAccessorCache.h @@ -46,7 +46,7 @@ struct FileAccessorWriteLog // To persist writes to a file accessor being revived (within the lock() function) // we keep a list of writes that will be re-applied in the lock function. std::shared_mutex m_persistedMutex; - std::unordered_map m_persistedPointers; + std::vector> m_persistedPointers; FileAccessorWriteLog() = default; -- cgit v1.3.1