20 Repos
Transaction management mechanisms that enable lock-free reads and writes using data versioning.
Distinguishing note: No candidates provided; describes the core concurrency model.
Explore 20 awesome GitHub repositories matching data & databases · Multi-Version Concurrency Controls. Refine with filters or upvote what's useful.
etcd is a distributed key-value store and configuration store designed to maintain a consistent set of data across a cluster of nodes. It functions as a reliable registry for storing and synchronizing critical settings and metadata used by distributed applications. The system implements the Raft consensus algorithm to ensure data consistency and leader election across servers. To protect data transfers and verify node identities, it utilizes a network security layer based on mutual TLS and client certificates. Its capabilities cover distributed configuration management, cluster state synchro
Implements multi-version concurrency control to allow consistent snapshots and non-blocking read operations.
etcd is a distributed, strongly consistent key-value store designed to provide reliable storage for critical system metadata and coordination primitives. It functions as a distributed consensus engine, utilizing a replicated log and leader-based state machine to ensure that all nodes in a cluster maintain a synchronized view of data. By providing atomic operations and linearizable reads and writes, it serves as a foundational component for distributed systems requiring high availability and fault tolerance. The system distinguishes itself through its multi-version concurrency control, which e
Tracks historical data revisions to permit non-blocking read operations during concurrent write activity.
Cockroach is a distributed SQL database designed to scale horizontally across multiple nodes while maintaining strict ACID compliance and global data consistency. It functions as a relational database engine that automatically partitions data into ranges, rebalancing them across a cluster to accommodate growing storage and throughput requirements. By utilizing a distributed consensus protocol, the system ensures that all nodes agree on the order of operations, providing fault tolerance and continuous availability even in the event of hardware failures. The system distinguishes itself through
Enables lock-free reads and writes by maintaining multiple versions of data for consistent snapshots.
PostgreSQL is an object-relational database management system designed for the persistent storage and retrieval of structured information. It functions as an ACID-compliant database server, utilizing standard query language protocols to maintain data consistency and reliability across large-scale application datasets. The system distinguishes itself through an extensible architecture that allows for the definition of custom data types, operators, and indexing methods. It employs multi-version concurrency control to enable simultaneous read and write operations without blocking, supported by a
Maintains multiple versions of data rows to allow non-blocking read and write operations.
LibSQL is a high-performance, distributed SQL database engine that extends SQLite to support remote network access, edge computing, and real-time synchronization. It functions as an embedded database library that integrates directly into application processes while providing the infrastructure to maintain consistency across multiple geographic regions. The platform distinguishes itself by enabling database interaction over standard HTTP protocols, allowing applications to query remote data sources in serverless and edge environments without requiring local filesystem access. It includes nativ
Enables concurrent write operations across nodes without locking to improve throughput.
This is a mobile object database and NoSQL local data store that replaces relational tables with a schema-based model. It functions as a reactive data store, using live object observations and change notifications to trigger automatic user interface refreshes. The system provides built-in mobile cloud data synchronization to keep local datasets consistent with a remote server across multiple devices. It also includes security features for encrypted local storage, protecting sensitive on-disk data using at-rest encryption keys and fine-grained access control. Broad capabilities include object
Employs multi-version concurrency control to allow simultaneous reads and writes without blocking.
Realm-Cocoa is a NoSQL mobile database engine and reactive object database designed for local data storage on mobile devices. It serves as a non-relational alternative to Core Data and SQLite, storing data as objects rather than tables. The system functions as an encrypted local store that protects sensitive application data using encryption. It provides reactive data synchronization, allowing application objects and user interfaces to update automatically when the underlying database changes.
Utilizes multi-version concurrency control to allow simultaneous reads and writes without locking the database.
Bolt is a single-file embedded key-value store for Go applications. It is an ACID transactional database that organizes data in B+trees on disk to provide efficient sorted key retrieval and range scans. The system uses a memory-mapped model to map the database file directly into the process address space for fast random-access reads. The project distinguishes itself through a multi-version concurrency control architecture that allows multiple simultaneous readers to access a consistent snapshot of data without blocking a writer. It employs a single-writer multi-reader locking model and uses a
Uses lock-free multi-version concurrency control to allow simultaneous readers without blocking a writer.
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
Utilizes multi-version concurrency control to allow non-blocking read operations during concurrent updates.
MySQL Server is a relational database management system designed to organize and store structured information. It functions as a comprehensive SQL server platform that provides reliable transactional integrity and high-performance query execution for enterprise data management. The system distinguishes itself through a pluggable storage engine architecture that decouples logical query processing from physical data storage, allowing for specialized handling of diverse workloads. It maintains data consistency and high concurrency through multi-version concurrency control and write-ahead logging
Maintains multiple versions of data rows to allow simultaneous read and write operations without blocking transactions during high-concurrency access.
Realm Java is a NoSQL mobile object database and reactive database engine. It provides a persistent local data store that saves native objects directly to disk, replacing traditional SQL storage and object-relational mapping layers. The system functions as a real-time data synchronizer, coordinating local database changes with a cloud backend across multiple devices. It integrates a reactive engine that uses change listeners and asynchronous event streams to automatically update user interfaces when underlying data changes. The project covers object-oriented data modeling, CRUD operations, a
Implements a multi-version concurrency control model to enable non-blocking read and write operations.
This project is a curated collection of academic papers, books, and technical resources designed for studying the architecture and implementation of database management systems. It serves as a comprehensive educational guide for engineers and researchers looking to understand the fundamental principles behind modern data storage and retrieval. The repository distinguishes itself by providing structured learning paths across critical database domains, including the design of persistent storage engines, the mechanics of query optimization, and the complexities of distributed transaction managem
Explains the architecture of multi-version concurrency control for enabling simultaneous read and write access without blocking.
ToyDB is a distributed SQL database that provides a system for storing and querying data across multiple nodes. It focuses on maintaining strong consistency and fault tolerance through the implementation of a distributed consensus algorithm. The project distinguishes itself by supporting historical data versioning, enabling time-travel queries to retrieve the state of the database from a specific point in the past. It utilizes multi-version concurrency control to manage ACID transactions and ensure data integrity during concurrent operations. The system covers relational data modeling with t
Utilizes multi-version concurrency control to provide snapshot isolation and ensure data integrity during concurrent operations.
This project is an open source relational database management system and SQL database designed for storing and managing structured data. It functions as a relational database for ensuring consistency and reliability, while also operating as a vector database for storing and querying high-dimensional vector embeddings. The system incorporates a columnar storage engine to optimize analytical query processing and large-scale data aggregation. It further enables vector similarity search, allowing users to find similar items by querying vector embeddings. The software covers a broad capability su
Uses multi-version concurrency control to enable non-blocking read and write operations.
CouchDB ist eine NoSQL-Dokumentendatenbank, die Daten als flexible Dokumente speichert und eine RESTful-API für das Datenmanagement über HTTP bereitstellt. Sie fungiert als verteilter Dokumentenspeicher, der Daten über mehrere Knoten hinweg synchronisiert und repliziert, um hohe Verfügbarkeit und Konsistenz zu gewährleisten. Das System enthält eine Volltext-Suchmaschine, die Datenbankeinträge in abfragbare Dokumente transformiert und Sortierung sowie Paginierung unterstützt. Die Datensynchronisierung erfolgt über Multi-Master-Replikation, die Revisionshistorien austauscht, um die Konsistenz über verteilte Knoten hinweg zu wahren. Die Datenbank nutzt Multi-Version-Concurrency-Control, um gleichzeitige Lese- und Schreibvorgänge ohne Sperren zu ermöglichen. Die Speicherung erfolgt über Append-Only- und B-Tree-basierte Strukturen, um die Wiederherstellung nach Abstürzen und effiziente diskbasierte Suchvorgänge zu erleichtern.
Uses multi-version concurrency control to track document revisions and enable non-blocking read and write operations.
MapDB ist eine eingebettete Datenbank-Engine und eine Bibliothek für disk-basierte Collections, die Java-Collections auf der Festplatte oder außerhalb des Heaps speichert. Sie fungiert als lokale Datenverarbeitungs-Engine, die darauf ausgelegt ist, Datensätze zu verarbeiten, die den verfügbaren physischen RAM überschreiten. Das Projekt nutzt Off-Heap-Datenspeicherung, um den Overhead der Garbage Collection zu eliminieren, und verwendet Disk-Overflow-Caching, um Speicher- und Festplattennutzung auszubalancieren. Es bietet spezialisierte Dienstprogramme zum Filtern und Analysieren großer Mengen lokaler Daten auf einer einzelnen Maschine. Das System stellt die Datenintegrität durch ACID-konforme Transaktionen und Multi-Version-Concurrency-Control sicher. Es unterstützt persistente Maps, Sets und Queues unter Verwendung von B-Tree-Indizierung und ein sequentielles Transaktionsprotokoll für die Dauerhaftigkeit. Das Systemverhalten und interne Engine-Operationen können über konfigurierbare Logging-Level und Ausgabeformate überwacht werden.
Utilizes multi-version concurrency control to allow simultaneous non-blocking read and write operations.
H2 ist ein JDBC-konformes relationales Datenbankmanagementsystem, das in Java geschrieben ist. Es fungiert als einbettbare SQL-Datenbank, die direkt innerhalb eines Anwendungsprozesses ausgeführt werden kann, um Netzwerklatenz zu eliminieren, oder als In-Memory-Datenbank für performante, flüchtige Speicherung. Es enthält zudem eine webbasierte Konsole zur Ausführung von SQL-Befehlen und zur Verwaltung von Schemata. Das System zeichnet sich durch flexible Bereitstellungsmodi aus, einschließlich eines Standalone-Server-Modus für Remote-TCP/IP-Zugriffe und eines gemischten Modus für gleichzeitige lokale und Remote-Konnektivität. Es verfügt über eine Dialekt-Emulationsschicht und Kompatibilitätsmodi, die es ermöglichen, das Verhalten und die Syntax anderer Datenbanksysteme nachzuahmen. Die Engine bietet ein breites Spektrum an Funktionen, darunter ACID-Transaktionen mit Multi-Version Concurrency Control (MVCC), Unterstützung für Geodaten und JSON sowie fortgeschrittene analytische Fensterfunktionen. Es enthält Tools zur Datensicherung durch komprimierte Backups, SQL-Skript-Wiederherstellung und Off-Heap-Speicherverwaltung für große Datensätze. Die Datenbank lässt sich über Standard-JDBC-Treiber und Verbindungs-URLs in Anwendungen integrieren.
Implements multi-version concurrency control to allow simultaneous non-blocking reads and writes via data snapshots.
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
Controls transaction commit, rollback, and isolation using multi-version concurrency control.
redb is an embedded key-value store and ACID-compliant storage engine. It functions as a persistent storage system for saving and retrieving data as key-value pairs within a tree structure. The engine is built as an MVCC transactional database, utilizing multi-version concurrency control to manage simultaneous reads and writes without blocking. It employs a single-writer multi-reader model to ensure data consistency while allowing multiple threads to access the store. The system provides persistent state management and atomic transaction management to prevent data corruption during crashes.
Allows multiple readers and a single writer to operate simultaneously using multi-version concurrency control.
Mini-LSM ist eine pädagogische Storage-Engine und Key-Value-Datenbankbibliothek, die dazu dient, die Implementierung der Log-Structured-Merge-Tree-Architektur zu demonstrieren. Sie dient als pädagogische Ressource zum Verständnis des Aufbaus hochperformanter Speichersysteme von Grund auf, mit Fokus auf die Mechanik persistenter Datenstrukturen und diskbasierter Speicherung. Das Projekt bietet ein funktionales Framework zur Datenverwaltung durch Memory-to-Disk-Flushing und Multi-Version-Concurrency-Control. Es zeichnet sich durch die Implementierung von Snapshot-basierter Isolation aus, die konsistente Sichten auf den Datenbankzustand während gleichzeitiger Operationen ermöglicht, und nutzt Leveled-Compaction-Strategien zur Organisation von Datendateien und zur Optimierung der Lese-Performance. Die Engine deckt ein breites Spektrum an Speicherverwaltungsfunktionen ab, einschließlich Write-Ahead-Logging für Crash-Recovery und probabilistischer Indizierung zur Minimierung von Disk-I/O. Sie enthält zudem eine Suite von Verifizierungs-Utilities und Test-Tools, die darauf ausgelegt sind, die Integrität von Speicheroperationen zu validieren und bei der Diagnose von Concurrency-Problemen zu helfen.
Maintains multiple versions of data records to enable non-blocking read and write operations.