
herDB 是一个基于 hash 索引实现的 key/value 小型 nosql ,可以内嵌于 java 程序里。 herDB 存储的文件分为.index 文件与.data 文件; 存储的 key/value 数据都是基于二进制文件存储。
herDB's jar 才不到 40KB,实现简洁;支持并发操作,并且支持索引文件的扩容功能, get 操作基本上一次磁盘随机读就能定位到数据。
一千万的数据追加在 100s 以内;索引占据的内存: 100M 左右;随机读在只读模式下 100w 次 /s
欢迎大家来怕转哈!!!!!
好冷清啊 ,都没个人回复啊!!! 好吧 我是新来的
1 lancerliu 2016-05-03 14:20:46 +08:00 where? |
2 popo233 2016-05-03 14:21:33 +08:00 via iPhone 不会 Java (冷漠脸) |
4 Bryan0Z 2016-05-03 14:49:39 +08:00 via Android 已经 star2333 |
5 homfen 2016-05-03 15:33:46 +08:00 撞头像了 |
6 zzzvvvxxxd 2016-05-03 15:37:43 +08:00 纯 SE 的项目吗 为什么没有 pom = = 用 aven 吧骚年 |
7 funer OP @zzzvvvxxxd 抽时间加上, 对 java 的项目管理工具还在熟悉中 |
9 lancerliu 2016-05-03 17:04:41 +08:00 看到了,灰灰的,没注意 |
10 zhicheng 2016-05-03 19:01:54 +08:00 via Android http://github.com/zhicheng/db 欢迎对比一下性能。 |
12 fcicq 2016-05-03 20:52:55 +08:00 这种规模实在称不上"创造"啊. 仅索引就超过内存大小之后, 如果楼主还有更漂亮的方法的话再找偶评论. |
13 funer OP @fcicq 呵呵只是玩具,弄着玩的;这里只是加快随机读的性能,难免吃内存,你要是有好的方法也可以提出来,可以学习学习~~~ |
14 Andiry 2016-05-03 23:07:05 +08:00 不错, mark 一下研究研究。 |
15 wizardforcel 2016-05-04 10:19:44 +08:00 via Android 大二数据结构课的大作业实现过一个,然而早就不知道被我扔哪儿去了。。 |
16 Andiry 2016-05-04 11:06:52 +08:00 为啥不直接用 Cuckoo hash ? |
17 fcicq 2016-05-04 11:39:21 +08:00 @funer 在 x86_64 体系结构 48bit 页表限制下, 即便一切顺利, 只读的 hash table 也不能超过 256TB. 页表本身也是一种树形的结构. 即便构建多层的 hash bucket 之后你会发现这也是一种类树结构, 也非常类似于改了参数的页表. 用上树的结构只是一个开始, 从那里到"现代"方法之间还有 40 年的距离. |
18 funer OP @Andiry 大牛哈, 多谢指导,之前都没有听过这个 Cuckoo hash,学习长见识了;自己瞎弄的一个,只是想着稍微带点自己的东西里面,不成熟~~~~ |
19 exoticknight 2016-05-04 17:18:44 +08:00 嗯有什么对比优势之类的? |
20 tabris17 2016-05-04 17:31:45 +08:00 数据一致性有保证么? |
21 TangMonk 2016-05-04 18:00:52 +08:00 不错 |
22 funer OP @exoticknight 只是写着学习用的,对比优势就是个随机读性能好些,基本和 redis 的随机读差不太多 |