I've got a use case where I need to check whether Hbase Puts are actually writing changed values or not.

I did my homework and know of the checkAndPut method but that does not really solve the problem:

* I got a value client side which may be a change to the most current value in Hbase, or not
* If it is not a change I would rather not write it at all
* With checkAndPut I can only check for equality of a client side value and a server side value
* checkAndPut will execute the Put if it is true

I can think of 2 solutions, both not very appealing:

1. Performing a pre Put check client side, after getting the latest value from HBase (2 round trips)
2. Doing the checkAndPut as above, when it returns false, resubmit the Put without a checkAndPut (2 round trips, plus a rewrite of non-changed value for all succeeded checkAndPut s)

Is there a way to turn the checkAndPut logic around and execute the Put immediately only if the comparison fails? Or even a different approach to this problem?