- 论坛徽章:
- 9
|
本帖最后由 wlmqgzm 于 2017-04-23 19:51 编辑
今年第1个高性能数据库产品开发已经完成,
由于支持日志功能,所以,可以满足各中对可靠性要求比较高的场合, 并且在打开日志功能的情况下, 依旧具备非常高的性能,满足了性能和可靠性 。
日志部分也是亮点, 主要是日志的写合并技术比较先进,因此,超越了各类数据库很多。
产品试用下载: http://www.haisql.com/fwzc/soft/
如果产品的试用期过了30天, 请重新下载拷贝一次, 就又可以使用30天了。
我们的软件读性能: 读4.1Kbyte的数据包大小, 4核8线程3.4G主频DDR3内存, 读900万次数据, 900并发, 花费时间23.631秒, 读性能38万QPS.
我们的软件写性能: 写4.1Kbyte的数据包大小, 写100万次数据, 100并发, 花费时间3.136秒, 写性能32万TPS.
目前版本1.0.35 查询性能已经比memcache大约高出64%,
插入/更新性能比memcache高出30%,
由于Redis只支持单CPU线程, 我们的软件支持多CPU线程,因此, 我们的性能在多核CPU下比Redis快得多.
由于与Memcache指令集兼容,包括返回的内容和错误提示均一致, 所以直接作为一个MemCached的客户端上连使用就行,
可以把我们的程序也作为一个特殊版本的MemCache服务器端来看待,
使用时与使用Memcache没有区别,
Linux下测试性能, 也可以用MemCache的测试工具, 例如:memcslap等。
===========================================================================================================================
准备开发一个高性能KV数据库, 类似MongoDB这样的, 学习MongoDB leveldb innodb,只是一个练手贴, 记录一下自己的学习开发KV数据库的过程. 
去年学习开发过一个基于ASIO的网络库, 觉得写日记对自己有帮助, 起到一定的督促作用, 而且能够得到很多高手的各种提点( 尤其感谢Windoze ).
今年比较懈怠, 为了督促自己学习和进步, 决定现在开始开发一个小型化的KV数据库, 测试了解高性能软件开发的特性.
第一次开发高性能KV数据库, 只是一个练手的过程, 记录下来, 当做工作日志, 以便日后总结经验.
非开源项目, 只是一个练手贴.
初步计划的思路是:
1)完全使用Memcached或者MYSQL的命令集, 这样就不用开发客户端代码了, 实现一个服务器端的软件.
2)测试和优化, 对比与MemCached/MongoDB的性能, 找到提升性能的思路.
以下部分是优化部分:
主要是实现一个高性能的磁盘IO系统
3)实现存储和落地, 增加KV数据库的适应性, 并且学习磁盘IO的处理之道.
4)实现存储层对SSD的完全优化, 做到完全去掉随机写, 只有随机读和顺序写, 实现一个高性能的存储层.
5)存储层实现高性能压缩, 初步计划输入输出数据可采用LZ4压缩
6)多线程的处理过程, 实现高性能的查询性能.
7)高性能的缓存系统, 学习高性能缓存的开发思路.
已经实现的部分:
7)高性能网络层, 已经实现低端4核8线程CPU上, 使用4工作线程, 4测试线程, PingPong测试, 87万QPS的性能.
具体实现 在这个帖子中讨论过 <<ASIO,高并发,高可靠, 统一网络架构,抗DOS,低端4核心服务器CPU 每秒87万QPS ECHO >> http://bbs.chinaunix.net/thread-4189684-1-1.html |
|