一种数据读写方法、终端及计算机可读存储介质

文档序号:1543601 发布日期:2020-01-17 浏览:3次 >En<

阅读说明:本技术 一种数据读写方法、终端及计算机可读存储介质 (Data reading and writing method, terminal and computer readable storage medium ) 是由 李丙洋 杨洪章 郭斌 韩银俊 丁毅 陈正华 于 2018-07-10 设计创作,主要内容包括:本发明实施例提供一种数据读写方法、终端及计算机可读存储介质,其中,所述方法包括:接收数据读取指令,所述数据读取指令包括待读取数据的特征信息;根据所述特征信息在内存中确定命中的数据索引;根据所述命中的数据索引在缓存中读取数据,其中,所述缓存为固态硬盘SSD。(The embodiment of the invention provides a data reading and writing method, a terminal and a computer readable storage medium, wherein the method comprises the following steps: receiving a data reading instruction, wherein the data reading instruction comprises characteristic information of data to be read; determining a hit data index in a memory according to the characteristic information; and reading data in a cache according to the hit data index, wherein the cache is a Solid State Disk (SSD).)

一种数据读写方法、终端及计算机可读存储介质

技术领域

本发明涉及数据存储技术领域,尤其涉及一种数据读写方法、终端及计算机可读存储介质。

背景技术

在分布式存储系统以及虚拟化等领域中,由于需要同时应对来自不同业务的压力,机械硬盘的输入/输出(Input/Output,I/O)速度往往成为系统的瓶颈。解决此问题的通常做法是在业务系统和磁盘之间使用读写速度较快的高性能内存作为I/O缓存,尽量把频繁读写的热点数据换入到缓存中,以提高系统的响应速度。

然而,在大规模系统中,热点数据总量很容易超过内存容量,因此导致内存缓存数据需要频繁淘汰和重新加载以满足业务需求,这样极大的影响缓存效果。同时,在节点重启或断电时,内存缓存需要重新加载,则会面临热点数据丢失的可能。

发明内容

本发明实施例提供一种数据读写方法、终端及计算机可读存储介质,能够解决内存限制问题,增大缓存容量,并能够保证断电后热点数据不丢失。

本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种数据读写方法,所述方法包括:

接收数据读取指令,所述数据读取指令包括待读取数据的特征信息;

根据所述特征信息在内存中确定命中的数据索引;

根据所述命中的数据索引在缓存中读取数据,其中,所述缓存为固态硬盘SSD。

第二方面,本发明实施例提供一种数据读写方法,所述方法包括:

接收数据写入指令,所述数据写入指令包括待写入数据的特征信息;

根据所述特征信息在内存中确定命中的数据索引;

根据所述特征信息更新所述命中的数据索引在缓存中所指向的位置,其中,所述缓存为固态硬盘SSD。

第三方面,本发明实施例提供一种终端,所述终端至少包括:处理器和配置为存储可执行指令的存储介质,其中:所述处理器配置为执行存储的可执行指令;

所述可执行指令配置为执行上述数据读写方法。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令配置为执行上述数据读写方法。

本发明实施例提供了一种数据读写方法、终端及计算机可读存储介质,其中,接收数据读取指令,所述数据读取指令包括待读取数据的特征信息;根据所述特征信息在内存中确定命中的数据索引;根据所述命中的数据索引在缓存中读取数据,其中,所述缓存为固态硬盘SSD;如此,由于缓存为SSD,这样能够解决内存限制问题,增大缓存容量,并且,由于根据命中的数据索引读取数据,这样可以保证断电后热点数据不丢失。

附图说明

在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。

图1为本发明实施例一数据读写方法的实现流程示意图;

图2为本发明实施例二数据读写方法的实现流程示意图;

图3为本发明实施例三数据读写方法的实现流程示意图;

图4为本发明实施例四数据读写方法的实现流程示意图;

图5为本发明实施例日志的结构示意图;

