Great lecture! Got a question, though. What would the initial size of T1 be? Should it be c (total amount of blocks) in order to accommodate as many blocks as possible, say, during an initial cache "warm-up" phase. Or should T1 be c/2? If so, it will have an initial poor hit-rate for frequently-used blocks, until a balance has been achieved.
Thanks, +Johan Fredrik Varen. This paper (which introduced ARC) provides a lot more details: www.usenix.org/legacy/event/fast03/tech/full_papers/megiddo/megiddo.pdf. Would need to read this more carefully to understand what they thought was the best initial sizing (and the actual best start would depend on the workload, configuration, etc.), but I think your suggestion of starting with an initial size of T1 close to c makes sense. Assuming the system runs for a reasonable length of time, the initial setting shouldn't matter too much in the long run.
That's an awesome video. I have one basic doubt regarding the performance of Adaptive Replacement Cache. How do you think its efficient then a general LRU map? (In both cases we are pruning out Least Recently Used entries) ? Thank you :)
Thanks! It depends a lot on the workload, but I think for most disk workloads ARC should be better since it adapts to balancing recency and frequency based on the workload as it adjusts the cache size. For a particular workload, you would need to do experiments based on specific policies to be sure which is best.
Great lecture! Got a question, though. What would the initial size of T1 be? Should it be c (total amount of blocks) in order to accommodate as many blocks as possible, say, during an initial cache "warm-up" phase. Or should T1 be c/2? If so, it will have an initial poor hit-rate for frequently-used blocks, until a balance has been achieved.
Thanks, +Johan Fredrik Varen. This paper (which introduced ARC) provides a lot more details: www.usenix.org/legacy/event/fast03/tech/full_papers/megiddo/megiddo.pdf. Would need to read this more carefully to understand what they thought was the best initial sizing (and the actual best start would depend on the workload, configuration, etc.), but I think your suggestion of starting with an initial size of T1 close to c makes sense. Assuming the system runs for a reasonable length of time, the initial setting shouldn't matter too much in the long run.
That's an awesome video. I have one basic doubt regarding the performance of Adaptive Replacement Cache. How do you think its efficient then a general LRU map? (In both cases we are pruning out Least Recently Used entries) ?
Thank you :)
Thanks! It depends a lot on the workload, but I think for most disk workloads ARC should be better since it adapts to balancing recency and frequency based on the workload as it adjusts the cache size. For a particular workload, you would need to do experiments based on specific policies to be sure which is best.