TokyoCabinet及TokyoTyrant源码阅读
文章平均质量分 85
gxfan
平平淡淡,从从容容
展开
-
Tokyo Cabinet TCHDB源码阅读——tchdbnew、tchdbopen及相关函数代码
在此说明一下:我分析的TC版本是1.4.43,我的阅读流程主要是遵循对TC数据文件的标准操作流程进行分析,即打开数据文件->存放record->获取record->关闭数据文件,期间会涉及到一些相关函数,我会逐个分析。另外,按我粗浅的理解,我觉得TC不能称为一个完整意义上的数据库,它仅仅是一个存储引擎而已,它的所有操作最终都是针对系统中的一个普通文件进行的,因此以后的分析中,我把TC操原创 2010-04-24 12:18:00 · 3186 阅读 · 1 评论 -
Tokyo Cabinet的TCHDB数据结构
原帖网址:http://www.cppblog.com/converse/archive/2010/01/10/105317.html为了学习key-value数据库,我打算详细阅读Tokyo Cabinet这个存储引擎的源代码,目前网上已有了一些相关的原理分析资料,我转载的这篇文章原名叫《tokyocabinet1.4.19阅读笔记(一)hash数据库概述 》,写得很详细了,我把它贴在这里,转载 2010-04-24 12:05:00 · 2710 阅读 · 0 评论 -
Tokyo Cabinet TCHDB源码阅读——tchdbput及相关函数代码注释
tchdbput用于向数据文件写入一条记录(record),写入的模式有很多种,比如覆盖写(overwrite)、追加写(append)、加一个整数、加一个浮点数或者调用回调函数处理,然后把结果当作记录写入等等,这个函数在执行时是直接写入硬盘中的数据文件的,和它对应有一个异步写入的函数,名为tchdbputasync,此函数暂时把记录放于drp(delayed record pool)中,原创 2010-04-26 20:54:00 · 2540 阅读 · 1 评论 -
Tokyo Cabinet TCHDB源码阅读——delayed record pool和tchdbputasyncimpl相关函数代码注释
在TCHDB结构中跟异步写操作相关的成员有以下几个: bool async; /* whether asynchronous storing is called */TCXSTR *drpool; /* delayed record pool */TCXSTR *drpdef; /* deferred records of the delayed原创 2010-05-07 17:03:00 · 2364 阅读 · 0 评论 -
Tokyo Cabinet TCHDB源码阅读——关于变长变量的高效存取(节约存储空间)
在TC中,很多地方为了节约存储空间,在保存变量时不会直接存放变量类型长度的值(比如4字节或8字节的值)到文件中,它会探测变量用来表示值的有效字节数,然后把这些有意义的字节保存起来,在后面读取该变量时,TC会把该变量的所有有效字节都读出来,从而计算出该变量所表示的值。为了实现这个功能,TC的做法是:把变量的每个字节当成一个有符号数,最高位仅做为符号位使用,前面7位才用来表示真正的值,这样一来,文原创 2010-05-07 18:14:00 · 2578 阅读 · 0 评论