图6为本发明实施例提供的缓存结构示意图;

图7为本发明实施例通过日志回放恢复缓存的方法流程示意图;

图8为本发明实施例终端的组成结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

实施例一

本发明实施例提供一种数据读写方法,图1为本发明实施例一数据读写方法的实现流程示意图,如图1所示,所述方法包括以下步骤:

步骤S101,接收数据读取指令,所述数据读取指令包括待读取数据的特征信息。

这里,所述数据读取指令是用于对系统或者数据存储设备中所存储的多媒体数据或者交互信息进行读取操作。所述数据读取指令包括待读取数据的特征信息,所述待读取数据的特征信息可以包括操作信息、数据位置信息、数据长度等信息。其中,操作信息可以为所记录的用户在系统中的具体操作流程,数据位置信息可以为数据的实际存储地址,数据长度为读写数据的实际长度。

步骤S102,根据所述特征信息在内存中确定命中的数据索引。

数据索引用于提供指向存储在系统或者数据存储设备中的实际数据的数据位置,然后根据所指向的位置快速的获取实际数据。这里,数据索引可以为现有的任意一种数据索引,例如哈希索引。

本实施例中的命中的数据索引位于内存(Memory,MEM)中,根据所述特征信息在内存中查找数据索引,当查找到相应的数据索引,则认为数据索引命中,该查找到的数据索引即为上述命中的数据索引。

步骤S103,根据所述命中的数据索引在缓存中读取数据。

这里,所述缓存为固态硬盘(Solid State Drives,SSD),本实施例中采用SSD作为缓存,由于SSD采用闪存作为存储介质,因此,相对于机械硬盘,其读写速度更快。另外,SSD相对于传统内存,其容量更大,且相对于传统内存具备数据非易失的特性。因此,本实施例采用SSD作为缓存,不仅能够扩大缓存容量,提高系统响应速度,还能够保证数据稳定存储,不易丢失。并且,本实施例中将SSD与机械硬盘配对使用,根据SSD的容量大小将SSD与机械硬盘采用一对多的形式进行配对,使SSD作为缓存存储待读取数据。

根据所述命中的数据索引读取数据具体可以为:当数据索引命中,即查找到数据索引,那么,可以认为待读取数据在内存中具有与其对应的数据索引,此时则可以从SSD中直接读取待读取数据。

而如果数据索引未命中,即未查找到数据索引,那么则认为待读取数据在内存中不具有与其对应的数据索引,此时则直接从机械硬盘中读取数据,同时,若读取的数据为访问频度较高的热点数据,则将所述热点数据写入SSD中,并根据该热点数据的特征信息生成数据索引,将生成的数据索引加载到内存中,以便于在后续读取该热点数据时可以首先根据特征信息在内存中确定是否能够命中数据索引,当命中,则可以在SSD中直接读取该热点数据,而无需再从机械硬盘中读取该热点数据。这样,由于将未命中的热点数据写入至读取速度更快的SSD中,并为其生成数据索引,使得在后续访问系统读取该热点数据时,或者,在系统断电重启后,可以在SSD中快读读取该热点数据,避免了热点数据丢失的问题;并且,降低了机械硬盘的数据存储量,从而实现了为机械硬盘加速的目的。

本发明实施例提供的一种数据读写方法,首先接收数据读取指令,所述数据读取指令包括待读取数据的特征信息;然后根据所述特征信息在内存中确定命中的数据索引;最后根据所述命中的数据索引在缓存中读取数据,其中,所述缓存为固态硬盘SSD。由于本实施例中的缓存为SSD,这样能够解决内存限制问题,增大缓存容量,并且,由于根据命中的数据索引读取数据,这样可以保证断电后热点数据不丢失。

实施例二

基于前述的实施例,本发明实施例再提供一种数据读写方法,图2为本发明实施例二数据读写方法的实现流程示意图,如图2所示,所述方法包括以下步骤:

