一种数据读写方法、介质及设备与流程

文档序号:16246070发布日期:2018-12-11 23:35阅读:219来源:国知局
一种数据读写方法、介质及设备与流程

本发明涉及计算机技术领域,具体涉及一种数据读写方法、介质及设备。

背景技术

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



技术实现要素:

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

第一方面,本发明提供了一种数据读写方法,包括:

获取新数据的写请求;

根据所述写请求,采用io调度器,基于预先设置的三级存储系统,将所述新数据写入二级存储设备;所述二级存储设备为非易失存储器;

获取所述新数据的读请求;

根据所述读请求,利用操作系统直接从所述二级存储设备中读取所述新数据。

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

所述一级存储设备为外存;所述三级存储设备为内存。

可选的,在所述获取新数据的写请求的步骤之后,还包括:

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

判断所述评估结果是否达到预设阈值;

若达到,则执行所述根据所述写请求,采用io调度器,基于预先设置的三级存储系统,将所述新数据写入二级存储设备的步骤。

可选的,还包括:若判断所述评估结果没有达到预设阈值;

则根据所述写请求,采用io调度器,基于预先设置的三级存储系统,将新数据写入所述一级存储设备;

所述根据所述读请求,利用操作系统直接从所述二级存储设备中读取所述新数据,包括:

根据所述读请求,利用操作系统从所述一级存储设备将所述新数据复制到所述三级存储设备;

从所述三级存储设备中读取所述新数据。

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

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

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

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

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

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

本发明提供一种数据读写方法,通过将需要改写的数据写入非易失存储器,相较于写入外存,能够加快数据写入的速度;而读取数据时,直接从非易失存储器中读取该数据,能够加快数据读取的速度,进而提高数据读写的速度,优化数据读写性能。

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

附图说明

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

图1为本发明提供的一种数据读写方法的流程图。

具体实施方式

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

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

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

第一实施例:

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

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

步骤s102:根据所述写请求,采用io调度器,基于预先设置的三级存储系统,将所述新数据写入二级存储设备;所述二级存储设备为非易失存储器。

步骤s103:获取所述新数据的读请求。

步骤s104:根据所述读请求,利用操作系统直接从所述二级存储设备中读取所述新数据。

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

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

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

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

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

在数据读写技术中,外存中每个地址对应一个数据,在根据写请求向二级存储设备中写入数据时,需要将相应的地址映射到二级存储设备中,使二级存储设备中的地址与外存中的地址相同,在二级存设备中写入相应数据改写后的新数据。这样,对用户来说,会直观的认为新数据写入到了外存中,而实际上,新数据写入到了二级存储设备中,通过这种遮页方式,不仅能够提高数据读写性能,而且可靠性好,能够保证可靠的文件操作。

在本发明提供的一个具体实施例中,在所述获取新数据的写请求的步骤之后,还包括:评估所述写请求中需要写入的新数据的性能,获得评估结果;判断所述评估结果是否达到预设阈值;若达到,则执行所述根据所述写请求,采用io调度器,基于预先设置的三级存储系统,将所述新数据写入二级存储设备的步骤。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上,为本发明提供的一种数据读写方法。

第二实施例:

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

第三实施例:

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

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

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

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

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