一种数据存储引擎制造技术

技术编号:24574204 阅读:21 留言:0更新日期:2020-06-21 00:08
本申请公开了一种数据存储引擎,涉及计算机技术领域,包括:分布式系统包括主服务器和从服务器,用于数据存储;数据集群包括数据存储客户端、主服务器和从服务器,用于用户与数据存储引擎之间的交互;数据存储客户端与主服务器和从服务器之间包括写数据操作、读数据操作;数据存入模块用于接收存入内存的数据请求和持久化文件的数据请求,且用于将数据写入主服务器,并对数据进行复制;数据归档模块用于从主服务器获取数据,并将符合预设条件的数据进行归档整理;数据轮询模块用于对归档整理的数据进行轮巡检查;数据扩容模块用于删除归档整理后的部分数据,并对分布式系统进行物理扩容;以提高数据存储引擎的读写能力,节约服务器成本。

【技术实现步骤摘要】
一种数据存储引擎
本申请涉及计算机
,具体地说,涉及一种数据存储引擎。
技术介绍
当前,针对于数据的存储目的主要存在的数据库包括Redis(RemoteDictionaryServer,远程字典服务)、MongoDB(基于分布式文件存储的数据库)和MySQL(StructuredQueryLanguage,结构化查询语言),其中Redis是一种内存型服务器,服务器成本比较高,如果服务器发生异常和数据恢复期间有流量进入,则将发生不可预计的后果,且对于复杂查询不友好;MongoDB是一种文档型数据库,通过虚拟mmap内存映射文件的方式是可行的,但是也就意味着相同大小的数据,mongoDB的存储方式需要更大磁盘空间,则当数据达到一定量级之后,扩容需要更多的成本;MySQL是一种关系型数据库,如果想要承载10000+的QPS(Queries-per-second,每秒查询率),MySQl是无法做到的,只能选其他类型数据库,另外性能也达不到内存型数据库的标准,因为数据页的增删改查,都需要维护索引,空间的准备也需要比较大。
技术实现思路
有鉴于此,本申请提供了一种数据存储引擎,以提高数据存储引擎的读写能力,节约数据存储引擎的服务器成本。为了解决上述技术问题,本申请有如下技术方案:一种数据存储引擎,所述数据存储引擎包括:分布式系统、数据集群、数据存入模块、数据归档模块、数据轮询模块和数据扩容模块;所述分布式系统包括一台主服务器和至少两台从服务器,用于数据存储;所述数据集群包括数据存储客户端、所述主服务器和所述从服务器,所述数据存储客户端用于用户与所述数据存储引擎之间的交互;所述数据存储客户端与所述主服务器和所述从服务器之间包括写数据操作、读数据操作,所述写数据操作的请求设置于所述主服务器,所述读数据操作的请求设置于所述主服务器或所述从服务器;所述数据存入模块用于接收存入内存的数据请求和持久化文件的数据请求,且用于将数据写入所述主服务器,并对所述数据进行复制;所述数据归档模块用于从所述主服务器获取所述数据,并将符合预设条件的所述数据进行归档整理;所述数据轮询模块用于对所述归档整理的所述数据进行轮巡检查;所述数据扩容模块用于删除所述归档整理后的部分所述数据,并对所述分布式系统进行物理扩容。可选地,其中:当所述分布式系统的所述主服务器发生异常时,所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器。可选地,其中:所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器,具体为:所述分布式系统通过比较所述从服务器中的数据版本与发生异常的所述主服务器中的数据版本,选取所述数据版本与发生异常的所述主服务器的所述数据版本相同的所述从服务器作为所述新的主服务器。可选地,其中:所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器,具体为:所述分布式系统通过比较所述从服务器中的数据版本与发生异常的所述主服务器中的数据版本,若任一台所述从服务器的所述数据版本均与发生异常的所述主服务器中的所述数据版本不同,则等待发生异常的所述主服务器恢复正常。可选地,其中:当所述数据存入模块将所述数据写入所述主服务器后,所述主服务器还用于反馈给所述数据存储客户端存储成功标识,所述数据存入模块还用于对所述数据进行复制。可选地,其中:所述数据存入模块对所述数据进行复制,具体为:所述数据存入模块将所述主服务器中存储的所有所述数据进行复制,并将复制的所有所述数据均同步到各所述从服务器中。可选地,其中:所述数据归档模块用于设置归档周期,并用于根据所述归档周期从所述主服务器/所述从服务器读取所述数据,将符合预设条件的所述数据进行归档整理。可选地,其中:需归档整理的数据包括热点数据和非热点数据,所述数据轮询模块进一步用于对所述热点数据按照预设周期进行轮巡检查,当所述主服务器/所述从服务器中不包含任一所述热点数据时,将对应的所述热点数据存储至所述主服务器中。可选地,其中:当从所述主服务器/所述从服务器中读取任一所述非热点数据时,若所述主服务器/所述从服务器中不包含所述非热点数据,所述数据轮询模块用于将对应的所述非热点数据存储至所述主服务器中。可选地,其中:当所述主服务器的存储空间不足时,所述数据扩容模块用于删除所述归档整理后的部分所述非热点数据。与现有技术相比,本申请所述的一种数据存储引擎,达到了如下效果:本申请提供的一种数据存储引擎,通过利用主服务器进行写数据操作,利用主服务器或从服务器进行读数据操作,在主服务器发生异常的情况下,从从服务器中选举新的主服务器,以保证数据存储任务的正常执行,提高数据存储引擎的读写能力;且通过定期对服务器中需存取的数据进行归档整理,包括更新和删除等,以保障服务器的存储空间足够。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1所示为本申请实施例所提供的一种数据存储引擎的模块图。具体实施方式如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。现有技术中,Redis的服务器成本比较高,且对于复杂查询不友好;MongoDB对于相同大小的数据需要更大磁盘空间,当数据达到一定量级之后,扩容需要更多的成本;MySQL无法做到承载10000+的QPS,其性能也达不到内存型数据库的标准。有鉴于此,本申请提供了一种数据存储引擎,以提高数据存储引擎的读写能力,节约数据存储引擎的服务器成本。以下结合附图和具体实施例进行详细说明。图1所示为本申请实施例所提供的一种数据存储引擎的模块图,请参照图1,本申请提供了一种数据存储引擎10,数据存储引擎10包括:分布式系统11、数据集群12、数据存入模块13、数据归档模块14、数据轮询模块15和数据扩容模块16;分布式系统11包括一台主服务器和至少两台从服务器,用于数据存储;数据集群12包括数据存储客户端、主服务器和从服务器,数据存储客户端用于用户与数据存储引擎10之间的交互;数据存储客户端与主服务器和从服务器之间包括写数据操作、读数据操作,写数据操作的请求设置于主服务器,读数据操作的请求设置于主服务器或从服务器;本文档来自技高网...