步骤S201,接收数据读取指令,所述数据读取指令包括待读取数据的特征信息。

这里,所述数据读取指令是用于对系统或者数据存储设备中所存储的多媒体数据或者交互信息进行读取操作。

步骤S202,根据所述特征信息在所述内存中查找数据索引。

这里,所述待读取数据的特征信息包括待读取数据的位置,其中,数据的位置可以为数据的实际存储地址。对应地,所述步骤S202包括:

步骤S2021,从所述内存中获取数据索引表。

这里,所述数据索引表中包括至少一个数据索引标识,以及与所述数据索引标识对应的数据位置信息。

步骤S2022,根据所述待读取数据的位置在数据索引表中查找数据索引。

这里,根据待读取数据的位置在数据索引表中查找数据索引,当存在数据索引标识对应的数据位置信息与上述待读取数据的位置相同时,则说明在数据索引表中具有与所述特征信息对应的数据索引,此时,将该数据索引标识对应的数据索引确定为查找到的数据索引,将查找结果标记为查找到数据索引。

反之,根据待读取数据的位置在数据索引表中查找数据索引,当不存在数据索引标识对应的数据位置信息与上述待读取数据的位置相同时,则说明在数据索引表中不具有与所述特征信息对应的数据索引,此时,直接将查找结果标记为未查找到数据索引。

步骤S203,当在所述内存中查找到数据索引时,将查找到的数据索引确定为所述命中的数据索引。

这里,当查找结果为查找到数据索引,则表明在内存中具有所述命中的数据索引,将上述查找到的数据索引确定为所述命中的数据索引。

步骤S204,当在内存中确定到所述命中的数据索引时,读取所述待读取数据的位置对应的待读取数据。

这里,当在内存中确定到所述命中的数据索引时,则表明该待读取数据为已经存储在SSD中的数据,则根据待读取数据的位置直接读取数据。

反之,当在内存中未确定到所述命中的数据索引时,则表明该待读取数据为未存储在SSD中的数据,则步骤S204可以包括:

步骤S2041:从机械硬盘中读取待读取数据。

这里,由于在内存中未确定到命中的数据索引,因此,待读取数据是存储在机械硬盘中的数据,那么,则直接从机械硬盘中读取待读取数据。

本实施例的机械硬盘可以为任意一种传统普通硬盘,例如串口硬盘(SerialATA,SATA)。

本实施例中将SSD与机械硬盘配对使用,根据SSD的容量大小将SSD与机械硬盘采用一对多的形式进行配对,并且,当采用多个机械硬盘存储数据时,多个机械硬盘可以为相同类型的机械硬盘,也可以为不同类型的机械硬盘。当同时使用SSD与机械硬盘时,SSD被用作缓存,以存储所述待存储数据;机械硬盘则用作辅助存储设备,以实现大规模系统中大量数据的存储。

步骤S2042:当所述待读取数据为热点数据时,将所述热点数据写入SSD。

这里,所述热点数据为访问频度较高的数据,本发明实施例中,系统在进行数据存储和数据处理之前,均会对该数据进行预判,判断该数据被访问的频度,当数据被频繁访问时,则说明该数据相对于其他数据为较重要的数据,则标记该数据为热点数据。另外,用户也可以预先将以后可能需要频繁访问的数据标记为热点数据,这样,在后续的数据处理过程中,该数据可以直接作为热点数据被访问。

在本实施例中,当所述待读取数据为热点数据时,表明所述待读取数据为相对较重要的数据,后续会对其进行频繁访问,而由于该待读取数据被存储在机械硬盘中,那么由于机械硬盘的读写速度慢,显然,从机械硬盘中读取该待读取数据需要的时间较长,此时则可以将该待读取数据写入至SSD,这样,由于该待读取数据为热点数据,后续可以直接从SSD中快速读取热点数据。

