14 个仓库
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 是一个功能齐全的开发脚手架和框架,用于使用 Go 编程语言构建 Web 应用、REST API 和 gRPC 服务。它实现了模型-视图-控制器(MVC)架构,并为高性能远程过程调用服务器和客户端提供了全面的工具包。 该框架的独特之处在于其广泛的集成生态系统,包括用于数据库管理的流畅对象关系映射器(ORM),以及用于管理自动化和项目脚手架的专用命令行界面工具包。它具有基于驱动的服务抽象,允许开发者在不更改应用逻辑的情况下切换存储、缓存和会话后端。 该平台涵盖了广泛的应用功能,包括带有分布式队列的异步任务处理、通过基于令牌的身份验证进行的安全身份管理,以及具有加密和访问控制的稳健安全层。它还提供内容本地化、模板渲染以及带有依赖模拟的自动化测试基础设施工具。
Prevents concurrent record modification using shared or update locks during selection.
Kvrocks 是一个基于磁盘的 NoSQL 数据库和分布式键值存储,利用 RocksDB 存储引擎将大数据集持久化到物理磁盘。它被设计为 Redis 兼容数据库,利用标准的 Redis 通信协议确保与现有客户端库和工具的互操作性。 该项目的独特之处在于将磁盘持久化存储模型与高级检索能力相结合,包括用于 k-近邻查询的向量搜索、全文搜索索引和地理空间查询执行。它支持具有基于槽位(slot)的数据分布和拓扑管理的分布式集群,以实现水平扩展和高可用性。 该系统涵盖了广泛的数据存储类型,包括 JSON 文档、流、有序集合、哈希映射和位图。它提供了全面的数据管理工具,如原子事务、基于日志的复制以及用于基数估计和成员检查的概率数据结构。此外,它还包括服务端脚本、发布/订阅消息传递以及针对服务器健康状况和存储引擎性能的详细监控。
Provides atomic blocks that only execute if the underlying data has not changed since being read.
Gorp is a lightweight object-relational mapper for Go that binds structs to relational database tables. It functions as a relational data mapper and SQL dialect abstraction layer, automating the translation between application data and relational rows. The project provides a translation layer that generates vendor-specific SQL for PostgreSQL, MySQL, SQLite, Oracle, and SQL Server. It distinguishes itself by implementing optimistic locking via version columns to prevent concurrent update conflicts and providing a database schema generator to create tables and indexes from object definitions.
Prevents concurrent update conflicts by tracking and verifying version columns on model instances.
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.