键值数据库存储引擎设计与实现

来源 :华中科技大学 | 被引量 : 0次 | 上传用户:lin0929
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来随着云计算的兴起,WEB2.0应用的增多,大数据越来越成为IT行业内被大家关注的热门话题。大数据时代其中最显著的特点就是数据量大,数据种类繁多,而关系数据库应对这些海量的半结构化和非结构化数据显得无能为力,这极大的催生了以key-value数据库为代表的Nosql数据库的发展。  如何在使用较少系统资源的情况下保持较高的数据库系统性能始终是一个难题。为了解决该问题,设计并实现了一种占用内存资源较少同时读写性能较高的key-value存储引擎—IndexDB。IndexDB由Logstore和Sortedstore两部分组成,用户可选Logstore在内存中的结构,Sortedstore分层存储,下层数据由上层数据合并而来;系统使用LSM树的思想来保证系统具有较高的随机写性能,利用字典树的思想构建数据在内存中的索引,利用无损压缩编码的技术来减小索引的内存占用,借助布隆过滤器、布谷鸟哈希等技术来过滤系统无效读取操作,利用索引+固态硬盘的方法来保证系统具有较高的随机读性能。IndexDB适用于重复数据删除等需要定长记录的应用场景。  实验测试表明,IndexDB系统具有非常高的顺序读写性能和随机读写性能,在系统可用内存只有2GB的情况下,系统能够管理上亿条数据记录,平均每条记录占用内存大约为1字节左右,在可用系统资源较小,数据量较大的情况下IndexDB的随机读性能大概是LevelDB的2倍。
其他文献
基于虚拟化技术的云平台有强大的资源聚合、动态伸缩及服务迁移能力,应用前景广阔。另一方面,由于云平台中资源集中,多租户共享的特点,更加容易受到恶意代码的攻击,用户保存在云端
Internet已经成为目前世界上最大的信息资源库,在这样一个无限、无序的空间早,如何快速、准确地查询到用户所需要的信息已经成为摆在人们面前的一大难题。为解决这一难题,使网络
随着国内网络应用的发展,结构越来越复杂和规模越来越大的网络系统需要网络管理软件来保证系统的正常运作,网络管理的质量会直接影响网络的运行质量,管理好一个网络与网络的建设
通过网络进行软件的自动更新,可以大大的降低软件供应商维护软件的开销,也可以给软件用户带来更便捷的更新服务。但是在分布式环境中进行软件更新存在许多安全问题,现有的更新系
90年代以来,关于混杂控制系统分析、综合与优化设计的理论方法的研究已成为控制科学界的一个具有挑战性课题。矿区电力系统是一种典型的混杂系统。随着煤炭工业的迅速发展,矿区
学位
呼吸音是人体呼吸系统与外界在换气运动中产生的音的总称,蕴含着丰富的呼吸系统病理和生理信息。然而呼吸音的随机性、呼吸音获取和分析技术的细节方面的诸多不同,致使呼吸音分
随着互联网的高速发展,以网络视频为主的网络多媒体已经成为互联网行业最为重要的服务内容之一。近年来,国内互联网开放平台已经起步,开放平台开放应用程序编程接口给开发者,开发
移动AdHoc网络作为一种新型的移动多跳无线网络,与传统的无线网络有着许多不同的特点。它既不依赖于任何固定的基站也不需要集中的管理,而是通过移动节点间的相互协作、自我组
自从90年代后期互联网络进入我国之后,便以惊人的速度发展,到现在,互联网尤如血管一样遍布我国,应该说互联网带来了一场深刻的社会变革,带来了管理手段和生活生产的全面革新,极大地
本文对粗糙集近似合成与信息变换进行了论述。文章首先给出了各种类型的经典和模糊二元关系的复合及其性质,定义了两个近似空间的合成的概念,并得到了近似空间的合成与近似算子