sudarshansarolkar / treapdb

Automatically exported from code.google.com/p/treapdb
0 stars 0 forks source link

和BDB比怎样? #1

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1. 
从使用上来讲:TreapDB提供远程访问的能力,但是你也可以直�
��用代码中的DiskTreap<K,V>这个类,把它嵌入你的代码,这样就�
��BDB的使用模式一样了。
2. 
从性能上来讲,我测试过产生300万个随机key的插入,比BDB要��
�30%左右。不过,我是用python2.6中自带的bsddb模块,所以测试��
�果可能不能反映出bdb的真实情况
PS: 
在下载包中有一个bench文件夹,bench_random_bdb.py就是测试bdb的��
�入速度的。bench_random_write.bat是测试treapdb的写入速度的

Original issue reported on code.google.com by ccnu...@gmail.com on 3 Dec 2010 at 8:42

GoogleCodeExporter commented 9 years ago
补充一下,今天查阅了一下bdb的资料,原来bdb有一个参数可��
�设置cache size,如果把cache 
size设置很大,例如1G.这样,插入的时候会直接修改内存索引�
��构,如果用户不显式地调用sync方法的话,数据不会被“刷��
�到磁盘上,直到close。这种情况下,确实可以达到5w/s,但是�
��一个隐患,就是进程崩溃后,来不及刷的数据就丢失了。

这中cache机制对我是一个启发,考虑在treapdb的后续版本中加��
�。

Original comment by ccnu...@gmail.com on 5 Dec 2010 at 1:51

GoogleCodeExporter commented 9 years ago
1. 基于treapdb,是否有建议的负载均衡或者容灾方案?
2. 
似乎mc/thrift协议,服务启动时,只能指定一个,那如果启用mc
协议,感觉还不如直接用memcache吧。如果能做到类似activemq,�
��动后支持多种协议接入,此时mc看起来才有存在的必要
3. bdb的这种cache 
size,在很多高性能的缓存中都有,感觉更常用的是以时间间�
��来写入,如可以通过参数指定每5秒从内存中刷到持久存储
4. 
使用range/prefix来操作确实是亮点,似乎还没看到别的类似的��
�源项目,但是基于这个的操作如果再丰富些就好了,如基于r
ange/prefix的删除(这个是很多使用key->value缓存最头疼的事情��
�一)。基于treapdb,外部调用也能很方便的实现(get+循环处理�
��,但性能和事务性就差很多了

挺好的项目,关注中

Original comment by kaif...@gmail.com on 7 Dec 2010 at 8:21

GoogleCodeExporter commented 9 years ago
Kaifu xu , 你好非常感谢你的反馈。

1. 
你谈到的第一点的确是很重要,也是NoSQL的必备功能,我们正
在抓紧实现,但是由于还没达到较为成熟的程度,所以还没��
�commit. 计划先实现master-slave这种方式
2. 
这一点我也感到很别扭,Memcached协议的server是我手写的,性��
�不太好,我当初主要用它来调试(Telnet),下一步计划将两个Se
rver合并,这启动一个程序,就具备两种协议的通信能力
3. 
cache的功能,暂时还没有想好加不加,主要是这样的话还需要
有个write ahead log来保证不丢数据。
4. 
理论上,基于treap数据结构,这些功能都很好实现,我们会陆
续加入。

再次对你的鼓励表示感谢!

Original comment by ccnu...@gmail.com on 7 Dec 2010 at 8:42

GoogleCodeExporter commented 9 years ago
第一点和第二点已经做到了,请看ChangeLog: 
http://code.google.com/p/treapdb/wiki/ChangeLog

Original comment by ccnu...@gmail.com on 10 Dec 2010 at 11:36

GoogleCodeExporter commented 9 years ago
@Kaifu Xu
第4点,按前缀删除的这个功能,在trunk的代码中也实现了。

Original comment by ccnu...@gmail.com on 18 Dec 2010 at 6:04