- 博客(12)
- 收藏
- 关注
原创 vim代码阅读环境搭建
代码阅读,分为两种使用情况找函数定义ctags,其使用方法网上资料很多;找函数所有使用位置查找使用位置,命令模式输入::grep “xxx” ./* -R --binary-files=without-match打开一个额外窗口:cwindow该模式下的其他tips:通过ctrl + w可以在窗口切换;在查找的窗口,按回车键即可进入所在行;窗口可以不关闭,每次替换查找命令中不同的关键字即可可以达到近似图形界面代码的阅读能力。...
2021-04-09 10:52:37
248
原创 高级主题 -- Backups、Checkpoint durability、commit-level durability和Cache and eviction tuning
本文尝试继续介绍数据库中非常关键的特性,这些特性与实现细节密切相关。但是由于还没有看源代码,之前关于tokudb的实现也大量遗忘了,只能根据文档,管中窥豹。Backups,介绍了wiredtiger备份数据库的方法(通过cursors进行),支持全量备份(若为开启log,可选择一部分文件进行备份)和增量备份。全量备份时,其关键就在于将数据库的所有文件进行拷贝,因为在拷贝的过程中,文件会被app...
2020-10-10 00:02:28
218
原创 用户视角的wiredtiger -- Using the API -- cursors、事务、和错误处理
本文在阅读wiredtiger的官方文档后,总结该存储引擎的基本概念、功能和特点。Getting Start 介绍了接口的使用的基本流程,包括WT_CONNECTION ,WT_SESSION 和WT_CURSOR的创建。WT_CONNECTION于一个进程绑定,其方法多线程安全;一个connection可以创建多个WT_SESSION,每个线程访问数据库要通过打开一个session。每个ses...
2020-10-10 00:00:04
430
原创 用户视角的wiredtiger -- Storage options (1) -- 模式、列簇、索引和投影
本文主要介绍Schema, Columns, Column Groups, Indices and Projections 。wiredtiger不仅支持简单的K/V格式的table,还支持更加复杂的数据模式。Tables, rows and columns, 支持行存和列存两种方式。行存的方式为将一行的所有元素(列)存储为一个元素,然后依次存下一行;列存将一列的所有元素(行)存储为一个元素,...
2020-10-09 23:58:19
308
原创 用户视角的wiredtiger -- Storage options (2) -- 文件格式、压缩方法和加密
Log-Structured Merge Treeswiredtiger支持使用LSM树(默认为B树)以解决B树存储大数据量(无法完全缓存)时用户进行大量随机写的场景(因为大量的page的随机读和随机写)。通过配置type=lsm可以创建lsm类型的表或者index。 注意:使用LSM时不支持列存;不支持使用Named checkpoints(只能读最近的标准checkpoint)。File ...
2020-10-09 23:57:33
366
原创 wiredtiger 安装和使用
安装的详细选项,参见此。git clone git://github.com/wiredtiger/wiredtiger.gitcd wiredtigeryum -y install install autoconf automake libtoolsh autogen.sh./configure && make# To rebuild from scratch, d...
2020-10-09 23:55:56
1522
原创 How to Build a Non-Volatile Memory Database Management System论文总结
本文基于Peloton(基于NVM支持HTAP的DBMS),介绍了基于NVM构建一个数据库系统所涉及的关键模块,如下图所示。同时总结了每个关键模块的一些经典论文(具体论文见原文)对于Access Interface: Allocator Interface(内存分配器)需要保证数据的持久性, non-volatile pointers(重启后指针仍有效性,称作naming机制), 原子性。对于File System Interface, 文件系统通过支持DAX,提供了高效访问NVM的接口。对于St
2020-10-09 11:41:58
374
原创 rocksdb编译链接
按照INSTALL.md文件进行按照设置LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/libCPATH=${CPATH}:/usr/local/includemake -j release 即可。然而,编译发现db_bench仍然找不到gflag库。解决办法:在/etc/ld.so.conf文件中增加一行cat /etc/ld.so.confinclude ld.so.conf.d/*.conf/usr/local/libRun ld
2020-06-04 15:39:58
521
1
原创 gdb日常总结
输出unique_ptr中的指针: ptr._M_t->_M_head_impl输出share_ptr中的指针:ptr._M_ptr
2020-06-02 21:07:34
227
原创 mac下使用ctags
安装Exuberant Ctags从 此 下载安装包,并解压和安装;tar -zxvf ctags-5.8.tar.gz./configure && make && sudo make installwhich ctags如果返回/usr/bin/ctags,说明是系统之前默认的,需要进行下面步骤,使用刚才安装的ctags打开 ~/.bash_prof...
2020-02-29 21:12:02
1717
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人