https://github.com/tmrts/teracache
Scalable, fault-tolerant, highly-available cache
https://github.com/tmrts/teracache
cache distributed-systems go golang gossip-protocol
Last synced: 6 months ago
JSON representation
Scalable, fault-tolerant, highly-available cache
- Host: GitHub
- URL: https://github.com/tmrts/teracache
- Owner: tmrts
- License: apache-2.0
- Created: 2017-03-17T10:58:33.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-17T11:09:25.000Z (over 8 years ago)
- Last Synced: 2025-04-13T01:13:13.245Z (6 months ago)
- Topics: cache, distributed-systems, go, golang, gossip-protocol
- Language: Go
- Size: 35.2 KB
- Stars: 15
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Teracache
![]()
![]()
![]()
![]()
Teracache is a scalable, decentralized, highly-available in-memory cache for
read-asymmetrical workflows.## Workflow
The workflow diagram depicts a system with multiple topics and nodes where each
color represents the topic they're in.
## What is Read-Asymmetrical?
In a read-asymmetrical workflow, reads are frequent while the writes are rare.
For example a newsfeed will resize and optimize a thumbnail when a new article
arrives and then serve the optimized thumbnail to thousands or millions of
users.In such cases, it is very profitable to use a cache that doesn't sacrifice
performance to allow write operations. Teracache does exactly this trade-off.## How to use invalidations?
Cache entries are immutable and no entry is considered stale. Entries
are evicted only to admit more popular entries.## Inspired By
- [groupcache](https://github.com/golang/groupcache)
- [SWIM Membership Protocol](https://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf)
- [Microsoft Orleans](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf)
- [Amazon Dynamo](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- [Consistent Hashing and Random Trees](https://www.akamai.com/es/es/multimedia/documents/technical-publication/consistent-hashing-and-random-trees-distributed-caching-protocols-for-relieving-hot-spots-on-the-world-wide-web-technical-publication.pdf)