CN112799595B - 数据处理方法、设备及存储介质 - Google Patents

数据处理方法、设备及存储介质 Download PDF

Info

Publication number
CN112799595B
CN112799595B CN202110145715.6A CN202110145715A CN112799595B CN 112799595 B CN112799595 B CN 112799595B CN 202110145715 A CN202110145715 A CN 202110145715A CN 112799595 B CN112799595 B CN 112799595B
Authority
CN
China
Prior art keywords
data
stored
storage
memory
cache device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110145715.6A
Other languages
English (en)
Other versions
CN112799595A (zh
Inventor
叶怀胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202110145715.6A priority Critical patent/CN112799595B/zh
Publication of CN112799595A publication Critical patent/CN112799595A/zh
Application granted granted Critical
Publication of CN112799595B publication Critical patent/CN112799595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例公开了一种数据处理方法、设备及计算机存储介质,其中所述方法包括:获得待存储数据;将待存储数据存储到缓存设备中;其中,在检测到触发事件的情况下将所述缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性。

Description

数据处理方法、设备及存储介质
技术领域
本申请涉及数据处理技术,具体涉及一种数据处理方法、设备及计算机存储介质。
背景技术
相关技术中,在电子设备掉电或发生故障的情况下,易失性内存如随机存取存储器(RAM)中的数据会丢失。为避免数据丢失,可将RAM中的数据缓存至诸如硬盘或磁盘等缓存设备中。即利用缓存技术将RAM中的数据缓存至缓存设备中,但在缓存过程中,需要采用协议栈才可将RAM中的数据缓存至硬盘或磁盘中,缓存至硬盘或磁盘中的数据需要协议栈才可被读取出。其中,协议栈较为复杂,利用其进行数据缓存或读取,无形当中加大了数据缓存或读取的延时,无法满足低延时的要求。
发明内容
为解决现有存在的技术问题,本申请实施例提供一种数据处理方法、设备及计算机存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,包括:
获得待存储数据;
将待存储数据存储到缓存设备中;
其中,在检测到触发事件的情况下将所述缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性。
上述方案中,所述被移动至存储设备中进行存储的数据的被访问频次或被访问概率低于所述缓存设备中被保留下的数据的被访问频次或被访问概率。
上述方案中,所述缓存设备和存储设备中均包括至少两个数据块;所述缓存设备中的各数据块与所述存储设备中的各数据块对应;
所述方法还包括:
在检测到触发事件的情况下,
确定缓存设备中的目标数据块,所述目标数据块表征为所述缓存设备中用于存储被访问频次或被访问概率低的数据的数据块;
确定所述存储设备中与所述目标数据块对应的数据块;
将所述目标数据块中存储的数据移动至所确定出的所述存储设备中的数据块进行存储。
上述方案中,所述方法还包括:处理器能够读取所述缓存设备中存储的数据、和/或读取所述存储设备中存储的数据。
上述方案中,所述方法包括:
所述处理器判断是否能够从缓存设备中读取出期望数据;
判断为是的情况下,从所述缓存设备中读取出期望数据;
判断为否的情况下,从存储设备中读取出期望数据。
上述方案中,所述方法包括:
在所述缓存设备存储数据的容量达到容量阈值、和/或在所述缓存设备中存储的数据低于数据阈值的情况下,检测到触发事件。
上述方案中,所述获得待存储数据,将待存储数据存储到缓存设备中,包括:
获得内存中的数据;
将获得的数据作为待存储数据;
将待存储数据复制至缓存设备中。
上述方案中,所述内存为易失性内存,所述缓存设备为非易失性内存,所述存储设备为磁盘或硬盘。
本申请实施例提供一种数据处理设备,包括:处理器、缓存设备及存储设备;其中,所述处理器,用于:
获得待存储数据;
将待存储数据存储到缓存设备中;
其中,在检测到触发事件的情况下将所述缓存设备中存储的至少部分数据被移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现前述数据处理方法的步骤。
本申请实施例提供一种数据处理方法、设备及计算机存储介质,其中所述方法包括:获得待存储数据;将待存储数据存储到缓存设备中;其中,在检测到触发事件的情况下将所述缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性。
本申请实施例中,可将待存储数据直接存储到缓存设备中以及将缓存设备中被移动的数据直接存储到存储设备中,与相关技术中需要协议栈进行数据读写的方案相比,可有效缩短数据存储(写数据)的延时,更适用于待存储的数据容量大的应用场景,可满足存储低延时的需求。为避免缓存设备中被移动出去的数据的丢失,可将这些数据及时存储到存储设备中,以方便后续对这些数据的读取或查找。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例的数据处理方法的实现流程示意图一;
图2为本申请实施例的数据处理方法的实现流程示意图二;
图3为本申请实施例的数据处理方法的实现流程示意图三;
图4为本申请实施例的逻辑设备、CPU和易失性内存之间的读写示意图;
图5为本申请实施例的NVDIMM和HDD的数据块的对应示意图;
图6为本申请实施例的数据处理设备的构成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供一种数据处理方法,应用于数据处理设备中。该数据处理设备可以为任何需要进行数据存储的设备,诸如手机、平板电脑、台式机,还如服务器、云系统等。
如图1所示,所述数据处理方法包括:
S101:获得待存储数据;
本步骤中,读取或接收需要存储的数据,需要存储的数据即可视为待存储数据。在实际应用中,考虑到在掉电的情况下易失性内存RAM中的数据会丢失,可读取RAM中的数据作为待存储数据。
S102:将待存储数据存储到缓存设备中;
本申请实施例中涉及到缓存设备和存储设备。其中,存储设备存储容量大,通常采用硬盘或磁盘。考虑到非易失性内存的读写延迟与易失性内存的差距越来越小,且单个非易失性内存的存储容量与易失性内存的存储容量相当、或大于易失性内存的存储容量。且非易失内存不但可以像易失性内存一样被中央处理器(CPU)直接寻址,且存储在其中的数据在设备断电后不会丢失,考虑到非易失性内存的以上优势,本申请中将非易失性内存作为缓存设备。将待存储数据存储到非易失性内存中。
S103:在检测到触发事件的情况下将缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性。
本步骤中,考虑到硬盘或磁盘的存储容量大,存储设备采用硬盘或磁盘,可存储大量的数据。触发事件可以是任何合理的能够触发将缓存设备中的部分数据移动至存储设备中进行存储的事件。如缓存设备中缓存的数据的容量达到容量阈值,产生掉电或宕机等意外情况,和/或在设定的时间周期到来时产生所述触发事件并检测生成的触发事件。此外,还可以在存储设备中存储的数据低于数据阈值的情况下,生成触发事件并检测到该触发事件。
前述S101~S103中,可将待存储数据直接存储到缓存设备中以及将缓存设备中被移动的数据直接存储到存储设备中,与相关技术中需要协议栈进行数据读写的方案相比,可有效缩短数据存储(写数据)的延时,更适用于待存储的数据容量大的应用场景,可满足存储低延时的需求。此外,在触发事件的触发下将缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中缓存设备中由于部分数据被移动出去所以其空闲出部分存储空间,可方便其它待存储数据的存储。为避免缓存设备中被移动出去的数据的丢失,将这些数据存储到存储设备中,以方便后续对这些数据的读取或查找。即本申请实施例可避免在缓存数据容量大的场景下由于缓存容量有限数据无法被成功缓存的问题,缓存设备中被移动出去的数据可及时存储到存储设备中,可避免数据丢失的问题。
本申请实施例中,缓存设备中被移动至存储设备进行存储的数据的属性与缓存设备中被保留下的数据的属性不同。所述属性可以表征为数据的被访问概率或被访问频次。缓存设备中被移动至存储设备的数据可以是缓存设备中被访问频次少或被访问概率低的数据,被保留下来的数据可以是缓存设备中被访问频次大或被访问概率高的数据。即所述被移动至存储设备中进行存储的数据的被访问频次或被访问概率低于所述缓存设备中被保留下的数据的被访问频次或被访问概率。在技术实现上,如图2所示,所述数据处理方法包括:
S201:在检测到触发事件的情况下,获得所述缓存设备中存储的各数据的属性,所述属性表征为数据的被访问频次或被访问概率;
本步骤中,在检测到触发事件的情况下,计算缓存设备中存储的各数据在历史上被访问的概率或频次。或者,读取已经计算出的各数据在历史上被访问的频次或概率。
S202:从缓存设备存储的各数据中,筛选出被访问频次少或被访问概率低的数据;
S203:将筛选出的数据移动至存储设备中进行存储。
S201~S203中,被移动至存储设备的数据为缓存设备中被访问频次少或被访问概率低的数据。被访问概率高或被访问频次大的数据仍然保留在存储设备中。由于缓存设备为非易失性设备且非易失性设备具有可被CPU直接寻址的特性,将被访问概率高或被访问频次大的数据保留在存储设备中,可方便被CPU直接寻址,即直接从非易失性设备中读取出数据。
在具体实现上,所述缓存设备和存储设备中均包括至少两个数据块,所述数据块中具有被存储的数据;所述缓存设备中的各数据块与所述存储设备中的各数据块对应。如图3所示,所述数据处理方法还包括:
S301:在检测到触发事件的情况下,确定缓存设备中的目标数据块,所述目标数据块表征为所述缓存设备中用于存储被访问频次少或被访问概率低的数据的数据块;
考虑到在缓存设备中,以数据块的形式进行的数据存储。在检测到触发事件下,确定缓存设备中哪些数据块是用于存储被访问频次少或被访问概率低的数据的数据块,这样的数据块为目标数据块。
S302:确定所述存储设备中与所述目标数据块对应的数据块;
预先将缓存设备和存储设备中的数据块进行对应关系的建立。例如,预先将缓存设备中的第32个数据块中的数据与存储设备中的第5个数据块中的数据进行建立,得到缓存设备和存储设备的数据块之间的对应关系。应用时,在根据S301确定出缓存设备中哪些数据块是用于存储被访问频次少或被访问概率低的数据的数据块的情况下,依据预先建立的对应关系,确定存储设备中需要存储待移动数据的数据块(与目标数据块对应的数据块)。
S303:将所述目标数据块中存储的数据移动至所确定出的所述存储设备中的数据块进行存储。
S301~S303中,基于缓存设备和存储设备的数据块实现数据的移动,可实现数据的直接移动,与相关技术中利用协议栈进行数据存储的方案相比,能够有效减小存储时延,更适用于待存储的数据容量大的应用场景,可满足存储低延时的需求。
在一个可选的方案中,所述获得待存储数据,将待存储数据存储到缓存设备中,包括:获得内存中的数据;将获得的数据作为待存储数据;将待存储数据复制至缓存设备中。在实际应用中,所述内存为易失性内存,为避免易失性内存中的数据的丢失,将易失性内存中的数据作为待存储数据复制到非易失性内存中。考虑到非易失性内存的容量,相比于存储设备如磁盘或硬盘小,所以在检测到触发事件的情况下将非易失性内存中缓存的被访问频次少或被访问概率低的数据移动至磁盘或硬盘进行存储,将被访问频次多或被访问概率大的数据仍然保留在非易性内存中进行存储。在数据处理设备的内部,通常处理器如CPU需要访问数据。本申请实施例中将经常被CPU访问的数据保留在非易失性内存中,以方便CPU从非易失性内存中对数据进行寻址。即在技术层面上,处理器能够读取所述缓存设备中存储的数据。因为非易失性内存具有可被CPU直接寻址的特性,所以对于非易失性内存中存储的数据,CPU可直接从中读取出。此外,对于存储设备中存储的数据,处理器也可以读取所述存储设备中存储的数据。因为存储设备中存储的是被访问频次少或被访问概率小的数据,处理器如果想要读取这样的数据,需从存储设备中进行读取。将被访问频次多或被访问概率高的数据存储在非易失性内存中,可大大方便CPU对其的直接寻址。此外,还及时将被访问频次少或被访问概率低的数据存储到硬盘或磁盘中,可有效避免数据丢失的问题,避免后续CPU想要查找一被访问概率低的数据而查找不到的问题。
考虑到经过数据被移动存储的方案之后,非易性内存和硬/磁盘存储有不同被访问频次或被访问概率的数据。对于处理器来说,如果其需要读取一数据,将该数据视为期望数据,其可以先判断是否能够从缓存设备中读取出期望数据;判断为是的情况下,说明该数据被存储至非易失性内存中,从所述缓存设备中读取出期望数据。判断为否的情况下,说明该数据未被存储至非易失性内存中应被存储到存储设备中,从存储设备中读取出期望数据。避免了CPU读取不到数据的情况。
下面结合附图4和附图5及具体实施例对本申请作进一步详细的说明。
可以理解,向缓存设备中缓存数据、或移动数据至存储设备相当于向缓存设备和存储设备中写入数据。本申请实施例中,还可以从缓存设备和/或存储设备中读取数据。即本应用场景中,可执行数据的写入和读取,即读写双向。选择非易失性双列直插式内存模块(Non-Volatile Dual In-line Memory Module,NVDIMM)作为非易失性设备,其为一种随机存取存储器,即使断电如意外断电、系统崩溃或正常关机也能保留存储的内容。选择硬盘驱动器(Hard Disk Drive,HDD)作为存储设备,具有容量大、空间足的特性。本应用场景中,充分利用NVDIMM和HDD的优势,实现数据的低时延写入和快速读出,以满足大数据场景下的低时延要求。
本应用场景中,以前述的数据处理方法应用于嵌入式(Linux)系统为例。利用系统的逻辑卷管理工具dmsetup创建逻辑设备。此处的创建逻辑设备可视为将系统中的NVDIMM和HDD进行逻辑上的绑定。在系统中存在有一个NVDIMM和HDD的情况下,可将NVDIMM和HDD进行逻辑上的绑定。被逻辑绑定的两个设备为一逻辑设备,对外作为一个整体来看,如对于想要向其写数据和/或读数据的CPU来看,仅需清楚向逻辑设备写入数据或者从逻辑设备中读取数据,而并不需要关心是从逻辑设备中的哪个实体内存如是从NVDIMM还是HDD中将数据读取出,还是向NVDIMM还是HDD中写入数据。创建逻辑设备的目的之一在于令外界如CPU将其作为整体来看,并不需要CPU关心其内部构造。如此,也可方便CPU向其写入数据或从中读取数据。如果系统中存在有至少两个NVDIMM和/或HDD的情况下,在创建逻辑设备的方案中,还需要获知哪个NVDIMM和哪个HDD作为一个逻辑设备被使用。NVDIMM和HDD包括有两个或两个以上的数据块,也可称之为存储块。在对NVDIMM和HDD进行逻辑绑定之后,还需要建立NVDIMM的存储块和HDD的存储块之间的对应关系以及确定NVDIMM和HDD的相关构造参数,如存储块的大小(block_size)、存储块的高低水线和块数量等。如图5所示,为NVDIMM和HDD的构成示意图。先来看NVDIMM,其包括三个部分:超级块(superblock)、元数据(entries)及存储块(block)。其中,superblock代表配置信息,如每个存储块是多少个字节、每个存储块与HDD的存储块之间的对应关系。entries代表为用于管理超级块和存储块的数据。在存储块上设置有高水线(high watermark)和低水线(low watermark)。在NVDIMM缓存的数据达到了高水线,则可产生触发事件,将高水线及其之前的存储块中的数据依次移动至HDD中进行存储,相当于回写(writeback)数据到HDD中,直至回写到低水线为止停止回写。再来看HDD,将HDD划分为多个block,如图中的第0个block,第1个block…第36个block等等。NVDIMM的存储块和HDD的存储块之间的对应关系可以如图5所示,诸如,NVDIMM中的第4个block与HDD中的第5个block对应,NVDIMM中的第2个block与HDD中的第33个block对应。利用这种关系,在对NVDIMM中的数据进行移动即回写数据到HDD中时,可将NVDIMM中的第4个block中的数据回写到第5个block,NVDIMM中的第2个block中的数据回写到HDD中的第33个block。
此外,将NVDIMM和HDD绑定成一个逻辑设备,还有如下的好处:能够让外界感觉到逻辑设备具有比NVDIMM更大的存储空间。示例性地,假定NVDIMM有20个存储块,HDD有100个存储块(block),那么逻辑设备作为一个整体来说,其对外来看可以是比20个存储块多的存储块,如100个存储块。在绑定成逻辑设备的方案中,因为在绑定成逻辑设备的过程中NVDIMM和HDD加起来所有存储块(100+10=110)个块中会存在有一些存储块如10个存储块作为代价无法被使用。
如图4所示,所述系统包括CPU、易失性内存DRAM以及逻辑设备。逻辑设备包括NVDIMM和HDD。以防止DRAM中的数据掉电丢失,CPU读取DRAM中的数据,将其作为待存储数据存储到逻辑设备中。利用本申请实施例的技术方案对于CPU来说其仅知道将待存储数据存储到逻辑设备中,不需要关心逻辑设备的内部构成。而实际上,由于DRAM和HDD之间存在有较大的数据读写速度差,所以在其二者之间引入了NVDIMM。利用了NVDIMM和DRAM数据读写之间的差异小于DRAM和HDD之间的差异的特性,存储数据到逻辑设备,在逻辑设备的内部,是先将待存储数据存储到了NVDIMM中。在检测到触发事件如NVDIMM缓存的数据达到了高水线的情况下,确定NVDIMM中哪些数据块是用于存储被访问频次少或被访问概率低的数据的数据块,将其视为目标数据块。依据预先建立的NVDIMM的存储块和HDD的存储块之间的对应关系,确定HDD中需要存储待移动数据的数据块(与目标数据块对应的数据块)。按照对应关系,将NVDIMM中被访问频次少或被访问概率低的数据移动或回写至HDD中可存储待移动数据的数据块。示例性地,假定经过对访问频次的计算,NVDIMM中的第4个block中的数据的被访问频次低,NVDIMM中的第4个block与HDD中的第5个block对应,则可将NVDIMM中的第4个block中的数据回写到第5个block,以完成数据从NVDIMM回写到HDD的方案。在NVDIMM中的block尽量存储被访问概率大或被访问频次高的数据(热数据)。
前述方案中,可将待存储数据直接存储到NVDIMM中以及将NVDIMM中被移动的数据直接回写到HDD中,与相关技术中需要协议栈进行数据读写的方案相比,可有效缩短数据存储(写数据)的延时,更适用于待存储的数据容量大的应用场景,可满足存储低延时的需求。此外,NVDIMM中数据的被回写可使其空闲出部分存储空间,可方便其它待存储数据的存储。为避免被回写的丢失,将这些数据及时存储到HDD中,可避免数据丢失的问题。
通俗来讲,本应用场景中被写入(存储)至逻辑设备中的数据先被写入至NVDIMM中,在NVDIMM中的水线达到高水线时,将一些存储块中的数据回写到HDD中,回写到HDD中的数据应该是NVDIMM中被访问效率低或被访问频次少的数据,而不是热数据,热数据应该被保留在NVDIMM中,以加快对数据的写入和读取,使得整个系统性能更好。此外,如图5所示,可当数据从第7个块回写到第4个块停止回写。被回写的数据在NVDIMM中占的存储块如第2个存储块被释放,下一次可用于存储其它数据。本方案中也可视为利用NVDIMM读写数据的速度比HDD快,所以将原本应该存储到HDD中的数据先存储到NVDIMM当中。考虑到NVDIMM的存储容量没有HDD大,NVDIMM中要优先存储热数据(经常被访问的数据),不经常被访问的数据如要被淘汰的数据存储到HDD中。
在图4中,CPU和DRAM之间为双向箭头,意味着CPU可对DRAM中的操作进行读操作也可以进行写操作,即可进行读写双向。DRAM和NVDIMM之间为双向箭头,自然地,DRAM和(由NVDIMM和HDD绑定形成的)逻辑设备之间也为双向箭头。对于CPU来说,其既可以读写NVDIMM中的数据,还可以读写逻辑设备中的数据。NVDIMM和HDD之间为单向箭头,代表可将NVDIMM中的非热数据即被访问概率低或频次少的数据回写入至HDD中。DRAM和NVDIMM之间的ReadHit(表示命中)代表着CPU要从逻辑设备中读数据,在这个数据没有被回写到HDD中仍然保留在NVDIMM中的情况下,能够从NVDIMM读取出该数据。如果这个数据已经被回写到HDD中,则意味着没有命中为read Miss,则需要从HDD中读取该数据并将其拷贝至DRAM,而不需要经过NVDIMM。这就是Read Miss的箭头指向是单向的,由HDD直接指向DRAM,而没有经过NVDIMM的原因。
本应用场景中的如上方案可视为系统的写缓存策略(dm-writecache)方案,可有效缩短数据的读写延时,更适用于待存储的数据容量大的应用场景,可满足读写低延时的需求。此外,本申请实施例的技术方案还具有如下优势:
1)选用非易失性内存作为缓存设备,因为其读写延迟接近于易失性内存,可被CPU直接访问,用作缓存设备,可将系统需要的热数据块尽可能地留在缓存设备中。CPU读写保留在其中的热数据比从HDD中读写热数据的速度要快,有效降低了访问延迟、提升了访问吞吐量。
2)dm-writecache方案采用了非易失性内存,利用非易失内存可以CPU直接寻址的特点,在复制易失内存中的数据到非易失性内存中时,可将易失内存中的数据页(内存是以页为单位进行划分的)直接copy到非易失内存充当的缓存设备中,无需过多的复杂操作如内存间的接口IO操作,即实现了数据的复制。为方便描述,可将本申请实施例中的存储方案视为非易失内存的pmem(永久内存)模式,其可快速地将非热数据回写至不可直接寻址的固态硬盘,实现了低延时的回写。
3)dm-writecache方案可主要面向随机写访问为主的应用场景,非易失性内存中由于数据的被回写可预留了比较充裕的空闲空间来缓存需要缓存的数据,可适用于对写入延迟比较敏感的应用场景。
4)dm-writecache方案中写回(writeback)数据到HDD中可尽量以连续的块为操作对象,即使在缓存被耗尽后,由于被写回的数据块通常是连续的,写入至慢速的磁盘驱动器的性能也有一定的提升。通俗来讲,NVDIMM可将要写回到HDD中的数据写入到HDD中的连续数据块内,如在回写入数据至HDD中的第32个块的时候,也会将其它需要回写的数据写入至与第32个块连续的其它块如HDD的第33、34个块。如此,可保证HDD中数据块的被连续回写,与被随机回写的方式相比,这种数据块被连续回写的方案可简化由于随机回写带来的HDD的资源负担,缩短回写时延,提升HDD的写性能。
5)dm-writecache方案可提升系统的读取效率。这是因为缓存设备中存放的数据块是未写入到存储设备(如HDD中)的“脏”数据(还未来得及回写到HDD中的数据),在其被回写到HDD中之前有可能系统会需要对其进行读取操作,这时可直接复制缓存设备中的数据块到易失性内存中,以加快CPU的读操作,从而提升了系统的整体读取性能。
本申请实施例提供一种数据处理设备,如图6所示,包括:处理器61、缓存设备60及存储设备65;其中,所述处理器61,用于:
获得待存储数据;
将待存储数据存储到缓存设备中;
其中,在检测到触发事件的情况下将所述缓存设备60中存储的至少部分数据被移动至存储设备65中进行存储,其中所述被移动至存储设备65中进行存储的数据的属性不同于所述缓存设备60中被保留下的数据的属性。
所述被移动至存储设备中进行存储的数据的被访问频次或被访问概率低于所述缓存设备中被保留下的数据的被访问频次或被访问概率。
在一个可选的方案中,所述缓存设备60和存储设备65中均包括至少两个数据块;所述缓存设备60中的各数据块与所述存储设备65中的各数据块对应;
所述方法还包括:
在检测到触发事件的情况下,
确定缓存设备60中的目标数据块,所述目标数据块表征为所述缓存设备60中用于存储被访问频次或被访问概率低的数据的数据块;
确定所述存储设备60中与所述目标数据块对应的数据块;
将所述目标数据块中存储的数据移动至所确定出的所述存储设备65中的数据块进行存储。
在一个可选的方案中,所述处理器61,用于读取所述缓存设备60中存储的数据、和/或读取所述存储设备65中存储的数据。
在一个可选的方案中,所述处理器61,用于判断是否能够从缓存设备60中读取出期望数据;
判断为是的情况下,从所述缓存设备60中读取出期望数据;
判断为否的情况下,从存储设备65中读取出期望数据。
在一个可选的方案中,所述处理器61,用于:
在所述缓存设备60存储数据的容量达到容量阈值、和/或在所述缓存设备60中存储的数据低于数据阈值的情况下,检测到触发事件。
在一个可选的方案中,所述处理器61,用于:获得待存储数据,将待存储数据存储到缓存设备65中,包括:
获得内存中的数据;
将获得的数据作为待存储数据;
将待存储数据复制至缓存设备中。
可以理解,所述处理器61在实际应用中均可由中央处理器(CPU,CentralProcessing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。缓存设备60为非易失性内存,存储设备65为磁盘或硬盘。
需要说明的是,本申请实施例的数据处理设备,由于该设备解决问题的原理与前述的数据处理方法相似,因此,数据处理设备的实施过程及实施原理均可以参见前述方法的实施过程及实施原理描述,重复之处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时至少用于执行图1至图5任一所示方法的步骤。所述计算机可读存储介质具体可以为存储器。
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种数据处理方法,包括:
获得从内存中读取的待存储数据;所述待存储数据为从所述内存中读取的所有数据;
将所述待存储数据存储到缓存设备中,以防止掉电情况下所述内存中的数据丢失;
在产生掉电或宕机的情况下,检测到触发事件;
在检测到触发事件的情况下,将所述缓存设备中存储的至少部分数据移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性;
在需要访问热数据的情况下,从所述缓存设备中读取所述热数据;所述热数据为所述缓存设备中被保留下的数据。
2.根据权利要求1所述的方法,所述被移动至存储设备中进行存储的数据的被访问频次或被访问概率低于所述缓存设备中被保留下的数据的被访问频次或被访问概率。
3.根据权利要求2所述的方法,所述缓存设备和存储设备中均包括至少两个数据块;所述缓存设备中的各数据块与所述存储设备中的各数据块对应;
所述方法还包括:
在检测到触发事件的情况下,
确定缓存设备中的目标数据块,所述目标数据块表征为所述缓存设备中用于存储被访问频次或被访问概率低的数据的数据块;
确定所述存储设备中与所述目标数据块对应的数据块;
将所述目标数据块中存储的数据移动至所确定出的所述存储设备中的数据块进行存储。
4.根据权利要求1至3任一项所述的方法,还包括:处理器能够读取所述缓存设备中存储的数据、和/或读取所述存储设备中存储的数据。
5.根据权利要求4所述的方法,包括:
所述处理器判断是否能够从缓存设备中读取出期望数据;
判断为是的情况下,从所述缓存设备中读取出期望数据;
判断为否的情况下,从存储设备中读取出期望数据。
6.根据权利要求1所述的方法,所述获得待存储数据,将待存储数据存储到缓存设备中,包括:
获得内存中的数据;
将获得的数据作为待存储数据;
将待存储数据复制至缓存设备中。
7.根据权利要求6所述的方法,所述内存为易失性内存,所述缓存设备为非易失性内存,所述存储设备为磁盘或硬盘。
8.一种数据处理设备,包括:处理器、缓存设备及存储设备;其中,所述处理器,用于:
获得从内存中读取的待存储数据;所述待存储数据为从所述内存中读取的所有数据;
将待存储数据存储到缓存设备中,以防止掉电情况下所述内存中的数据丢失;
在产生掉电或宕机的情况下,检测到触发事件;
在检测到触发事件的情况下,将所述缓存设备中存储的至少部分数据被移动至存储设备中进行存储,其中所述被移动至存储设备中进行存储的数据的属性不同于所述缓存设备中被保留下的数据的属性;
在需要访问热数据的情况下,从所述缓存设备中读取所述热数据;所述热数据为所述缓存设备中被保留下的数据。
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现权利要求1至7任一所述方法的步骤。
CN202110145715.6A 2021-02-02 2021-02-02 数据处理方法、设备及存储介质 Active CN112799595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110145715.6A CN112799595B (zh) 2021-02-02 2021-02-02 数据处理方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110145715.6A CN112799595B (zh) 2021-02-02 2021-02-02 数据处理方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112799595A CN112799595A (zh) 2021-05-14
CN112799595B true CN112799595B (zh) 2023-06-23

Family

ID=75813851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110145715.6A Active CN112799595B (zh) 2021-02-02 2021-02-02 数据处理方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112799595B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485855A (zh) * 2021-08-02 2021-10-08 安徽文香科技有限公司 一种内存共享方法、装置、电子设备及可读存储介质
CN114546270B (zh) * 2022-02-15 2024-02-09 杭州隆埠科技有限公司 数据存储方法、装置及电子设备
CN115016740B (zh) * 2022-07-14 2022-11-18 杭州优云科技有限公司 一种数据恢复方法、装置、电子设备及存储介质
CN115712389B (zh) * 2022-10-28 2023-07-04 哈尔滨工业大学(深圳) 一种数据存储介质间的调度方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005049975A (ja) * 2003-07-30 2005-02-24 Motorola Inc 記憶データの安全性を高めたメモリ装置およびこれを用いたデータ処理装置
WO2016062084A1 (zh) * 2014-10-24 2016-04-28 中兴通讯股份有限公司 掉电处理方法、装置及电子设备
CN107193694A (zh) * 2017-05-27 2017-09-22 郑州云海信息技术有限公司 一种新型存储系统、存储方法及装置
CN107632784A (zh) * 2017-09-14 2018-01-26 郑州云海信息技术有限公司 一种存储介质和分布式存储系统的缓存方法、装置及设备
CN108829344A (zh) * 2018-05-24 2018-11-16 北京百度网讯科技有限公司 数据存储方法、装置及存储介质
CN110032526A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、系统及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250274A (ja) * 1992-03-04 1993-09-28 Mitsubishi Electric Corp ディスクキャッシュ装置
CN101727395A (zh) * 2008-10-17 2010-06-09 深圳市朗科科技股份有限公司 闪存设备的管理系统、方法及闪存设备
EP2662774A4 (en) * 2011-10-27 2014-01-08 Huawei Tech Co Ltd METHOD FOR CONTROLLING BUFFER MAPPING AND BUFFER SYSTEM
US9195396B2 (en) * 2013-03-14 2015-11-24 SanDisk Technologies, Inc. Estimating access frequency statistics for storage device
CN109508301B (zh) * 2017-09-14 2021-10-29 中国移动通信集团重庆有限公司 终端、应用数据的处理方法、数据处理设备及存储介质
CN109597568B (zh) * 2018-09-18 2022-03-04 天津字节跳动科技有限公司 一种数据存储方法、装置、终端设备及存储介质
CN111752466B (zh) * 2019-03-27 2024-02-13 深圳市茁壮网络股份有限公司 一种数据存储方法及装置
CN111538461B (zh) * 2020-04-21 2023-04-07 招商局金融科技有限公司 基于固态硬盘缓存的数据读写方法、装置及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005049975A (ja) * 2003-07-30 2005-02-24 Motorola Inc 記憶データの安全性を高めたメモリ装置およびこれを用いたデータ処理装置
WO2016062084A1 (zh) * 2014-10-24 2016-04-28 中兴通讯股份有限公司 掉电处理方法、装置及电子设备
CN107193694A (zh) * 2017-05-27 2017-09-22 郑州云海信息技术有限公司 一种新型存储系统、存储方法及装置
CN107632784A (zh) * 2017-09-14 2018-01-26 郑州云海信息技术有限公司 一种存储介质和分布式存储系统的缓存方法、装置及设备
CN108829344A (zh) * 2018-05-24 2018-11-16 北京百度网讯科技有限公司 数据存储方法、装置及存储介质
CN110032526A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、系统及设备

Also Published As

Publication number Publication date
CN112799595A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112799595B (zh) 数据处理方法、设备及存储介质
US11055230B2 (en) Logical to physical mapping
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
KR101447786B1 (ko) 파워 인터럽트 관리
KR101702201B1 (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
TWI625731B (zh) 非揮發性記憶體裝置中之揮發性記憶體架構及相關控制器
CN102782683B (zh) 用于数据库服务器的缓冲池扩展
US9053007B2 (en) Memory system, controller, and method for controlling memory system
CN108431783B (zh) 访问请求处理方法、装置及计算机系统
TWI494761B (zh) 分割實體區塊之方法及記憶體系統
US8214581B2 (en) System and method for cache synchronization
US20100293337A1 (en) Systems and methods of tiered caching
US20140351526A1 (en) Data storage controller with multiple pipelines
US20130227198A1 (en) Flash memory device and electronic device employing thereof
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
JP2013239099A (ja) 制御装置、記憶装置、記憶制御方法
US10162760B2 (en) Hibernation based on page source
US20090132757A1 (en) Storage system for improving efficiency in accessing flash memory and method for the same
CN108431784B (zh) 访问请求处理方法、装置及计算机系统
US20140219041A1 (en) Storage device and data processing method thereof
CN105138277A (zh) 一种固态盘阵列的缓存管理方法
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
US20130304973A1 (en) Control device, storage device, and storage control method
CN112035065B (zh) 一种数据写入方法、装置、设备及计算机可读存储介质
KR20120029239A (ko) Pram을 이용하는 데이터 기록 시스템 및 그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant