Tair 中存放在主节点中的表的创建共分为五步:
1)根据当前m_hash_table表,统计出每一个alive节点上存储的bucket数量(包括master bucket和slave bucket)。假设有节点A,B,C和D,则形成数据如下的map,同时在扫描主节点的过程当中判断主节点是否down,如果不可用,则需要执行第五步快速建表:
注意:
在检查可用节点列表的...
分类:
其他好文 时间:
2014-10-13 18:32:37
阅读次数:
357
项目这周就截止了,这算是我第一个有导师指导的真正意义上的C++项目,项目基本完成,想要实现的功能也已经实现,并做了大量的性能测试。不过这对于业界来说,可能完成的还不够成熟,还有许多待改进的地方,还不能马上投入使用,还需要进行严格的考验,毕竟tair的应用场景太重要了,不容一丝疏忽。但于我个人而言,帮助还是挺大的,不仅是多了一次有价值的项目经验,更是学到了一些项目之外的东西,比如计划的重要性,惰性的...
分类:
数据库 时间:
2014-09-07 19:50:05
阅读次数:
422
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,目前方案中提出的三个重点问题已经全部解决,如下所示:如何获取key的prefix_size问题:Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size如何建立prefix bloomfilter:Tair LDB基于Prefixkey的范围查找性能优化...
分类:
数据库 时间:
2014-09-05 18:23:31
阅读次数:
432
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,目前已经解决了前面两个问题:如何获取key的prefix_size问题“Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size”。如何建立prefix bloomfilter“Tair LDB基于Prefixkey的范围查找性能优化项目之如何建立pre...
分类:
数据库 时间:
2014-09-05 14:24:01
阅读次数:
380
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,上次解决了如何获取key的prefix_size问题“Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size”。今天来继续解决第二个问题。在提案中有以下描述:提取到prefix_size信息后,我们对所有的keys实现prefix bloomfilte...
分类:
数据库 时间:
2014-09-05 10:01:51
阅读次数:
287
New Document/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */
/* Author: Nicolas Hery - http://nicolashery.com */
/* Version: b13fe65ca28d2e568c6ed5d7f06581183df8f2ff */
/* Source: http...
分类:
数据库 时间:
2014-08-22 19:47:49
阅读次数:
362
基于prefix bloomfilter的过滤思想和get_range接口数据的特点,在导师的指导下,提出如下的简单方案,对get_range接口的范围查找过程进行优化,使得能够根据prefix进行过滤,减少无效的磁盘IO。...
分类:
数据库 时间:
2014-08-04 14:35:57
阅读次数:
248
“Tair LDB基于Prefixkey的范围查找性能优化”这个项目刚好进行了一个月,这一个月主要是熟悉项目、掌握项目和提出设计方案的过程,下面从几个方面总结下个人在该项目上所做的工作及自己的个人所得所感。 项目工作简单总结1. 项目实施计划的确定不管什么类型的项目(大、小,难、易),在项目开展之前都应该有个可实施的计划,一方面能够确保项目的进度,另一方面也能防止有些人三天打鱼两天晒网的心态。在导...
分类:
数据库 时间:
2014-08-04 14:22:47
阅读次数:
337
tair是一个分布式KV存储引擎,当新增机器或者有机器down掉的时候,tair的dataserver会根据ConfigServer生成的新的对照表进行数据的迁移和清理。在数据清理的过程中就用到了在tair中新增的Compaction方式——CompactRangeSelfLevel,顾名思义,这个...
分类:
数据库 时间:
2014-08-03 12:37:25
阅读次数:
885
经过这段时间对淘宝开源K/V缓存系统tair基础接口put/get/get_range等源码的详细剖析后,按自己的理解简单总结下tair中我较关心的get和get_range这两个接口的基本实现流程。由于get_range接口是最新几个版本才加入的功能,因此以前的tair Java客户端及最新版本安装后的命令行测试中都没有加入get_range测试接口,这无疑给需要专门优化get_range接口的...
分类:
其他好文 时间:
2014-07-28 15:58:53
阅读次数:
450