Making deferred writes more sequential
Making deferred writes more sequential
For deferred writes with infinite timeout. Based on my observations am I right in guessing that cache flushing is done on first-in-first-out basis? If so I would propose to introduce a system to periodically re-order cached blocks (or block index) based on block LBA number. This should result in highly seqential groups of cached data that will write to disk faster. Additionally prioritising writing out largest sequential groups from cache would further enhance writing speeds.
Re: Making deferred writes more sequential
With INFINITE latency, "Urgent Write" will always occur. In this mode, PrimoCache will only write a small portion of deferred write-data to disks at a time. This part of writing is sequential. However, picking which portion is based on fifo-like aglorithm. In the normal flush mode (latency expired), PrimoCache use complete sequential writing. So usually "Urgent Write" should be avoided. We will also improve the performance of "Urgent Write" in future. Thanks.
Re: Making deferred writes more sequential
Does this mean that Primocache kind of do what Datacore is doing with their Random Write Accelerator ?
https://docs.datacore.com/SSV-WebHelp/S ... torage.htm
https://docs.datacore.com/SSV-WebHelp/S ... torage.htm
Re: Making deferred writes more sequential
Not sure how Datacore works, but with Defer-Write, yes, PrimoCache can convert random writes to sequential writes.