2

LevelDB は、Google の非常に興味深い C++ データ ストアです。私はJavaの世界で似たようなものを探しています(率直に言って、コードをよりよく理解し、Windowsでより簡単に実行できるようにするためです)。

HbaseとCassandraにも同じ基本技術が含まれていることを理解しています.ファイルストア用のsstable、メモリ内ストア用のmemtable(ソートされてディスクに書き込まれる前)、ある種の圧縮、定期的な圧縮などです。

大規模なプロジェクトからこの技術を引き出す努力はありますか? 私は自分自身 (主に Cassandra) のコード ベースを見始めましたが、これらは明らかに些細なプロジェクトではありません。モジュラー コードが多いのはどのプロジェクトですか?

ポインタを楽しみにしています!

4

1 に答える 1

0

これらの 3 つのストアに共通する、抽出できる汎用の重要なモジュールが存在する可能性は低いと思われます。アイデアが非常に似ていることは間違いありませんが、実装 (ストレージ ファイル形式、メモリ内表現、圧縮、コーディネーション サービスなど) は非常に複雑であるため、このように 3 つの異なるプロジェクト間でコードを共有しようとすると、さらに複雑になります。複雑です。

ある意味では、Cassandra と HBase の間では、HBase は機能の大部分を他のレイヤー (HDFS、Zookeeper) に委譲するという点で、よりモジュール化されたコードを持っていますが、Cassandra では、それはすべてプロジェクトの内部で処理されます。しかし、HBase においても、この部分 (物理ストレージ形式、圧縮アルゴリズムなど) はシステム全体と結合されており、階層化されていません。

さまざまなストレージ エンジンをサポートするアーキテクチャを探している場合、または分散システムの階層化にどのようにアプローチするかについて別のビジョンを見たい場合は、Riak も参照してください (ストレージ レイヤーの 1 つとして LevelDB をサポートしています)。オプション):

http://wiki.basho.com/LevelDB.html

于 2012-05-25T15:15:37.457 に答える