请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

AOF重写流程

老师,您好,AOF在进行重写时,fork出来的子进程我理解是在整理旧文件中的命令,aof_buf是在子进程整理期间,父进程接收到的客户端的相关命令会存在这里。但是aof_rewrite_buf的作用是什么?

正在回答 回答被采纳积分+3

2回答

梦飞_0002 2021-04-20 18:50:26

fork出的子进程并不在整理旧AOF文件中的命令,fork操作会运用操作系统提供的写时复制技术,将主进程内存页表复制一份给子进程,实现父子进程数据共享,fork出的子进程是通过内存页表读取内存数据,并解析成一条条操作命令,写入一个新的AOF文件中;

但是其中的数据并不完整,还少了在这期间产生的一系列写操作。而aof_rewrite_buf就是用来存储这部分数据的,等到子进程完成新的AOF写入后,会将该buf中的数据追加到新的AOF文件中,这样这个新AOF数据就完整了

1 回复 有任何疑惑可以回复我~
carlosfu 2020-05-14 20:14:54

fork出来的子进程我理解是在整理旧文件中的命令 这个不是整理文件,而是fork一个进程写一个新文件然后替换

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信