Writing to the array using an NVMe SSD as a cache drive is nice and serves well on LANs with 10Gbit/s and more.
But once Mover has done his job, read performance drops down to ridiculous drive speeds.
What I like to see is another Pool, designated as a read cache for all shares (or configurable, but it does not really matter).
* if a file is requested, it is checked first, if it is on cache already
* if yes check if it still recent (size / time of last write an
In the end that would only be relevant the first time a (sub)folder's content is copied over to the read cache, the system already knows what files it moved to cache and what files have been added/removed to/from the array that are (also) available on the read cache. You're going to need to deal with file/folder changes, so you're going to have to somehow keep track of what files are active on the read cache anyway. At that point it makes little difference if it's one, dozens, or even thousands