Does L1 write through to L2?
Does L1 write through to L2?
Does the L1 cache write through to the L2 cache? L1 being super fast is great and all, but it's not persistent across boots, so I'm hesitant to rely on it too much. Ideally I'd like to have everything written/read to the cached volume cached on the L2 as well as the L1, that case if I reboot, I can still fall back to the L2 on the SSD.
Re: Does L1 write through to L2?
Yeah sure, far as i know, when you enabled deferr-write (R/W) and setup a L2-cache for this cache-task, the deferred data is hotswapped to L2.
But i don't know exactly in which cases L2 flushes writes to disk finaly...
I think it should always hotswap to L2 and trying to write back to disk when no Read-I/O is occuring on the original disk... then when L2 is full and L2 needs more space for Reads, it could discard all deferred-blocks that already have been writen. Also Primo could introduce the deferred write blocks into the read-cache for availability too.
As far as I know it is trying to do all that... still this is "prior-art" and not yet finally stable for productive systems.
But i don't know exactly in which cases L2 flushes writes to disk finaly...
I think it should always hotswap to L2 and trying to write back to disk when no Read-I/O is occuring on the original disk... then when L2 is full and L2 needs more space for Reads, it could discard all deferred-blocks that already have been writen. Also Primo could introduce the deferred write blocks into the read-cache for availability too.
As far as I know it is trying to do all that... still this is "prior-art" and not yet finally stable for productive systems.
Re: Does L1 write through to L2?
I don't want to defer writes though.
Basically I want it to work like eboostr - L1 cache is written through to a file (and repopulates at boot), and the L2 cache is persistent. Everything is organized by priority, with the most important stuff in L1.
Basically I want it to work like eboostr - L1 cache is written through to a file (and repopulates at boot), and the L2 cache is persistent. Everything is organized by priority, with the most important stuff in L1.
Re: Does L1 write through to L2?
@bd2003
PrimoCache doesn't works like eboostr.
you want something working like eboostr.
Why don't you use eboostr? Lol.
PrimoCache doesn't works like eboostr.
you want something working like eboostr.
Why don't you use eboostr? Lol.
Re: Does L1 write through to L2?
Because while eboostr has the right idea, it's done at the file level instead of the block level, which makes it grossly inappropriate for my purposes.
If it doesnt write through to L2, primocache shouldn't be calling it an L1 cache, because it's not. It's just a separate cache, and it's volatility kind of defeats the purpose. L1/L2 implies theyre coherent (meaning L1 is a subset of L2.)
Theoretically you want your most crucial data in L1, since it's the fastest. Which also means it's the data you least want to lose if you reboot. If they're not writing everything in the volatile L1 to non-volatile L2, then the whole thing is kind of pointless.
If it doesnt write through to L2, primocache shouldn't be calling it an L1 cache, because it's not. It's just a separate cache, and it's volatility kind of defeats the purpose. L1/L2 implies theyre coherent (meaning L1 is a subset of L2.)
Theoretically you want your most crucial data in L1, since it's the fastest. Which also means it's the data you least want to lose if you reboot. If they're not writing everything in the volatile L1 to non-volatile L2, then the whole thing is kind of pointless.
-
- Level SS
- Posts: 477
- Joined: Wed Oct 06, 2010 11:10 pm
Re: Does L1 write through to L2?
Unless you have Deferred Write enabled, I don't really see what the problem is. Without deferred write, any changes go straight to L2 or disk (if you're not using L2). As such, the only downside of a reboot is some performance loss while L1 repopulates.bd2003 wrote:Theoretically you want your most crucial data in L1, since it's the fastest. Which also means it's the data you least want to lose if you reboot. If they're not writing everything in the volatile L1 to non-volatile L2, then the whole thing is kind of pointless.
Re: Does L1 write through to L2?
In current version (0.9.9), L1 read data will be swapped to L2 cache. Deferred write data is always in L1. This means that L2 cache cannot be used for defer-write.
Re: Does L1 write through to L2?
I'm more concerned with reads than writes. Perhaps my use of the term write through is confusing. What I'm really asking is if L1 is always a subset of L2.
Say I set up a brand new cache L1 of 8GB, L2 of 64GB on SSD.
If fire up a few games, say 5GB so of reads. That's cached in the L1, but not automatically mirrored in the L2, correct?
The way it's explained on the site, only the spillover from L1 is cached in L2. So upon reboot, I'm basically back at square one, because I didn't read enough to break the L1 barrier. And even if I did, it's probably that the first 8GB were more important than what eventually made it to non-volatile L2.
Ideally upon boot, the L1 would be filled with highest priority blocks from the L2. So not only would the data from L1 need to be mirrored in L2, but any reads from L2 should push out lower priority blocks from L1 and take their place. Sure, that adds some redundancy and complexity, but it makes the whole system much more relevant to real world scenarios than benchmarks.
Say I set up a brand new cache L1 of 8GB, L2 of 64GB on SSD.
If fire up a few games, say 5GB so of reads. That's cached in the L1, but not automatically mirrored in the L2, correct?
The way it's explained on the site, only the spillover from L1 is cached in L2. So upon reboot, I'm basically back at square one, because I didn't read enough to break the L1 barrier. And even if I did, it's probably that the first 8GB were more important than what eventually made it to non-volatile L2.
Ideally upon boot, the L1 would be filled with highest priority blocks from the L2. So not only would the data from L1 need to be mirrored in L2, but any reads from L2 should push out lower priority blocks from L1 and take their place. Sure, that adds some redundancy and complexity, but it makes the whole system much more relevant to real world scenarios than benchmarks.
Re: Does L1 write through to L2?
Just so I'm clear on what I'm trying to achieve here....I'm trying to pull off ultra fast game loads without having to manually shift stuff from a HDD to an SSD or RAM drive. RAM drives are rarely big enough to hold a full game, and lots of that data prob doesn't even need to be on the SSD.
So theoretically, any time I write to the HDD, I'd want it to hit the SSD (L2) and the HDD. So worst case scenario on a new game, I'm at SSD speeds. Then if I loaded a game, any blocks read would be promoted to L1 (whether or not they came from L2 or HDD). Over time the caches should sort themselves out to have the most frequent and/or most recent blocks read from the drive in general, with the most frequent/recent automatically repopulated in L1 upon boot.
Maybe this is asking for way more than what primocache is currently capable of, but a top to bottom cache like this would be just about the best thing ever.
So theoretically, any time I write to the HDD, I'd want it to hit the SSD (L2) and the HDD. So worst case scenario on a new game, I'm at SSD speeds. Then if I loaded a game, any blocks read would be promoted to L1 (whether or not they came from L2 or HDD). Over time the caches should sort themselves out to have the most frequent and/or most recent blocks read from the drive in general, with the most frequent/recent automatically repopulated in L1 upon boot.
Maybe this is asking for way more than what primocache is currently capable of, but a top to bottom cache like this would be just about the best thing ever.
Re: Does L1 write through to L2?
Nothing you say is clear.
Again PrimoCache DOES write from L1 through L2... the feature you are requesting is already there.
Writing to HDD finally and discard from cache is something that better happens due inactivity/background.
Secondly, when Primo wrote to L1 is finished, it instantly starts hotswapping to L2 (SSD) instead to HDD first. Why because it's faster than HDD! That IS the sense of L2-write (SSD).

