2011-08-22 51 views
2

任何人都可以解釋如何防止hbase更新具體的列中的單元格和鍵如果該值已經存在?
例如,當兩個進程並行寫入同一個單元,其中只有最後一個將出現在數據庫中,而我只需要第一個,另一個應該失敗。如何防止Hbase覆蓋單元格中的現有值?

回答

1

如果您強制版本爲1,HBase將只保留最後一個版本。您可以增加允許的版本。

但是,如果你有多個命中行鍵,這可能是一個糟糕的行鍵設計的跡象。行鍵應該巧妙地創建爲了允許良好的分區和獨特的命中。這可以減少區域服務器上的熱點並提高整體性能。

對於有很多冗餘行命中的情況,除非只關心最近的命中,否則不應該使用版本限制1。