14 repositorios
Mechanisms for preventing data conflicts during concurrent updates by tracking version counts on model instances.
Distinguishing note: This is a specific concurrency control pattern for data persistence, distinct from general database drivers or query builders.
Explore 14 awesome GitHub repositories matching data & databases · Optimistic Locking. Refine with filters or upvote what's useful.
Sequelize is an object-relational mapping library that provides a unified interface for managing relational data through code. By implementing the Active Record pattern, it maps database tables to application objects, allowing developers to perform standard create, read, update, and delete operations using high-level method calls. The library abstracts complex database interactions by translating these calls into optimized, engine-specific SQL statements, ensuring consistent behavior across different database systems. The project distinguishes itself through a comprehensive suite of tools for
Sequelize prevents update conflicts during concurrent operations by using a version count on model instances to track changes and ensure consistency.
Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program
Ensures data consistency during concurrent cache updates using atomic transaction primitives.
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
Prevents concurrent update conflicts by tracking version counts on entity instances.
Mikro-ORM is a TypeScript-based object-relational mapping system that provides a unified persistence layer for Node.js applications. It translates TypeScript entities into relational or document-based database schemas, supporting a variety of engines including PostgreSQL, MySQL, MariaDB, MS SQL Server, SQLite, and MongoDB. The project implements the data mapper pattern to decouple in-memory domain models from the database persistence layer. It utilizes a unit of work pattern to track entity changes in memory and commit them in a single coordinated database transaction. The library covers com
Prevents concurrent update conflicts by checking a version column before committing changes.
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
Prevents concurrent update conflicts by tracking version counts on model instances.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Prevents race conditions by using pessimistic or optimistic locking strategies to ensure data consistency across distributed nodes.
The AWS SDK for PHP is a software development kit that provides HTTP client classes for every supported Amazon Web Service, enabling PHP applications to send authenticated requests and receive structured, typed response objects. It includes a credential resolution chain that automatically locates credentials from environment variables, instance profiles, or configuration files, and supports promise-based asynchronous execution for running multiple API calls concurrently to improve throughput. The SDK distinguishes itself through a middleware pipeline architecture that allows interception and
Implements pessimistic locking for session data to prevent concurrent modification conflicts.
Algodeck is an open-source collection of flash cards designed for reviewing algorithms, data structures, and system design concepts, specifically curated for technical interview preparation. The project organizes knowledge into atomic question-and-answer pairs and incorporates spaced repetition scheduling to optimize long-term memory retention. The flash card catalog covers a broad range of computer science topics, including classic sorting algorithms like quicksort and mergesort, data structure operations for arrays, trees, heaps, tries, and graphs, as well as bit manipulation techniques for
Explains pessimistic and optimistic locking strategies for concurrent data access.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Explains how to use row locks or version checks to prevent conflicting updates in concurrent transactions.
Goravel es un scaffold de desarrollo y framework completo para construir aplicaciones web, APIs REST y servicios gRPC utilizando el lenguaje de programación Go. Implementa una arquitectura modelo-vista-controlador y proporciona un kit de herramientas integral para servidores y clientes de llamadas a procedimientos remotos de alto rendimiento. El framework se distingue por su extenso ecosistema integrado, que incluye un mapeador objeto-relacional fluido para la gestión de bases de datos y un kit de herramientas de interfaz de línea de comandos dedicado para la automatización administrativa y el scaffolding de proyectos. Cuenta con una abstracción de servicios basada en controladores que permite a los desarrolladores intercambiar backends de almacenamiento, caché y sesiones sin alterar la lógica de la aplicación. La plataforma cubre una amplia superficie de capacidades de aplicación, incluyendo el procesamiento de tareas asíncronas con colas distribuidas, gestión de identidad segura mediante autenticación basada en tokens y una capa de seguridad robusta con cifrado y control de acceso. También proporciona herramientas para la localización de contenido, renderizado de plantillas e infraestructura de pruebas automatizada con mocking de dependencias.
Prevents concurrent record modification using shared or update locks during selection.
Kvrocks is a disk-based NoSQL database and distributed key-value store that leverages the RocksDB storage engine to persist large datasets to physical disk. It is designed to be a Redis-compatible database, utilizing the standard Redis communication protocol to ensure interoperability with existing client libraries and tools. The project distinguishes itself by combining a disk-persistent storage model with advanced retrieval capabilities, including vector search for k-nearest neighbor queries, full-text search indexing, and geospatial query execution. It supports distributed clustering with
Provides atomic blocks that only execute if the underlying data has not changed since being read.
Esta es una biblioteca cliente de Ruby y driver de protocolo utilizado para integrar aplicaciones Ruby con bases de datos Redis. Funciona como una capa de comunicación que gestiona versiones de protocolo y proporciona una interfaz consistente para ejecutar operaciones de base de datos. La biblioteca soporta una variedad de topologías de despliegue, incluyendo instancias independientes, Redis Sentinel para descubrimiento de maestros de alta disponibilidad y conmutación por error, y Redis Cluster con enrutamiento de solicitudes consciente de slots y descubrimiento de nodos. También proporciona sharding del lado del cliente utilizando hashing consistente para distribuir datos a través de servidores independientes. Las capacidades amplias incluyen gestión de transacciones atómicas y scripting en Lua para transformaciones del lado del servidor, así como soporte para tipos de datos especializados como coordenadas geoespaciales y streams. El rendimiento se optimiza mediante el pipelining de comandos y extensiones de análisis nativas, mientras que la seguridad se maneja mediante cifrado SSL/TLS y autenticación mutua por certificados. El cliente incluye herramientas para orquestar topologías de bases de datos independientes y en clúster utilizando contenedores para pruebas de integración automatizadas.
Prevents data conflicts during concurrent updates by watching keys and executing only if they remain unmodified.
linq2db is a type-safe object-relational mapper that translates LINQ expressions into optimized SQL queries for multiple database providers. It functions as a database mapper that links classes to tables and includes a SQL query builder and a command-line schema tool for generating data classes from existing databases. The project provides high-performance bulk data processing for inserting and loading large volumes of records via batch or binary copy methods. It also supports advanced SQL operations, including window functions, common table expressions for recursive hierarchical querying, an
Prevents data conflicts during concurrent updates by tracking version counts on model instances.
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 optimistic locking using WATCH/MULTI/EXEC to prevent lost updates during concurrent modifications.