一种基于数据库管理的数据写入方法、介质及设备与流程

文档序号:16248158发布日期:2018-12-11 23:46阅读:104来源:国知局
一种基于数据库管理的数据写入方法、介质及设备与流程

本发明涉及计算机技术领域,具体涉及一种基于数据库管理的数据写入方法、介质及设备。

背景技术

现有技术中,数据写操作通常遵循直写策略,直接写入永久存储以保证数据的持久性。典型应用场景如网络购物中用户提交的结账信息需要迅速保存到交易数据库中,这类交易引起的写操作可能不足1kb,而典型的数据库页面大小为8kb。又如,数据库对元数据的更新修改也仅涉及少量数据的写操作,并需要立即存储到持久设备上。数据写请求的处理跨越多个层次,从下到上包括:块设备管理器、io调度器、文件系统和数据库管理系统。在写操作时,每个层次又会产生写问题,多次直写,会引起设备性能下降,元数据增加等问题。在读取数据时,也需要从永久存储中先复制数据到内存,再从内存中读取,读取速度较慢。因此,现有技术中,数据读写速度较慢,性能较差。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种基于数据库管理的数据写入方法、介质及设备,能够提高数据读写的速度,优化数据读写性能。

第一方面,本发明提供了一种基于数据库管理的数据写入方法,包括:

获取新数据的多个写请求;

对多个所述写请求进行整合,获得至少一个新写请求;

根据所述新写请求,采用io调度器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据。

可选的,所述三级存储系统,包括:一级存储设备、二级存储设备和三级存储设备;

所述一级存储设备为外存;所述二级存储设备为非易失存储器;所述三级存储设备为内存。

可选的,所述对多个所述写请求进行整合,获得至少一个新写请求,包括:

将多个所述写请求中连续的写操作整合为一个新写请求,获得至少一个新写请求。

可选的,所述根据所述新写请求,采用io调度器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据,包括:

评估所述新写请求中需要写入的新数据的性能,获得评估结果;

根据所述评估结果和所述新写请求,采用io调取器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据。

可选的,所述评估所述新写请求中需要写入的新数据的性能,获得评估结果,包括:

评估所述新写请求中需要写入的新数据的使用价值,以及将所述新数据写入所述二级存储设备后的外存碎片量和读写性能,获得评估结果。

可选的,评估所述新写请求中需要写入的新数据的使用价值,包括:

根据所述新写请求中需要写入的新数据的读写频率,评估所述新数据的使用价值。

第二方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中的一种基于数据库管理的数据写入方法。

第三方面,本发明提供一种基于数据库管理的数据写入设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中的一种基于数据库管理的数据写入方法。

本发明提供一种基于数据库管理的数据写入方法,通过将多个写请求进行整合,获得至少一个新写请求,再根据新写请求,将数据写入三级存储系统中的不同存储层,相较于现有技术中的写入外存和内存,不仅能够提高数据读写的速度,而且能够保证数据的持久化,进而优化数据读写性能;另外,通过对写请求进行整合,能够减少外存碎片,提高数据读写性能。

本发明提供一种计算机可读存储介质和一种基于数据库管理的数据写入设备,与上述一种基于数据库管理的数据写入方法出于相同的发明构思,具有相同的有益效果。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为本发明提供的一种基于数据库管理的数据写入方法的流程图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

本发明提供了一种基于数据库管理的数据写入方法、介质及设备。下面结合附图对本发明的实施例进行说明。

第一实施例:

请参考图1,图1为本发明具体实施例提供的一种基于数据库管理的数据写入方法的流程图,本实施例提供的一种基于数据库管理的数据写入方法,包括:

步骤s101:获取新数据的多个写请求。

步骤s102:对多个所述写请求进行整合,获得至少一个新写请求。

步骤s103:根据所述新写请求,采用io调度器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据。

本发明通过将多个写请求进行整合,获得至少一个新写请求,再根据新写请求,将数据写入三级存储系统中的不同存储层,相较于现有技术中的写入外存和内存,不仅能够提高数据读写的速度,而且能够保证数据的持久化,进而优化数据读写性能;另外,通过对写请求进行整合,能够减少外存碎片,提高数据读写性能。

本发明可以适用于大量小数据的读写。

