24 dépôts
Coordination strategies between local server caches and distributed stores to optimize data updates.
Distinct from Distributed Data Caching Layers: Focuses on the hierarchy and synchronization between different caching tiers, not just distributed layers.
Explore 24 awesome GitHub repositories matching data & databases · Multi-level Caching. Refine with filters or upvote what's useful.
This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac
Coordinates local server caches and distributed stores via message queues to minimize backend load during updates.
RocksDB is a high-performance, embeddable persistent key-value library and storage engine based on Log-Structured Merge-trees. It is designed to provide durable storage for large-scale datasets, integrating directly into applications to manage data on flash and RAM-based hardware. The engine is distinguished by its focus on minimizing read and write amplification through multi-threaded compaction and custom memory allocators. It features specialized optimizations for flash storage, including support for zoned block devices, and provides the ability to extend store behavior via external plugin
Merges smaller sorted files into larger ones across multiple levels to reclaim space and minimize write amplification.
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
Manages a hierarchy of registers and caches to minimize data movement latency and maximize memory bandwidth.
Open-IM-Server is an instant messaging server and cross-platform messaging backend designed for real-time text and media communication. It provides a distributed chat architecture that coordinates user sessions and group communications across multiple server nodes to support millions of concurrent users. The system features a scalable message distribution model that utilizes asynchronous message pipelines and distributed queueing to maintain reliability during traffic spikes. It employs multi-level data caching across local memory and distributed stores to reduce latency and uses a document-b
Reduces latency via multi-level data caching across local memory and distributed stores.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Implements a second-level cache to store frequently accessed entities and collections across sessions.
XiangShan is a high-performance RISC-V processor core and a hardware description language framework. It provides a construction-based system for designing, simulating, and verifying complex processor micro-architectures and peripheral devices. The project includes a high-performance CPU simulator used for architectural exploration and functional verification of processor execution. The project implements a superscalar out-of-order CPU architecture that uses renaming and reorder buffers to execute instructions in parallel. It generates synthesizable Verilog files from hardware descriptions to
Implements a non-blocking cache hierarchy that tracks pending requests to prevent pipeline stalls during memory misses.
Hibernate ORM est un mapper objet-relationnel (ORM) Java et une implémentation complète de l'API Jakarta Persistence. Il sert de couche d'abstraction de base de données SQL qui traduit les modèles d'objets Java en schémas de base de données relationnelle pour gérer la persistance et le cycle de vie des données. Le framework se distingue par un framework d'isolation de données multi-tenant pour séparer les données des clients au sein d'une même instance de base de données. Il dispose également d'un générateur de schéma de base de données qui produit et met à jour automatiquement les structures relationnelles basées sur les mappings d'entités. Le système couvre des domaines étendus comme la gestion des transactions, le contrôle de verrouillage de concurrence et le suivi des données temporelles pour l'audit. Il fournit des outils d'optimisation de récupération de données via des stratégies d'entity-graph et prend en charge des types de données avancés comme les données vectorielles et les caractères nationalisés. Le projet inclut une suite complète d'utilitaires de test pour la couche de persistance, incluant le filtrage par dialecte de base de données et les tests de conformité aux spécifications.
Maintains a session-scoped map of entity identifiers to object instances to ensure referential integrity.
Upspin is a decentralized naming and storage system that provides an end-to-end encrypted file system. It assigns every user a unique identity and organizes files within a global, permissioned namespace where data is encrypted on the client before transmission. The system separates identity resolution from data storage using a public-key identity provider and a key-server architecture. This allows for decentralized identity management and the resolution of usernames to specific directory and storage server addresses. The project includes a hierarchical access control system that manages read
Implements block-level caching of storage data to accelerate repeated retrieval of encrypted blocks.
Pebble is an embedded key-value storage engine written in Go, designed as a library that provides durable, write-optimized data persistence directly within applications. It organizes data using a log-structured merge-tree (LSM-tree) structure, where writes are first buffered in an in-memory skiplist memtable and persisted to a write-ahead log before being flushed to block-based SSTable files on disk. The engine supports atomic batch commits, configurable write synchronization, and automatic background compaction that merges and rewrites sorted runs to reclaim space and maintain read performanc
Automatically merges and rewrites sorted runs across multiple levels in the background to reclaim space.
HotChocolate is a GraphQL server implementation for .NET that handles queries, mutations, and subscriptions over HTTP. It provides code-first schema generation directly from C# classes and attributes, keeping the schema and business logic in sync without manual type definitions. The project also includes a GraphQL gateway that composes multiple GraphQL and REST endpoints into a single unified schema, along with a GraphQL IDE for exploring, testing, and debugging GraphQL APIs interactively. The project distinguishes itself through its comprehensive tooling ecosystem, which includes a GraphQL c
Caches fetched entities in memory so subsequent requests for the same key return instantly.
SpringSide 4 is an enterprise Java reference architecture and utility library built on the Spring Framework. It provides a pragmatic, best-practice application stack for building RESTful web services, web applications, and data access layers, along with a curated collection of high-performance utility classes for common operations like text, date, collection, reflection, concurrency, and I/O handling. The project distinguishes itself by combining a complete reference application scaffold with production-oriented infrastructure. It includes a JPA-based data access layer that automatically tran
Implements second-level caching of entities by primary key for faster retrieval.
JetCache est un framework de mise en cache Java qui fournit une interface unifiée pour gérer les données d'application. Il fonctionne comme un gestionnaire de cache à deux niveaux, coordonnant le stockage local en mémoire et les caches distribués distants pour réduire la latence réseau et améliorer les vitesses de récupération. Le projet se distingue par sa bibliothèque de mise en cache déclarative, qui utilise des annotations pour automatiser le stockage, l'expiration et l'invalidation des résultats de méthodes. Il inclut un synchroniseur de cache distribué pour maintenir la cohérence en invalidant les entrées locales à travers les instances de cluster, ainsi qu'un outil de verrouillage distribué pour coordonner l'accès aux ressources partagées. Le framework couvre un large éventail de capacités de performance et de stabilité, notamment la récupération asynchrone non bloquante, le rafraîchissement automatique du cache en arrière-plan et la compression de requêtes pour éviter la pénétration du cache. Il fournit également une gestion programmatique du cache, des stratégies de sérialisation enfichables et des fonctionnalités de sécurité telles que le filtrage de désérialisation par liste blanche.
Coordinates a fast local in-memory layer with a persistent remote distributed store to optimize latency and scalability.
OpenTSDB est une base de données de séries temporelles distribuée et un moteur de métriques conçu pour stocker et gérer des volumes massifs de métriques système à haute cardinalité. Il fonctionne comme un magasin de données et une plateforme d'analyse qui permet l'ingestion de métriques à grande échelle et la surveillance de la performance de l'infrastructure à travers un cluster distribué. Le système se distingue par une abstraction de stockage distribué qui supporte de multiples backends tels que HBase, Cassandra et Google Bigtable. Il utilise un arbre de métriques hiérarchique pour organiser les séries temporelles et emploie l'indexation par identifiant numérique pour réduire l'empreinte de stockage et accélérer les recherches pour les métriques taguées. Le projet couvre de larges domaines de capacités incluant l'analyse de données de séries temporelles avec des calculs de centiles distribués et le downsampling, ainsi qu'une gestion complète des métadonnées. Il fournit une intégration API pour l'ingestion et l'interrogation de données, le cache off-heap pour l'optimisation des performances, et des outils pour l'audit d'intégrité des données et l'analyse d'anomalies. Le système est géré via une interface en ligne de commande pour l'administration de la base de données et la synchronisation de l'arbre de métriques.
Utilizes block-level caching and off-heap memory to minimize disk I/O during data write and retrieval processes.
Ce projet fournit une spécification formelle et un ensemble d'interfaces Java standard pour le traitement de flux asynchrones. Il définit un protocole standardisé pour transmettre des séquences d'éléments entre des éditeurs (publishers) et des abonnés (subscribers) à travers différents threads, en se concentrant sur une spécification de flux réactifs pour la JVM. Le projet se concentre sur l'interopérabilité en fournissant une API commune qui permet à différentes bibliothèques de streaming asynchrone de fonctionner ensemble. Ceci est réalisé grâce à un ensemble standard d'interfaces et de mécanismes de pontage qui traduisent les spécifications de streaming incompatibles. La spécification couvre un protocole de contre-pression (backpressure) non bloquant pour réguler le flux de données et éviter la surcharge du système en exigeant des abonnés qu'ils signalent la demande. Elle définit également le cycle de vie des flux, incluant la gestion des abonnements, le traitement des éléments et la terminaison basée sur des signaux pour le nettoyage des ressources. Le projet inclut un framework pour vérifier le comportement des flux afin de valider la logique de traitement par rapport aux règles de contre-pression et d'événements asynchrones.
Implements architectural patterns for building data processing stages that avoid thread locking and resource waste.
Unbound est un résolveur DNS qui fonctionne comme un serveur de mise en cache, récursif et de validation. Il traduit les noms de domaine en adresses IP en effectuant des recherches indépendantes sur Internet ou en transmettant les requêtes à des résolveurs externes. Le projet se distingue comme un serveur DNS programmable, offrant une interface de script Python et le chargement dynamique de bibliothèques partagées pour personnaliser le pipeline de résolution. Il sert également de passerelle DNS64 NAT64, synthétisant des adresses IPv6 à partir d'enregistrements IPv4 pour permettre la communication aux clients IPv6 uniquement. Le système inclut des frameworks de sécurité pour la validation cryptographique DNSSEC et le chiffrement du trafic DNS pour empêcher l'empoisonnement du cache et l'écoute clandestine. Ses capacités s'étendent au filtrage des réponses basé sur des politiques, à la mise en cache multi-niveaux avec des backends de base de données externes, et à la livraison de données de zone d'autorité locale. Le contrôle administratif est géré via une interface distante sécurisée pour envoyer des commandes chiffrées au serveur en cours d'exécution.
Provides multi-level response caching using local memory and external database backends to reduce latency.
InternetArchitect est une collection éducative de documents et de code source conçue comme un cours d'architecture à haute concurrence. Il sert de guide d'implémentation de systèmes distribués, fournissant des patterns techniques et des exemples pratiques pour concevoir des architectures internet scalables qui maintiennent la stabilité sous de lourdes charges de trafic. Le projet se concentre sur l'optimisation des bases de données haute performance et les patterns de conception de microservices. Il couvre des stratégies pour réduire la latence et augmenter le débit via le sharding de base de données et les couches de proxy, ainsi que la coordination de l'état global à travers des clusters distribués. La portée architecturale inclut des stratégies de mise en cache multi-niveaux pour accélérer la récupération des données et l'implémentation de frameworks de découverte de services pour gérer la communication entre les microservices découplés. Il aborde également la coordination d'état distribué et l'utilisation de maillages d'équilibrage de charge pour distribuer le trafic réseau à travers les serveurs backend.
Coordinates local in-process memory and remote distributed caches to optimize data retrieval speed in high-traffic environments.
MiniOB is an open-source educational relational database kernel designed for learning the internals of database systems. It implements a dual-engine storage architecture combining B+ Tree and LSM-Tree, supports SQL parsing and query execution, and provides transactional processing with multi-version concurrency control. The system communicates with clients using the MySQL wire protocol and includes a vector database extension for storing and querying high-dimensional vectors. The project distinguishes itself through its comprehensive coverage of core database concepts in a single, learnable c
Implements level-based compaction to merge overlapping sorted runs and bound read amplification.
Rainloop Webmail est une application de messagerie auto-hébergée basée sur navigateur qui se connecte aux serveurs de messagerie externes en utilisant les protocoles IMAP et SMTP. Elle fonctionne comme un client sans état, récupérant les données directement depuis les serveurs sans nécessiter de base de données locale pour stocker les messages. Le système prend en charge la gestion de messagerie multi-comptes, permettant aux utilisateurs de lier plusieurs identités d'e-mail à une seule session pour un accès simultané à travers différents onglets de navigateur. Il inclut un système d'extension basé sur des plugins et des outils pour la personnalisation de l'interface utilisateur et le branding. L'application offre des capacités pour l'automatisation des flux de travail d'e-mail, incluant le filtrage du courrier entrant et les réponses automatiques d'absence. Elle s'intègre également avec des fournisseurs de stockage cloud externes pour faciliter les pièces jointes dans les messages et utilise une mise en cache des réponses à plusieurs niveaux pour optimiser la récupération des données.
Utilizes a multi-level caching strategy to store frequently accessed server data and reduce network latency.
Ce projet est un framework éducatif et une boîte à outils conçus pour développer et tester des noyaux de système d'exploitation. Il fournit un environnement structuré pour implémenter des primitives système fondamentales, notamment la gestion de la mémoire virtuelle, l'ordonnancement préemptif des processus et l'organisation du système de fichiers, en utilisant Rust et C. Le framework est spécifiquement orienté vers les architectures RISC-V et x86, servant de laboratoire pour apprendre à construire des logiciels système de base à partir de zéro. Le projet se distingue en prenant en charge à la fois le déploiement bare-metal et l'émulation matérielle, permettant aux développeurs de valider la logique du noyau sur du matériel physique ou dans des environnements simulés. Il inclut une chaîne d'outils de construction complète qui gère la compilation inter-architectures et l'initialisation du firmware, garantissant que le noyau peut être correctement amorcé et exécuté sur différentes plateformes cibles. Le système couvre un large éventail de capacités de bas niveau, notamment des couches d'abstraction matérielle qui découplent la logique système des conceptions de processeurs spécifiques et des interfaces d'appels système qui gèrent la frontière entre les applications en espace utilisateur et les services du noyau. Il intègre également des fonctionnalités d'observabilité, telles que la journalisation au runtime et la surveillance de l'exécution, pour aider à l'analyse du comportement du système pendant le développement.
Optimizes persistent storage access by maintaining an in-memory buffer of frequently used data blocks to reduce latency.
Mini-LSM est un moteur de stockage éducatif et une bibliothèque de base de données clé-valeur conçus pour démontrer l'implémentation de l'architecture log-structured merge-tree (LSM). Il sert de ressource pédagogique pour comprendre comment construire des systèmes de stockage haute performance à partir de zéro, en se concentrant sur la mécanique des structures de données persistantes et du stockage sur disque. Le projet fournit un framework fonctionnel pour gérer les données via le vidage (flushing) de la mémoire vers le disque et le contrôle de concurrence multi-version. Il se distingue par l'implémentation d'une isolation basée sur des instantanés (snapshots), qui permet des vues cohérentes de l'état de la base de données lors d'opérations concurrentes, et utilise des stratégies de compactage par niveaux pour organiser les fichiers de données et optimiser les performances de lecture. Le moteur couvre un large éventail de capacités de gestion du stockage, notamment la journalisation en écriture anticipée (write-ahead logging) pour la récupération après crash et l'indexation probabiliste pour minimiser les entrées/sorties disque. Il inclut également une suite d'utilitaires de vérification et d'outils de test destinés à valider l'intégrité des opérations de stockage et à aider au diagnostic des problèmes liés à la concurrence.
Organizes data files into distinct levels and merges them to reclaim space and maintain read performance bounds.