15 dépôts
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 est une bibliothèque de stockage clé-valeur en mémoire concurrente haute performance pour les applications Go. Il fonctionne comme un cache de taille fixe qui gère de grands volumes de données tout en éliminant la surcharge du garbage collection grâce à l'utilisation de mémoire pré-allouée et de stockage hors-tas (off-heap). Le système maintient une empreinte mémoire prévisible en utilisant une allocation mémoire fixe et une gestion de buffer circulaire, où les nouvelles entrées écrasent automatiquement les données les plus anciennes une fois la capacité atteinte. Il réduit en outre la contention entre les lecteurs et les écrivains simultanés via un accès concurrent par verrouillage segmenté (lock-striped). La bibliothèque inclut une interface serveur qui implémente un sous-ensemble du protocole Redis, permettant aux clients externes de communiquer avec le cache en utilisant des commandes standard et le pipelining. Le cycle de vie des données est géré via l'expiration time-to-live et des politiques d'éviction automatisées.
Provides a thread-safe concurrent cache designed for high-concurrency environments with simultaneous reader and writer access.
Il s'agit d'une bibliothèque de cache en mémoire thread-safe pour Go qui évince automatiquement les éléments les moins récemment utilisés (LRU) lorsque la capacité est atteinte. Elle fournit un cache mémoire de taille fixe conçu pour maintenir une empreinte mémoire constante en supprimant les entrées les plus anciennes à mesure que de nouvelles données arrivent. Le système inclut un gestionnaire d'éviction qui exécute des callbacks personnalisés lorsque les entrées sont purgées pour faciliter le nettoyage des ressources. Il prend également en charge l'expiration basée sur le temps, permettant la suppression automatique des éléments après une durée de vie spécifiée (TTL). La bibliothèque couvre les capacités générales de mise en cache, incluant l'inspection du cache pour vérifier l'existence de clés, la purge complète du cache et des stratégies pour optimiser les taux de succès en empêchant les nouvelles rafales de données de déplacer les éléments fréquemment consultés. Toutes les opérations de lecture et d'écriture sont synchronisées pour permettre un accès concurrent à travers plusieurs routines.
Implements a thread-safe data structure designed for high-concurrency environments to manage cached objects.
Il s'agit d'une bibliothèque PHP fournissant des interfaces standardisées pour la mise en cache de données via les spécifications PSR-6 et PSR-16. Elle fonctionne comme un gestionnaire de pool de cache et un adaptateur de cache distribué, permettant aux applications d'organiser les paires clé-valeur en dépôts logiques et espaces de noms. Le projet inclut un outil dédié à la prévention du cache stampede qui protège les systèmes contre les pics de CPU lors de l'expiration des valeurs. Ceci est réalisé via des mécanismes de verrouillage pour les requêtes concurrentes et une expiration anticipée probabiliste. La bibliothèque prend en charge la sérialisation d'objets avec chiffrement et compression optionnels pour traduire des données complexes en formats stockables. Elle fournit une couche d'abstraction de stockage multi-backend, permettant la persistance des données à travers la mémoire, les systèmes de fichiers et les bases de données distribuées. Les autres capacités incluent la récupération de cache basée sur des callbacks et le namespacing basé sur les clés pour la ségrégation des données.
Mitigates cache stampedes by coordinating concurrent requests during cache misses to prevent redundant backend load.
Ce projet est un guide complet de programmation de performance et une référence pour le langage Go, se concentrant sur l'efficacité du runtime et l'optimisation de la mémoire. Il fournit une collection de modèles et de techniques conçus pour augmenter la vitesse d'exécution en réduisant la surcharge du garbage collector et en optimisant l'utilisation de la mémoire. La ressource se distingue par des implémentations de référence détaillées pour l'optimisation mémoire, telles que l'analyse d'échappement (escape analysis), le pooling d'objets et l'alignement mémoire des structures. Elle propose des stratégies spécifiques pour réduire la taille des binaires et améliorer l'efficacité du cache CPU grâce à l'optimisation de la disposition mémoire des structures et à l'utilisation de placeholders sans allocation. Le projet couvre un large éventail de capacités d'ingénierie backend, incluant la gestion de la concurrence avec des pools de workers et des primitives de synchronisation, le routage RPC et HTTP haute performance, et des stratégies de mise en cache distribuée. Il inclut également des conseils sur l'observabilité via le profilage CPU et mémoire, ainsi que des modèles d'assurance qualité pour les tests unitaires fonctionnels et la génération d'objets mock. Le contenu est structuré comme une série de tutoriels, d'exemples architecturaux et de guides de benchmarking pour aider les développeurs à analyser et corriger les goulots d'étranglement de performance.
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.