#[derive(Clone)]
pub struct DatabaseHolder
{
pub database_lock: Arc<Mutex<Database>>
}
目前是想要实现 redis 的 rdb 。rdb 发生的时候会有许多线程会读写 DatabaseHolder ,然后执行 rdb 的线程会获取锁,然后 clone 数据结构,再把锁 drop 掉,然后把数据写入到文件中。
碰到的问题:clone 会造成内存突增,内存大概增长一倍的样子。原生的 redis 是使用 fork+copy on write 技术实现 rdb 的,在 rust 中怎么实现呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.