考虑到HBase将每个列族存储在单独的HFile中以及行可以跨越多个列族的事实. HBase如何确保跨越多个列族的行上的put / delete操作确实是原子的?
解决方法
对该行的所有写入,无论该行中可能有多少列族,都转到一个regionserver,然后该regionserver将编辑写入区域WAL(Hlog),然后写入同步,然后是数据被添加到memstore中以便它被提供.然后 – 一旦memstore达到极限 – 将memstore刷新到磁盘.如果区域服务器出现任何问题并且崩溃/死亡/拔出插头,则可以运行WAL以保持一切一致.有关更多详细信息,请参阅
HBASE-2283和
Hbase Architecture 101.