You got it - you can't "update" the row key without a reading/updating/delete/insert cycle. This is because the newly inserted row might not live on the same region server anymore.
It would probably be better to have a schema that avoids needing it's primary key updated. One common design pattern is to use a system like protobufs or thrift serialization to store structured binary data in the hbase cells, thus upping the complexity of what you may store in a hbase row. With some clever redesign you may discover you can avoid the primary key value update. Good luck! -ryan On Tue, Feb 3, 2009 at 6:23 AM, Yabo-Arber Xu <[email protected]>wrote: > Hi there, > > I have this usage scenario on HBase, and wonder what is the most efficient > way of doing this: > > I use each row to represent some cluster, and the rowkey is sort of the > center of the cluster. So every time I add an element into a cluster, i > need > to update the rowkey ( also some minor additional updates to certain > columns). > > The best way I know is to read this whole row out, remove it from hbase, > and > insert the same row with new rowkey, but this appears not to be that > efficient. Any thoughts? > > Thanks for your input! > > Best, > Arber >
