Page 1 of 1

Making deferred writes more sequential

Posted: Fri Jun 18, 2021 1:22 pm
by andriusst
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

Posted: Tue Jun 22, 2021 4:37 am
by Support
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

Posted: Wed Jun 23, 2021 12:45 pm
by Rootax
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

Re: Making deferred writes more sequential

Posted: Thu Jun 24, 2021 2:56 am
by Support
Not sure how Datacore works, but with Defer-Write, yes, PrimoCache can convert random writes to sequential writes.

Re: Making deferred writes more sequential

Posted: Tue Jun 29, 2021 2:20 pm
by Rootax
Support wrote: Thu Jun 24, 2021 2:56 am Not sure how Datacore works, but with Defer-Write, yes, PrimoCache can convert random writes to sequential writes.
Very nice to read, thx for the answer :)