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