在一道清醒的电光中,他意识到自己的心灵承载不起这么多往事的负重,他被自己和他人的回忆纠缠如同致命的长毛刺穿心房,不禁羡慕凋零玫瑰间横斜的蜘蛛网如此沉着,杂草毒麦如此坚韧,二月清晨的明亮空气如此从容。 ——《百年孤独》
如何让消息写入CommitLog文件近乎内存写性能的
Broker是基于OS操作系统的PageCache和顺序写两个机制,来提升写入CommitLog文件的性能的
首先Broker是以顺序的方式将消息写入CommitLog磁盘文件的,也就是每次写入就是在文件末尾追加一条数据就可以了,对文件进行顺序写的性能要比对文件随机写的性能提升很多
另外,数据写入CommitLog文件的时候,其实不是直接写入底层的物理磁盘文件的,而是先进入OS的PageCache内存缓存中,然后后续由OS的后台线程选一个时间,异步化的将OS PageCache内存缓冲中的数据刷入底层的磁盘文件