Fallback to L2 cache when L1 is full
Posted: Sat Dec 15, 2018 12:54 pm
I made an observation on PrimoCache behavior. I use it with DrivePool, so PrimoCache must be able to read and write to many volumes at the same time.
Lets say: I have 30GB folder that is compressed with windows NTFS compression. Then I disable compression so windows has to read all files then write them again.
My settings on screenshots so everything should be clear:
What I observed: when windows is writing files back to cached volumes, if free space on L1 runs out PrimoCache is ignoring "IDLE FLUSH" and performs reading/writing on the same volume at the same time, greatly reducing performance as a result.
In my opinion PrimoCache in my setup should fallback to L2 cache when L1 is already full, so it would respect "IDLE FLUSH" setting (continue caching of writes to L2 when L1 FULL) and perform simultaneous reading/writing ONLY when L1 and L2 cache is FULL and can not store any more data.
Current PrimoCache behavior is correct only when WRITING data, so when I write 10GB to volume, if falls back to L2 when 4GB of L1 is full. When reading and writing to the same volume it acts as only 4GB L1 like L2 was disabled.
Any ideas? I know that this might be due to developers being concerned with SSD as L2 not being fast enough to perform R/W at the same time to multiple volumes, and it is true for slow old SSD. NVME and RAID0 SATA is fast enough to read from volume A and write to volume B at the same time. So maybe you should add one more switch "Fallback to L2 when L1 is full" with warning that fast SSD is required. It would be much beneficial in my setup.
if anything is not clear ask and I will try to explain it better
Lets say: I have 30GB folder that is compressed with windows NTFS compression. Then I disable compression so windows has to read all files then write them again.
My settings on screenshots so everything should be clear:
What I observed: when windows is writing files back to cached volumes, if free space on L1 runs out PrimoCache is ignoring "IDLE FLUSH" and performs reading/writing on the same volume at the same time, greatly reducing performance as a result.
In my opinion PrimoCache in my setup should fallback to L2 cache when L1 is already full, so it would respect "IDLE FLUSH" setting (continue caching of writes to L2 when L1 FULL) and perform simultaneous reading/writing ONLY when L1 and L2 cache is FULL and can not store any more data.
Current PrimoCache behavior is correct only when WRITING data, so when I write 10GB to volume, if falls back to L2 when 4GB of L1 is full. When reading and writing to the same volume it acts as only 4GB L1 like L2 was disabled.
Any ideas? I know that this might be due to developers being concerned with SSD as L2 not being fast enough to perform R/W at the same time to multiple volumes, and it is true for slow old SSD. NVME and RAID0 SATA is fast enough to read from volume A and write to volume B at the same time. So maybe you should add one more switch "Fallback to L2 when L1 is full" with warning that fast SSD is required. It would be much beneficial in my setup.
if anything is not clear ask and I will try to explain it better