关于ttserver, mongodb, couchbase. ssdb ,tair, leveldb的一点使用体验
2年前使用的ttserver,性能很高,支持分布式,但稳定性不足,当存储容量达到亿级的时间经常会出现无法插入的情况,而且不知道是什么原因造成的错误,重启后也无济于事,只好重启开新库。
单库写入性能 2000/sec,当数据量增大到亿级的时候,只是轻微的降低。
双库写入性能 2000/sec,当数据量增大到亿级的时候,只是轻微的降低。
单与双对写入性能影响不大。
然后开始使用mongodb,mongodb支持分布式也支持分片,可以说功能相当强大,但在我的服务器环境中(机械硬盘)插入速度却是非常慢(10/sec)
单库写入性能 12/sec。
双库写入性能 10/sec。
couchbase 支持分布式集群,也支持多数据中心同步,且任意一台机器都可以既读又写,而且支持web管理,非常方便。
不足之处,就是内存占用非常高,cpu也特别高,而且当数据量达到1000多万的时候还写swap。
博客园也使用了couchbase。
博客园关于couchbase的cpu负载高的说明:http://www.cnblogs.com/cmt/archive/2013/05/21/3090761.html
竞然是因为一个久拖而未解的bug引起的,这在生产环境下怎么用呀。
最后使用的是google的leveldb,总共发现了两个方案,一是taobao的tair(http://tair.taobao.org/), 一是ssdb(http://www.ideawu.com/ssdb/)
tair是taobao开发的,有多人在维护,是一个团队项目,支持分布式/负载均衡/failover,底层库支持redis/leveldb, 功能可以说是非常优秀,但缺点是客户端只支持java和c++,如果要在php中使用,需要自己开发接口。但对小团队来说,这是一个非常大的问题。还有就是文档不详尽,因为功能丰富,所以配制起来相对来说复杂,因为文档不详尽, 所以配制过程麻烦挺多。
对ssdb,开发主力也即作者自己,但主流语言的客户端都支持(php/python),性能之高就不用说了,资源占用也特别的低,还支持分布式,配制起来非常方便,只需要修改一个文件,而且这个文件只有10几行。缺点说是文档比较分散,哪里都有,也不知道哪个是官方文档。
对于tair,感觉纯粹为了开源而开源,开源后的支持工作做的不到位,ssdb则完全面向开发者,感觉是真正的开源软件,适合创业团队使用。
以上为个人的使用体验,如有不足之处,还请多多指教。
关于ttserver, mongodb, couchbase. ssdb ,tair, leveldb的一点使用体验的更多相关文章
- leveldb 性能、使用场景评估
最近有个业务写远远大于读,读也集中在最近写入,这不很适合采用leveldb存储么,leveldb业界貌似ssdb用得挺广,花了两天时间就ssdb简单做下测试,以下总结. ssdb 是leveldb的r ...
- Tair LDB基于Prefixkey中期范围内查找性能优化项目总结
"Tair LDB基于Prefixkey该范围内查找性能优化"该项目是仅一个月.这个月主要是熟悉项目..以下从几个方面总结下个人在该项目上所做的工作及自己的个人所得所感. 项目工作 ...
- 全内存的redis用习惯了?使用基于硬盘存储类似redis的nosql产品ssdb呢?
首先说一下背景,在双十一的时候,我们系统接受X宝的订单推送,同事原先的实现方式是使用redis的List作为推送数据的承载,在非大促的场景下, 一切运行正常,内存占用大概3-4G,机器是16G内存.由 ...
- 全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢?
首先说一下背景,在双十一的时候,我们系统接受X宝的订单推送,同事原先的实现方式是使用redis的List作为推送数据的承载,在非大促的场景下, 一切运行正常,内存占用大概3-4G,机器是16G内存.由 ...
- ssdb的高可用,源码分析
ssdb,一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.——这是其官网的自我介绍. ssdb在leveldb存储库的基础上进行改造和丰富,添加了类似redis操作的接口, ...
- MySQL与MongoDB的区别
一.MongoDB简介 什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB 旨 ...
- 文件缓存tmpfs + 数据缓存SSDB(一)
一.文件缓存tmpfs 1.特性 1) 基于内存的文件系统,RAW+SWAP,虚拟内存 2) tmpfs使用虚拟内存,/dev/shm/使用共享内存 3) 访问速度快,可以动态调整大小 4) 没有持久 ...
- 【MongoDB】6.关于MongoDB存储文件的 命令执行+代码执行
参考:http://www.runoob.com/mongodb/mongodb-gridfs.html 1.命令执行 MongoDB GridFS GridFS 用于存储和恢复那些超过16M(BSO ...
- [转载]MongoDB的真正性能
最近开始研究MySQL和MongoDB,发现这方面资料不多.尤其是真正的说到点子上的文章,太少了. 有一些对比测试的文章基本上都是瞎测,测试方法都测到了马腿上,得出的结论基本上都是NoSQL毫无价值 ...
随机推荐
- ios学习之 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解.这篇文章就对Certificate.Provisioni ...
- UI基础:UICollectionView
UITableView 和 UICollectionView的设计思路: 1.UITableView 的布局由TableView和UItableViewDelegate完成. 2.UICollecti ...
- Raising Modulo Numbers_快速幂取模算法
Description People are different. Some secretly read magazines full of interesting girls' pictures, ...
- 向post请求中写入数据,最终保存在了HttpWebRequest.Params中
一.向post请求中写入数据,最终保存在了HttpWebRequest.Params中: 1)如果存入的是IDictionary类型的字符串变量,如:“username=administrator”, ...
- C/C++学习之路
在嵌入式的路上,仅仅会一种C语言是远远不够的,所以便在学习stm32的同时,开始学习C++,为以后做准备.由于学习之初,为了能激发自己的兴趣,便模仿别人写了一个截屏小软件,当然可能是世上最垃圾的截图软 ...
- magento十大免费插件
10. 自定义分层导航风格URL:http://www.magentocommerce.com/magento-connect/custom-layered-navigation-style.html ...
- 触控(Touch) 、 布局(Layout)
1 使用触控实现一个简易的画板 1.1 问题 触控(Touch)是一个UITouch类型的对象,当用户触摸了屏幕上的视图时自动被创建,通常使用触控实现绘图.涂鸦.手写等功能.本案例使用触控实现一个简易 ...
- Ubuntu 14.04 AM335x TI-RTOS 编译
/************************************************************************************* * Ubuntu 14.0 ...
- 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query
A non-empty zero-indexed string S is given. String S consists of N characters from the set of upper- ...
- 简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他
函数式编程 Lambda exec,eval和assert语句,repr函数 lambda语句 用来创建简短的单行匿名函数 print_assign = lambda name, value: n ...