Page 1 of 1

Multiple SSD's for L2 cache

Posted: Thu Nov 05, 2020 5:11 pm
by laserbait
Is it possible to use multiple SSD's for L2 cache? I couldn't find any documentation saying if this was, or was not, allowed. Thanks!

Re: Multiple SSD's for L2 cache

Posted: Thu Nov 05, 2020 10:58 pm
by Jaga
You can, but they need to be combined (per cache-task) using RAID. Primocache needs to see them as logically-presented volumes, like any Windows volume would be on a stand-alone drive. You can either use hardware RAID (MB or controller card), or Windows' software RAID implementation. If you plan on caching the boot drive, I'd recommend a hardware RAID implementation since it can help with boot times by allowing Primocache to start functioning during the boot.

If you are caching multiple target volumes (i.e. C: D: and E:) with multiple additional SSDs, you can instead dedicate a SSD per target volume if you'd like.

Re: Multiple SSD's for L2 cache

Posted: Fri Nov 06, 2020 2:14 pm
by laserbait
Thank you @Jaga, that's helpful!

Re: Multiple SSD's for L2 cache

Posted: Fri Nov 06, 2020 2:17 pm
by Jaga
You bet.

Re: Multiple SSD's for L2 cache

Posted: Tue Nov 10, 2020 1:49 pm
by ffsb42
expending on the same question....


- it sounds like primo cache is flexible enough to allow you to setup any arbitrary fast disk partition as a a cache for any arbitrary slow-disk partition is that correct?
---- combine multiple SSD into 1 big cache through RAID0
---- split 1 fast-disk into 2 separate partitions which can be used to cache 2 separate slow-disks independently
---- combine multiple SSD into 1 big faster cache through RAID0, then split it into 2 separate partitions which can be used to cache 2 separate slow-disks independently.

I would assume that:
---- software RAID would drastically impact the performance of the caching compared to a proper H/W RAID.
---- obviously such options value proposition would depend greatly on the underlying hardware (RAM, nvme-gen4>nvme>ssd>hd), cpu(for software raid), use-cases,...)

- When you use RAM caching, can you share the RAM cache across multiple ssd/hdd caches?
- How does primo RAM cache compare to native windows 10 caching?
- Would you happen to have performed such kind of tests which would demonstrate the relative performances of these options?
- Can one easily create/destroy/change a given cache without having to destroy the HD disk since this is caching only?

Re: Multiple SSD's for L2 cache

Posted: Wed Nov 11, 2020 5:02 am
by Jaga
Pretty much all your assumptions are correct. Some clarifications:

- I'm not completely sure what the impact of soft vs hard RAID 0 has on the ultimate performance of the machine. That may be due in part to the performance of the CPU/RAM and how much free headroom Windows has for RAID calculations on-the-fly. Chances are good if you have a very well performing machine, you won't see much impact using soft RAID 0. If you're really interested in performance on a NVMe L2 however, I don't think I'd use soft RAID 0 with that type of drive. The IOPS overhead may unduly impact the drive performance with soft RAID.

- Native Windows caching is crap, always has been. Prefetch was always just a "let's go grab all the stuff we think has been used the most from a program/file level and toss it into memory in case it's needed". Primocache is much more predictive, and relies on the block level instead of the program or file level, which makes it even better.

- You can use different chunks of RAM for different cache tasks - it doesn't behave like drive volumes. i.e. you don't have to declare them, you just have to allocate RAM to a task and it's done, although it will need to populate as it goes (there's no forced or user-directed allocation at this time).

- You can use/re-use volumes assigned to the Level-2 cache without having to destroy/re-create the volumes. But any data in the cache at the time you re-assign the volume is lost, meaning it has to be re-built in the new Cache Task.

- The current L2 volume limit is 2 TB. You can't present a volume of a larger size than that to Primocache (>2 TB is a planned future feature).

- Cache Tasks can be created/destroyed on-the-fly, but any cached content is emptied from the cache and has to be re-populated again.

Re: Multiple SSD's for L2 cache

Posted: Thu Nov 12, 2020 3:25 am
by ffsb42
that's very interesting, when you mention that you do block level caching vs windows native file level. Do you mean that your cache tracks blocks loading patterns to pre-emptively try to anticipate which blocks should be cached before they are requested?
for instance, if for some odd reasons I were to watch the same movie every saturday, your cache would recognize as soon as I load the first block of the mpeg the fact that it should preload the following 600MB of blocks before I even ask?

Re: Multiple SSD's for L2 cache

Posted: Thu Nov 12, 2020 4:26 am
by Support
This is called read-ahead. Windows native file caching does this. PrimoCache prefetches data based on statistics on disk blocks were read.

Re: Multiple SSD's for L2 cache

Posted: Thu Nov 12, 2020 7:54 am
by Jaga
ffsb42 wrote: Thu Nov 12, 2020 3:25 am that's very interesting, when you mention that you do block level caching vs windows native file level. Do you mean that your cache tracks blocks loading patterns to pre-emptively try to anticipate which blocks should be cached before they are requested?
for instance, if for some odd reasons I were to watch the same movie every saturday, your cache would recognize as soon as I load the first block of the mpeg the fact that it should preload the following 600MB of blocks before I even ask?
The cache tracks most accessed blocks (blocks are assigned size in the cache task parameters) and hold those in the cache. It won't prefetch on a per-use basis, it does prefetch (if enabled) at Windows boot time. It will then (as new blocks are accessed on the target drive) keep or release blocks in the cache to keep them in, or make space for more frequently used ones.

It won't go grab the entire movie file when you tell the software playing it to queue it up - if the blocks from it are in the cache from previous frequent use they will be used from the cache, otherwise it will send the software to the drive instead.

Primocache purely relies on blocks and accesses to determine what to cache - it never operates at the file level.

Re: Multiple SSD's for L2 cache

Posted: Mon Dec 05, 2022 11:12 pm
by barzattacks
I am also using Primocache on my media server without an L1. I noticed as a computer on my network started viewing a 4k movie (which was 61gb in size) it started caching something. By the time I checked again the whole movie size was cached. It was the first event I did after creating the cache and I wanted to test what was going to happen. Now if for some reason whoever was watching did not finish the movie, when they call for it again it will be waiting on the L2 SSD.

So far so good.