Apache HBase 1.3.0は、2017年1月中旬にリリースされた。今回のリリースでは、日付ベース階層圧縮がサポートされ、ログ先行書き込み(WAL)や新しいRPCスケジューラなど複数箇所で改善があった。このリリースには、合計で約1,700件の解決済みのissueが含まれている。
HBaseは、時系列アプリケーションで直接、またはOpenTSDBなどのプロジェクトを通じて使用されることがよくある。時系列アプリケーションでは、データは通常、データ到着順に順次書き込み方式で書き込まれ、ルックバック時間ウィンドウに基づいて限られた時間範囲内でデータが照会されるため、最近書き込まれたデータは古いものよりも頻繁にクエリされまる。
HBase 1.3.0に含まれる日付ベース階層圧縮のサポートは、データの削除または更新頻度が低く、最新のデータが古いものよりも頻繁に参照されるユースケースに有効である。
この新しい圧縮戦略によって、レコードのtime-to-live(TTL)を簡単に実現することができる。有効期限に達したレコードは、既存のストアファイルを単一の大きなストアファイルに圧縮するときに削除される。
Google BigTableの後にモデル化されたHBaseのカラムベースのNoSQLは、複数のリージョンにまたがってデータを分割する。各リージョンは、キー空間の開始行と終了行として定義される。HBaseリージョンサーバは、複数のリージョンを担当し、リージョンが非常に大きくなった場合、2つに分割し、他のリージョンサーバに移行し、全てのノードで負荷が均等になるようにする。
デフォルトでは、各リージョンサーバには1つのWALがあり、サーバのリージョン上のすべての操作はその1つのWALに書き込まれる。複数WALのサポートが改善されたことにより、書き込みスループットの向上、レプリケーションスピードの高速化、同期書き込みにおける遅延の短縮が可能になった。デフォルトでは、複数のWAL機能には、WAL割り当て用の3つのリージョングループ化方法が用意されている。その3つは、各リージョンに対して1つのWALが対応付けられる“identity”、リージョンがラウンドロビンアルゴリズムに基づいてWALにマッピングされる“bounded”と、異なる名前空間のテーブルのリージョンは異なるWALファイルにマッピングされる“namespace”である。パフォーマンステストでは、純粋なSATAディスクで実行した場合の平均遅延が20%改善され、WALファイルがSATA-SSDディスクに書き込まれた場合は40%の改善が報告されている。
新しいRPCスケジューラは、CoDelアルゴリズムに基づいている。IOに制限があり、要求頻度と利用可能なスループットの間の不一致によって引き起こされる、呼び出しキューでの長時間の待ちを防ぐために使用される。そのアルゴリズムでは遅延を制御するために、アクティブなキュー管理をする。定義されたしきい値に対してキュー内での遅延が最小限となるよう動作する。最小値がしきい値を上回るたびに、より好ましい最小遅延を満たすためにコールはドロップされる。
他にも、巨大なIOスパイクを回避するためにディスクフラッシャ用のスループットコントローラを改善した。この改善は、Apache Phoenix、OpenTSBD、およびデータ永続化と高速検索のためのHBaseエンジンに依存するその他のソフトウェアプロジェクトのパフォーマンス向上にも有用である。
Rate this Article
- Editor Review
- Chief Editor Action