步骤S2043;获取所述热点数据的特征信息,根据所述热点数据的特征信息生成数据索引。

这里,根据所述热点数据的特征信息生成数据索引,将生成的数据索引加载到内存中。这样,可以方便后续读取该热点数据时能够首先根据特征信息在内存中确定是否能够命中数据索引,当命中,则可以在SSD中直接读取该热点数据,而无需再从机械硬盘中读取该热点数据。

在本发明实施例中,待读取数据可以以日志Log的形式存储在所述SSD中,其中,所述Log包括元数据和实际数据,所述元数据包括所述特征信息。

在本发明实施例中,引入“读日志”概念,即当所述待读取数据为热点数据时,待读取数据也以Log的形式写入SSD中,但是Log中的元数据固定不变,即该日志不涉及元数据变更,但是包含了实际数据本身,这样可以便于后续将该热点数据作为缓存使用。

在本实施例中,当所述待读取数据不为热点数据且所述待读取数据中的实际数据未发生变化时,也不更新所述Log中的元数据。

当所述待读取数据不为热点数据且所述待读取数据中的实际数据发生变化时,则更新所述Log中的元数据。

本发明实施例提供的一种数据读写方法,首先接收数据读取指令,所述数据读取指令包括待读取数据的特征信息;然后根据所述特征信息在内存中查找数据索引,当在所述内存中查找到数据索引时,将查找到的数据索引确定为所述命中的数据索引;最后当在内存中确定到所述命中的数据索引时,读取所述待读取数据的位置在缓存SSD中对应的待读取数据。由于本实施例中的缓存为SSD,这样能够解决内存限制问题,增大缓存容量,并且,由于根据命中的数据索引读取数据,这样可以保证断电后热点数据不丢失。

实施例三

本发明实施例提供一种数据读写方法,图3为本发明实施例三数据读写方法的实现流程示意图,如图3所示,所述方法包括以下步骤:

步骤S301,接收数据写入指令,所述数据写入指令包括待写入数据的特征信息。

这里,所述数据写入指令是用于将多媒体数据或者交互信息写入至系统或者数据存储设备中并存储的。所述数据写入指令包括待写入数据的特征信息,所述待写入数据的特征信息可以包括操作信息、数据位置信息、数据长度等信息。其中,操作信息可以为所记录的用户在系统中的具体操作流程,数据位置信息可以为数据的实际存储地址,数据长度为读写数据的实际长度。

步骤S302,根据所述特征信息在内存中确定命中的数据索引。

数据索引用于提供指向存储在系统或者数据存储设备中的实际数据的数据位置,然后根据所指向的位置快速的获取实际数据。这里,数据索引可以为现有的任意一种数据索引,例如哈希索引。

本实施例中的命中的数据索引位于内存中,根据所述特征信息在内存中查找数据索引,当查找到相应的数据索引,则认为数据索引命中,该查找到的数据索引即为上述命中的数据索引。

步骤S303,根据所述特征信息更新所述命中的数据索引在缓存中所指向的位置。

这里,所述缓存为固态硬盘SSD。本实施例中采用SSD作为缓存,由于SSD采用闪存作为存储介质,因此,相对于机械硬盘,其读写速度更快。另外,SSD相对于传统内存,其容量更大,且相对于传统内存具备数据非易失的特性。因此,本实施例采用SSD作为缓存,不仅能够扩大缓存容量,提高系统响应速度,还能够保证数据稳定存储,不易丢失。并且,本实施例中将SSD与机械硬盘配对使用,根据SSD的容量大小将SSD与机械硬盘采用一对多的形式进行配对,使SSD作为缓存存储待写入数据。

