All Projects → nuclearfurnace → Synchrotron

nuclearfurnace / Synchrotron

Licence: other
Caching layer load balancer.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Synchrotron

Haproxy
HAProxy Load Balancer's development branch (mirror of git.haproxy.org)
Stars: ✭ 2,463 (+5764.29%)
Mutual labels:  cache, caching, load-balancer
Gocache
☔️ A complete Go cache library that brings you multiple ways of managing your caches
Stars: ✭ 775 (+1745.24%)
Mutual labels:  redis, cache, memcache
Easycaching
💥 EasyCaching is an open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
Stars: ✭ 1,047 (+2392.86%)
Mutual labels:  redis, cache, caching
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+4245.24%)
Mutual labels:  cache, caching, load-balancer
Scrapbook
PHP cache library, with adapters for e.g. Memcached, Redis, Couchbase, APC(u), SQL and additional capabilities (e.g. transactions, stampede protection) built on top.
Stars: ✭ 279 (+564.29%)
Mutual labels:  redis, cache, caching
Cash
HTTP response caching for Koa. Supports Redis, in-memory store, and more!
Stars: ✭ 122 (+190.48%)
Mutual labels:  redis, cache, caching
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+4385.71%)
Mutual labels:  redis, cache, memcache
Sequelize Transparent Cache
Simple to use and universal cache layer for Sequelize
Stars: ✭ 137 (+226.19%)
Mutual labels:  redis, cache, caching
HAProxy-2-RPM-builder
Build latest HAProxy binary with prometheus metrics support
Stars: ✭ 28 (-33.33%)
Mutual labels:  caching, cache, load-balancer
Cachemanager
CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.
Stars: ✭ 2,049 (+4778.57%)
Mutual labels:  redis, cache, caching
Stackexchange.redis.extensions
Stars: ✭ 419 (+897.62%)
Mutual labels:  redis, cache, caching
Ring
Python cache interface with clean API and built-in memcache & redis + asyncio support.
Stars: ✭ 404 (+861.9%)
Mutual labels:  redis, cache, memcache
Lada Cache
A Redis based, fully automated and scalable database cache layer for Laravel
Stars: ✭ 424 (+909.52%)
Mutual labels:  redis, cache, caching
Readthis
📰 Pooled active support compliant caching with redis
Stars: ✭ 509 (+1111.9%)
Mutual labels:  redis, caching
Aiocache
Asyncio cache manager for redis, memcached and memory
Stars: ✭ 496 (+1080.95%)
Mutual labels:  redis, cache
Bigcache
Efficient cache for gigabytes of data written in Go.
Stars: ✭ 5,304 (+12528.57%)
Mutual labels:  cache, caching
Spring Boot
spring-boot 项目实践总结
Stars: ✭ 989 (+2254.76%)
Mutual labels:  redis, cache
Middleware development learning
中间件、高性能服务器、分布式存储等(redis、memcache、nginx、大容量redis pika、rocksdb、mongodb、wiredtiger存储引擎、高性能代理中间件)二次开发、性能优化,逐步整理文档说明并配合demo指导--每周末定时更新2-3篇技术文章及程序demo--(技术交流QQ群:568892619)
Stars: ✭ 449 (+969.05%)
Mutual labels:  redis, memcache
Cached
Rust cache structures and easy function memoization
Stars: ✭ 530 (+1161.9%)
Mutual labels:  cache, caching
Laravel Eloquent Query Cache
Adding cache on your Laravel Eloquent queries' results is now a breeze.
Stars: ✭ 529 (+1159.52%)
Mutual labels:  redis, cache

synchrotron

conduct-badge travis-badge release-badge license-badge

Synchrotron is a caching layer load balancer, in the spirit of Twemproxy and mcrouter.

archived!

After going another direction at work, this project is now archived! My hope is that some of the design can act as an inspiration, although given the heavy [email protected] basis of the project, it may be less relevant in the async/await world than I think.

Why another one?

There's a few things here:

  • I wanted to write a real piece of software in Rust, not just toy programs!
  • Twemproxy is basically deprecated
  • mcrouter is advanced but only supports memcached

Essentially, this project aims to be a mix of Twemproxy and mcrouter: memcached and Redis support with advanced features like traffic shadowing, pool warm up, and online reconfiguration... while being written in Rust: a systems programming language whose community, IMO, is second to none.

What's done?

Here is a non-exhaustive checklist of what's done and what is a serious target:

  • [x] Redis support
  • [ ] memcached support
  • [x] Redis pipelining support
  • [x] basic connection multiplexing (M client conns over N server conns; configurable server connection limit)
  • [x] advanced connection multiplexing (server backoff after failure, timeout on backend operations, etc)
  • [x] basic routing strategies (single pool, traffic shadowing)*
  • [ ] advanced routing strategies (warm up [cold before warm], prefix routing, fallthrough, majority, fastest response)
  • [x] distribution (modulo vs ketama) and hashing (md5 vs sha vs fnv1a) support*
  • [x] online reconfiguration
  • [x] metrics collection*
  • [ ] TLS support
    • while the scaffolding is present, all options may not be i.e. not all hash methods may be implemented, etc

License

Licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].