After my article Understanding CBRC (Content Based Read Cache) I received few direct questions about the BBRC exposed API methods exposedI in vSphere 5, as mentioned by William Lam in hist article New Hidden CBRC (Content-Based Read Cache) Feature in vSphere 5 & for VMware View 5? The questions were specifically targeting the RecomputeDigest_Task method.
Please read Understanding CBRC (Content Based Read Cache) before continuing…
CBRC has the ability to invalidate and regenerate the RAM-based cache in it’s entirety. When RecomputeDigest_Task is triggered the CBRC metadata is regenerated. Nothing really happens to the contents of the in-memory RAM cache. Evictions of the in-memory RAM cache are scheduled based on a predefined algorithm, which is either based on either LRU (Least Recently Used) or MFU (Most Recently Used) cache algorithms.
Least Recently Used (LRU): discards the least recently used items first. This algorithm requires keeping track of what was used when, which is expensive if one wants to make sure the algorithm always discards the least recently used item. General implementations of this technique require keeping “age bits” for cache-lines and track the “Least Recently Used” cache-line based on age-bits. In such an implementation, every time a cache-line is used, the age of all other cache-lines changes. LRU is actually a family of caching algorithms with members including: 2Q by Theodore Johnson and Dennis Shasha and LRU/K by Pat O’Neil, Betty O’Neil and Gerhard Weikum.
Most Recently Used (MRU): discards, in contrast to LRU, the most recently used items first. In findings presented at the 11th VLDB conference, Chou and Dewitt noted that “When a file is being repeatedly scanned in a [Looping Sequential] reference pattern, MRU is the best replacement algorithm.”[3] Subsequently other researchers presenting at the 22nd VLDB conference noted that for random access patterns and repeated scans over large datasets (sometimes known as cyclic access patterns) MRU cache algorithms have more hits than LRU due to their tendency to retain older data.[4] MRU algorithms are most useful in situations where the older an item is, the more likely it is to be accessed.
Source:Wikipedia

In summary, the in-memory RAM cache is dynamic and the only portion that gets regenerated is the metadata.
This article was first published by Andre Leibovici (@andreleibovici) atmyvirtualcloud.net.







6 pings
View 5.1 – Goodies and Gottcha’s
05/02/2012 at 5:44 am (UTC -7) Link to this comment
[...] is great article on CBRC on myvirtualvloud.net for more [...]
Sizing for VMware View Storage Accelerator (CBRC) « vResource.net
05/02/2012 at 12:03 pm (UTC -7) Link to this comment
[...] Before reading this article I recommend the read of couple of my previous posts Understanding CBRC (Content Based Read Cache) and Understanding CBRC – RecomputeDigest Method. [...]
Technology Short Take #22 - blog.scottlowe.org - The weblog of an IT pro specializing in virtualization, storage, and servers
05/03/2012 at 11:17 am (UTC -7) Link to this comment
[...] Leibovici has a couple of great posts on VMware View. In this article, he discusses how CBRC metadata is handled when the RecomputeDigest_Task is invoked. The second [...]
myvirtualcloud.net » View Storage Accelerator Performance Benchmark
06/05/2012 at 12:22 pm (UTC -7) Link to this comment
[...] If you are not familiar with View Accelerator, read about it in my previous articles Understanding CBRC (Content Based Read Cache) and Understanding CBRC – RecomputeDigest Method. [...]
Sizing for VMware View Storage Accelerator (CBRC) | vClouds
06/12/2012 at 12:19 pm (UTC -7) Link to this comment
[...] CBRC (Content Based Read Cache) Understanding CBRC – RecomputeDigest Method Related Posts:How to configure the View 5.1 VMware View Storage AcceleratorVMware View 5.1 [...]
VMware View VDI Flash Calculator v2.9 Released » myvirtualcloud.net
01/15/2013 at 10:59 pm (UTC -7) Link to this comment
[...] read about it in my previous articles Understanding CBRC (Content Based Read Cache) and Understanding CBRC – RecomputeDigest Method. The IO reduction provided by CBRC average 65%, but the mileage may vary depending on the numbers [...]