What the people are asking for + a few others.
Posted: Mon Apr 30, 2012 9:37 pm
I think the following is what people are mainly asking for in the next patch/update:
Order from most (1) to least(x>1), please vote on a feature if you wish to see it increase on the list: *Please note, any bugs issues will have a higher priority then a lot of the requested features usally. These are community requested features and FC still holds the right/final say if they will or will not be implanted into any future releases.
V#: [0.8.0].[5] - 7/21/12
1) Persistent L2.
2) Fix Increassing Ram Issues.
3) Pool Dynamic Priority Percent Base L1.
4) Set L2 to Read, Write, or R/W, and give the option to disable L1 for L2 (Mradr, laferrierejc)
5) Keep-Alive Performance Monitor with auto start and save options (n6666661, JimF, mabellon).
^ - Top 5 should always be finish before the rest.
v - Optional to do or not as of right now. Not highly requested yet.
6) Throtter defer write speeds. (RAMbo)
7) Power Fail.
8) Add a Pro/Advanced mode to hide some features:
---->[ ] No Write-Flush At Shutdown (old)
9)-->[ ] Suspend All Writes (New, edv)
10-->[ ] Release cache once cache has been loaded into normal ram. (Ram use only)
11) Profile base loading for settings.
Please work on the first five first! ^^ If Romex can get that working, I am pretty sure you all will be way a head in terms of software SSD caching. See Notes* for more detail.
Besides that I have a few questions and another suggestion:
Future load:
Instead of waiting for the user/computer to request data and "random" to be loaded. Why not just watch the user's mouse? When a user’s mouse over an icon, Fancycache should start to auto load the data from cache or be ready to start reading it from cache so less time is spent in "search" and "table lookup." Note* I am not saying it should load all the data, but maybe some parts or where the blocks parts are.
Notes*
1) Persistent L2 - Wont have to keep rebuilding the cache data file over and over again keep the amount of writes hitting L2 down low and read performance high.
2) Fix Increassing Ram Issues. - Isn't fixed and can cause slow down over time and even causing the system to crash if there isn't enough memory for use. The cause seem to be setting the L2 cache. Setting the L2 causes the system to also load more into ram either based on the amount of L2 or a greater amount over time.
3) Pool Dynamic Priority Percent Base L1 - Some people would like to pool their ram so multiple drives can access the L1 without wasting needless ram for each drive/volume. There are two levels of the dynamically caching going on here. One at the pool level and the other at the drive level. The pool level has very little user control as the system/FC handles that one. You just set the max size of it and the system will take care on how it grows or shrinks for the need. At the drive/volume level you'll be able to set the dynamic min and max use of the pool. This would allow drives/volumes to take on more ram if it needs, but still makes sure it has the min 4GB of the pooled cached ram. For example:
L1 = 2048MB (2GB) - gobal ram pool
Drive C: L1 = Min: 50%, Max: 100% Priority 1 (OS)
Drive F: L1 = Min: 0%, Max: 50% Priority 2 (Data)
Instead of needing almost 2560MB of ram for both drives, Drive F now can share the L1 with Drive C. Drive F will be able to use 1GB of that ram unless Drive C needs the full 2GB for loading data because of its higher priority. Setting the Min value allows that drive to still have access to that higher performance, but still allows the higher priority drive to also maintain its performance when the need araises.
Another hidden cool thing about doing it this way would be that it also helps speed up file transfers between the two drives as the data movement happens in ram instead of the drive as much as possible.
4) Set L2 should gain the option to be set as: Read, Write, or R/W only with another option to disable/turn off L1 as some people wish not to use their ram for either write or read and would like to just use their drive (SSD, HDD, flash, or w/e) instead for read or write only speed boost..This includes:
laferrierejc wrote: I don't desire for my write to be extended to my L2 cache, as the ssd I'm using has a poor write performance (30MB/s). To get around this, I have to run two versions of Fancycache. The disk for writes, the volumes [the SSD] for reads.
5) Hi, would it be possible to add an option to start Performance Monitor as soon as the system has loaded FancyCache at boot time?
Or maybe at least to get some logs of the activity?
It could be very interesting to see how many datas have been cached without any need to be writen to the disk (4 SSDs in RAID 1+0 so no TRIM for now until Intel will release it's RST 11 or something).
When I wake up my monitor from power-down mode, I usually press the Return or Enter key on the keyboard. But it appears that pressing these keys also resets the Performance Statistics.
Please consider using the standard Windows performance counters to track FC performance (perfmon, logman). That is, make FC a provider of counter data. Then users can track usage in logs, schedule when to capture data and for how long. Why reinvent the wheel here - there is already a facility for tracking and graphing perf data. With this approach, you can even graph FC hits against actual disk IOps, memory usage etc. (thus better showing the incredible benefits of FC). Also users should be able to capture perf logs for scenarios like boot performance (post login) long before the FC management UI could ever come up.
"Can we get away to allow us to compare 2 different settings to see witch one is faster?" -> We can use a simple save method to allow users to compare the results.
6)Defer writes give the biggest speed boost and unfortunately setting up a time can cause data to be Urgent writen instead of normal written. Allow setting up a defer max and min time could help curve that issue.
High I/O activity: Increase defer write time (configure a max)
Low I/O activity: Decrease defer write time (configure a min)
7) Power Fail:
I understand if defer write is enable, any write data could be corrupted on a power lose. From my own stand point, the data happens only because of L1 was to lose power, yes? If so, why not give the option to disable L1 for use of the L2 and repair/finish the writes on the next boot up from L2 (I am guessing L2 will be an SSD or another hard drive where the data won’t be flushed like ram would)? This would keep data safe even on a power failed. Well, safe-r... there could also be some issues/data lose if power does go out, but at least would allow for the data that was defer to be able to be rewriten again at some sage instead of lossing it all.
8) Some of the advance features should be hidden into a sub hidden area. These features are features that could cause major problems when turn on. By giving them a place and a warnning that the user has to agree to, it will let the user know or at least be warn the user that the following features may are risky and could cause system stability issue such as lost of data, data corruption, and so on.
9) A checkbox/button that reads "Suspend All Writes." When on, write cache timer is grayed out and a infinite (oo) sign is shown to let the user know that this feature has been toggled. Suspend all writes to the physical drive unless the data needs to be writen urgently.
10) It would be nice to have an option to release ram cache once the program has been loaded into ram. This way memory can be freed up once it has been loaded for that program to use more ram. Another option is to allow that free up space to cache another program. Once the program closes, the cache is then return back to RAM for faster reload times.
11) Some would like to profile their settings to be able to load them up onto other pc. This one could be simple as in createing a load/Save base settup and then save the settings out onto a file (I am guessing you all perty much do this anyways) and then on load just read the file again.
Again, these are community requested features and FC still holds the right/final say if they will or will not be implanted into any future releases.
Order from most (1) to least(x>1), please vote on a feature if you wish to see it increase on the list: *Please note, any bugs issues will have a higher priority then a lot of the requested features usally. These are community requested features and FC still holds the right/final say if they will or will not be implanted into any future releases.
V#: [0.8.0].[5] - 7/21/12
1) Persistent L2.
2) Fix Increassing Ram Issues.
3) Pool Dynamic Priority Percent Base L1.
4) Set L2 to Read, Write, or R/W, and give the option to disable L1 for L2 (Mradr, laferrierejc)
5) Keep-Alive Performance Monitor with auto start and save options (n6666661, JimF, mabellon).
^ - Top 5 should always be finish before the rest.
v - Optional to do or not as of right now. Not highly requested yet.
6) Throtter defer write speeds. (RAMbo)
7) Power Fail.
8) Add a Pro/Advanced mode to hide some features:
---->[ ] No Write-Flush At Shutdown (old)
9)-->[ ] Suspend All Writes (New, edv)
10-->[ ] Release cache once cache has been loaded into normal ram. (Ram use only)
11) Profile base loading for settings.
Please work on the first five first! ^^ If Romex can get that working, I am pretty sure you all will be way a head in terms of software SSD caching. See Notes* for more detail.
Besides that I have a few questions and another suggestion:
Future load:
Instead of waiting for the user/computer to request data and "random" to be loaded. Why not just watch the user's mouse? When a user’s mouse over an icon, Fancycache should start to auto load the data from cache or be ready to start reading it from cache so less time is spent in "search" and "table lookup." Note* I am not saying it should load all the data, but maybe some parts or where the blocks parts are.
Notes*
1) Persistent L2 - Wont have to keep rebuilding the cache data file over and over again keep the amount of writes hitting L2 down low and read performance high.
2) Fix Increassing Ram Issues. - Isn't fixed and can cause slow down over time and even causing the system to crash if there isn't enough memory for use. The cause seem to be setting the L2 cache. Setting the L2 causes the system to also load more into ram either based on the amount of L2 or a greater amount over time.
3) Pool Dynamic Priority Percent Base L1 - Some people would like to pool their ram so multiple drives can access the L1 without wasting needless ram for each drive/volume. There are two levels of the dynamically caching going on here. One at the pool level and the other at the drive level. The pool level has very little user control as the system/FC handles that one. You just set the max size of it and the system will take care on how it grows or shrinks for the need. At the drive/volume level you'll be able to set the dynamic min and max use of the pool. This would allow drives/volumes to take on more ram if it needs, but still makes sure it has the min 4GB of the pooled cached ram. For example:
L1 = 2048MB (2GB) - gobal ram pool
Drive C: L1 = Min: 50%, Max: 100% Priority 1 (OS)
Drive F: L1 = Min: 0%, Max: 50% Priority 2 (Data)
Instead of needing almost 2560MB of ram for both drives, Drive F now can share the L1 with Drive C. Drive F will be able to use 1GB of that ram unless Drive C needs the full 2GB for loading data because of its higher priority. Setting the Min value allows that drive to still have access to that higher performance, but still allows the higher priority drive to also maintain its performance when the need araises.
Another hidden cool thing about doing it this way would be that it also helps speed up file transfers between the two drives as the data movement happens in ram instead of the drive as much as possible.
4) Set L2 should gain the option to be set as: Read, Write, or R/W only with another option to disable/turn off L1 as some people wish not to use their ram for either write or read and would like to just use their drive (SSD, HDD, flash, or w/e) instead for read or write only speed boost..This includes:
laferrierejc wrote: I don't desire for my write to be extended to my L2 cache, as the ssd I'm using has a poor write performance (30MB/s). To get around this, I have to run two versions of Fancycache. The disk for writes, the volumes [the SSD] for reads.
5) Hi, would it be possible to add an option to start Performance Monitor as soon as the system has loaded FancyCache at boot time?
Or maybe at least to get some logs of the activity?
It could be very interesting to see how many datas have been cached without any need to be writen to the disk (4 SSDs in RAID 1+0 so no TRIM for now until Intel will release it's RST 11 or something).
When I wake up my monitor from power-down mode, I usually press the Return or Enter key on the keyboard. But it appears that pressing these keys also resets the Performance Statistics.
Please consider using the standard Windows performance counters to track FC performance (perfmon, logman). That is, make FC a provider of counter data. Then users can track usage in logs, schedule when to capture data and for how long. Why reinvent the wheel here - there is already a facility for tracking and graphing perf data. With this approach, you can even graph FC hits against actual disk IOps, memory usage etc. (thus better showing the incredible benefits of FC). Also users should be able to capture perf logs for scenarios like boot performance (post login) long before the FC management UI could ever come up.
"Can we get away to allow us to compare 2 different settings to see witch one is faster?" -> We can use a simple save method to allow users to compare the results.
6)Defer writes give the biggest speed boost and unfortunately setting up a time can cause data to be Urgent writen instead of normal written. Allow setting up a defer max and min time could help curve that issue.
High I/O activity: Increase defer write time (configure a max)
Low I/O activity: Decrease defer write time (configure a min)
7) Power Fail:
I understand if defer write is enable, any write data could be corrupted on a power lose. From my own stand point, the data happens only because of L1 was to lose power, yes? If so, why not give the option to disable L1 for use of the L2 and repair/finish the writes on the next boot up from L2 (I am guessing L2 will be an SSD or another hard drive where the data won’t be flushed like ram would)? This would keep data safe even on a power failed. Well, safe-r... there could also be some issues/data lose if power does go out, but at least would allow for the data that was defer to be able to be rewriten again at some sage instead of lossing it all.
8) Some of the advance features should be hidden into a sub hidden area. These features are features that could cause major problems when turn on. By giving them a place and a warnning that the user has to agree to, it will let the user know or at least be warn the user that the following features may are risky and could cause system stability issue such as lost of data, data corruption, and so on.
9) A checkbox/button that reads "Suspend All Writes." When on, write cache timer is grayed out and a infinite (oo) sign is shown to let the user know that this feature has been toggled. Suspend all writes to the physical drive unless the data needs to be writen urgently.
10) It would be nice to have an option to release ram cache once the program has been loaded into ram. This way memory can be freed up once it has been loaded for that program to use more ram. Another option is to allow that free up space to cache another program. Once the program closes, the cache is then return back to RAM for faster reload times.
11) Some would like to profile their settings to be able to load them up onto other pc. This one could be simple as in createing a load/Save base settup and then save the settings out onto a file (I am guessing you all perty much do this anyways) and then on load just read the file again.
Again, these are community requested features and FC still holds the right/final say if they will or will not be implanted into any future releases.