开发者社区> 问答> 正文

[@徐雷frank][¥20]copy-on-write写时复制这个技术究竟是怎么样的?

月下丶 2018-12-14 23:40:27 464

在读《Redis设计与实现》关于哈希表扩容的时候,发现这么一段话:

执行BGSAVE命令或者BGREWRITEAOF命令的过程中,Redis需要创建当前服务器进程的子进程,而大多数操作系统都采用写时复制(copy-on-write)来优化子进程的使用效率,所以在子进程存在期间,服务器会提高负载因子的阈值,从而避免在子进程存在期间进行哈希表扩展操作,避免不必要的内存写入操作,最大限度地节约内存。

NoSQL Redis
分享到
取消 提交回答
全部回答(1)
  • 徐雷frank
    2019-07-17 23:21:50

    1、写时复制(copy-on-write)用于Linux内核的内核同页合并功能,其他语言也有此模式,包括C、C++和Java都有实现支持
    2、写时复制思想的核心是,都在读取数据时,不需要复制数据,当修改数据时,在复制,在自己的副本中修改数据。
    3、,如果只有一个线程拥有数据,就不需要复制,可以自己直接修改,主要是为了性能考虑

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程