Feature Suggestion on PrimoCache

Suggestions around PrimoCache
Post Reply
ranggamaw
Level 1
Level 1
Posts: 2
Joined: Wed Feb 15, 2023 2:38 am

Feature Suggestion on PrimoCache

Post by ranggamaw »

Before I begin, I just wanted to say that this software is simply of the best upgrade I've made because it basically made my 6TB of total HDD feels closer like an SSD, especially if the L2 size is relatively big (above 256GB)

I have a few suggestion regarding on slightly improving the performance and reliability
1. Add the Write-Mode Option of writing the incoming data immediately from the L1 into the Disk or L2 (Lets call it: Instantly Flush L1 Option)
and/or
The option to have a redundancy feature to write both on the L1 and L2 at the same time (Lets call it: Redundancy Write to L1 and L2 Option)
This basically ensures that if a power failure to happen, important data contained in the L1 doesn't get corrupted instantly.

2. Add the option to turn on Defer-Write capability on L1 and L2 seperately
So in Volume Specification, we get the Option of turning on/off Deferwrite Globally. It would be nice if we have the option to turn on L1 Deferwrite only mode on certain cached drive or L2 Deferwrite only on other cached drives.

Now, a question might arise.
Why not just straight up not disabling the write command on L1?
Good question, we still want the data to be written first into the L1 just in case if the data is being requested to be read. This can be reflected by CrystalDiskMark Sequential Read 1 Test Count (First Data Write) having higher Read if the L1 is also having the deferwrite option on.
(Because I turned them off just to be sure minimal data loss, in case of power failure)
Nick7
Level 5
Level 5
Posts: 46
Joined: Sun Jun 25, 2017 7:50 am

Re: Feature Suggestion on PrimoCache

Post by Nick7 »

Before all that... with defer write using L2 only, allow actually to flush it (and keep consistent) in case of crash. Currently, all data is just discarded.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Feature Suggestion on PrimoCache

Post by Support »

ranggamaw wrote: Wed Feb 15, 2023 11:03 am 2. Add the option to turn on Defer-Write capability on L1 and L2 seperately
So in Volume Specification, we get the Option of turning on/off Deferwrite Globally. It would be nice if we have the option to turn on L1 Deferwrite only mode on certain cached drive or L2 Deferwrite only on other cached drives.
This is available through the "individual read/write cache space" settings. When set to 100% read, defer-write will not be enabled on the corresponding cache. Please see
https://www.romexsoftware.com/en-us/pri ... write.html
https://kb.romexsoftware.com/en-us/2-pr ... ache-space
ranggamaw wrote: Wed Feb 15, 2023 11:03 am 1. Add the Write-Mode Option of writing the incoming data immediately from the L1 into the Disk or L2 (Lets call it: Instantly Flush L1 Option)
and/or
The option to have a redundancy feature to write both on the L1 and L2 at the same time (Lets call it: Redundancy Write to L1 and L2 Option)
This basically ensures that if a power failure to happen, important data contained in the L1 doesn't get corrupted instantly.
Isn't "Instantly Flush L1" same as turning off Defer-Write on L1?

As Nick7 said, currently the risk of L2 under Defer-Write is same as that of L1. Please see the "Risk and Advice" part in the following document.
https://www.romexsoftware.com/en-us/pri ... write.html
ranggamaw
Level 1
Level 1
Posts: 2
Joined: Wed Feb 15, 2023 2:38 am

Re: Feature Suggestion on PrimoCache

Post by ranggamaw »

Support wrote: Thu Feb 16, 2023 4:35 am
ranggamaw wrote: Wed Feb 15, 2023 11:03 am 2. Add the option to turn on Defer-Write capability on L1 and L2 seperately
So in Volume Specification, we get the Option of turning on/off Deferwrite Globally. It would be nice if we have the option to turn on L1 Deferwrite only mode on certain cached drive or L2 Deferwrite only on other cached drives.
This is available through the "individual read/write cache space" settings. When set to 100% read, defer-write will not be enabled on the corresponding cache. Please see
https://www.romexsoftware.com/en-us/pri ... write.html
https://kb.romexsoftware.com/en-us/2-pr ... ache-space
ranggamaw wrote: Wed Feb 15, 2023 11:03 am 1. Add the Write-Mode Option of writing the incoming data immediately from the L1 into the Disk or L2 (Lets call it: Instantly Flush L1 Option)
and/or
The option to have a redundancy feature to write both on the L1 and L2 at the same time (Lets call it: Redundancy Write to L1 and L2 Option)
This basically ensures that if a power failure to happen, important data contained in the L1 doesn't get corrupted instantly.
Isn't "Instantly Flush L1" same as turning off Defer-Write on L1?

As Nick7 said, currently the risk of L2 under Defer-Write is same as that of L1. Please see the "Risk and Advice" part in the following document.
https://www.romexsoftware.com/en-us/pri ... write.html
1. "This is available through the "individual read/write cache space" settings. When set to 100% read, defer-write will not be enabled on the corresponding cache. Please see"

Exactly, but if the Defer-Write is disabled (setting L1/L2 to 100% Read). The incoming write data will not be written into the L1/L2 at all. This will result in a cache miss if that data is being requested after its being written. Which is why disabling Defer-Write altogether would not be the solution. As I wrote here:
"we still want the data to be written first into the L1 just in case if the data is being requested to be read."

2. "Isn't "Instantly Flush L1" same as turning off Defer-Write on L1?"
No, turning off Defer-Write would simply stopped the incoming write data being written into the L1 and waits until the data is needed to be read. My goal was to avoid needing to read the data first to copy it into the L1.
But I think you are right, the risk of losing data even in L2 Defer-Write is still the same as L1.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Feature Suggestion on PrimoCache

Post by Support »

ranggamaw wrote: Thu Feb 16, 2023 5:56 am Exactly, but if the Defer-Write is disabled (setting L1/L2 to 100% Read). The incoming write data will not be written into the L1/L2 at all. This will result in a cache miss if that data is being requested after its being written.
I understand and we can indeed add an option to turn off Defer-Write on L1 and L2 separately. However, we were concerned that too many options combined with setting cache space properties would cause too much confusion for users.
Besides, when Defer-Write is enabled on one of the L1 cache and the L2 cache, this cache can provide read-back for incoming write-data. Thus even the other cache is set to "read-only", in most scenarios, this would not be a problem.
ranggamaw wrote: Thu Feb 16, 2023 5:56 am No, turning off Defer-Write would simply stopped the incoming write data being written into the L1 and waits until the data is needed to be read. My goal was to avoid needing to read the data first to copy it into the L1.

I see. However, this is same as the "read-write" cache strategy, right? You can turn off Defer-Write and use "Shared" cache space or certain amount of "wrtie" cache space to make incoming write-data cached for future read.
tverweij
Level 6
Level 6
Posts: 74
Joined: Thu May 10, 2018 9:27 am

Re: Feature Suggestion on PrimoCache

Post by tverweij »

Support wrote: Mon Feb 20, 2023 4:10 pm However, we were concerned that too many options combined with setting cache space properties would cause too much confusion for users.
That might be true for home users, but for the server version I think that this is worth considering; the more we can configure, the better.
Post Reply