Hbase行級事務模型

2021-08-19 01:25:38 字數 571 閱讀 5791

hbase的資料首先會寫入wal,再寫入memstore。寫入memstore異常的話很容易實現回滾,因子只要保證wal的原子性即可,每個事務只會產生乙個wal單元,這樣就可以保證其原子性。

實現寫寫併發控制,只需要在寫入或者更新之前先獲取行鎖,如果獲取不到,就說明有其它的執行緒已經獲得了該鎖,就需要不斷的重試等待或者自旋等待(自旋鎖),直至其他執行緒釋放該鎖。拿到鎖以後開始寫資料,寫完資料以後釋放該行鎖即可。

乙個執行緒同時更新乙個region中的多行記錄,使用的方法是行鎖,兩階段鎖協議:

1.獲取所有待寫入或者更新行記錄的行鎖。

2.開始執行寫入或者更新操作。

3.寫入完成以後再同一釋放所有行記錄的行鎖。

注:不能更新一行就是釋放乙個行鎖,這樣容易形成事務的死鎖。

當有兩個事務更性同一行資料,當第二個事務更新到一半的時候過來乙個讀操作,讀請求就會讀到乙個不一致的資料。hbase採用的mvcc機制,主要分為兩個步驟:

1.為每乙個寫入或者更新分配乙個region級別自增的序列號

2.為每乙個讀請求分配乙個已完成的最大寫事務系列號

hbase事務永續性保證可以理解為wal持久化。

hbase資料模型(入門級)

hbase資料模型 不同於關係型資料庫 決定一行資料 按照字典順序排序的。row key只能儲存64k的位元組資料 column family列族 qualifier列 hbase表中的每個列都歸屬於某個列族,列族必須作為表模式 schema 定義的一部分預先給出。如 create test cou...

HBase行鍵設計

唯一原則 行鍵對應關係型資料庫的唯一鍵,系統設計之初必須考慮有足夠的唯一行鍵去支援業務的資料量。長度原則 長度適中,一般從幾十到一百位元組,建議使用定長,方便從行鍵提取所需資料,而無須查詢出資料內容以節省網路開銷。雜湊原則 避免遞增,否則讀寫負載都會集中在某個熱點分割槽,降低效能,甚至引起分割槽伺服...

HBase二 HBase資料模型

hbase是基於google bigtable模型開發的,典型的key value系統 1.hbase schema可以有多個table 2.每個table可由多個column family組成。3.hbase列族中的列可以隨意定義,因為hbase是無模式的。1.byte array 2.表中每條記...