leveldb使用时遇到的性能问题
2015-07-21 10:43
447 查看
我用leveldb+thrift做了个存储服务,实现了跨进程的数据读写。但随着数据量的增大,我发现数据更新越来越慢。经过排查发现为leveldb使用问题,有问题的逻辑是:服务端每收到一条更新操作,都先查询该数据是否已经存在。后修改为不查询直接写,性能大幅提升(约5倍提升)。切记!
下面其他参数也尝试了,感觉无明显提升(没有数据支持,并不能说明什么):
write_buffer_size:默认4M,
多线程写:多线程调用Put()
kTargetFileSize:db/version_set.cc中的一个变量,决定sst文件的大小,默认2M。修改为8m启动服务后(首先确认原数据不会被删除),服务在空闲时会将原先的2M小文件合并成8M的大文件(并不一定全部合并),减少了文件个数。
下面其他参数也尝试了,感觉无明显提升(没有数据支持,并不能说明什么):
write_buffer_size:默认4M,
多线程写:多线程调用Put()
kTargetFileSize:db/version_set.cc中的一个变量,决定sst文件的大小,默认2M。修改为8m启动服务后(首先确认原数据不会被删除),服务在空闲时会将原先的2M小文件合并成8M的大文件(并不一定全部合并),减少了文件个数。
相关文章推荐
- Android android-common 工具
- Excel的导出与下载
- Visual Studio 2015 和 Apache Cordova
- mac xcode checkout 连接不上URL的解决方案
- JAVA设计模式之单例模式
- Trapping Rain Water
- 天才的大三暑假修行之旅.塔防游戏(一)
- 基于servlet+smartUpload的文件上传
- JSP向后台传参数的四种方式
- 函数必须绑定事件才可以
- 2015GitWebRTC编译实录9
- Windows中FS段寄存器 V2
- C++ 操作符重载
- 反复执行addChild()有问题吗?
- gedit中文文本乱码
- hdu1043 bfs 康拓展开
- [离散化]求区域的个数
- 0.HelloWorld
- 九九乘法表
- java中==和equals