此方法的功能就是把块数据和元数据文件从datanode缓冲区flush到操作系统缓冲区,如果isSync为true的话,还会做fsync系统调用把文件数据和元数据持久化到磁盘上。
参数:
- boolean isSync :是否进行同步(涉及到的底层系统调用是fsync)
- long seqno :packet的序列号(在本方法中主要用于打印日志)
/**
* Flush block data and metadata files to disk.
* @throws IOException
*/
void flushOrSync(boolean isSync, long seqno) throws IOException {
// 用来记录flush checksum和data流的flush总耗时
lo