region assgin涉及到client,master,regionserver以及zk之間的互動。主要步驟如下:
1,client向master傳送assignregion的rpc請求後(如當在hbase shell中執行assign命令),master響應該服務的入口函式為:
1入口函式呼叫的assgin函式主要實現如下:public
assignregionresponse assignregion(rpccontroller controller,
2 assignregionrequest req) throws
serviceexception
12,reionserver響應openregion的請求函式如下: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 }
public openregionresponse openregion(final而openregionhandler中open region的核心**process函式中:rpccontroller controller,
final openregionrequest request) throws
serviceexception
13,接下來,再看看master監控到zk中region狀態變化的相應情況:public
void process() throws
ioexception
1通過上面的分析,region assgin過程中主要的狀態和步驟,大概可以用下圖來概括。void handleregion(final
regiontransition rt, openregioncoordination coordination,
2openregioncoordination.openregiondetails ord)
從上面的分析可知,當前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...