Tair源碼閱讀1---ConfigServer

ConfigServer裏面涉及到的幾個最重要的對象是,configServer,dataServer,table,group

1.對象介紹

(1)table,對照表

key通過hash之後,再取模可以得到value存放在哪個桶。這個桶是放在哪個dataServer的信息,可以由一個表來表示。

這個表就是對照表。

(2)configServer,配置服務器

功能主要有,①讀取配置信息以及心跳得到dataServer的信息,進行對照表的生成。

②根據client的請求,傳遞對照表信息

③根據心跳得到dataServer的信息,然後控制數據在dataServer中的複製與遷移,以及重新建立對照表等。

(3)dataServer,數據服務器

數據實際存儲的抽象,可以採用不同的存儲引擎,在configServer的控制下,完成數據的保存、複製、遷移。

(4)group,組

通常,configServer有2個,互爲主備。而dataServer通常有許多個,可以將dataServer維護爲多個不同的group。

而對照表的新建與棄用,是以group爲單位的。


2.代碼結構


如圖所示,這就是Tair中,ConfigServer模塊下的代碼。

其中,

①是入口,表示tair_config_server

②是整個模塊的主要工作的線程,重要的函數都在這個thread的run裏面

③是信息,分爲group信息和server信息,作爲②運行的一些處理判斷

④就是與對照表table相關的,上面的一些是控制table行爲的類,下面的是描述表的具體的類,

table_builder1和table_builer2都繼承自table_builder,

table_builder1是採用負載均衡優先建立的對照表,table_builder2是採用優先考慮區分機房的邏輯建立的對照表。


3.主要流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章