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 1
已经 star2333
|
5
homfen 2016-05-03 15:33:46 +08:00
撞头像了😓
|
6
zzzvvvxxxd 2016-05-03 15:37:43 +08:00
纯 SE 的项目吗
为什么没有 pom = = 用 maven 吧骚年 |
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 1
这种规模实在称不上"创造"啊. 仅索引就超过内存大小之后, 如果楼主还有更漂亮的方法的话再找偶评论.
|
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 1
@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 的随机读差不太多
|