memstore只有128m,有一条130m的数据怎么存进去?
memstore只有128m,有一条130m的数据怎么存进去?
这就涉及到底层memstore刷写源码了,通俗的理解,一旦达到刷写阈值就开始刷写,刷写是分为三步来完成的,第一步阻塞写(写的时候是需要持有uodatelock锁的),将已经写满的cellskiplistcell创建一个快照(创建快照的时候将持有updatelock锁,快照创建完成就释放锁),当快照创建完成后再创建一个cellskiplistset继续接收新数据,也就是把一条数据分为两部分了。第二步会将快照写到hbase的.tmp目录下,第三步是commit,将临时目录文件写到对应region的hdfs上。