- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 打造先进的内存KV数据库-3 最终选择-C & B-Tree
多种索引与语言我尝试了tire树索引 B+树索引 B树索引,发现还是B树索引最快,另外使用C写了完善的B树索引,但是我发现使用cgo调用的时候,会有500%左右的性能损失,tire树大概比B树慢2倍,所以还是选择使用原生C来写完后续的进程。索引代码实现//BTree.h //实现对order序(阶)的B-TREE结构基本操作的封装。 //查找:search,插入:insert,删除:remove。
2015-12-27 00:11:46 1695
原创 Ubuntu Server 配置中的各种坑
Ubuntu Server 配置中的各种坑安装在windows下将iso镜像刻录到U盘安装,最开始使用的是UltraISO,结果安装的时候老提示找不到CDROM,后来使用win32diskimage,结果就ok了无线连浙大VPN使用xl2tpd连接浙大vpn,发现经常掉,而且wlan0都会关闭,真是烦人,后来直接使用post方法网页链接wifi:curl -d "action=login&usern
2015-12-22 22:29:58 1473
原创 打造先进的内存KV数据库-2 B树索引的建立(2)
索引的插入接上篇文章,我们实现了B树的查找log2n的算法,然而在后来的单元测试中,我发现了bug,在此进行修正,修正后的查找函数://查找指定索引 如果找到返回找到的node和position,失败的话返回最近的node和position, //并返回返回值相对于查询值是大了还是小了 true->小 false->大 优先返回大 供插入时插在前面 func (bt *B_Tree) Select(
2015-12-19 13:51:36 1013
原创 打造先进的内存KV数据库-1 B树索引的建立(1)
设计目的在搜索引擎的设计中,往往需要使用倒排索引,在当前内存价格不断走低的情况下,内存数据库必然会成为主流。KV数据库由于适合Map-Reduce用于分布式处理。 本系统设计实现如下目标: * 实现极高性能的查询 * 实现分布式集群储存 * 实现可靠的日志系统索引设计索引采用B数索引,这样做的目的是大大利用CPU的缓存,让每个节点的大小与CPU二级缓存相匹配,另外,将索引值连续储存在节点中,
2015-12-18 15:17:08 2260
原创 CPU L2缓存初探
CPU L2缓存初探探索目的为了设计高性能的内存数据库,往往要考虑CPU缓存的命中率,查阅资料发现,Intel架构的处理器有3级缓存的设置,其中L1,L2较小,L3较大但被三个核心所公用。在我使用的i7 4712mq中,使用dmidecode查看缓存大小:inszva@inszva-Aspire-E5-572G:~$ sudo dmidecode [sudo] password for inszva
2015-12-17 14:38:36 2968 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人