Primo doesn't promote any data.. it reads and writes blocks from RAM to SDD to SDD and vice versa.
It already does what you want... i alreadyexplained it to you above.
What happens when you game is cached on L2 that it loads it into L1.... dude this is exactly what you are talking about.... what do you want?
Otherwise.... try to explain what you want more precisely with better vocabulary, please.
Let me recapitulate.. you want ultra fast game loads.. but you not want to load the game from SDD or HDD at anytime into RAM at all?
Lol? Nothing you say make sense by that!
Again PrimoCache DOES write from L1 through L2... the feature you are requesting is already there.
Why do you not want to write any disk-write-task to HDD first instead L1 (RAM) first... so your write-task at first is nearly done instantly, not needing to wait for any SDD or HDD. You do NOT want to hit write-data hit the HDD while you are requesting read-data from the HDD.So theoretically, any time I write to the HDD, I'd want it to hit the SSD (L2) and the HDD.
Writing to HDD finally and discard from cache is something that better happens due inactivity/background.
Secondly, when Primo wrote to L1 is finished, it instantly starts hotswapping to L2 (SSD) instead to HDD first. Why because it's faster than HDD! That IS the sense of L2-write (SSD).
Nono, as you said above "then" your HDD is busy writing all the stuff that hitting the cache insantly.Then if I loaded a game, any blocks read would be promoted to L1

Primo doesn't promote any data.. it reads and writes blocks from RAM to SDD to SDD and vice versa.
It already does what you want... i alreadyexplained it to you above.
What happens when you game is cached on L2 that it loads it into L1.... dude this is exactly what you are talking about.... what do you want?
Well, it is capable of, if you mean hotswapping read/write to L2 (SSD).Maybe this is asking for way more than what primocache is currently capable of
Otherwise.... try to explain what you want more precisely with better vocabulary, please.
Yes and i would like to have a Ferrari, that doesn't need gasoline...I'm trying to pull off ultra fast game loads without having to manually shift stuff from a HDD to an SSD or RAM drive.
Let me recapitulate.. you want ultra fast game loads.. but you not want to load the game from SDD or HDD at anytime into RAM at all?
Lol? Nothing you say make sense by that!