Cool, so the coprocessor will feed the value in the database to me and the value that is coming in just before it is written?
With bytes, I am using serialized json so the example still applies perfectly where I could merge the results in the coprocessor and the coprocessor writes the final result. Would that work? If so, I will definitely check it out. Thanks, Dean -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Jean-Daniel Cryans Sent: Thursday, January 27, 2011 4:27 PM To: [email protected] Subject: Re: is there a pluggable conflict resolver in hbase For HBase it's all byte[], so there's currently nothing as involved as what you describe. What happens is that the second Put will overshadow the first one, but both are accessible. In the future I guess you could implement a coprocessor that does that kind of check, but it's only available in trunk. The closest you could do at the moment would be to do a Get first and then do http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[], byte[], byte[], byte[], org.apache.hadoop.hbase.client.Put) J-D On Thu, Jan 27, 2011 at 1:28 PM, Hiller, Dean (Contractor) <[email protected]> wrote: > Tthere is this really really cool feature in gemfire for conflict > resolution(and I hope hbase has something similar here as it seems so > clean). You can implement an interface that gets called just before the > write to storage that gives you the old value and the new value(and is > single threaded for that row so multiple updates on that row are in same > thread). > > > > Perfect example > > Key="myCar" value=contains people A, B, C version 4 > > > > A put done from node 1 and a put done from node 2 at the same time > > 1. Put people A, B, C, D version 4 > > 2. Put people A, B, C, E version 4 > > > > So the conflict resolver can put 1 fine but then on 2, it can see that > version is 5 on oldValue and can merge A, b, C, E with A, B, C, D > resulting in the full list A, B, C, D, E. this is a dang nice feature. > > > > Does hbase have something similar that one can implement that gets > called on each node out there to do conflict resolution? > > > > Thanks, > > Dean > > > > > > > This message and any attachments are intended only for the use of the > addressee and > may contain information that is privileged and confidential. If the reader of > the > message is not the intended recipient or an authorized representative of the > intended recipient, you are hereby notified that any dissemination of this > communication is strictly prohibited. If you have received this communication > in > error, please notify us immediately by e-mail and delete the message and any > attachments from your system. > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
