中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hbase的WAL在RegionServer怎么調用

發布時間:2021-12-09 13:33:54 來源:億速云 閱讀:206 作者:iii 欄目:云計算

這篇文章主要講解了“Hbase的WAL在RegionServer怎么調用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hbase的WAL在RegionServer怎么調用”吧!

Hbase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

簡單原理

hbase是基于LSM樹的存儲系統,它使用日志文件和內存存儲來的存儲架構將隨機寫轉換成順序寫,以此保證穩定的數據插入速率。而這里說的日志文件即是wal文件,用于在服務器崩潰后回滾還沒持久化的數據。

WAL(Write-Ahead-Log)是HBase的RegionServer在處理數據插入和刪除的過程中用來記錄操作內容的一種日志。大致過程如下圖所示,首先客戶端啟動一個操作來修改數據,每一個修改都封裝到KeyValue對象實例中,并通過RPC調用發送到含有匹配Region的HRegionServer。一旦KeyValue到達,它們就會被發送管理相應行的HRegion實例。數據被寫到WAL,然后被放入到實際擁有記錄的存儲文件的MemStore中。同時還會檢查MemStore是否滿了,如果滿了就會被刷寫到磁盤中去。
Hbase的WAL在RegionServer怎么調用

wal調用鏈源碼分析

本節將從源碼角度如上所簡述分析hbase的一個“寫”過程。

其中基本調用過程如下:
Hbase的WAL在RegionServer怎么調用

  • put/delet等“寫”操作會使用MultiRowMutationService這個service來作用,在service中將會調用mutateRows()方法去處理List,真正調用mutateRows()的是MultiRowMutationService的一個實現類MultiRowMutationEndpoint,MultiRowMutationEndpoint類實現了hbase的行事務。從MultiRowMutationEndpoint類文檔可以看出其主要作用:
    Hbase的WAL在RegionServer怎么調用

    其中processor的實現類是MultiRowMutationProcessor。

    雖然processRowsWithLocks方法步驟很多,但是最關鍵的是如下幾步:
    Hbase的WAL在RegionServer怎么調用

    在這里將會把List放入,但是這里并不是真正的放到了memstore,真正的執行會等sync()方法把日志或者說WALEdite真正刷入磁盤后,通過mvcc版本號異步通知再把數據寫到memstore。
    Hbase的WAL在RegionServer怎么調用
    在這步中會會調用syncOrDefer方法,除了metaRegion,syncOrDefer將根據client設置的持久化等級選擇是否調用wal(FSHLog)的sync方法

  • HBase中可以通過設置WAL的持久化等級決定是否開啟WAL機制、以及HLog的落盤方式。

    client可以通過設置WAL持久化等級,如代碼:put.setDurability(Durability. SYNC_WAL );

    1.1.3版本的WAL的持久化等級分為如下四個等級:

    USER_DEFAULT:默認如果用戶沒有指定持久化等級,HBase使用SYNC_WAL等級持久化數據。

    SKIP_WAL:只寫緩存,不寫HLog日志。這種方式因為只寫內存(memstore),因此可以提升寫入性能,但是數據有丟失的風險。

    ASYNC_WAL:異步將數據寫入HLog日志中。

    SYNC_WAL:同步將數據寫入日志文件中,有可能只是被寫入文件系統中,并沒有真正落盤。

    FSYNC_WAL:同步將數據寫入日志文件并強制落盤。最嚴格的日志寫入等級,可以保證數據不會丟失,但是性能相對比較差。

    如代碼中所示當前sync_wal和fsync_wal采用的是同一策略都是:調用HFLog的sync()方法。sync()是一個阻塞方法,需要等到數據真正的刷到磁盤后,便會喚醒它,然后工作線程返回寫入memstore,完成一次“寫”操作。

    感謝各位的閱讀,以上就是“Hbase的WAL在RegionServer怎么調用”的內容了,經過本文的學習后,相信大家對Hbase的WAL在RegionServer怎么調用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    洛浦县| 汉寿县| 武夷山市| 青河县| 安新县| 武功县| 柞水县| 井冈山市| 渑池县| 阜城县| 贡山| 泗水县| 莲花县| 长春市| 金川县| 常宁市| 肥城市| 富民县| 肥东县| 绵竹市| 长子县| 庄河市| 哈尔滨市| 岑巩县| 屏山县| 申扎县| 鲁甸县| 泽普县| 黑水县| 安丘市| 定结县| 黄石市| 宁德市| 秦皇岛市| 铁力市| 时尚| 宜君县| 许昌县| 和硕县| 宿州市| 古浪县|