14 Repos
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 14 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 ist eine hochperformante, konkurrierende In-Memory-Key-Value-Store-Bibliothek für Go-Anwendungen. Sie fungiert als Cache mit fester Größe, der große Datenmengen verwaltet und gleichzeitig den Garbage-Collection-Overhead durch die Verwendung von vorab allokiertem Speicher und Off-Heap-Speicher eliminiert. Das System behält einen vorhersagbaren Speicherbedarf bei, indem es feste Speicherallokation und zirkuläres Buffer-Management nutzt, bei dem neue Einträge automatisch die ältesten Daten überschreiben, sobald die Kapazität erreicht ist. Zudem reduziert es die Konkurrenz zwischen gleichzeitigen Lesern und Schreibern durch Lock-Striped-Concurrent-Access. Die Bibliothek enthält eine Server-Schnittstelle, die eine Teilmenge des Redis-Protokolls implementiert, wodurch externe Clients mit dem Cache unter Verwendung von Standardbefehlen und Pipelining kommunizieren können. Der Datenlebenszyklus wird über Time-to-Live-Ablauf und automatisierte Eviction-Richtlinien verwaltet.
Provides a thread-safe concurrent cache designed for high-concurrency environments with simultaneous reader and writer access.
This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when capacity is reached. It provides a fixed-size memory cache designed to maintain a constant memory footprint by removing the oldest entries as new data arrives. The system includes an eviction manager that executes custom callbacks when entries are purged to facilitate resource cleanup. It also supports time-based expiration, allowing for the automatic removal of items after a specified time-to-live duration. The library covers general caching capabilities including cache inspecti
Implements a thread-safe data structure designed for high-concurrency environments to manage cached objects.
This is a PHP library providing standardized interfaces for caching data through the PSR-6 and PSR-16 specifications. It functions as a cache pool manager and distributed cache adapter, allowing applications to organize key-value pairs into logical repositories and namespaces. The project includes a dedicated cache stampede prevention tool that protects systems from CPU spikes during value expiration. This is achieved through locking mechanisms for concurrent requests and probabilistic early expiration. The library supports object serialization with optional encryption and compression to tra
Mitigates cache stampedes by coordinating concurrent requests during cache misses to prevent redundant backend load.
Dieses Projekt ist ein umfassender Leitfaden und eine Referenz für Performance-Programmierung in Go, mit Fokus auf Laufzeiteffizienz und Speicheroptimierung. Es bietet eine Sammlung von Patterns und Techniken, die darauf ausgelegt sind, die Ausführungsgeschwindigkeit durch Reduzierung des Garbage-Collection-Overheads und Optimierung der Speichernutzung zu steigern. Die Ressource zeichnet sich durch detaillierte Referenzimplementierungen zur Speicheroptimierung aus, wie etwa Escape-Analyse, Object Pooling und Structure Memory Alignment. Sie bietet spezifische Strategien zur Reduzierung der Binärgröße und zur Verbesserung der CPU-Cache-Effizienz durch Optimierung des Speicherlayouts von Strukturen und die Verwendung von Zero-Allocation-Platzhaltern. Das Projekt deckt ein breites Spektrum an Backend-Engineering-Fähigkeiten ab, einschließlich Concurrency-Management mit Worker Pools und Synchronisations-Primitiven, High-Performance-RPC und HTTP-Routing sowie Strategien für verteiltes Caching. Es enthält zudem Anleitungen zur Observability durch CPU- und Memory-Profiling sowie Quality-Assurance-Patterns für funktionale Unit-Tests und die Generierung von Mock-Objekten. Der Inhalt ist als Serie von Tutorials, Architekturbeispielen und Benchmarking-Leitfäden strukturiert, um Entwicklern bei der Analyse und Behebung von Performance-Engpässen zu helfen.
Implements a mechanism to prevent cache stampedes by blocking simultaneous requests for the same expired key.
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.