title: What's the best way to store and update a Set in HBase?
body: <p>So here's the situation : I've created a SetWritable class, basically a wrapper for java.util.Set that implements the Writable interface.  I have an HBase table with one column family and one column, and the values for that column are serialized SetWritable objects.  Right now, if I want to add an element to the set, I need to pull the row from HBase, deserialize it into a SetWritable, add my element, serialize the SetWritable, and then push it back to HBase.  So this means LOTS AND LOTS of communication between my mapper and HBase.  Seeing as that I'm working with large sets of data, this could potentially kill my performance.</p>
  
  <p>What I'd like to do is just send the new element over to HBase, and have some code on the HBase server that deserializes the SetWritable, adds the element, serializes the SetWritable, then commits it.  Is this possible?  Can coprocessors help?</p>
  
  <p>Another idea : instead of serializing my set into one column, I could have a column for each known element of the set.  One downside : I could wind up with hundreds of thousands (or millions) of columns.  Is this a problem?</p>