所有对于一行的写入,无论这一行有多少列族,都会被发送到一个regionserver上,并且该regionserver将该编辑写入regions WAL(Hlog),然后进行同步写入,接着数据被添加到内存存储器中以便提供服务。当内存存储器达到其上限时,内存存储器中的内容将被刷新到磁盘。如果regionserver发生任何问题并且崩溃/死机/断电,WAL可以通过运行来保持一致性。更多详细信息请参见HBASE-2283和Hbase Architecture 101。
HBase目前实现了行级原子性,尽管写入多个HFile,通过同时刷新所有列族来实现。当最大的列族达到配置的刷新大小时,触发刷新操作。还有一个额外的MemStore级别时间戳,允许对MemStore读取进行多版本并发控制,但是对于写入HFiles的键/值而言,这种时间戳是不存在的。要切换到按列族刷新(提高效率的理想功能),需要在文件格式中添加类似的时间戳。