Closed lightagain closed 5 years ago
I verified with our Reliance Edge engineering team and confirmed that you are correct that the LRU behavior is not optimal for your use case. However, it would be difficult to implement your proposed solution in a generalized way. There are other use cases that would be hurt by having such “persistent” buffers. If you make changes for your particular use case, please submit them for consideration.
In case when system has heavy read traffic and light write traffic with small chunks (smaller than block size) filesystem I see the following behavior: buffers for unaligned writes between consecutive writes are constantly pulled out (flushed to NVRAM) by LRU algorithm. This leads to heavy IO traffic (for single write request) and increase write amplification. Suggested solution - mark buffer for unaligned writes (requires on buffer per file) as "persistent", which must not be flushed to NVRAM with LRU algoritm in
RedBufferGet()
.