HBase1.0.0源码分析之请求处理流程分析以Put操作为例(二)
1.通过mutate(put)
操作,将单个put操作添加到缓冲操作中,这些缓冲操作其实就是Put的父类的一个List的集合。如下:
private List<Row> writeAsyncBuffer = new LinkedList<>();
writeAsyncBuffer.add(m);
当writeAsyncBuffer
满了之后或者是人为的调用backgroundFlushCommits操作促使缓冲池中的操作被执行。
2.backgroundFlushCommits(boolean synchronous)
执行操作缓冲池中的操作,其实他也并不是自己去处理响应的操作,而是委托给一个AsyncProcess
具体进行响应操作的执行,该类是模拟一个异步处理持续请求流的类。这其中主要发生以下几个主要操作:
ap.submit(tableName, writeAsyncBuffer, true, null, false);
Map<ServerName, MultiActio