HBase 1.3(NOSQL) 發布,效能大幅提升,hbasenosql
Apache HBase 1.3.0版在2017年1月中旬正式發布了,新版本支援分層資料的壓縮和多個方面的效能提升,像預寫記錄檔(WAL)、一個新的RPC機制,等等。HBase 1.3.0一共修複了1,700多個問題。
在一些像OpenTSDB的項目中,HBase通常被直接用作時序應用或者通過項目本身用作時序應用。在時序應用中,資料常常按照抵達時間的先後順序隊列寫入儲存單元,查詢資料經常發生在一個有限的時間回溯視窗內,這導致最新寫入資料的查詢操作比舊資料更頻繁。
HBase 1.3.0版本支援分層壓縮的特性正好適用於一些特定的應用情境——在極少數情況下,資料被刪除或更新的時候——通常要更頻繁地掃描最新的資料,而舊資料則較少被掃描。
使用這種新的壓縮策略可以輕鬆記錄檔案的存留時間(time-to-live,TTL);當將現有隱藏檔壓縮到單個較大的隱藏檔中時,到期的記錄將被刪除。
根據GoogleBigTable的建模法則,HBase基於NoSQL將資料劃分成不同的地區,每個地區都分別被定義為關鍵空間的起始和結束行。HBase設定了地區伺服器來管理多個地區,當一個地區變得過大時,它會被拆分成兩個並且隨機遷移給其他的地區伺服器管理,以便在所有分布式節點之間實現負載平衡。
預設情況下每個地區伺服器上都有一個預寫記錄檔(WAL),該地區上的所有操作都要寫入這個唯一的預寫記錄檔(WAL)。而改進的多預寫記錄檔(WAL)支援更高效能的寫入操作,這使得複製速度更快而同步寫入的延遲更低。預設情況下,多預寫記錄檔(WAL)的這一特性提供了三個地區分組策略來分配預寫日(WAL)志:每個地區的預寫記錄檔(WAL)都有一個“身份”標識,輪詢調度演算法保證每個區域對應的預寫記錄檔(WAL)都有其“邊界”,地區中不同“命名空間”的表被映射到不同的預寫記錄檔(WAL)檔案中。效能測試報告顯示,預寫記錄檔(WAL)在純SATA磁碟裡啟動並執行平均延時減少了20%;在SATA-SSD磁碟裡啟動並執行延時減少了40%。
新的RPC調度器基於CoDel演算法,用於阻止可用IO無法滿足過高請求頻率引起的長串連隊列。CoDel演算法以可控的延遲來管理活動隊列,它根據定義好的閾值來裁決隊列中的最小延遲。一旦最小延遲超過閾值,該串連便會被丟棄以便處理其他更有利的最小延遲。
其他的改進還包括一個避免大量IO峰值的磁碟排清輸送量控制器。這些改進還有助於提高Apache Phoenix、OpenTSDB以及其他依賴HBase引擎做資料持久化和快速查詢功能的軟體項目的效能。