| ビットキャスク | |
|---|---|
| 開発者 | Basho Technologies |
| 安定版リリース | |
| 言語 | Erlang |
| オペレーティングシステム | Linux、BSD、Mac OS X、Solaris |
| プラットフォーム | IA-32、x86-64 |
| ライセンス | Apache License 2.0 |
| ウェブ | docs.basho.com /riak /latest /ops /advanced /backends /bitcask / |
| リポジトリ | |
Bitcaskは、ログ構造化ハッシュテーブルにキー/値データを保存および取得するためのAPIを提供するErlangアプリケーションです。その設計は、ログ構造化ファイルシステムの原則に大きく依存しており、ログファイルのマージを含む多くの設計からインスピレーションを得ています
強み
Bitcaskは、一度だけ書き込み可能で追記のみ可能なディスク上のデータ形式と、検索用のキーのメモリ内ハッシュテーブルの使用により、多くの利点があります
- 読み取りおよび書き込み操作のレイテンシが低い。
- 特にランダムなアイテムの受信ストリームを書き込む場合の高スループット: 書き込まれるデータはディスク上で順序付けられる必要がなく、ログ構造化設計により書き込み中のディスク ヘッドの移動が最小限に抑えられるため、これらの操作によって I/O とディスク帯域幅が飽和状態になることが一般的です。
- 単一のシークで任意の値を取得:Bitcaskのメモリ内ハッシュテーブルは、データが保存されているディスク上の場所を直接示します。Bitcaskは値の読み取りに複数回のディスクシークを必要としません。また、オペレーティングシステムのファイルシステムキャッシュにより、一部の検索ではディスクシークが不要になる場合があります。
- 予測可能な検索と挿入のパフォーマンス:読み取り操作と書き込み操作は、固定された予測可能な動作をします。書き込み操作では、書き込み用に開かれている現在のファイルの末尾へのシークと、そのファイルへの追加操作のみが必要です。
- 高速で境界のあるクラッシュリカバリ:Bitcaskのディスクフォーマットは、リカバリを簡素化します。失われる可能性のある項目は、最後に書き込み用に開かれたファイルの末尾にある、部分的に書き込まれたレコードのみです。リカバリでは、最後に書き込まれた1つまたは2つのレコードを確認し、チェックサムを検証してデータの整合性を確認するだけで済みます。
- 簡単なバックアップ: Bitcask のディスク フォーマットにより、ディスク ブロック順にファイルをアーカイブまたはコピーするユーティリティであれば、Bitcask データベースを適切にバックアップまたはコピーできます。
弱点
Bitcaskは常にすべてのキーをメモリ内に保持するため、システムは他の操作コンポーネントとオペレーティングシステムのファイルシステムバッファに加えて、 キー空間全体を格納するのに十分なメモリを備えている必要があります
参考文献
- ^ 「リリース 2.1.0」。2020年5月7日。2020年10月28日閲覧