数据库研究
setsailgo
喜欢接受挑战,最喜爱的运动是篮球和围棋.相信成功的动力来源于团队的协作和个人的激情.
展开
-
tokyocabinet1.4.19阅读笔记(四)hash数据库freepool的组织与管理
这一节关注freepool的组织,freepool顾名思义,就是负责存放被删除,空闲出来的空间,以便于后面回收利用.在第一节中已经提到,这一个部分,在初始化的时候会全部读入采用malloc从堆中分配的内存中,所以对它的大部分操作都是直接在内存中进行的---除了要同步到数据库文转载 2011-09-20 16:50:05 · 811 阅读 · 0 评论 -
tokyocabinet1.4.19阅读笔记(一)hash数据库概述
开始正式的研究key-value形式的持久化存储方案了,第一个阅读的项目是tokyo cabinet,版本号是1.4.19.tokyo cabinet支持几种数据库形式,包括hash数据库,B+树数据库,fix-length数据库,table数据库。目前我仅看了第一种ha转载 2011-09-20 16:47:23 · 892 阅读 · 0 评论 -
tokyocabinet1.4.19阅读笔记(二)hash数据库查找key流程
这一节关注TC中的hash数据库如何根据一个key查找到该key所在的record,因为后续的删除,插入记录都是以查找为基础的,所以首先描述这部分内容.从上一节的概述中,可以看到record结构体中有两个成员left,right:typedef struct {转载 2011-09-20 16:48:16 · 761 阅读 · 0 评论 -
tokyocabinet1.4.19阅读笔记(三)hash数据库删除数据流程
这一节关注根据key定位到数据进行删除的整个流程。先来看这个过程的流程图,其实很简单,包括以下几个按部就班的步骤:a) 首先,根据key查找对应的记录,这个在上一节已经完整的介绍过了,当时也提到,查找操作是后续进行删除和插入新数据时的基础。如果没有找到记录转载 2011-09-20 16:49:16 · 927 阅读 · 0 评论 -
tokyocabinet1.4.19阅读笔记(五)hash数据库插入数据流程
有了前面的基础,本节讲解插入数据的流程.插入数据的实现代码,在函数tchdbputimpl中,首先这个函数会查找要插入记录的key是否已经存在,如果存在了,有很多case需要处理,在这里就不一一关注了,仅关注缺省的行为:如果key已经存在,那么覆盖原来的记录.否则,就插入转载 2011-09-20 16:50:43 · 704 阅读 · 0 评论