NbQ-CLOCK: A Non-blocking Queue-based CLOCK Algorithm for Web-Object Caching

Gage Eads

EECS Department
University of California, Berkeley
Technical Report No. UCB/EECS-2013-174
October 25, 2013

http://www.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-174.pdf

Major Internet-based service providers rely on high-throughput web-object caches to serve millions of daily accesses to frequently viewed web content. A web-object cache’s ability to reduce user access time is dependent on its replacement algorithm and the cache hit rate it yields. In this report, I present NbQ-CLOCK, a novel, lock-free variant of the Generalized CLOCK algorithm particularly suited for web-object caching. NbQ-CLOCK is based on an unbounded non-blocking queue with no internal dynamic memory management, instead of the traditional circular buffer. My solution benefits from Generalized CLOCK’s low-latency updates and high hit rates, and its non-blocking implementation makes it scalable with only 10 bytes per-object space overhead.

I compare the solution to existing algorithms, including Intel’s Bag-LRU, and demonstrate that NbQ-CLOCK’s fast update operation scales well with the number of threads and in a in-memory key-value store prototype, NbQ-CLOCK offers an overall throughput improvement of as much as 9.20% over the best of the other algorithms. In addition, NbQ-CLOCK’s hit rate exceeds the next best algorithm’s hit rate by as much as 1.40%.

Advisor: John D. Kubiatowicz


BibTeX citation:

@mastersthesis{Eads:EECS-2013-174,
    Author = {Eads, Gage},
    Title = {NbQ-CLOCK: A Non-blocking Queue-based CLOCK Algorithm for Web-Object Caching},
    School = {EECS Department, University of California, Berkeley},
    Year = {2013},
    Month = {Oct},
    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-174.html},
    Number = {UCB/EECS-2013-174},
    Abstract = {Major Internet-based service providers rely on high-throughput web-object caches to serve millions of daily accesses to frequently viewed web content. A web-object cache’s ability to reduce user access time is dependent on its replacement algorithm and the cache hit rate it yields. In this report, I present NbQ-CLOCK, a novel, lock-free variant of the Generalized CLOCK algorithm particularly suited for web-object caching. NbQ-CLOCK is based on an unbounded non-blocking queue with no internal dynamic memory management, instead of the traditional circular buffer. My solution benefits from Generalized CLOCK’s low-latency updates and high hit rates, and its non-blocking implementation makes it scalable with only 10 bytes per-object space overhead.

I compare the solution to existing algorithms, including Intel’s Bag-LRU, and demonstrate that NbQ-CLOCK’s fast update operation scales well with the number of threads and in a in-memory key-value store prototype, NbQ-CLOCK offers an overall throughput improvement of as much as 9.20% over the best of the other algorithms. In addition, NbQ-CLOCK’s hit rate exceeds the next best algorithm’s hit rate by as much as 1.40%.}
}

EndNote citation:

%0 Thesis
%A Eads, Gage
%T NbQ-CLOCK: A Non-blocking Queue-based CLOCK Algorithm for Web-Object Caching
%I EECS Department, University of California, Berkeley
%D 2013
%8 October 25
%@ UCB/EECS-2013-174
%U http://www.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-174.html
%F Eads:EECS-2013-174