开源夏令营
文章平均质量分 70
小敏纸
个性的我,自在的我。。。
展开
-
Tair存储引擎之一Leveldb中数据的存储思想
1. Tair ldb简单介绍1.1 tair非持久化/持久化存储引擎tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 在最新版本的tair trunk中目前实现了以下4种存储引擎。非持久化:mdb持久化:fdb、kdb和原创 2014-07-15 22:31:11 · 6960 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size
目前项目已快截止,编码任务也基本完成,现在主要是性能测试。项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,首先先介绍第一个关键问题是如何解决的。在提案中有以下描述:由于getrange接口的数据是从prefixput/prefixincr接口进来的,那么prefix的长度信息就可以从它们的pkey参数得到,pkey的数据类型是dataentry原创 2014-08-22 18:14:39 · 2830 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目测试及完成总结报告
项目这周就截止了,这算是我第一个有导师指导的真正意义上的C++项目,项目基本完成,想要实现的功能也已经实现,并做了大量的性能测试。不过这对于业界来说,可能完成的还不够成熟,还有许多待改进的地方,还不能马上投入使用,还需要进行严格的考验,毕竟tair的应用场景太重要了,不容一丝疏忽。但于我个人而言,帮助还是挺大的,不仅是多了一次有价值的项目经验,更是学到了一些项目之外的东西,比如计划的重要性,惰性的原创 2014-09-07 19:42:16 · 2782 阅读 · 2 评论 -
淘宝分布式 key/value 存储引擎Tair安装部署过程及Java客户端测试一例
tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其余的备份会继续提供服务.目录1. 简介2. 安装步骤及问题小记3. 部署配置4. Java客户端测试5. 参考资料原创 2014-07-09 19:31:49 · 10501 阅读 · 6 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目之后续问题解决记录
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,目前方案中提出的三个重点问题已经全部解决,如下所示:如何获取key的prefix_size问题:Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size如何建立prefix bloomfilter:Tair LDB基于Prefixkey的范围查找性能优化原创 2014-09-05 16:12:03 · 2300 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目之如何使用prefix bloomfilter进行过滤
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,目前已经解决了前面两个问题:如何获取key的prefix_size问题“Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size”。如何建立prefix bloomfilter“Tair LDB基于Prefixkey的范围查找性能优化项目之如何建立pre原创 2014-09-05 14:01:10 · 2653 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目之如何建立prefix bloomfilter
项目是按照“Tair LDB基于Prefixkey的范围查找性能优化项目提议方案”的步骤一步步完成的,上次解决了如何获取key的prefix_size问题“Tair LDB基于Prefixkey的范围查找性能优化项目之如何提取key的prefix_size”。今天来继续解决第二个问题。在提案中有以下描述:提取到prefix_size信息后,我们对所有的keys实现prefix bloomfilte原创 2014-09-05 09:56:49 · 2277 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目中期总结
“Tair LDB基于Prefixkey的范围查找性能优化”这个项目刚好进行了一个月,这一个月主要是熟悉项目、掌握项目和提出设计方案的过程,下面从几个方面总结下个人在该项目上所做的工作及自己的个人所得所感。 项目工作简单总结1. 项目实施计划的确定不管什么类型的项目(大、小,难、易),在项目开展之前都应该有个可实施的计划,一方面能够确保项目的进度,另一方面也能防止有些人三天打鱼两天晒网的心态。在导原创 2014-08-04 13:25:43 · 3806 阅读 · 3 评论 -
对LevelDB的“升级版”存储引擎RocksDB的调研成果
Google的leveldb是个很优秀的存储引擎,但还是有一些不尽人意的地方,比如leveldb不支持多线程合并,对key范围查找的支持还很简单,未做优化措施,等等。而Facebook的RocksDB是个更彪悍的引擎,实际上是在LevelDB之上做的改进,在用法上与LevelDB非常的相似,两者的对比可以参考下面的参考资料1。这里之所以要调研rocksdb是因为rocksdb中加入了prefi原创 2014-07-28 13:51:01 · 19399 阅读 · 1 评论 -
tair ldb存储引擎性能测试方案
1. 性能测试环境 在单机环境(一台dataserver)和分布式环境(多台dataserver)下分别进行测试,或只在分布式环境下进行测试。 2. 性能测试指标主要考量两个指标(1)服务端的极限QPS(2)单个操作的响应时间rt当然其实还有其它不少指标,例如服务端的资源消耗情况、并发数等等。3. 性能测试方法主要针对tair ldb存储引擎在缓存原创 2014-07-28 12:59:34 · 3177 阅读 · 0 评论 -
tair中对get/get_range接口的理解及为get_range添加命令行测试接口
经过这段时间对淘宝开源K/V缓存系统tair基础接口put/get/get_range等源码的详细剖析后,按自己的理解简单总结下tair中我较关心的get和get_range这两个接口的基本实现流程。由于get_range接口是最新几个版本才加入的功能,因此以前的tair Java客户端及最新版本安装后的命令行测试中都没有加入get_range测试接口,这无疑给需要专门优化get_range接口的原创 2014-07-28 12:25:50 · 4617 阅读 · 0 评论 -
Tair LDB基于Prefixkey的范围查找性能优化项目提议方案
基于prefix bloomfilter的过滤思想和get_range接口数据的特点,在导师的指导下,提出如下的简单方案,对get_range接口的范围查找过程进行优化,使得能够根据prefix进行过滤,减少无效的磁盘IO。原创 2014-08-04 10:57:39 · 3010 阅读 · 0 评论