groupcache icon indicating copy to clipboard operation
groupcache copied to clipboard

Proposal to Integrate SIEVE Eviction Algorithm

Open yazhuo opened this issue 2 years ago • 5 comments

Hi there,

Our team (@1a1a11a) has developed a new cache eviction algorithm, called SIEVE. It’s simple, efficient, and scalable.

Why SIEVE could be a great addition:

  • Simplicity: Integrating SIEVE is straightforward, usually needing to change less than 20 lines of code on average.
  • Efficiency: On skewed workloads, which are typical in web caching scenarios, SIEVE is top-notch.
  • Cache Primitive: SIEVE is not just another algorithm; it's a primitive that could enhance or replace LRU/FIFO queues in advanced systems like LeCaR, TwoQ, ARC, and S3-FIFO.

Welcome to dive into the details on our website sievecache.com and on our SIEVE blog.

We would love to explore the possibility of integrating SIEVE into groupcache. We believe it could be a beneficial addition to the library and the community.

Looking forward to your feedback!

yazhuo avatar Dec 25 '23 21:12 yazhuo

I believe this repo is abandoned, We've been maintaining a fork https://github.com/groupcache/groupcache-go with optional S3FIFO

thrawn01 avatar May 20 '24 15:05 thrawn01

Tailscale maintain their own fork too, m~aintained by none other than Brad Fitzpatrick himself~ where Brad Fitzpatrick currently works. https://github.com/tailscale/groupcache/

Edit: Actually it's maintained by someone else at Tailscale, I misremembered!

jbduncan avatar May 20 '24 16:05 jbduncan

Thanks, I didn't know tailscale was maintaining a fork!

I maintained a fork at mailgun for years, but now I maintain the implementation at https://github.com/groupcache which is very different from the original library.

It no longer uses global variables and has abstracted away the internal cache to allow other implementations to be used. Of interest to me is a lock free cache, which greatly improves performance on high concurrency systems.

thrawn01 avatar May 20 '24 17:05 thrawn01

I believe this repo is abandoned, We've been maintaining a fork https://github.com/groupcache/groupcache-go with optional S3FIFO

Thank you for sharing this repo! It looks like it uses LRU as the eviction algorithm?

1a1a11a avatar May 21 '24 03:05 1a1a11a

Thank you for sharing this repo! It looks like it uses LRU as the eviction algorithm?

It has optional support for S3-FIFO https://github.com/groupcache/groupcache-go/blob/main/README.md#otter-cache

thrawn01 avatar May 21 '24 17:05 thrawn01