会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
nhj11
博客园
首页
联系
管理
2022年8月14日
windows命令行启动docker
摘要: 问题 之前都是在Linux上面安装docker,并且习惯了命令行操作。因此在Windows下面安装docker后,对于用鼠标进行启动的方式感觉不习惯,希望在Windows PowerShell下进行启动 参考资料 探索PowerShell (三) PowerShell下使用Aliases 为 Win
阅读全文
posted @ 2022-08-14 08:11 nhj11
阅读(5272)
评论(0)
推荐(0)
2022年8月13日
升级gcc版本
摘要: 问题 在centos7上编译leveldb时需要使用googletest,由于自带的gcc是4.8版本,没法通过编译(不支持c++11中的一些新特性),因此需要升级gcc。 解决 通过百度查询升级命令并正确安装。 $ sudo yum install centos-release-scl $ sud
阅读全文
posted @ 2022-08-13 07:34 nhj11
阅读(120)
评论(0)
推荐(0)
2022年7月23日
leveldb线程模型
摘要: 概述 leveldb支持一个进程中多线程访问 leveldb会启动一个后端线程进行compact操作 涉及的竟态访问资源,memtable,sstable,manifest,各种文件的生成和删除 写操作 通过写队列的方式,只允许一个线程进行写操作 并且在写log和memtable会进行unlock,
阅读全文
posted @ 2022-07-23 14:51 nhj11
阅读(205)
评论(0)
推荐(0)
leveldb工具类分析
摘要: 跳表 参考资料 Skip List--跳表 特点 跳表插入、删除、查找元素的时间复杂度跟红黑树都是一样量级的,时间复杂度都是O(logn) 空间换时间,如果每层有1/2的概率保存数据,那么需要2n的空间 最底层链表会按顺序保存所有数据,因此区间查找效率高 leveldb跳表实现 节点定义 Node只
阅读全文
posted @ 2022-07-23 14:49 nhj11
阅读(166)
评论(0)
推荐(0)
leveldb主要操作流程
摘要: Open open主要有两个功能:加载元数据重建current version和对log进行重做 graph TD; DB::Open==>DBImpl::Recover DBImpl::Recover-->Env::LockFile Env::LockFile-->Env::FileExists{
阅读全文
posted @ 2022-07-23 14:47 nhj11
阅读(129)
评论(0)
推荐(0)
leveldb存储格式
摘要: 一. 数据库文件 leveldb每个数据库对应一个目录并且每个数据库只能被一个进程打开。 *.ldb:数据存储文件 *.log:日志文件 MANIFEST-*:元数据信息 CURRENT:当前版本的元数据文件名 LOCK:文件锁,避免被多个进程打开 LOG:leveldb日志信息 二. 元数据文件
阅读全文
posted @ 2022-07-23 08:37 nhj11
阅读(434)
评论(0)
推荐(0)