![](https://csdnimg.cn/release/download_crawler_static/86364524/bg9.jpg)
PG
Ceph 引入 PG 逻辑概念来对对象进行分组,不同 PG 之间的对象是可
以并发读写的,单个 PG 之间的对象不能并发读写,也即理论上 PG 越
多并发的对象也越多,但对于系统的负载也高。
不同对象的并发控制
落在不同 PG 的不同对象是可以并发读写的,落在统一 PG 的不同对
象,在 OSD 处理线程中会对 PG 加锁,放进 PG 队列里,一直等到调
用 queue_transactions 把 OSD 的事务提交到 ObjectStore 层才释放
PG 的锁,也即
对于同一个 PG 里的不同对象,是通过 PG 锁来进行并发控制,不过这
个过程中不会涉及到对象的 IO,所以不太会影响效率。
同一对象的并发控制
同一对象的并发控制是通过 PG 锁实现的,但是在使用场景上要分为
单客户端、多客户端。
1. 单客户端:单客户端对同一个对象的更新操作是串行的,客户端
发送更新请求的顺序和服务端收到请求的顺序是一致的。