其中,三级存储系统,包括:一级存储设备、二级存储设备和三级存储设备;一级存储设备为外存;二级存储设备为非易失存储器;三级存储设备为内存。其中,非易失存储器可以保证存储的数据持久化,当断电或关机后,非易失存储器中的数据并不会消失。而且,操作系统也可以直接访问非易失存储器,从非易失存储器中调取数据,使非易失存储器既有内存的作用,又有外存的作用。其中,一级存储设备可以为磁盘。

在本发明中,非易失存储器可以插在内存槽中。

在本发明中,写请求是指改写数据的写请求。

本发明适用于分布式计算过程和单机计算过程。

在本发明提供的一个具体实施例中,所述对多个所述写请求进行整合,获得至少一个新写请求,包括:将多个所述写请求中连续的写操作整合为一个新写请求,获得至少一个新写请求。

在整合写请求时,可以判断多个写请求中是否有连续的写操作,若有,则可以将连续的写操作进行整合,得到一个新写请求,若没有,则可以不对写请求进行整合。

在本发明中,也可以根据写请求的数据大小,判断是否可以进行整合。可以将多个小数据的写请求整合为一个大数据的写请求,例如,非易失存储器中可以储存数据的一个页面大小为8kb,其中,页面为存储单元,若一个小数据写入非易失存储器中的大小为4kb,则在这个页面中还可以写入一个4kb大小的数据,对于一个页面的数据,可以只做一次写操作。

这样,将小数据的写操作整合成一个大数据的写操作,能够减少额外的设备写操作。

现有技术中,当改写数据时,需要先在磁盘中找到相应的数据,再进行改写;在读取数据时,也需要先在磁盘中找到相应的数据,再将该数据复制到内存中,再从内存中读取该数据。而本发明则可以将需要改写的数据写入非易失存储器,相较于写入外存,能够加快数据写入的速度;而读取数据时,可以直接从非易失存储器中读取该数据,能够加快数据读取的速度,进而提高数据读写的速度,优化数据读写性能。

但是,当根据写请求将数据写入非易失存储器中时,会使外存中相应的数据失效,使外存中的数据出现碎片,成为一段一段的,这样,当需要读取外存中的部分数据时,若该部分数据中包含有无效数据,则需要从非易失存储器中读取相应部分的有效数据,读取性能较差。

因此,对于一段连续数据,如果需要对其中的某几个点的数据进行改写,每一个数据改写对应一个写请求,则对于该连续数据会有多个写请求,当不对写请求进行整合时,则根据写请求进行多次写操作,若写操作最后写入到非易失存储器中,则在外存中会存在多个无效数据,使外存出现很多碎片,在读数据时,会增加数据读取的时间,成本较高,性能较差;若将多个写请求进行整合,整合成一个页面级的写操作,同时对多个数据进行改写,则只需要执行一次写操作,若写操作最后写入到非易失存储器中,则会减少外存碎片,提高数据读写性能。

在本发明提供的一个具体实施例中,所述根据所述新写请求,采用io调度器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据,包括:评估所述新写请求中需要写入的新数据的性能,获得评估结果;根据所述评估结果和所述新写请求,采用io调取器,基于预先设置的三级存储系统,在相应的存储设备中写入新数据。

在获得新数据的新写请求后,需要判断新数据写入的位置,如果写入外存,则数据读取性能会差;若写入内存,则下次使用会较方便,但是断电后就会删除,不能持久保存;若写入非易失存储器,则下次使用该数据会较方便,并且能保证数据的持久性,但是会造成外存磁盘碎片增多,不利于大量连续数据的读取。因此,在根据新写请求,写入数据时,需要评估写入的新数据的性能,根据评估结果判断新数据的写入位置。

在评估新写请求中需要写入的新数据的性能时,可以采用代价评估函数,评估新数据的性能。

在本发明提供的一个具体实施例中,所述评估所述新写请求中需要写入的新数据的性能,获得评估结果,包括:评估所述新写请求中需要写入的新数据的使用价值,以及将所述新数据写入所述二级存储设备后的外存碎片量和读写性能,获得评估结果。

在评估新数据的性能时,可以评估新数据的使用价值,以及将所述新数据写入所述二级存储设备后的外存碎片量和读写性能,评估新数据写入二级存储设备后的所带来的损失和利益,平衡损失和利益后,确定新数据的写入位置。

