LMDB中的mmap、Copy On Write、MVCC深入理解——讲得非常好,常来看看! - bonelee
lmdb创建完env对象,打开时,会做data file和lock file的mmap映射: env->me_lfd = open(lpath, O_RDWR|O_CREAT|MDB_CLOEXEC, mode); void *m = mmap(NULL, rsize, PROT_READ|PROT_WRITE, MAP_SHARED, env->me_lfd, 0); env->me_txns = m; env->me_fd = open(dpath, oflags, mode); env->me_map = mmap(addr, env->me_mapsize, prot, MAP_SHARED, env->me_fd, 0); 其他时刻都直接使用内存指针,通过系统级别的缺页异常获取对应...阅读全文