【技术保护点】
1.一种数据存储引擎,其特征在于,所述数据存储引擎包括:分布式系统、数据集群、数据存入模块、数据归档模块、数据轮询模块和数据扩容模块;/n所述分布式系统包括一台主服务器和至少两台从服务器,用于数据存储;/n所述数据集群包括数据存储客户端、所述主服务器和所述从服务器,所述数据存储客户端用于用户与所述数据存储引擎之间的交互;所述数据存储客户端与所述主服务器和所述从服务器之间包括写数据操作、读数据操作,所述写数据操作的请求设置于所述主服务器,所述读数据操作的请求设置于所述主服务器或所述从服务器;/n所述数据存入模块用于接收存入内存的数据请求和持久化文件的数据请求,且用于将数据写入所述主服务器,并对所述数据进行复制;/n所述数据归档模块用于从所述主服务器获取所述数据,并将符合预设条件的所述数据进行归档整理;/n所述数据轮询模块用于对所述归档整理的所述数据进行轮巡检查;/n所述数据扩容模块用于删除所述归档整理后的部分所述数据,并对所述分布式系统进行物理扩容。/n

【技术特征摘要】
1.一种数据存储引擎,其特征在于,所述数据存储引擎包括:分布式系统、数据集群、数据存入模块、数据归档模块、数据轮询模块和数据扩容模块;
所述分布式系统包括一台主服务器和至少两台从服务器,用于数据存储;
所述数据集群包括数据存储客户端、所述主服务器和所述从服务器,所述数据存储客户端用于用户与所述数据存储引擎之间的交互;所述数据存储客户端与所述主服务器和所述从服务器之间包括写数据操作、读数据操作,所述写数据操作的请求设置于所述主服务器,所述读数据操作的请求设置于所述主服务器或所述从服务器;
所述数据存入模块用于接收存入内存的数据请求和持久化文件的数据请求,且用于将数据写入所述主服务器,并对所述数据进行复制;
所述数据归档模块用于从所述主服务器获取所述数据,并将符合预设条件的所述数据进行归档整理;
所述数据轮询模块用于对所述归档整理的所述数据进行轮巡检查;
所述数据扩容模块用于删除所述归档整理后的部分所述数据,并对所述分布式系统进行物理扩容。


2.根据权利要求1所述的一种数据存储引擎,其特征在于,当所述分布式系统的所述主服务器发生异常时,所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器。


3.根据权利要求2所述的一种数据存储引擎,其特征在于,所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器,具体为:所述分布式系统通过比较所述从服务器中的数据版本与发生异常的所述主服务器中的数据版本,选取所述数据版本与发生异常的所述主服务器的所述数据版本相同的所述从服务器作为所述新的主服务器。


4.根据权利要求2所述的一种数据存储引擎,其特征在于,所述分布式系统用于自动选取任一台所述从服务器作为新的主服务器,具体为:所述分布式系统通过比...

【专利技术属性】
技术研发人员:李昭陈浩高靖崔岩卢述奇陈呈张宵
申请(专利权)人:青梧桐有限责任公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1