一:獲取region儲存位置資訊
寫資料和讀資料一般都會獲取hbase的region的位置資訊。大概步驟為:
1- 從zookeeper中獲取.root.表的位置資訊,在zookeeper的儲存位置為/hbase/root-region-server;
2- 根據.root.表中資訊,獲取.meta.表的位置資訊;
3- .meta.表中儲存的資料為每乙個region儲存位置;
二: 向hbase表中插入資料
hbase中快取分為兩層:memstore和blockcache。
1- 首先寫入到wal檔案中,目的是為了資料不丟失;
2- 再把資料插入到memstore快取中,當memstore達到設定大小閾值時,會進行flush程序;
3- flush過程中,需要獲取每乙個region儲存的位置。
三:從hbase中讀取資料
blockcache主要提供給讀使用。讀請求先到memstore中查資料,查不到就到blockcache中查,再查不到就會到磁碟上讀,並把讀的結果放入blockcache。
blockcache採用的演算法為lru(最近最少使用演算法),因此當blockcache達到上限後,會啟動淘汰機制,淘汰掉最老的一批資料。
乙個regionserver上有乙個blockcache和n個memstore,它們的大小之和不能大於等於heapsize * 0.8,否則hbase不能啟動。預設blockcache為0.2,而memstore為0.4。對於注重讀響應時間的系統,應該將blockcache設大些,比如設定blockcache=0.4,memstore=0.39。這會加大快取命中率。
同步寫 讀資料時序
一 同步時序 在同步時序裡面,最重要的兩個訊號分別是clk和dqs。clk簡介 clk是時鐘訊號,在使用者端產生。在ddr double data rate 模式下,clk訊號的上公升和下降沿都會有資料被觸發 上下各 bit資料 因此,在乙個clk週期內,會有2bit資料被傳輸。其頻率在0 最大頻率...
hdfs 寫資料 讀資料流程
客戶端 client 向namenode nn 請求上傳檔案 nn檢視目錄樹,檢查目錄是否存在 檔案是否存在 nn返回是否可以上傳 可以上傳 client告訴nn,要上傳資料塊1 block1 nn檢視datanode dn 資訊池,選出三颱dn 一般就近隨機一台 本機架一台 另乙個機架一台 cli...
記憶體讀資料和磁碟讀資料的區別
當程式要讀取的資料時傳入記憶體位址 行位址 列位址 如果資料不在主存中時,會觸發乙個缺頁異常,此時系統會向磁碟發出讀盤訊號,通過柱面號,磁頭號,扇區號定位磁碟位置,找到資料的起始位置並向後連續讀取一頁或幾頁載入記憶體中。於儲存介質的特性,磁碟本身訪問就比主存慢很多,再加上機械運動耗費,磁碟的訪問速度...