根据所述特征信息更新所述命中的数据索引具体可以为:当数据索引命中,即查找到数据索引,那么,可以认为在SSD中之前已经存储有与待写入数据相对应的原始数据,但是,由于数据发生不断变更,因此,需要对原始数据进行更新,相应地,对原始数据进行更新后,则原始数据对应的原始数据索引也将需要更新,以适应更新后的原始数据。因此,根据所述特征信息更新所述命中的数据索引,这里,所述命中的数据索引即为与原始数据对应的原始数据索引。通过对命中的数据索引进行更新,使得更新后的数据索引能够与所述待写入数据相对应。

而如果数据索引未命中,即未查找到数据索引,那么则认为在SSD中之前未存储任何与待写入数据相对应的原始数据,此时则需要根据待写入数据的特征信息构造数据索引,以生成与所述待写入数据对应的数据索引,并将生成的数据索引加载到内存中,以便于在后续需要对该待写入数据进行读取时,可以在内存中命中数据索引,根据数据索引读取该待写入数据。这样,由于根据待写入数据的特征信息生成数据索引并加载至内存中,以及将待写入数据写入至SSD中,可以增强待写入数据的数据一致性,避免了待写入数据与实际写入数据不同的问题。

本发明实施例提供的一种数据读写方法,首先接收数据写入指令,所述数据写入指令包括待写入数据的特征信息;然后根据所述特征信息在内存中确定命中的数据索引;最后根据所述特征信息更新所述命中的数据索引在缓存中所指向的位置,其中,所述缓存为固态硬盘SSD。由于本实施例中的缓存为SSD,这样能够解决内存限制问题,增大缓存容量,并且,由于SSD的读写速度快,那么,当待写入数据写入SSD即可认为写操作完成,而不用关心数据是否已经写到机械硬盘上,即无需等待机械硬盘完成数据写入即可认为写操作完成,从而达到降低写延迟的作用。

实施例四

基于前述的实施例,本发明实施例再提供一种数据读写方法,图4为本发明实施例四数据读写方法的实现流程示意图,如图4所示,所述方法包括以下步骤:

步骤S401,接收数据写入指令,所述数据写入指令包括待写入数据的特征信息。

这里,所述数据写入指令是用于将多媒体数据或者交互信息写入至系统或者数据存储设备中并存储的。

步骤S402,根据所述特征信息在内存中查找数据索引。

这里,所述待写入数据的特征信息包括待写入数据的位置,其中,数据的位置可以为数据的实际存储地址。对应地,所述步骤S202包括:

步骤S4021,从所述内存中获取数据索引表。

这里,所述数据索引表中包括至少一个数据索引标识,以及与所述数据索引标识对应的数据位置信息。

步骤S4022,根据所述待写入数据的位置在所述数据索引表中查找数据索引。

这里,根据待写入数据的位置在数据索引表中查找数据索引,当存在数据索引标识对应的数据位置信息与上述待写入数据的位置相同时,则说明在数据索引表中具有与所述特征信息对应的数据索引,此时,将该数据索引标识对应的数据索引确定为查找到的数据索引,将查找结果标记为查找到数据索引。

反之,根据待写入数据的位置在数据索引表中查找数据索引,当不存在数据索引标识对应的数据位置信息与上述待写入数据的位置相同时,则说明在数据索引表中不具有与所述特征信息对应的数据索引,此时,直接将查找结果标记为未查找到数据索引。

步骤S403,当在所述内存中查找到数据索引时,将查找到的数据索引确定为所述命中的数据索引。

这里,当查找结果为查找到数据索引,则表明在内存中具有所述命中的数据索引,将上述查找到的数据索引确定为所述命中的数据索引。

步骤S404,当在内存中确定到所述命中的数据索引时,根据所述待写入数据的位置更新所述命中的数据索引在所述SSD中所指向的位置。

这里,当在内存中确定到所述命中的数据索引时,则表明在SSD中之前已经存储有与待写入数据相对应的原始数据,且该命中的数据索引即为所述原始数据的数据索引,则根据所述待写入数据的位置更新所述命中的数据索引在所述SSD中所指向的位置,以使所述命中的数据索引在SSD中所指向的位置与待写入数据的位置一致。

