每个dble节点内存中都维护metadata。metadata是每个节点从后端mysql查询解析出来的,分库分表多个表的时候,会做分片一致性校验。
有两个层级的锁来使操作相同表的DDL串行执行
1. 单节点时本地锁
内存中本地锁,单进程内每个DDL sql串行去校验锁,锁本身是按照表的粒度组织的。
2. 多节点时zk节点互斥
在本地锁上新增一层 zk中的互斥锁,执行DDL前选获取本地锁,再检查zk中的节点,保证操作相同表的DDL在多个dble节点之间串行执行。DDL执行成功后还要通知其他节点更新各自维护的metadata。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有