0

テーブルに行を追加したばかりで、その行がまだ memstore にあるとします。この時点で、削除しました。削除はどうなりましたか?私の理解が正しいかどうかはわかりません。memstore のその行にマーカーが追加されます。memstore がフラッシュされると、行とマーカーが HFile に書き込まれます。しかし、その場合、行が memstore から削除されないのはなぜでしょうか?

4

2 に答える 2

1

HBase の仕組みでは、すべての変更が新しい「挿入」になります。これで、効率的に hbase 作業を行うことができます。多くの場合、HBase は各値の x バージョンを保存するように設定されていることにも注意してください。そのため、行が memstore だけにあり、行の 1 つのバージョンのみを保持する必要がある場合は、非常に特殊なエッジ ケースです。そのような特殊なケースを処理するよりも、予測およびテストされた単一の方法でシステムが機能する方が優れています。

于 2013-04-11T07:57:05.753 に答える
0

同じ行キーを持つ行がディスク上のストア ファイルに既に存在する可能性があります。この場合、同じ行キーを持つ別の追加は既存の行への更新となり、その行の新しいバージョンになります。memstore から削除マーカーを使用して新しく追加された行を保存すると、メジャー コンパクションにより、削除マーカーを使用するバージョンまで、その行のすべての古いバージョンを削除できます。

于 2013-04-10T19:40:33.420 に答える