评估新数据的性能,平衡损失和利益后,基于代价评估函数,能够得到评估结果,若该评估结果达到预设阈值,则根据新写请求,采用io调度器,基于预先设置的三级存储系统,将新数据写入二级存储设备。

若该评估结果没有达到预设阈值,则根据新写请求,采用io调度器,基于预先设置的三级存储系统,将新数据写入一级存储设备。

在读取新数据时,若新数据存储在二级存储设备,则直接从二级存储设备中读取新数据;若新数据存储在一级存储设备,则从一级存储设备复制新数据到内存,再从内存中读取新数据。

在本发明中,若获取写操作时同时获取了读操作,且读操作为读取该新数据的读操作,则可以将该新数据写入内存中,在写入内存的同时,还需要评估新数据的性能,将新数据写入一级存储设备或二级存储设备,保证数据持久化。在读取新数据时,若内存中存储有该新数据,则可以直接从内存中读取新数据。

通过对新数据性能的评估,能够尽可能提高数据读写性能,优化数据读写过程。

在本发明提供的一个具体实施例中,评估所述新写请求中需要写入的新数据的使用价值,包括:根据所述新写请求中需要写入的新数据的读写频率,评估所述新数据的使用价值。

在评估使用价值时,可以根据新数据的读写频率来评估。若新数据被改写或读取的次数较高,则将新数据写入二级存储设备,以提高数据读写性能。

但是,相应的,也会造成磁盘碎片,给数据读取过程带来损失。

在本发明中,在判断新数据是否能写入二级存储设备时,还可以采用lur(leastrecentlyused)算法,判断新数据是否能写入二级存储设备。

在本发明中,在评估新数据的性能时,可以考虑新数据的使用价值、外存碎片量、整体读写性能等中的一种或多种,这都在本发明的保护范围内。

在本发明中,在根据新写请求,将新数据写入三级存储系统时,还可以将新数据分成多个部分,每个部分可以分别存储到不同的存储设备中。

在获得新写请求后,评估新写请求中新数据的性能,其中,新数据可以包括多个数据,每个数据的评估结果不同,不同评估结果的处理方法不同,根据评估结果,将不同部分的数据分别存储到三级存储系统中。

对于新数据是否需要写入内存中,则需要评估该数据的使用价值是否很大,若短时间内新数据经常被访问、经常被改写,则可以将该数据写入内存中,并且,由于内存不能持久化,因此,写入内存的新数据,还需要写入到非易失存储器或者外存,保证数据持久化。

在本发明中,一级存储设备、二级存储设备和三级存储设备的存储空间大小关系为:一级存储设备大于二级存储设备,二级存储设备大于三级存储设备。

当二级存储设备没有存储空间时,则需要判断新数据和二级存储设备中的历史数据哪个更有价值存储在二级存储设备中,若新数据的性能评估结果比历史数据的性能评估结果差,则将新数据写入一级存储设备中;若新数据的性能评估结果比历史数据的性能评估结果好,则需要选择二级存储设备中的某个数据落到一级存储设备,再将新数据写入二级存储设备。

在选择二级存储设备中的某个数据落到一级存储设备时,需要评估二级存储设备中各个数据的性能,根据性能评估结果选择,选择评估性能较差的数据落到一级存储设备。

在本发明中,当在二级存储设备中写入了较多新数据时,对于外存,就会形成很多数据碎片,在读取大量连续数据时,就比较费时,因此,需要在固定时间对二级存储设备和一级存储设备进行整合,尽量多的保证外存数据的连续性,进而提高数据读写性能。

在对二级存储设备和一级存储设备进行整合时,可以将二级存储设备中的数据输入到一级存储设备中;也可以对一级存储设备中的数据进行重排。这都在本发明的保护范围内。

在本发明中,当外存的碎片数量大于预设碎片阈值时,需要消除碎片,重置外存。通过减少碎片,能够提高数据读写性能。

以上,为本发明提供的一种基于数据库管理的数据写入方法。

第二实施例:

在上述的第一实施例中,提供了一种基于数据库管理的数据写入方法,结合上述第一实施例,本发明第二实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的一种基于数据库管理的数据写入方法。

第三实施例:

结合第一实施例提供的一种基于数据库管理的数据写入方法,本发明还提供一种基于数据库管理的数据写入设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一实施例提供的一种基于数据库管理的数据写入方法。

本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1