2.10.1 Meta信息初始化
dble在启动时会逐个同步抓取相关表,视图的信息,并对分区表做一致性检测。
2.10.1.1 表信息的初始化
表信息是从后端数据节点抓取的。dble在启动时会根据schema,table,数据节点的配置(参见1.5 sharding.xml)对逐个数据节点执行:
show tables;
show create table ...
获取后端表的实际创建信息并做解析以获取需要的信息。
2.10.1.2 视图信息的初始化
视图的信息是属于Dble中间件的状态信息,是为数不多的Dble自有的状态之一,存在两种形式的初始化
1 非集群模式状态下通过本地文件进行view的存储和初始化
2 集群状态下通过ZK进行view的存储和初始化
关于其他view meta的实现以及使用细节详见2.10.4 view meta
2.10.1.3 分区表的一致性规则
分区表分布在多个实例上的后端表的表结构不必完全相同,但最好完全形同。多个后端表被认为一致的规则为:
- 有相同的列;
- 有相同的主键;
- 有相同的唯一键;
- 有同样的索引;
- 有相同的键。
只要这五个方面相同就认为后端的表具有一致性,一致性检测通过。