I just committed HBASE-5203 (together with HBASE-3584 this implements atomic row operations). Although a relatively small patch it lays the groundwork for heterogeneous operations in a single WALEdit.
The interesting part is that even though the code enforced the atomic operation to be a for single row, this is not required. It is enough if all involved KVs reside in the same region. I am not saying that we should add any high level concept to HBase (such as the EntityGroups of Megastore). But, with a slight addition to the API (allowing a grouping of multiple row operations) client applications have all the building blocks to do limited cross row atomic operations. The client application would be responsible for either correctly pre-splitting the table, or a custom balancer has to be provided. The operation would fail if the regionserver determines that it would need data from multiple region servers. I think this needs at least minimal support from HBase and cannot (efficiently or without adding more moving parts) by a client API only. Comments? Is this worth pursuing? If so, I'll file a jira and provide a patch. Thanks. -- Lars
