19 dépôts
Replication architectures where multiple nodes can serve both read and write requests.
Distinguishing note: Focuses on the coordination between multiple masters, distinct from primary-replica setups.
Explore 19 awesome GitHub repositories matching data & databases · Multi-Master Replication. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
Details the operational benefits and coordination of master-master replication.
Zheng is a Spring Boot microservices framework and enterprise J2EE development platform. It functions as a distributed service gateway and identity provider, providing a foundation for building complex business applications and microservices infrastructure. The project includes a comprehensive enterprise content management system and an OAuth2 identity provider for managing single sign-on and third-party social login integrations. It also features a MyBatis ORM code generator that automatically creates database models and boilerplate functions from existing tables. The platform covers a broa
Routes data traffic between primary and replica database instances based on read or write operations.
KeyDB is a multithreaded in-memory key-value store and distributed cache. It functions as a NoSQL database utilizing multi-version concurrency control to execute non-blocking queries and scans. The project is a multithreaded fork of Redis that maintains protocol compatibility while utilizing a multithreaded architecture to scale across multi-core hardware. It distinguishes itself with flash-tiered storage, allowing the system to offload data from primary RAM to SSD or flash storage to increase total capacity. The system supports high availability through active-active mesh replication and mu
Implements a synchronization system where multiple instances simultaneously accept reads and writes.
Predis is a PHP library for connecting to and executing commands against Redis and Valkey data stores. It functions as a client for managing data integration, providing dedicated implementations for cluster sharding, pub/sub messaging, and Sentinel-based service discovery. The project distinguishes itself through specialized clients for executing server-side Lua scripts with automated hash caching and a cluster client that supports gossip protocols and key distribution. It also implements a Sentinel client to manage high availability and failover within replicated environments. The library c
Directs write operations to the master node while balancing read-only queries across multiple replica nodes.
CouchDB est une base de données de documents NoSQL qui stocke les données sous forme de documents flexibles et expose une API RESTful pour la gestion des données via HTTP. Elle fonctionne comme un magasin de documents distribué, synchronisant et répliquant les données sur plusieurs nœuds pour assurer une haute disponibilité et cohérence. Le système inclut un moteur de recherche plein texte qui transforme les enregistrements de base de données en documents interrogeables, prenant en charge le tri et la pagination. La synchronisation des données est gérée via une réplication multi-maître, qui échange les historiques de révision pour maintenir la cohérence sur les nœuds distribués. La base de données utilise un contrôle de concurrence multi-version pour permettre des lectures et écritures simultanées sans verrouillage. Le stockage est géré via des structures basées sur l'ajout seul et l'arbre B pour faciliter la récupération après plantage et les recherches efficaces sur disque.
Implements a replication architecture where multiple nodes can concurrently serve both read and write requests.
xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries and maps database rows back into native objects, providing a multi-dialect database driver that supports MySQL, PostgreSQL, SQLite, Oracle, SQL Server, and TiDB. The project features a read-write splitting manager that routes modification requests to a primary database and read requests to replicas. It includes a database schema synchronizer to automatically align table structures and indexes with application data models, as well as a fluent SQL query builder for constructing co
Routes modification requests to a primary database and read requests to replicas.
GreptimeDB is a distributed, open-source time-series database built for unified observability. It stores and queries metrics, logs, and traces together in a single columnar engine, supporting both SQL and PromQL for analysis. The database is designed as a Kubernetes-native operator with a decoupled compute and storage architecture, enabling horizontal scaling and multi-region deployment. What distinguishes GreptimeDB is its role as a multi-protocol ingestion gateway, accepting data through OpenTelemetry, Prometheus Remote Write, InfluxDB, Loki, Elasticsearch, Kafka, and MQTT protocols without
Assigns datanodes to dedicated read or write groups to prevent query degradation.
Ce projet est un gestionnaire de source de données dynamique pour Spring Boot conçu pour gérer plusieurs connexions de base de données et basculer entre elles au moment de l'exécution. Il fournit un système pour gérer la séparation lecture-écriture de la base de données, coordonner les transactions distribuées à travers des bases de données disparates et mettre à jour les paramètres de connexion sans nécessiter de redémarrage de l'application. Le framework se différencie par sa capacité à router le trafic en fonction des sessions ou des en-têtes des utilisateurs pour prendre en charge les architectures multi-tenant. Il inclut également un mécanisme pour chiffrer les justificatifs de base de données sensibles dans les fichiers de configuration afin d'éviter l'exposition en texte clair. La surface de capacités s'étend au routage de connexion de base de données, à la séparation lecture-écriture entre les nœuds maître et esclave, et à l'initialisation de connexion différée pour réduire le temps de démarrage. Il gère en outre la cohérence des données par le biais d'un contrôle de transaction centralisé et prend en charge l'ajout ou la suppression au moment de l'exécution des configurations de connexion de base de données.
Routes traffic between master and slave databases to optimize performance and load balancing.
Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder, and schema migration capabilities. It maps database tables to Ruby classes with support for associations, validations, lifecycle hooks, and eager loading, offering a comprehensive ORM layer for building data-centric applications. Sequel distinguishes itself through a plugin-based extension architecture that allows composable customization of models, databases, and datasets without relying on deep inheritance hierarchies. It includes a thread-safe connection pool with support f
Defines multiple named server configurations for primary, replicas, and shards through a database option.
Pigsty is a full-stack orchestration suite for deploying, monitoring, and managing high-availability PostgreSQL clusters and their supporting infrastructure. It functions as a cluster management platform and high-availability suite that automates failover, manages virtual IPs, and ensures data consistency through distributed consensus. The project distinguishes itself by providing a comprehensive database infrastructure-as-code framework and a dedicated observability stack. It incorporates a backup and recovery manager supporting point-in-time recovery via S3-compatible object storage, alongs
Supports multi-master regional distribution of PostgreSQL instances to enable local writes and logical replication.
FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for multiple relational database providers. It functions as a fluent SQL query builder and database schema synchronizer, allowing developers to align database table and index structures with entity class definitions. The framework is specifically optimized for .NET Native AOT to ensure reduced memory footprints and faster startup times. It includes a database traffic manager to distribute load through read-write splitting, dynamic table sharding, and tenant-based data isolation. Bro
Routes read operations to replicas and write operations to a primary master database.
This project is a containerized deployment of an OpenLDAP server, providing a lightweight directory access protocol service for storing and retrieving organizational data and user credentials. It functions as a directory server for identity management and user authentication across network services. The service supports the creation of LDAP replication clusters to maintain data consistency across multiple hosts for high availability. It includes capabilities for secure connectivity through TLS encryption and certificate management to protect sensitive directory data during transmission. Addi
Implements a replication architecture where multiple nodes can serve both read and write requests.
SLIME is a distributed reinforcement learning framework for large language model post-training that bridges Megatron training with SGLang inference servers. It orchestrates scalable RL loops across GPU clusters, decoupling training and inference into independent processes that communicate over HTTP and NCCL for independent scaling and fault tolerance. The system supports multi-agent reinforcement learning workflows with parallel agent instances, customizable rollout strategies, and personalized agent serving that improves models from prior conversations without disrupting API serving. The fra
Defines independent prefill and decode server groups with per-group GPU counts, tensor-parallel sizes, and SGLang overrides for production topologies.
Orioledb est un moteur de stockage cloud-native pour PostgreSQL conçu pour remplacer la couche de stockage par défaut afin d'améliorer l'évolutivité verticale et les performances sur le matériel moderne. Il fonctionne comme un magasin de tables organisé par index, organisant les lignes de table directement au sein de l'index primaire pour accélérer la récupération des données. Le moteur utilise un système de stockage de journal d'annulation (undo log) pour gérer le versionnage des données, ce qui élimine le besoin de vacuuming manuel et empêche le gonflement des tables. Il réduit en outre l'empreinte disque via la compression de données au niveau des blocs et des pages. Le projet fournit des capacités pour la gestion avancée des index et la maintenance automatisée des bases de données. Il inclut des fonctionnalités pour la récupération haute disponibilité via la journalisation au niveau des lignes, ainsi que des outils pour analyser l'utilisation de l'espace et vérifier l'intégrité des tables.
Supports active-active clusters using consensus algorithms and row-level logs for multi-master replication.
Riak est un magasin clé-valeur NoSQL décentralisé conçu pour la haute disponibilité et la tolérance aux pannes. C'est une base de données distribuée de type Dynamo qui utilise le hachage cohérent et la cohérence éventuelle pour mettre à l'échelle les données sur un cluster de nœuds. Le système fonctionne comme un datastore géo-répliqué, synchronisant les données sur plusieurs emplacements physiques pour assurer la reprise après sinistre et maintenir la disponibilité lors de pannes régionales. Il emploie un modèle de réplication multi-maître, permettant des écritures sur n'importe quel nœud du cluster. La plateforme couvre de larges domaines de capacités, notamment la coordination de cluster décentralisée, la gestion de données à haute disponibilité et l'expiration de données à grande échelle. Elle gère la durabilité des données grâce à une cohérence basée sur le quorum et une vérification d'écriture, tout en utilisant des structures de données spécialisées pour fusionner automatiquement les mises à jour simultanées.
Supports a multi-master replication model allowing write operations to any node in the cluster.
RavenDB is a multi-model NoSQL document database designed for high-performance, ACID-compliant data storage. It persists structured information as schema-flexible JSON documents and utilizes a unit-of-work session pattern to track entity changes and batch modifications into atomic transactions. The platform is built on a distributed architecture that supports horizontal scaling through sharding and ensures high availability via multi-node, master-to-master cluster replication. The database distinguishes itself through a self-optimizing query engine that automatically creates and maintains ind
Synchronizes document changes across multiple database nodes using master-to-master replication to ensure data availability and consistency.
cr-sqlite is a multi-master database replication system that uses conflict-free replicated data types to ensure eventual consistency across distributed nodes. It provides the core capabilities for offline-first data synchronization, allowing multiple database instances to merge concurrent updates and reach a consistent state. The project distinguishes itself through a combination of CRDT-based data replication and a WASM-based database engine, enabling full SQL execution and state persistence within web browsers. It supports peer-to-peer replication and cross-tab synchronization, utilizing ca
Implements a multi-master replication system using SQLite and CRDTs to ensure eventual consistency across distributed nodes.
FalkorDB is a high-performance graph database management system and vector graph database. It serves as a knowledge graph construction tool and a GraphRAG knowledge store, integrating structured property graphs with vector search to provide grounded context for large language models. The engine is designed as a multi-tenant graph engine, capable of hosting thousands of isolated datasets within a single instance. The system distinguishes itself by using linear algebra for query execution, treating relationship tensors as matrix multiplications to achieve low-latency multi-hop traversals. It ut
Separates read replicas from the primary write server to scale different workload types independently.
pgdog is a PostgreSQL sharding proxy, distributed SQL router, and connection pooler. It is designed to enable horizontal data distribution by splitting tables and indices across multiple independent servers to scale storage and processing capacity. The project distinguishes itself through online resharding capabilities, using logical replication to move data between shards without application downtime. It supports multiple routing strategies, including hash, list, and range-based query routing, and manages distributed atomic transactions using a two-phase commit process to ensure consistency
Implements routing strategies that separate read and write operations, directing writes to the primary and reads to replicas.