24 repositorios
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 es un mapeador objeto-relacional para Java y una implementación completa de la Jakarta Persistence API. Funciona como una capa de abstracción de bases de datos SQL que traduce modelos de objetos Java a esquemas de bases de datos relacionales para gestionar la persistencia y el ciclo de vida de los datos. El framework se distingue por su arquitectura de aislamiento de datos multi-inquilino (multi-tenant) para separar la información de los clientes dentro de una misma instancia de base de datos. También cuenta con un generador de esquemas que produce y actualiza automáticamente estructuras relacionales basadas en mapeos de entidades. El sistema cubre áreas como la gestión de transacciones, control de concurrencia mediante bloqueos y seguimiento de datos temporales para auditoría. Proporciona herramientas para optimizar la obtención de datos mediante estrategias de grafos de entidades y admite tipos de datos avanzados como vectores y caracteres nacionalizados. El proyecto incluye un conjunto completo de utilidades de prueba para la capa de persistencia, incluyendo filtrado de dialectos de bases de datos y pruebas de cumplimiento de especificaciones.
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 es un framework de caché para Java que proporciona una interfaz unificada para gestionar datos de aplicaciones. Funciona como un gestor de caché de dos niveles, coordinando el almacenamiento local en memoria y cachés distribuidas remotas para reducir la latencia de red y mejorar las velocidades de recuperación. El proyecto se distingue por su librería de caché declarativa, que utiliza anotaciones para automatizar el almacenamiento, la expiración y la invalidación de resultados de métodos. Incluye un sincronizador de caché distribuida para mantener la coherencia invalidando entradas locales a través de instancias de clúster y una herramienta de bloqueo distribuido para coordinar el acceso a recursos compartidos. El framework cubre una amplia gama de capacidades de rendimiento y estabilidad, incluyendo recuperación asíncrona sin bloqueo, actualización automática de caché en segundo plano y colapso de solicitudes para evitar la penetración de caché. También proporciona gestión programática de caché, estrategias de serialización conectables y características de seguridad como el filtrado de deserialización mediante listas blancas.
Coordinates a fast local in-memory layer with a persistent remote distributed store to optimize latency and scalability.
OpenTSDB es una base de datos de series temporales distribuida y un motor de métricas diseñado para almacenar y gestionar volúmenes masivos de métricas de sistema de alta cardinalidad. Funciona como un almacén de datos y plataforma de análisis que permite la ingesta de métricas a gran escala y el monitoreo del rendimiento de la infraestructura a través de un clúster distribuido. El sistema se distingue por una abstracción de almacenamiento distribuido que admite múltiples backends como HBase, Cassandra y Google Bigtable. Utiliza un árbol de métricas jerárquico para organizar series temporales y emplea indexación de identificadores numéricos para reducir la huella de almacenamiento y acelerar las búsquedas de métricas etiquetadas. El proyecto cubre áreas de capacidad amplias, incluyendo análisis de datos de series temporales con cálculos de percentiles distribuidos y submuestreo, así como una gestión integral de metadatos. Proporciona integración de API para la ingesta y consulta de datos, caché fuera de memoria (off-heap) para optimización del rendimiento y herramientas para la auditoría de integridad de datos y análisis de anomalías. El sistema se gestiona a través de una interfaz de línea de comandos para la administración de bases de datos y la sincronización del árbol de métricas.
Utilizes block-level caching and off-heap memory to minimize disk I/O during data write and retrieval processes.
Este proyecto proporciona una especificación formal y un conjunto de interfaces estándar de Java para el procesamiento de flujos asíncronos. Define un protocolo estandarizado para pasar secuencias de elementos entre editores (publishers) y suscriptores a través de diferentes hilos, centrándose en una especificación de flujos reactivos para la JVM. El proyecto se centra en la interoperabilidad al proporcionar una API común que permite que diferentes bibliotecas de streaming asíncrono trabajen juntas. Esto se logra mediante un conjunto estándar de interfaces y mecanismos de puente que traducen entre especificaciones de streaming incompatibles. La especificación cubre un protocolo de contrapresión (backpressure) sin bloqueo para regular el flujo de datos y evitar la sobrecarga del sistema, requiriendo que los suscriptores señalen la demanda. También define el ciclo de vida de los flujos, incluyendo la gestión de suscripciones, el procesamiento de elementos y la terminación basada en señales para la limpieza de recursos. El proyecto incluye un framework para verificar el comportamiento del flujo y validar la lógica de procesamiento frente a las reglas de contrapresión y eventos asíncronos.
Implements architectural patterns for building data processing stages that avoid thread locking and resource waste.
Unbound es un resolvedor de DNS que funciona como un servidor de caché, recursivo y de validación. Traduce nombres de dominio a direcciones IP realizando búsquedas independientes a través de internet o reenviando consultas a resolvedores externos. El proyecto se distingue como un servidor DNS programable, ofreciendo una interfaz de scripting en Python y carga dinámica de bibliotecas compartidas para personalizar el pipeline de resolución. También sirve como pasarela DNS64 NAT64, sintetizando direcciones IPv6 a partir de registros IPv4 para permitir la comunicación a clientes solo IPv6. El sistema incluye frameworks de seguridad para validación criptográfica DNSSEC y cifrado de tráfico DNS para prevenir el envenenamiento de caché y el espionaje. Sus capacidades se extienden al filtrado de respuestas basado en políticas, caché multinivel con backends de base de datos externos y la entrega de datos de zona de autoridad local. El control administrativo se gestiona a través de una interfaz remota segura para enviar comandos cifrados al servidor en ejecución.
Provides multi-level response caching using local memory and external database backends to reduce latency.
InternetArchitect es una colección educativa de documentos y código fuente diseñada como un curso de arquitectura de alta concurrencia. Sirve como una guía de implementación de sistemas distribuidos, proporcionando patrones técnicos y ejemplos prácticos para diseñar arquitecturas de internet escalables que mantengan la estabilidad bajo cargas de tráfico pesadas. El proyecto se centra en la optimización de bases de datos de alto rendimiento y patrones de diseño de microservicios. Cubre estrategias para reducir la latencia y aumentar el rendimiento a través de sharding de bases de datos y capas de proxy, así como la coordinación del estado global a través de clústeres distribuidos. El alcance arquitectónico incluye estrategias de almacenamiento en caché multinivel para acelerar la recuperación de datos y la implementación de frameworks de descubrimiento de servicios para gestionar la comunicación entre microservicios desacoplados. También aborda la coordinación de estado distribuido y el uso de mallas de balanceo de carga para distribuir el tráfico de red a través de servidores 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 es una aplicación de correo electrónico basada en navegador y autohospedada que se conecta a servidores de correo externos usando protocolos IMAP y SMTP. Opera como un cliente sin estado, obteniendo datos directamente de los servidores sin requerir una base de datos local para almacenar mensajes. El sistema soporta la gestión de correo electrónico multicuenta, permitiendo a los usuarios vincular múltiples identidades de correo electrónico a una sola sesión para acceso simultáneo a través de diferentes pestañas del navegador. Incluye un sistema de extensión basado en plugins y herramientas para la personalización de la interfaz de usuario y branding. La aplicación proporciona capacidades para la automatización del flujo de trabajo de correo electrónico, incluyendo filtrado de correo entrante y respuestas automáticas de vacaciones. También se integra con proveedores de almacenamiento en la nube externos para facilitar archivos adjuntos dentro de los mensajes y utiliza caché de respuesta multinivel para optimizar la recuperación de datos.
Utilizes a multi-level caching strategy to store frequently accessed server data and reduce network latency.
Este proyecto es un framework educativo y kit de herramientas diseñado para desarrollar y probar kernels de sistemas operativos. Proporciona un entorno estructurado para implementar primitivas fundamentales del sistema, incluyendo gestión de memoria virtual, programación de procesos preventiva y organización de sistemas de archivos, utilizando Rust y C. El framework está orientado específicamente a arquitecturas RISC-V y x86, sirviendo como laboratorio para aprender a construir software de sistema central desde cero. El proyecto se distingue por admitir tanto el despliegue bare-metal como la emulación de hardware, permitiendo a los desarrolladores validar la lógica del kernel en hardware físico o dentro de entornos simulados. Incluye una cadena de herramientas de compilación completa que maneja la compilación entre arquitecturas y la inicialización del firmware, asegurando que el kernel pueda ser correctamente arrancado y ejecutado en diferentes plataformas objetivo. El sistema cubre una amplia gama de capacidades de bajo nivel, incluyendo capas de abstracción de hardware que desacoplan la lógica del sistema de diseños de procesadores específicos e interfaces de llamadas al sistema que gestionan el límite entre las aplicaciones de espacio de usuario y los servicios del kernel. También incorpora características de observabilidad, como registro en tiempo de ejecución y monitoreo de ejecución, para ayudar en el análisis del comportamiento del sistema durante el desarrollo.
Optimizes persistent storage access by maintaining an in-memory buffer of frequently used data blocks to reduce latency.
Mini-LSM es un motor de almacenamiento educativo y biblioteca de base de datos clave-valor diseñado para demostrar la implementación de la arquitectura de árboles de fusión estructurados por registros (LSM-tree). Sirve como un recurso pedagógico para comprender cómo construir sistemas de almacenamiento de alto rendimiento desde cero, centrándose en la mecánica de estructuras de datos persistentes y almacenamiento basado en disco. El proyecto proporciona un framework funcional para gestionar datos mediante el vaciado (flushing) de memoria a disco y control de concurrencia multiversión. Se distingue por implementar aislamiento basado en instantáneas (snapshots), lo que permite vistas consistentes del estado de la base de datos durante operaciones concurrentes, y utiliza estrategias de compactación por niveles para organizar archivos de datos y optimizar el rendimiento de lectura. El motor cubre una amplia gama de capacidades de gestión de almacenamiento, incluyendo registro de escritura previa (write-ahead logging) para recuperación ante fallos e indexación probabilística para minimizar la entrada y salida de disco. También incluye un conjunto de utilidades de verificación y herramientas de prueba destinadas a validar la integridad de las operaciones de almacenamiento y ayudar a diagnosticar problemas relacionados con la concurrencia.
Organizes data files into distinct levels and merges them to reclaim space and maintain read performance bounds.