HBase Region Assign流程詳解

2022-07-20 05:51:15 字數 1565 閱讀 4832

region assgin涉及到client,master,regionserver以及zk之間的互動。主要步驟如下:

1,client向master傳送assignregion的rpc請求後(如當在hbase shell中執行assign命令),master響應該服務的入口函式為:

1

public

assignregionresponse assignregion(rpccontroller controller,

2 assignregionrequest req) throws

serviceexception

入口函式呼叫的assgin函式主要實現如下:

1

public

void

assign(hregioninfo region,

2boolean setofflineinzk, boolean

forcenewplan)

10 string encodedname =region.getencodedname();

11//

貌似主要是鎖住該region對應的狀態

12 lock lock =locker.acquirelock(encodedname);

13try

25 } finally

28 }

2,reionserver響應openregion的請求函式如下:

public openregionresponse openregion(final

rpccontroller controller,

final openregionrequest request) throws

serviceexception

而openregionhandler中open region的核心**process函式中:

1

public

void process() throws

ioexception

3,接下來,再看看master監控到zk中region狀態變化的相應情況:

1

void handleregion(final

regiontransition rt, openregioncoordination coordination,

2openregioncoordination.openregiondetails ord)

通過上面的分析,region assgin過程中主要的狀態和步驟,大概可以用下圖來概括。

從上面的分析可知,當前region assgin的流程還是非常複雜的,所有很容易就造成meta表和master,zk中的狀態不一致,從而使region處於rit狀態。社群正在做這方面的優化,主要思想就是去掉zk依賴,從而只依賴master和regionserver。具體詳情可參看:  。 預計在hbase 2.0中將包含該功能。

Floyd Warshall演算法DP流程詳解

floyd warshall演算法,簡稱floyd演算法,用於求解任意兩點間的最短距離,時間複雜度為o n 3 我們平時所見的floyd演算法的一般形式如下 1void floyd 注意下第6行這個地方,如果dist i k 或者dist k j 不存在,程式中用乙個很大的數代替。最好寫成if di...

SpringMVC學習筆記 10 執行流程詳解

以動態資源請求為例分析springmvc的執行流程 1.瀏覽器傳送的的請求經過tomcat,分配到dispatcherservlet web.xml中配置的 object 儲存controller listinterceptorlist 所有的 4 7 dispatcherservlet把handl...

IPSEC流程例子及兩個階段的協商過程詳細介紹

ipsec體系結構模型圖 我們來看乙個完整的ipsec體系結構模型圖,以便更好地理解ipsec體系結構。ipsec流程圖 sakmp ike第一階段稱為isakmp ike的管理連線階段.使用雙向的udp埠為500的資料連線,來共享ipsec訊息.第二階段 3條 phase 2的目標是協商ipsec...