PgSQL · 源码分析 · PG中的无锁算法和原子操作应用一则

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PgSQL · 源码分析 · PG中的无锁算法和原子操作应用一则

db匠 2017-03-08 10:48:56 浏览1075
展开阅读全文

原子操作概述

近年来随着服务器上CPU核数的不断增加,无锁算法(Lock Free)越来越广泛的被应用于高并发的系统中。PostgreSQL 做为世界上最高级开源数据库也在9.5时引入了无锁算法。本文先介绍了无锁算法和原子操作在PostgreSQL中的具体实现, 再通过一个Patch来看一下在PostgreSQL中是如何利用它来解决实际的高并发问题的。

无锁算法是利用CPU的原子操作实现的数据结构和算法来解决原来只能用锁才能解决的并发控制问题。 众所周知,在一个并发系统中特别是高并发的场景下,锁的使用会影响系统性能。 这里的CPU的原子操作是不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换。

常用的原子操作包括:

  • CAS,Compare & Set,或是 Compare &

网友评论

登录后评论
0/500
评论
db匠
+ 关注
所属云栖号: 阿里云数据库ApsaraDB