请问 Journal flush 和 force_flush 有什么区别

journal 有两种队列: journal队列和force_write队列, 分别使用以下方法获取队列大小:
bookie_journal_JOURNAL_QUEUE_SIZE
bookie_journal_JOURNAL_FORCE_WRITE_QUEUE_SIZE
这两个队列的区别是什么呢?

journal 又有两种flush ,分别使用以下指标来获取对应延时。
bookie_journal_JOURNAL_SYNC
bookie_journal_JOURNAL_FLUSH_LATENCY
这两种flush的区别是什么呢?

我已知的是fore_write是os page cache 写磁盘的,触发fsync, 但是flush又是什么? 内存写到os page cache吗?

bookie_journal_JOURNAL_QUEUE_SIZE
bookie_journal_JOURNAL_FORCE_WRITE_QUEUE_SIZE

journal维护两个QUEUE,JOURNAL_QUEUE_SIZE主要用于异步解耦,JOURNAL_FORCE_WRITE_QUEUE主要用于按group提交fsync,从而减少 fsync执行次数

bookie_journal_JOURNAL_SYNC
bookie_journal_JOURNAL_FLUSH_LATENCY

bookie_journal_JOURNAL_FLUSH_LATENCY对应写BufferChannel(包装了writeBuffer+pagecache),JOURNAL_SYNC对应FORCE_WRITE执行fsync