1 nginx的基数树简介
基数树是一种二叉查找树,它具备二叉查找树的所有优点:检索、插入、删除节点速度快,支持范围查找,支持遍历等。在nginx中仅geo模块使用了基数树。nginx的基数树使用ngx_radix_tree_t这个结构体表示的。ngx_radix_tree_t要求存储的每个节点都必须以32位整形作为区别任意两个节点的唯一标识。ngx_radix_tree_t基数树会负责分配每个...
分类:
其他好文 时间:
2014-10-01 18:19:41
阅读次数:
235
之前用按键精灵写过一些游戏辅助,里面有个函数叫FindPic,就上在屏幕范围查找给定的一张图片,返回查找到的坐标位置。 现在,Java来实现这个函数类似的功能。 算法描述:屏幕截图,得到图A,(查找的目标图片为图B);遍历图A的像素点,根据图B的尺寸,得到图B四个角映射到图A上的四个点;得到...
分类:
编程语言 时间:
2014-09-13 17:12:25
阅读次数:
283
项目这周就截止了,这算是我第一个有导师指导的真正意义上的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
Google的leveldb是个很优秀的存储引擎,但还是有一些不尽人意的地方,比如leveldb不支持多线程合并,对key范围查找的支持还很简单,未做优化措施,等等。而Facebook的RocksDB是个更彪悍的引擎,实际上是在LevelDB之上做的改进,在用法上与LevelDB非常的相似,两者的对比可以参考下面的参考资料1。
这里之所以要调研rocksdb是因为rocksdb中加入了prefi...
分类:
数据库 时间:
2014-07-28 15:52:50
阅读次数:
445