- 有哪些表,以及这些表的各种参数
- 每个表的各个Partition的组成情况,将所有Partition中涉及到的机器求并集,会顺便解析到一个机器列表当MetaServer获取了所有的这些信息后,会构建自己的内存数据结构。特别的,ReplicaServer的集合初始化为2中得到的机器列表。
随后,MetaServer开启FD的模块和负载均衡的模块,MetaServer就启动完成了。
等加载完成后,ReplicaServer会启动FD模块连接MetaServer。连接成功后会向MetaServer查询自己服务的replica列表,并和自己加载的replica列表相比较并做相应调整:
- 如果MetaServer多出了一部分replica,请求MetaServer将其移除
- 如果MetaServer和本地都有,按MetaServer所标记的角色进行服务ReplicaServer向MetaServer查询replica列表并做本地调整的这一过程叫ConfigSync。这一过程并不仅限于bootstrap时候会有,而是在集群运行过程中会定期发生的一个任务。
进行元数据恢复的时候,MetaServer会尝试从ReplicaServer上获取表的元信息,并根据各个Replica的状态重建出PartitionConfiguration。等把这些消息都重建好后,MetaServer会把它们持久化到指定的zookeeper上,然后开始提供服务。
如果不是很在意“删除的表被找回”这一点,目前元数据恢复还可以被用于做zookeeper的迁移。