2012-02-12 6 views

答えて

4

HDFSは強く一貫していますので、書き込みが正常に完了したら、新しいデータはすべてのノードですぐに表示されるはずです。明らかに実際の執筆には時間がかかります。これについての詳細はreplication pipeliningを参照してください。

これは最終的に一貫したシステムとは対照的です。このシステムでは、すべてのノードがデータの一貫性のあるビューを見るまでには、(しばしばわずか数ミリ秒ですが)不定の時間がかかることがあります。

Cassandraなどのシステムでは、チューニング可能な一貫性があります。実行する操作に応じて、それぞれ異なるレベルの整合性で実行できます。

+0

Hbaseは最終的にまたは強く一貫していますか? – seahorse

+2

Hbaseは強く一貫しています –

3

書き込み操作が完了した後、すぐにデータが表示されます。 - またやる名前ノードを
クライアントがHDFSデータに書き込む場合、すべてのレプリカに書き込まれ、書き込み動作が完了した後、それは
完全に利用可能であるべきであるメタデータを持つ唯一の場所もあります:
は、プロセスのいくつかの側面を見ることができますより大きな仕事の平和が達成されるまでデータを隠すことを可能にする孤立の概念を持たない。
HBaseは別のケースです。これは、ただLOGをHDFSにただちに書き込み、そのHFilesは圧縮後に新しいデータで更新されるためです。同時に、HBase自身が何かをHDFSに書き込んだ後、データがすぐに見えるようになります。

0

HDFSデータは、hflush()またはhsync()メソッドを使用してフラッシュまたは同期されると表示されます。これらのメソッドは、0.21バージョンで導入されました。 HFlushは、データがすべての読者に見えることを保証します。 Hsyncは、データがディスクに保存されたことを保証します(まだディスクキャッシュに残っている可能性があります)。 writeメソッドはあなたにいかなる保証もしません。あなたの質問に答えるために - HDFSのデータでは、hflush()またはhsync()を実行した後で、誰でも誰でもすぐにが表示されます。