- HDDs are good at large sequential reads.
- Flash is good at small random reads where it can read multiple files in the time it takes just to seek just one such file on a HDD.
- It's a known fact that the faster a drive is at low que depth random 4K; the snappier the system feels to the user.
Filter/prioritise I/O requests so that random small files are read from the caching SSD, while
at the same time
large sequential is read from the HDD.
Obviously large sequential is also faster from the cache drive, so the above rule needs to be refined so that the fast cache disk takes over from the the HDD
after
the small files are read.
Perhaps this can be further refined, using NCQ data, so that less sequential files are prioritised from the cache drive, while the more sequential reads (= low seek time) continue from the HDD simultaneously.
ie:
Put the slow cached drive into a kind of RAID 0 with the cache drive using the above filtering rules.
I think adding these filtering rules to your current set may result in faster than cache drive I/O performance
and that would be a major selling point.
If feasible; I would like to be involved in testing and refining this idea plz.