反之,当在内存中未确定到所述命中的数据索引时,则表明在SSD中之前未存储任何与待写入数据相对应的原始数据,则步骤S204可以包括:

步骤S4041,获取待写入数据的特征信息。

步骤S4042,根据待写入数据的特征信息构造数据索引。

这里,根据待写入数据的特征信息构造数据索引,重新生成与所述待写入数据对应的数据索引。这样可以保证在数据发生变更时,待写入数据与其数据索引还能够保持对应,使得在后续需要对该待写入数据进行读取时,可以通过命中数据索引,根据数据索引直接读取该待写入数据。

步骤S4043,将生成的数据索引加载到内存中。

这里,将生成的数据索引加载到内存中,那么,在后续对该待写入数据进行访问时,可以直接根据待写入数据的特征信息在内存中命中数据索引,然后根据命中的数据索引访问该待写入数据。

在本发明一实施例中,所述数据读写方法还包括:

步骤S405,当所述待写入数据为热点数据时,将所述待写入数据持久化写入至所述SSD。

这里,所述热点数据为访问频度较高的数据,本发明实施例中,系统在进行数据存储和数据处理之前,均会对该数据进行预判,判断该数据被访问的频度,当数据被频繁访问时,则说明该数据相对于其他数据为较重要的数据,则标记该数据为热点数据。另外,用户也可以预先将以后可能需要频繁访问的数据标记为热点数据,这样,在后续的数据处理过程中,该数据可以直接作为热点数据被访问。

为了更便于理解本发明实施例,这里对持久化的概念进行解释说明:

持久化是指将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是将瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。也就是说,把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。

本实施例中,将待写入数据持久化至SSD中的操作,可以在执行根据特征信息在缓存中确定命中的数据索引之前进行,这样,由于在确定命中的数据索引之前,热点数据已经被持久化至SSD中,那么,即使存在系统异常断电等情况,也能保证热点数据不会丢失。此时,当系统重启后,只需要对SSD中数据回放即可恢复热点数据,并根据热点数据的特征信息重新生成数据索引,以恢复缓存,进而达到防止热点数据丢失的可能。

在本发明实施例中,所述待写入数据可以以日志Log的形式写入所述SSD中,其中,所述Log包括元数据和实际数据,所述元数据包括所述特征信息。

本发明实施例提供的一种数据读写方法,首先,接收数据写入指令,所述数据写入指令包括待写入数据的特征信息;然后,根据所述特征信息在内存中查找数据索引;当在所述内存中查找到数据索引时,将查找到的数据索引确定为所述命中的数据索引;最后,当在内存中确定到所述命中的数据索引时,根据所述待写入数据的位置更新所述命中的数据索引在所述SSD中所指向的位置。由于本实施例中的缓存为SSD,这样能够解决内存限制问题,增大缓存容量,并且,由于SSD的读写速度快,那么,当待写入数据写入SSD即可认为写操作完成,而不用关心数据是否已经写到机械硬盘上,即无需等待机械硬盘完成数据写入即可认为写操作完成,从而达到降低写延迟的作用。并且,由于将数据持久化至SSD中,可以防止热点数据丢失。

实施例五

本发明实施例提供一种数据读写方法,在文件系统日志Log的基础上,对Log进行了优化,如图5所示,为本发明实施例日志的结构示意图。从图5可以看出,日志Log采用元数据部分501+实际数据部分502的方式记录。其中,元数据部分501(特征信息)记录在SSD上,而不是机械硬盘上,实际数据部分502(待写入数据或者待读取数据)先被写入至SSD中作为缓存,然后再根据需要确定是否要写入机械硬盘。本实施例中将SSD与机械硬盘配对使用,根据SSD的容量大小将SSD与机械硬盘采用一对多的形式进行配对,使SSD作为缓存存储日志Log。

