From 5d7fa586a2db3b2ff68908911e70ece66a8f6455 Mon Sep 17 00:00:00 2001 From: Dave Date: Sat, 14 Sep 2024 23:18:33 -0400 Subject: [PATCH] fix: Apply further code review suggestions Changes: - update Linux client default value of write cache size parameter (actually not changing anything write buffer size) to show the actual behavior of the client. - rename beingWritten member of ChunkData to writesCount to better represent the idea of this member. - remove an outdated comment from ChunkJobWriter::processDataChain. --- src/mount/sauna_client.h | 3 +-- src/mount/writedata.cc | 13 ++++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/mount/sauna_client.h b/src/mount/sauna_client.h index 7fb053b5a..3cddf9776 100644 --- a/src/mount/sauna_client.h +++ b/src/mount/sauna_client.h @@ -81,11 +81,10 @@ struct FsInitParams { static constexpr float kDefaultBandwidthOveruse = 1.0; static constexpr unsigned kDefaultChunkserverWriteTo = 5000; static constexpr bool kDefaultIgnoreFlush = false; + static constexpr unsigned kDefaultWriteCacheSize = 128; #ifdef _WIN32 - static constexpr unsigned kDefaultWriteCacheSize = 50; static constexpr unsigned kDefaultWriteWaveTo = 10; #else - static constexpr unsigned kDefaultWriteCacheSize = 0; static constexpr unsigned kDefaultWriteWaveTo = 50; #endif static constexpr unsigned kDefaultCachePerInodePercentage = 25; diff --git a/src/mount/writedata.cc b/src/mount/writedata.cc index 2e30437a4..187d4fd52 100644 --- a/src/mount/writedata.cc +++ b/src/mount/writedata.cc @@ -132,7 +132,7 @@ struct ChunkData { bool inQueue = false; // true if this chunk is waiting in one of the queues or is being processed bool workerWaitingForData = false; std::unique_ptr locator; - std::atomic beingWritten = 0; + std::atomic writesCount = 0; ChunkData(uint32_t chunkIndex, inodedata *parent) : chunkIndex(chunkIndex), parent_(parent) { @@ -467,7 +467,7 @@ void write_job_delayed_end(ChunkData* chunkData, int status, int seconds, Lock & // Don't sleep if we have to write all the data immediately seconds = 0; } - if (chunkData->beingWritten) { + if (chunkData->writesCount) { inodeLock.unlock(); gLock.lock(); @@ -719,7 +719,6 @@ void ChunkJobWriter::processDataChain(ChunkWriter& writer) { SAUNAFS_ERROR_TIMEOUT); } - // Let's sleep a bit shorter if we can't be woken up by the pipe to reduce the latency writer.processOperations(gWaveTimeout); } } @@ -935,10 +934,10 @@ int write_blocks(inodedata *id, uint64_t offset, uint32_t size, ChunkData *chunkData = write_get_chunkdata(chindx, id, inodeLock); inodeLock.unlock(); - chunkData->beingWritten++; + chunkData->writesCount++; if (size > SFSBLOCKSIZE - from) { if (write_block(chunkData, pos, from, SFSBLOCKSIZE, data, inodeLock) < 0) { - chunkData->beingWritten--; + chunkData->writesCount--; return SAUNAFS_ERROR_IO; } size -= (SFSBLOCKSIZE - from); @@ -951,12 +950,12 @@ int write_blocks(inodedata *id, uint64_t offset, uint32_t size, } } else { if (write_block(chunkData, pos, from, from + size, data, inodeLock) < 0) { - chunkData->beingWritten--; + chunkData->writesCount--; return SAUNAFS_ERROR_IO; } size = 0; } - chunkData->beingWritten--; + chunkData->writesCount--; } return 0; }