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的,而是當使用時,才刷新的。