140 likes | 241 Views
基于内存的NoSQL分布式数据库技术研究项目 ConfigDB Data-Grid的设计与实现 及测评分析. 中科大移动云计算系统实验室 孟宁. 项目要求 ConfigDB分布式数据库的设计和实现 ConfigDB系统整体架构 服务器并发处理(epoll、pthread、队列、信号) 一致性Hash分布式策略 Register/Broadcast节点管理策略 缓存性能及淘汰机制研究 性能评测. 项目目标. 板间分布式改造,验证板间分布式存储的性能。 具体到本阶段的关键目标 保持函数访问接口不变 性能下降在5%以内 分布式算法要考虑数据均衡
E N D
基于内存的NoSQL分布式数据库技术研究项目ConfigDB Data-Grid的设计与实现及测评分析 中科大移动云计算系统实验室 孟宁
项目要求 • ConfigDB分布式数据库的设计和实现 • ConfigDB系统整体架构 • 服务器并发处理(epoll、pthread、队列、信号) • 一致性Hash分布式策略 • Register/Broadcast节点管理策略 • 缓存性能及淘汰机制研究 • 性能评测
项目目标 • 板间分布式改造,验证板间分布式存储的性能。 • 具体到本阶段的关键目标 • 保持函数访问接口不变 • 性能下降在5%以内 • 分布式算法要考虑数据均衡 • 分布式算法中,节点的增加和减少要考虑数据不丢失
ConfigDB分布式数据库的设计与实现 • ConfigDB系统整体架构 • 服务器并发处理(epoll、pthread、队列、信号) • 一致性Hash分布式策略 • Register/Broadcast节点管理策略 • 缓存性能及淘汰机制研究
服务器并发处理 • epoll线程负责监听所有套接字描述符 • 任务线程读写任务处理 • 线程间采用事件(信号量)+消息队列方式通信
一致性Hash分布式策略 • 根据系统对读性能的极端要求,专门设计了指针数组方式的环形空间,以hash值为下表的指针指向数据节点信息,保证分布式策略以O(1)复杂度执行。
Register/Broadcast节点管理策略 • 第一个启动的节点为Master • 其他节点启动时 • 首先向Master注册自己的信息 • 然后从Master获得当前所有节点信息 • 最后向当前所有节点(除Master和自己外)广播自己的信息 • 在这个过程中所有节点之间两两成对地建立起来socket连接,之后的数据库访问都直接通过该socket长连接与其他节点通信。
Cache及淘汰算法性能分析 • 结论: • LRU淘汰算法没有明显提高命中率,反而时间性能大幅下降 • 原因分析: • 我们的场景没有行为特征(局部性原理),全部为全域的随机访问,因此任何淘汰算法的效果都逼近无限逼近随机淘汰。 • 如果我们知道数据库访问的行为特征,可以做专门的淘汰算法优化,可以做到提高命中率而又几乎不会造成时间性能损失。
ConfigDB系统性能测评 • 本地节点5万数据,另外9个节点45万数据 • 总访问次数为50万次,本地命中率为60%,其余为40% • 根据第二阶段的测试数据可以计算出 • 0.167004 * 60% + 9.553101 * 40% = 3.9214428 大约12.7万次/s • ConfigDB系统测试结果大约21.5万次/s
总结 • 一、对市面上的许多数据库进行了调研选型与测评分析 • 二、板内改造与测评分析 • 对共享内存方式数据库及进程间互斥机制做了大量测试分析工作 • 板内分布式、缓存方式进行了系统搭建与测评分析,形成了一些有参考价值的测试数据 • 三、ConfigDB分布式数据库的设计与实现 • 实现了ConfigDB Data-Grid分布式数据库原型系统 • 其中对服务器并发处理、一致性Hash及缓存淘汰机制做了研究和分析,并应用到了ConfigDB中。 • 未尽事宜 • 根据数据库访问的行为特征进行缓存淘汰机制的优化。
感谢各位 孟宁 中科大移动云计算系统实验室 mengning@ustc.edu.cn