我有一個用例,我需要檢查Hbase Puts是否實際上是在寫更改後的值。只有更改時才需要更新Hbase。
我做了我的checkAndPut方法的功課,知道,但是這並不能真正解決問題:
- 我這可能是一個變化中的HBase的最新值,或者不是一個價值客戶端
- 如果不改變,我寧願把它寫在所有
- 隨着checkAndPut我只能檢查一個客戶端價值的平等和服務器端值
- checkAndPut將執行認沽如果這是真的
我能想到的2級的解決方案,無論是不是非常有吸引力:
- 進行預認沽檢查客戶端,正從HBase的最新值(2個往返)
- 在做checkAndPut爲後以上,當它返回false,重新提交認沽沒有checkAndPut(2個往返,加上所有非改值的改寫成功checkAndPut S)
有沒有辦法扭轉的checkAndPut邏輯和執行只要比較,立即放置n失敗?甚至對這個問題採取不同的方法?