日志Log的元数据部分501为索引变更等元数据信息(包括具体操作、数据位置等信息),实际数据部分502为实际读写的数据,即实际数据。日志Log主要由以下部分构成:

OpInfo:操作;用来标示具体操作信息。

Offset:偏移;读写数据的实际位置。

Length:数据长度;读写数据的实际长度。

Data:数据;实际读写的数据。

同时,本实施例引入“读日志”概念,即对于识别为热点数据的读操作,也以日志Log的形式写入SSD中,该日志不涉及元数据变更,但包含了实际数据本身,以便后续该实际数据作为缓存使用。

图6为本发明实施例提供的缓存结构示意图,如图6所示,本实施例的缓存结构采用内存(Memory,MEM)601+SSD 602的结构。其中,MEM 601用作高速缓存只存储数据索引,SSD 602存储日志信息。因为数据索引较小,所以MEM 601中可以加载所有日志的数据索引,从而起到增大缓存容量的目的。

下面分两个流程对本发明实施例进行说明。

流程一:缓存恢复重建。

在本实施例中,因为日志已持久化到SSD中,所以在异常恢复后,可以读取日志,并通过日志回放根据日志元数据恢复缓存(即热点数据)。图7为本发明实施例通过日志回放恢复缓存的方法流程示意图,如图7所示,通过日志回放恢复缓存的方法包括以下步骤:

步骤S701,逐条读取日志信息。

步骤S702,获取日志中的元数据信息,根据元数据信息重构数据索引。

步骤S703,将重构的数据索引加载到内存,并使重构的数据索引指向日志中实际数据的位置。

流程二:实际I/O处理。

对于实际的I/O请求,根据操作类型不同,分为读操作和写操作两种,且在实际的I/O请求中对读操作和写操作是分别进行处理的。下面分别对读操作和写操作的处理流程进行说明。

其中,读操作的处理流程为:

A)如果缓存命中,根据数据索引信息直接读取SSD中的实际数据。

B)如果缓存未命中,则从SATA中读取实际数据。同时,若实际数据被标识为热点数据,则为该次读操作生成Log,并将Log写入SSD。同时生成数据索引并加载到内存。

其中,写操作的处理流程为:

A)首先写Log,记录Log信息;当Log写成功则恢复系统的上层应用。

B)如果缓存命中,根据Log中的元数据信息更新数据索引,使数据索引指向新Log。

C)如果缓存未命中,根据Log中的元数据信息重新构造数据索引,并将数据索引加载到内存中。

需要说明的是,上述缓存命中是指在缓存中查找到数据索引,相应地,上述缓存未命中是指在缓存中未查找到数据索引。

本发明实施例中,对于读操作或者写操作产生的日志Log,可以在内存中构建哈希索引,通过哈希索引实现高速缓存。其中,读操作首先在缓存中查找该哈希索引,如果缓存命中,则从SSD中直接读取实际数据,从而达到为机械硬盘加速的目的。写操作则在完成日志持久化后,更新内存缓存,以便后续访问缓存中数据;同时,在日志记录完成后,即可认为写操作完成,而无需等待机械硬盘完成数据写入才认为写操作完成,从而达到降低写延迟的目的。另外,本实施例的方法在系统断电重启后,通过日志回放即可恢复数据并重构数据索引,并恢复缓存,从而达到防止热点数据丢失,保证数据强一致性的目的。

实施例六

本发明实施例提供一种终端,图8为本发明实施例终端的组成结构示意图,如图8所示,所述终端800至少包括:处理器801和配置为存储可执行指令的存储介质802,其中:

处理器801配置为执行存储的可执行指令,所述可执行指令配置为执行上述任一实施例中所提供的数据读写方法。

需要说明的是,以上终端实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明终端实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

对应地,本发明实施例提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行本发明其他实施例提供的数据读写方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种结构体排序方法、排序装置及排序器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类