Hbase region查詢過程

2022-09-13 10:27:10 字數 734 閱讀 4563

hbase的table是該region切分的,client操作乙個row的時候,如何知道這個row對應的region是在哪台region server上呢?這裡有個region location過程。主要涉及到2張系統表,-root-,.meta.。其結構見圖

在zookeeper的/hbase/root-region-server節點中存著-root-表所在的region server位址。

-root-表的乙個row代表著meta的乙個region資訊,其key的結構是meta表名,meta表region的startkey,regionid。其value的主要儲存regioninfo和server資訊。root表不能split

.meta.表的乙個row代表著使用者表的乙個region資訊,其key的結構是其實就是使用者表的regionname,使用者表名,startkey,regionid。其value同樣儲存著regioninfo和server資訊。meta表可以split,但是乙個region預設有128m,可以存上億個使用者表的region資訊,所以一般不會split。

其查詢過程如下:

1.通過zk getdata拿-root-表的location

2.rpc -root-表的rs,getclosestrowbefore,拿row對應的meta表的region location

3.rpc .meta.表的某乙個region,拿該row在真實table所在的region location

4.rpc對應region

Elasticsearch查詢過程

客戶端向集群中的某個節點 假設節點1 發起查詢請求,節點1會建立乙個from size大小的佇列 from 偏移量,size 要取回的文件個數 節點1向集群中所有其他的分片 主或從 發起查詢請求,每個分片也會建立乙個from size大小的佇列,並將查詢結果新增到佇列中。其他分片將查詢到的文件id和...

屬性查詢過程

import numbers class intfield 資料屬性描述符 實現了get和set def get self,instance,owner return self.value def set self,instance,value if not isinstance value,num...

DNS查詢過程

dns domain name system 將網域名稱和ip位址相互對映的乙個分布式資料庫服務。dns使用的是網路查詢,使用的埠是53號埠 通常dns是以udp資料傳輸協議來查詢的,當沒有查詢到完整的資訊時,就會再次以tcp這個協議來重新查詢。所以在啟動dns時,會同時啟動tcp和udp的53號埠...