oceanbase中每个observer都有schema_manager这个结构体,包含schema_version标示当前schema的版本号。
假设现在有两台observer(obs0和obs1)一台root server(利用锁的原理,将DDL操作串行执行)。client发送DDL请求到obs1,obs1将请求通过PRC发送给root server,root server收到请求后,更新schema并修改schema_version,然后root_server发送广播信息给每个observer,然后observer发送反馈信息给obs1,obs1再讲信息发送给client。
ps:obs0接受到广播信息后,不是立即刷新schema的,而是当使用时,才刷新的。