
An Adaptive Replacement Cache Written in Go - blubbi2
https://github.com/alexanderGugel/arc
======
vardump
ARC (adaptive replacement cache) is the best generic caching strategy I know
of, but the patent status is problematic.

[https://en.wikipedia.org/wiki/Adaptive_replacement_cache](https://en.wikipedia.org/wiki/Adaptive_replacement_cache)

    
    
      In 2006, IBM was granted a patent for the adaptive replacement cache policy.
    

[http://patft1.uspto.gov/netacgi/nph-
Parser?Sect1=PTO1&Sect2=...](http://patft1.uspto.gov/netacgi/nph-
Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=6996676.PN.&OS=PN/6996676&RS=PN/6996676)

IBM's patent will take quite a while to expire. It's truly a shame this can't
be used by operating system page cache policy because of patents.

~~~
andrewstuart2
Holy crap, _that 's_ the reason this algorithm isn't all over the place? That
seriously irks me, and this one seems like a great patent to look for either
Tesla-esque giveaway or just invalidation (EFF, anybody?).

Smart generic caching could do _so_ much for the global infrastructure with
all the data we move around these days.

------
whitenoice
Had implemented this for a grad school project long time back. We had compared
the complexity and effectives of this algorithm and compared it with lru, by
the end the results of both were comparable unless in certain special
conditions arc works well, whereas lru fails like a virus scan etc. But the
simplicity of lru triumphs. For anyone interested, here's a paper which was an
assigned reading for the project -
[http://www.cs.cmu.edu/~15-440/READINGS/megiddo-
computer2004....](http://www.cs.cmu.edu/~15-440/READINGS/megiddo-
computer2004.pdf)

(Outperforming LRU with an Adaptive Replacement Cache Algorithm)

