HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Yiling-J
theine-go
Go2023–2023
Yiling-J / theine-go

theine-go

high performance in-memory cache

2Distinct people
2Mentions
0Explicit recommenders
381GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

high performance in-memory cache

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by 3-hour interval2 dated mentions

Observed mentions: 2023-12-23 18:48:06 UTC to 2023-12-27 10:05:24 UTC.

012023-12-23 18:00:00 UTC to 2023-12-23 21:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 23, 18:002023-12-23 21:00:00 UTC to 2023-12-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 00:00:00 UTC to 2023-12-24 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 03:00:00 UTC to 2023-12-24 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 06:00:00 UTC to 2023-12-24 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 09:00:00 UTC to 2023-12-24 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 12:00:00 UTC to 2023-12-24 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 15:00:00 UTC to 2023-12-24 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 18:00:00 UTC to 2023-12-24 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-24 21:00:00 UTC to 2023-12-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 00:00:00 UTC to 2023-12-25 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 03:00:00 UTC to 2023-12-25 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 06:00:00 UTC to 2023-12-25 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 09:00:00 UTC to 2023-12-25 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 12:00:00 UTC to 2023-12-25 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsDec 25, 12:002023-12-25 15:00:00 UTC to 2023-12-25 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 18:00:00 UTC to 2023-12-25 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-25 21:00:00 UTC to 2023-12-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 00:00:00 UTC to 2023-12-26 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 03:00:00 UTC to 2023-12-26 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 06:00:00 UTC to 2023-12-26 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 09:00:00 UTC to 2023-12-26 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 12:00:00 UTC to 2023-12-26 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 15:00:00 UTC to 2023-12-26 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 18:00:00 UTC to 2023-12-26 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-26 21:00:00 UTC to 2023-12-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-27 00:00:00 UTC to 2023-12-27 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-27 03:00:00 UTC to 2023-12-27 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-27 06:00:00 UTC to 2023-12-27 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-12-27 09:00:00 UTC to 2023-12-27 12:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 27, 09:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Dec 23, 18:002023-12-23 18:00:00 UTC2023-12-23 21:00:00 UTC101
Dec 23, 21:002023-12-23 21:00:00 UTC2023-12-24 00:00:00 UTC000
Dec 24, 00:002023-12-24 00:00:00 UTC2023-12-24 03:00:00 UTC000
Dec 24, 03:002023-12-24 03:00:00 UTC2023-12-24 06:00:00 UTC000
Dec 24, 06:002023-12-24 06:00:00 UTC2023-12-24 09:00:00 UTC000
Dec 24, 09:002023-12-24 09:00:00 UTC2023-12-24 12:00:00 UTC000
Dec 24, 12:002023-12-24 12:00:00 UTC2023-12-24 15:00:00 UTC000
Dec 24, 15:002023-12-24 15:00:00 UTC2023-12-24 18:00:00 UTC000
Dec 24, 18:002023-12-24 18:00:00 UTC2023-12-24 21:00:00 UTC000
Dec 24, 21:002023-12-24 21:00:00 UTC2023-12-25 00:00:00 UTC000
Dec 25, 00:002023-12-25 00:00:00 UTC2023-12-25 03:00:00 UTC000
Dec 25, 03:002023-12-25 03:00:00 UTC2023-12-25 06:00:00 UTC000
Dec 25, 06:002023-12-25 06:00:00 UTC2023-12-25 09:00:00 UTC000
Dec 25, 09:002023-12-25 09:00:00 UTC2023-12-25 12:00:00 UTC000
Dec 25, 12:002023-12-25 12:00:00 UTC2023-12-25 15:00:00 UTC000
Dec 25, 15:002023-12-25 15:00:00 UTC2023-12-25 18:00:00 UTC000
Dec 25, 18:002023-12-25 18:00:00 UTC2023-12-25 21:00:00 UTC000
Dec 25, 21:002023-12-25 21:00:00 UTC2023-12-26 00:00:00 UTC000
Dec 26, 00:002023-12-26 00:00:00 UTC2023-12-26 03:00:00 UTC000
Dec 26, 03:002023-12-26 03:00:00 UTC2023-12-26 06:00:00 UTC000
Dec 26, 06:002023-12-26 06:00:00 UTC2023-12-26 09:00:00 UTC000
Dec 26, 09:002023-12-26 09:00:00 UTC2023-12-26 12:00:00 UTC000
Dec 26, 12:002023-12-26 12:00:00 UTC2023-12-26 15:00:00 UTC000
Dec 26, 15:002023-12-26 15:00:00 UTC2023-12-26 18:00:00 UTC000
Dec 26, 18:002023-12-26 18:00:00 UTC2023-12-26 21:00:00 UTC000
Dec 26, 21:002023-12-26 21:00:00 UTC2023-12-27 00:00:00 UTC000
Dec 27, 00:002023-12-27 00:00:00 UTC2023-12-27 03:00:00 UTC000
Dec 27, 03:002023-12-27 03:00:00 UTC2023-12-27 06:00:00 UTC000
Dec 27, 06:002023-12-27 06:00:00 UTC2023-12-27 09:00:00 UTC000
Dec 27, 09:002023-12-27 09:00:00 UTC2023-12-27 12:00:00 UTC101

What Hacker News says

2 sources
In fact, lock-free queues have several problems at once, which prompted me to give up on them almost immediately. 1. Yes, S3-FIFO can be implemented using lock-free queues, but the problem is that each write to a filled cache using this design will cause a large number of additional atomic operations not friendly to the processor's cache, while bp-wrapper on the contrary amortizes this load. And reading with frequency update on hot entries can have a bad effect on performance. In many ways this is exactly what the last posts in my discussion with Ben are about (not really about this, but the current problem with otter read speed is caused by a similar problem). https://github.com/Yiling-J/theine-go/issues/29#issuecomment... 2. But the main problem for me is not even that. Lock-free queues work fine as long as you only need to support Get
Read the rest
and Set operations, but as soon as you want to add features to your cache, the complexity of the implementation starts to increase, and some features are very hard to add to such a structure. Also, improving the eviction policy is under a big question mark, because not only do you have to think about how to improve the eviction policy, but also how to avoid locks while doing so or how not to slow down the implementation with your improvements. BP-Wrapper has no such problems at all, allows you to use any eviction policy and focus on improving different parts of your cache independently of each other.
In Otter, Fastest Go in-memory cache based on S3-FIFO algorithm
I think you may be right. The library author said he made many changes because implementing the eviction policy following the paper's design was pretty awful. > First, I tried to implement cache on hash table and lock free queues, as the authors wrote. I was annoyed, s3-fifo was indeed many times faster than lru cache implemented on hash table with global mutex, but still lost to ristretto and theine, which use bp-wrapper techniques. The profiler also showed that it was the eviction policy that was spending the bulk of the time. And I was only able to beat ristretto and theine after rewriting the implementation using bp-wrapper. > In summary, I completely disagree about the scalability advantage of S3-FIFO over the other policies > Though to be honest, what was causing the hit ratio to go down in DS1 I still don't understand https://githu
Read the rest
In Otter, Fastest Go in-memory cache based on S3-FIFO algorithm

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.