
【计】 concurrency control
并发控制(Concurrency Control)
在计算机科学,特别是数据库管理系统(DBMS)和分布式系统中,并发控制指协调多个并发操作(如事务、进程或线程)对共享资源的访问顺序,确保系统的一致性与正确性,同时维持高效性能。其核心目标是解决因并发执行导致的数据不一致性问题,例如丢失更新、脏读或不可重复读等。
通过为数据项加锁(如共享锁、排他锁)限制并发访问。例如,事务修改数据前需获取排他锁,阻止其他事务读写,避免冲突。
为每个事务分配唯一时间戳,根据时间戳顺序调度操作,确保事务执行的可串行化。
假设冲突概率低,允许事务无锁执行,提交时验证数据是否被修改。适用于低冲突场景。
保留数据的多个历史版本,允许读操作访问旧版本,避免读写阻塞(如PostgreSQL、MySQL InnoDB的实现)。
参考来源:
Silberschatz, A., et al. Database System Concepts (7th ed.). McGraw-Hill.
Tanenbaum, A. S., & Van Steen, M. Distributed Systems: Principles and Paradigms. Pearson.
Bernstein, P. A., et al. Concurrency Control and Recovery in Database Systems. Addison-Wesley.
Gray, J., & Reuter, A. Transaction Processing: Concepts and Techniques. Morgan Kaufmann.
Kung, H. T., & Robinson, J. T. (1981). On Optimistic Methods for Concurrency Control. ACM Transactions on Database Systems.
PostgreSQL Documentation. Concurrency Control. https://www.postgresql.org/docs/current/mvcc.html
并发控制是计算机科学中用于管理多个操作同时访问或修改共享资源(如数据库、内存等)的机制,其核心目标是确保系统在并发环境下仍能保持数据的一致性和正确性。
定义
当多个用户或事务同时访问同一资源时,若不加控制可能导致数据冲突(如重复写入、读取过时数据)。并发控制通过协调这些操作的执行顺序,防止不一致性。
典型问题
悲观锁(Pessimistic Locking)
默认认为冲突会发生,提前锁定资源。例如:
乐观锁(Optimistic Locking)
假设冲突概率低,先执行操作,提交时检查是否冲突。常用版本号或时间戳实现。
多版本并发控制(MVCC)
为数据保留多个版本,读操作访问旧版本,写操作生成新版本,避免读写阻塞(如PostgreSQL、MySQL的InnoDB引擎采用此技术)。
synchronized
关键字、Go的通道(Channel)均属于并发控制工具。如果需要进一步学习,推荐《数据库系统概念》或在线课程(如CMU的数据库导论)。
阿米巴样细胞阿糖腺苷编制分录不确定关系朝向调节器插枝称出试样惩罚的抵押物分块系统区格罗斯曼氏手术含尘量假定的诉讼狡辩者加同余法加压模铸法经济波动临界情况木素磺化盐判案箝口物气体色谱法全标度灵敏度去尾塞梅林氏晶状体囊水肿闪烁计算器铯质分解砷酸铝铁矿瞬心算