14 dépôts
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 est un scaffold de développement complet et un framework pour créer des applications web, des API REST et des services gRPC en utilisant le langage de programmation Go. Il implémente une architecture modèle-vue-contrôleur et fournit une boîte à outils complète pour des serveurs et clients RPC haute performance. Le framework se distingue par son écosystème intégré étendu, qui inclut un ORM fluide pour la gestion de base de données et une boîte à outils en ligne de commande dédiée pour l'automatisation administrative et le scaffolding de projet. Il dispose d'une abstraction de service basée sur des drivers qui permet aux développeurs de changer de backend de stockage, de cache et de session sans modifier la logique de l'application. La plateforme couvre une large surface de capacités applicatives, notamment le traitement de tâches asynchrones avec des files d'attente distribuées, la gestion sécurisée des identités via l'authentification par jeton, et une couche de sécurité robuste avec chiffrement et contrôle d'accès. Elle fournit également des outils pour la localisation de contenu, le rendu de modèles et une infrastructure de test automatisée avec mock de dépendances.
Prevents concurrent record modification using shared or update locks during selection.
Kvrocks est une base de données NoSQL basée sur disque et un magasin clé-valeur distribué qui exploite le moteur de stockage RocksDB pour persister de grands jeux de données sur disque physique. Il est conçu pour être une base de données compatible avec Redis, utilisant le protocole de communication standard de Redis pour assurer l'interopérabilité avec les bibliothèques clientes et les outils existants. Le projet se distingue en combinant un modèle de stockage persistant sur disque avec des capacités de récupération avancées, notamment la recherche vectorielle pour les requêtes k-plus proches voisins, l'indexation de recherche plein texte et l'exécution de requêtes géospatiales. Il prend en charge le clustering distribué avec une distribution des données basée sur des slots et une gestion de la topologie pour permettre une mise à l'échelle horizontale et une haute disponibilité. Le système couvre un large éventail de types de stockage de données, y compris les documents JSON, les flux, les ensembles triés, les hash maps et les bitmaps. Il fournit des outils complets de gestion des données tels que des transactions atomiques, la réplication basée sur les logs et des structures de données probabilistes pour l'estimation de cardinalité et la vérification d'appartenance. De plus, il inclut des scripts côté serveur, la messagerie pub/sub et une surveillance détaillée de la santé du serveur et des performances du moteur de stockage.
Provides atomic blocks that only execute if the underlying data has not changed since being read.
This is a Ruby client library and protocol driver used to integrate Ruby applications with Redis databases. It functions as a communication layer that manages protocol versions and provides a consistent interface for executing database operations. The library supports a variety of deployment topologies, including standalone instances, Redis Sentinel for high-availability master discovery and failover, and Redis Cluster with slot-aware request routing and node discovery. It also provides client-side sharding using consistent hashing to distribute data across independent servers. Broad capabil
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.