--数据库技术改造方案V2
背景XXXXX系统,其数据库内存放的数据量较大且要求读写速度快,目前利用的Couchbase数据库虽然能满足读写速度上的要求,但服务器必须满足较大内存且各个服务节点(服务器)都是对等存在的,一个节点出现问题并不会影响其他节点正常运行,但总内存容量会缩小
当前通过对XXXXX更多数据存储到内存,以达到提高数据的读写速率;现把两台服务器内存合并为一个内存bucket,这样的方案导致一台机器出现宕机时failover过程有不可用时间,并且部分数据有丢失的可能,且在高负载系统上有假死现象;如果再增加节点且节点的内存只有达到或超过当前节点才能发挥服务器的性能,否则就要缩减Couchbase建立的bucket的占用内存,服务器就不能合理发挥它的性能作用,由此拥有大量的对比数据就需要提供更好且合理的NOSQL数据库
Couchbase数据库本身也存在以下缺点:1
Couchbase的存储方式为Key/Value,但Value的类型很为单一,不支持数组
另外也不会自动创建docid,需要为每一文档指定一个用于存储的DocumentIndentifer;2
各种组件拼接而成,都是c++实现,导致复杂度过高,遇到奇怪的性能问题排查比较困难,(中文)文档比较欠缺;
采用缓存全部key的策略,需要大量内存
节点宕机时failover过程有不可用时间,并且有部分数据丢失的可能,在高负载系统上有假死现象;4
逐渐倾向于闭源,社区版本(免费,但不提供官方维护升级)和商业版本之间差距比较大
目前结构从结构和实际应用看,XXXXX存在问题:1、对比数据量较大;2、只有两台服务器只能做到内存扩展无法做到failover;3、内存数据达到一定比例,再写入数据效率降低;
--4、假如再添加节点就要求节点的内存必须接近当前两台节点的内存配置,否则就发挥不了现有节