15 repository-uri
Thread-safe data structures designed for high-concurrency environments to manage object lifecycles.
Distinct from Concurrent Write Optimizations: Distinct from Concurrent Write Optimizations: focuses on the cache structure itself rather than general write optimization techniques.
Explore 15 awesome GitHub repositories matching data & databases · Concurrent Caches. Refine with filters or upvote what's useful.
Dapper is a high-performance micro-ORM and SQL object mapper for .NET. It functions as an ADO.NET extension library that adds data mapping capabilities directly to database connections, allowing SQL query results to be transformed into typed objects. The project prioritizes execution speed and low memory overhead by using intermediate language generation to map database columns to object properties. It further optimizes performance through the use of concurrent caching for mapping functions and literal value injection to improve database execution plans. The library covers a broad range of d
Uses concurrent caches to store generated mapping functions and avoid redundant compilation of query logic.
Caffeine is a high-performance caching library for the Java virtual machine designed to manage object lifecycles within the application heap. It functions as a thread-safe, memory-resident data store that reduces latency by keeping frequently accessed objects available for immediate retrieval. The library distinguishes itself through a sophisticated eviction strategy that balances recency and frequency to determine which entries to retain. It utilizes a frequency-based admission policy to evaluate the historical access patterns of new data, ensuring that the cache remains populated with the m
Provides a thread-safe data structure designed for high-concurrency environments to manage object lifecycles.
Memcached is a high-performance, distributed, in-memory key-value storage and request routing engine. It functions as a volatile data store designed to accelerate dynamic applications by caching objects in RAM, thereby reducing backend database load and providing sub-millisecond response times. The system utilizes a specialized architecture that organizes memory into fixed-size slabs to minimize fragmentation and maximize throughput for high-concurrency workloads. The project distinguishes itself through a multi-threaded, lock-friendly design that scales across CPU cores and supports complex
Coordinates concurrent client requests during cache misses by designating a single winner to refresh data.
Garnet is a multi-threaded in-memory database and distributed key-value store. It functions as a high-performance remote cache store that implements the RESP wire protocol to maintain compatibility with existing Redis clients and libraries. The project is distinguished by a shared-memory architecture that enables parallel request processing across multiple cores for sub-millisecond latency. It features a tiered storage system that automatically offloads colder data from system memory to SSD or cloud storage layers, and includes a specialized vector search database for high-dimensional similar
Implements latch-free indexes and cache-line alignment to enable high-throughput multi-threaded access with minimal locking.
go-cache is a thread-safe, in-memory cache library for Go that stores arbitrary objects with per-item expiration timestamps. It provides a concurrent key-value store where multiple goroutines can safely read and write shared cached data without external synchronization, using a mutex-guarded map for access control. The library distinguishes itself through its expiration management and optional disk persistence. Each cached item carries its own time-to-live, and a background goroutine periodically purges expired entries. The cache can serialize its entire contents to disk using Go's gob encodi
Shares a cache safely across multiple goroutines without manual locking or race conditions.
Ristretto is a high-performance in-memory cache and concurrent key-value store for Go applications. It provides a thread-safe memory store that manages strict memory bounds and employs probabilistic set filters to reduce lookup overhead. The system is distinguished by an admission-policy cache that utilizes frequency sketches and cost-based eviction to maximize hit ratios. It minimizes contention and improves throughput through the use of striped ring buffers and concurrent map sharding. The project covers a broad range of data management capabilities, including time-based expiration, item f
Implements a thread-safe data structure designed for high-concurrency environments to manage object lifecycles.
FASTER is a high-throughput key-value store that combines an in-memory data store with a hybrid memory-disk storage engine, enabling datasets larger than available RAM. It uses a latch-free, cache-optimized index for concurrent point lookups and heavy updates, and records all mutations to a persistent append-only log on disk with checksum validation and group-commit checkpointing for crash recovery. The system supports multi-key transactional workloads through atomic multi-key locking, ensuring transactional consistency without coarse-grained contention. It exposes the key-value store to remo
Uses a latch-free, cache-optimized index for concurrent point lookups and heavy updates.
freecache is a high-performance, concurrent in-memory key-value store library for Go applications. It functions as a fixed-size cache that manages large volumes of data while eliminating garbage collection overhead through the use of preallocated memory and off-heap storage. The system maintains a predictable memory footprint by utilizing fixed memory allocation and circular buffer management, where new entries automatically overwrite the oldest data upon reaching capacity. It further reduces contention between simultaneous readers and writers through lock-striped concurrent access. The libr
Provides a thread-safe concurrent cache designed for high-concurrency environments with simultaneous reader and writer access.
Aceasta este o bibliotecă de cache în memorie thread-safe pentru Go, care elimină automat elementele cel puțin recent utilizate (LRU) atunci când capacitatea este atinsă. Oferă un cache de memorie de dimensiune fixă conceput pentru a menține o amprentă de memorie constantă prin eliminarea celor mai vechi intrări pe măsură ce sosesc date noi. Sistemul include un manager de evacuare care execută callback-uri personalizate atunci când intrările sunt eliminate pentru a facilita curățarea resurselor. De asemenea, suportă expirarea bazată pe timp, permițând eliminarea automată a elementelor după o durată de viață specificată (TTL). Biblioteca acoperă capabilități generale de caching, inclusiv inspecția cache-ului pentru verificarea existenței cheilor, curățarea completă a cache-ului și strategii pentru optimizarea ratelor de hit prin prevenirea deplasării datelor frecvent accesate de către noile rafale de date. Toate operațiunile de citire și scriere sunt sincronizate pentru a permite accesul concurent în mai multe rutine.
Implements a thread-safe data structure designed for high-concurrency environments to manage cached objects.
Aceasta este o bibliotecă PHP care oferă interfețe standardizate pentru stocarea datelor în cache prin specificațiile PSR-6 și PSR-16. Funcționează ca un manager de pool de cache și adaptor de cache distribuit, permițând aplicațiilor să organizeze perechi cheie-valoare în repository-uri și namespace-uri logice. Proiectul include un instrument dedicat de prevenire a cache stampede-ului care protejează sistemele de spike-urile de CPU în timpul expirării valorilor. Acest lucru este realizat prin mecanisme de blocare pentru cereri concurente și expirare timpurie probabilistică. Biblioteca suportă serializarea obiectelor cu criptare și compresie opțională pentru a traduce datele complexe în formate stocabile. Oferă un strat de abstractizare a stocării multi-backend, permițând persistența datelor în memorie, sisteme de fișiere și baze de date distribuite. Alte capabilități includ regăsirea cache-ului bazată pe callback și namespacing bazat pe chei pentru segregarea datelor.
Mitigates cache stampedes by coordinating concurrent requests during cache misses to prevent redundant backend load.
Acest proiect este un ghid cuprinzător de programare pentru performanță și o referință pentru limbajul Go, concentrându-se pe eficiența runtime și optimizarea memoriei. Oferă o colecție de tipare și tehnici concepute pentru a crește viteza de execuție prin reducerea overhead-ului garbage collection-ului și optimizarea utilizării memoriei. Resursa se distinge prin implementări de referință detaliate pentru optimizarea memoriei, cum ar fi escape analysis, object pooling și alinierea memoriei structurilor. Oferă strategii specifice pentru reducerea dimensiunii binarului și îmbunătățirea eficienței cache-ului CPU prin optimizarea layout-ului memoriei structurilor și utilizarea placeholder-elor cu alocare zero. Proiectul acoperă o gamă largă de capabilități de inginerie backend, inclusiv gestionarea concurenței cu worker pools și primitive de sincronizare, RPC de înaltă performanță și rutare HTTP, precum și strategii de caching distribuit. Include, de asemenea, îndrumări privind observabilitatea prin profilarea CPU și a memoriei, precum și tipare de asigurare a calității pentru unit testing funcțional și generarea de obiecte mock. Conținutul este structurat ca o serie de tutoriale, exemple arhitecturale și ghiduri de benchmarking pentru a ajuta dezvoltatorii să analizeze și să remedieze blocajele de performanță.
Implements a mechanism to prevent cache stampedes by blocking simultaneous requests for the same expired key.
FusionCache is a hybrid distributed caching library that coordinates local memory and distributed storage to balance access speed with global consistency. It functions as a resilient data access layer, utilizing a pluggable serialization framework to convert cached objects into various binary or text formats for compatibility across diverse storage environments. The system maintains cluster consistency through a distributed cache synchronizer that propagates invalidations and state updates across multiple nodes via a shared messaging backplane. It improves reliability by serving stale cache d
Implements request coordination during cache misses to prevent redundant backend load (cache stampedes).
FusionCache is a .NET caching framework that manages local and distributed data storage. It functions as a hybrid cache implementation, combining fast in-memory storage with a distributed second-level cache to reduce latency and remote data fetches. The framework includes a cache stampede protector that ensures only one request fetches missing data while concurrent calls wait. It synchronizes data across multiple application nodes using a backplane and provides an observability-driven approach with built-in metrics, structured logging, and telemetry. The system covers a broad range of cachin
Ensures only one request fetches missing data while concurrent calls wait to prevent backend overload.
Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for interacting with Redis servers. It includes a full implementation of the Redis serialization protocol and a dedicated connection manager to handle pooling, multiplexing, and automatic pipelining. The library is distinguished by its support for RDMA connectivity to reduce latency and CPU overhead. It features a distributed lock manager that implements majority-based locking and optimistic concurrency control, as well as client-side caching with invalidation signals to minimize net
Implements request coordination during cache misses to prevent redundant backend load (cache stampede).
This project is a disk-backed key-value store and persistent data structure library for Python. It provides a mechanism for persisting mappings, sets, and queues to the local filesystem to bypass memory limitations and cache expensive function results across threads and processes. The system serves as a cross-process synchronization tool, offering distributed locks, semaphores, and barriers to coordinate shared resource access. It implements advanced caching strategies such as probabilistic stampede prevention, sharded data partitioning to increase throughput, and least-recently-used eviction
Prevents redundant backend load by ensuring only one worker regenerates an expired item during concurrency bursts.