《基于内存的NoSQL分布式数据库技术研究项目项目总结.ppt》由会员分享,可在线阅读,更多相关《基于内存的NoSQL分布式数据库技术研究项目项目总结.ppt(17页珍藏版)》请在三一办公上搜索。
1、基于内存的NoSQL分布式数据库技术研究项目项目总结,中科大移动云计算系统实验室孟宁,Page 2,项目目标,本项目需要研究一种新的快速存储与访问机制,改善内存使用的现状,同时要保证软件架构上不做大的改动,性能没有明显下降。具体目标在保留当前函数调用的基础上,用NoSQL数据库替换现有SQL数据库一、选型与测评分析二、板内改造与测评分析板内共享内存、板内分布式、缓存方式的设计与实现,及其测评分析三、ConfigDB分布式数据库的设计与实现,Page 3,一、选型与测评分析,数据库调研数据库选型测评方案设计测评系统的设计与实现测试结果的对比分析,Page 4,数据库调研,Page 5,主要测试软
2、件架构设计,Page 6,基本测试结果对比,Page 7,二、板内改造与测评分析,共享内存方式板内分布式方式缓存方式测评与对比,Page 8,共享内存方式实现方案和测试方案,采用mmap方式实现共享内存方案,将板内所有进程通过mmap方式共享同一个数据库,每个单板的进程数目达到32个;主要进行了基本读写性能测试。1)初始化数据库,插入所需的测试数据,把数据库内存映像保存为文件;2)测试进程将数据库文件使用mmap方式映射到本进程地址空间;3)利用shell脚本分别同时执行1个、2个、4个、6个、8个、10个、12个、14个、16个和32个进程,在执行时还使用了taskset-c将进程与CPU绑
3、定。,Page 9,板内分布式实现方案和测试方案,采用分布式算法将板内所有进程构成一张全局表,每个单板的进程数目可以达到N个(最大32个),每个进程内存中存有1/N部分数据;重点测试各种读性能。分布式算法采用一致性哈希算法将数据随机分布到各节点上,当业务进程访问某个数据时,根据数据的Key计算出该数据存储在具体哪个节点,直接到该节点读取数据即可。,Page 10,进程缓存方式,采用缓存机制将通过C/S方式读到的数据缓存到本地进程,当缓存占满时随机淘汰部分数据。利用缓存机制我们对不同的缓存空间大小(100%-10%)和读取的数据范围进行测试(10%-100%),同时每次测试我们先进行了初始化,也
4、就是缓存数据的过程,然后进行实际测试。,Page 11,各种策略的综合对比,影响因子影响随机读性能的关键影响因素;“综合存储”是指整个系统存储数据所耗内存;“进程内存”是指平均到单个进程所耗内存;“最快随机读”是指在极端情况下的随机读性能,比如分布式只有一个节点的情况、缓存大小与数据大小相同等;“最慢随机读”也是指在极端情况下的随机读性能,比如分布式的节点无限多,本地缓存无限小命中率接近0%等。,Page 12,三、ConfigDB分布式数据库的设计与实现,进程间的互斥机制(信号量、共享内存)缓存性能及淘汰机制研究服务器并发处理(epoll、pthread、队列、信号)一致性Hash分布式策略
5、,Page 13,ConfigDB系统整体架构,Page 14,一致性Hash分布式策略,根据系统对读性能的极端要求,专门设计了指针数组方式的环形空间,以hash值为下表的指针指向数据节点信息,保证分布式策略以O(1)复杂度执行。,Page 15,服务器并发处理,epoll线程负责监听所有套接字描述符任务线程读写任务处理线程间采用事件(信号量)+消息队列方式通信,Page 16,总结,项目的主要产出完全自主设计了一套针对KV NoSQL数据库的自动化测评软件系统(约5000行C/ShellScript等代码),良好的分层软件架构保证了良好的扩展性,针对目前的测试模型可以全自动生成柱状对比图。对板内共享内存的局限、板内分布式和缓存技术做了大量测评分析,产出了一组有参考价值的数据。其中探索了缓存淘汰技术的适用性和局限性。完全自主设计了一套Data-Grid模式的分布式数据库系统(约4000行C代码),其中实现了一种基于一致性Hash的分布式节点管理策略,使其达到了O(1)节点查找性能;另外还实现了基于epoll和多线程方式的服务器并发处理策略。项目结论本项目按计划探索了在各种条件下的数据库读性能的极限及其影响因素,顺利完成了研究任务。,感谢各位孟宁中科大移动云计算系统实验室,