CN113741819A - 数据分级存储的方法和装置 - Google Patents
数据分级存储的方法和装置 Download PDFInfo
- Publication number
- CN113741819A CN113741819A CN202111081201.5A CN202111081201A CN113741819A CN 113741819 A CN113741819 A CN 113741819A CN 202111081201 A CN202111081201 A CN 202111081201A CN 113741819 A CN113741819 A CN 113741819A
- Authority
- CN
- China
- Prior art keywords
- channel
- storage
- layer
- channel list
- threshold
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005012 migration Effects 0.000 claims abstract description 94
- 238000013508 migration Methods 0.000 claims abstract description 94
- 238000013500 data storage Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据分级存储的方法和装置。所述方法应用于设置有至少两个存储层的分级存储结构,其中,存储层的读写性能从上到下依次降低,包括当前层和与当前层直接相邻的下一层,所述方法包括:执行调度线程,其中,如果当前层的使用量等于或大于第一阈值,则执行第一迁移操作,第一迁移操作将第一通道列表的最前面的至少一个通道迁移至下一层并追加到第二通道列表;并且如果当前层的使用量小于第一阈值,则执行第二迁移操作,第二迁移操作将第二通道列表的最后面的至少一个通道迁移至当前层并***到第一通道列表的最前面,其中,第一通道列表表示包括在当前层中的通道,第二通道列表表示包括在下一层中的通道。
Description
技术领域
本公开涉及数据存储领域,更具体地,涉及一种数据分级存储的方法和装置。
背景技术
数据分级存储是在计算机体系结构下***按照存储性能的层次结构执行数据存储的存储策略。典型的分级存储包括两层存储层,上层相比于下层具有较高的速度和较低延迟性,并且因成本等因素上层具有较小的容量。中央处理器的速度相对较快,并且大部分工作量需要访问(例如,读或写)存储器。现有技术中分级存储所采用的存储装置为传统外存装置,例如,HDD或SSD,并因此采用两级存储架构,因其所采用的存储介质的原因存储性能存在较大局限。此外,现有技术中通常将数据同时写入上层和下层,增加了存储成本。
发明内容
本公开的目的在于提供一种数据分级存储的方法和***。
根据本公开的一个或多个方面,提供了一种数据分级存储的方法,所述方法应用于设置有至少两个存储层的分级存储结构,其中,至少两个存储层的读写性能从上到下依次降低,包括当前层和与当前层直接相邻的下一层,所述方法包括:执行调度线程。其中,如果当前层的使用量等于或大于第一阈值,则执行第一迁移操作;如果当前层的使用量小于第一阈值,则执行第二迁移操作。其中,第一迁移操作将第一通道列表的最前面的至少一个通道迁移至下一层并追加到第二通道列表;第二迁移操作将第二通道列表的最后面的至少一个通道迁移至当前层并***到第一通道列表的最前面。其中,第一通道列表表示包括在当前层中的通道,第二通道列表表示包括在下一层中的通道。
可选地,所述方法还可以包括:执行通道新建操作。其中,如果当前层的使用量小于第二阈值,则在当前层新建通道,将新建的通道追加到第一通道列表,并将与新建的通道对应的存储状态设置为位于当前层;如果当前层的使用量等于或大于第二阈值,则在下一层新建通道,将新建的通道追加到第二通道列表,并将与新建的通道对应的存储状态设置为位于下一层,其中,第二阈值大于等于第一阈值。
可选地,第一迁移操作可以包括:当下一层的使用量小于第三阈值时,在下一层新建目标通道;将第一通道列表的最前面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于下一层;以及删除第一通道列表的最前面的至少一个通道。
可选地,第二迁移操作可以包括:当当前层的使用量小于第三阈值时,在当前层新建目标通道;将第二通道列表的最后面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于当前层;以及删除第二通道列表的最后面的至少一个通道。
可选地,所述方法还可以包括:当确定待迁移通道均未被写入时再执行对应的第一迁移操作和第二迁移操作中的至少一者,待迁移通道为第一通道列表的最前面的至少一个通道和第二通道列表的最后面的至少一个通道中的至少一者。
可选地,第一迁移操作还可以包括:当确定第一通道列表的最前面的至少一个通道均未被读取时,再执行删除第一通道列表的最前面的至少一个通道的步骤。
可选地,第二迁移操作还可以包括:当确定第二通道列表的最后面的至少一个通道均未被读取时,再执行删除第二通道列表的最后面的至少一个通道的步骤。
可选地,至少两个存储层包括具有最高读写性能的第一层和与第一层直接相邻的第二层,所述方法还可以包括:执行通道新建操作。其中,如果第一层的使用量小于第二阈值,则在第一层新建通道,将新建的通道追加到第一层的通道列表,并将与新建的通道对应的存储状态设置为位于第一层;如果第一层的使用量等于或大于第二阈值,则在第二层新建通道,将新建的通道追加到第二层的通道列表,并将与新建的通道对应的存储状态设置为位于第二层,其中,第二阈值大于等于第一阈值。
可选地,至少两个存储层可以包括非易失性内存、NVMe SSD、SATA SSD、HDD RAID和HDD中的至少一种。
根据本公开的一个或多个方面,提供了一种数据分级存储的装置,所述装置包括:分级存储结构,被配置为包括至少两个存储层,其中,所述至少两个存储层的读写性能从上到下依次降低,包括当前层和与所述当前层直接相邻的下一层;以及调度单元,被配置为执行调度线程。其中,如果当前层的使用量等于或大于第一阈值,调度单元执行第一迁移操作;如果当前层的使用量小于第一阈值,则调度单元执行第二迁移操作。其中,第一迁移操作将第一通道列表的最前面的至少一个通道迁移至下一层并追加到第二通道列表;第二迁移操作将第二通道列表的最后面的至少一个通道迁移至当前层并***到第一通道列表的最前面。其中,第一通道列表表示包括在当前层中的通道,第二通道列表表示包括在下一层中的通道。
可选地,所述装置还可以包括:通道新建单元,被配置为执行通道新建操作。其中,如果当前层的使用量小于第二阈值,则通道新建单元在当前层新建通道,将新建的通道追加到第一通道列表,并将与新建的通道对应的存储状态设置为位于当前层;如果当前层的使用量等于或大于第二阈值,则通道新建单元在下一层新建通道,将新建的通道追加到第二通道列表,并将与新建的通道对应的存储状态设置为位于下一层,其中,第二阈值大于等于第一阈值。
可选地,所述装置还包括:迁移单元,被配置从调度单元接收指令以执行第一迁移操作或第二迁移操作。例如,迁移单元被配置为执行第一迁移操作时,执行以下步骤:在当下一层的使用量小于第三阈值时,在下一层新建目标通道;将第一通道列表的最前面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于下一层;以及删除第一通道列表的最前面的至少一个通道。迁移单元还被配置为:执行第一迁移操作时,当确定第一通道列表的最前面的至少一个通道均未被读取时,再执行删除第一通道列表的最前面的至少一个通道的步骤。又例如,迁移单元被配置在执行所述第二迁移操作时,执行以下步骤:当当前层的使用量小于第三阈值时,在当前层新建目标通道;将第二通道列表的最后面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于当前层;以及删除第二通道列表的最后面的至少一个通道。迁移单元还被配置为:在执行第二迁移操作时,当确定第二通道列表的最后面的至少一个通道均未被读取时,再执行删除第二通道列表的最后面的至少一个通道的步骤。其中,第三阈值小于等于第二阈值。
可选地,迁移单元还可以被配置为,当确定待迁移通道均未被写入时再执行对应的第一迁移操作和第二迁移操作中的至少一者,待迁移通道为第一通道列表的最前面的至少一个通道和第二通道列表的最后面的至少一个通道中的至少一者。
可选地,至少两个存储层可以包括具有最高读写性能的第一层和与第一层直接相邻的第二层,所述装置还可以包括:通道新建单元,被配置为执行通道新建操作。其中,如果第一层的使用量小于第二阈值,则通道新建单元在第一层新建通道,将新建的通道追加到第一层的通道列表,并将与新建的通道对应的存储状态设置为位于第一层;如果第一层的使用量等于或大于第二阈值,则通道新建单元在第二层新建通道,将新建的通道追加到第二层的通道列表,并将与新建的通道对应的存储状态设置为位于第二层,其中,第二阈值大于等于第一阈值。
可选地,至少两个存储层可以包括非易失性内存、NVMe SSD、SATA SSD、HDD RAID和HDD中的至少一种。
本公开的另一方面提供了一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的数据分级存储的方法。
本公开的另一方面提供了一种包括至少一个处理器和至少一个存储指令的存储器的电子设备,其中,所述指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的数据分级存储的方法。
根据本公开的一个或多个方面,数据分级存储的方法通过将非易失性内存用作非易失性分级存储的第一层,从而实现比现有方案更好的性能。此外,调度线程根据数据迁移策略实现不同存储层之间的数据迁移,从而最大限度地实现分级存储效果而不会导致显著额外的存储成本。
附图说明
从下面结合附图对本公开实施例的详细描述中,本公开的这些和/或其他方面和优点将变得更加清楚并更容易理解,其中:
图1是示出根据本公开的实施例的数据分级存储的方法的应用场景图;
图2是示出根据本公开的实施例的数据分级存储的方法的流程图;
图3是示出根据本公开的实施例的新建通道的流程图;
图4是示出根据本公开的实施例的迁移线程的流程图;
图5是示出根据本公开的示例性实施例的数据分级存储的装置的框图;以及
图6是示出根据本公开的示例性实施例的电子设备的框图。
具体实施方式
下面参照附图详细描述本公开的实施例。所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本公开。
图1是示出根据本公开的实施例的数据分级存储的方法的应用场景图。
数据分级存储是在计算机体系结构下***按照存储性能的层次结构执行数据存储的存储策略。通常情况下,中央处理器的速度相对较快,并且大部分工作量需要访问(例如,读或写)存储器。由于存储层间的存储性能因层次结构而不同,所以实际上会限制处理的速度,导致中央处理器花费大量的时间等待存储器写入或读取以完成工作。
如图1所示,在设置有多层存储层的分级存储架构中,可以按照存储介质的读写性能排序。例如,分级存储架构可以包括第一级存储、第二级存储、第三级存储、……、第N级存储。在实施例中,第一级存储具有最高的读写性能。例如,第一级存储、第二级存储、第三级存储、……、第N级存储可以采用非易失性内存、NVMe SSD、SATA SSD、HDD RAID和HDD中的至少一种。例如,第一级存储可以是非易失性内存,即,持久性内存。第二级存储可以是NVMeSSD。第三级存储可以是SATA SSD。第四级存储可以是HDD RAID。通常,第一级存储会因其较高的读写性能而具有较高的成本。在这种情况下,第一级存储具有相对较小的容量。在现有技术中,非易失性内存技术使得内存中的数据可以做到持久化,相比较于传统内存,具有大容量、低成本的优势;相比较于传统外存(HDD/SSD),又具有高速持久化的特性。非易失性内存的容量、价格、性能,均介于传统内存DRAM和外存NVMe SSD之间,因此,适合用来作为分级存储架构中的第一级存储。
在实施例中,当需要实现高效、可靠地处理实施数据流时,可以采用Kafka分布式事件流/消息队列***(例如,如图1所示的Kafaka log应用场景)。在高压力情况下,日志文件落盘存储以及读取将会造成性能瓶颈。因此,如何提升持久化性能(包括读和写),即是提升Kafka延迟和吞吐性能的关键。另一方面,Kafka的数据具有天然的冷热性质,一般来说,新写入的数据具有更大的概率会被读取。因此,使用本公开的数据分级存储的方法,使得冷热数据分离,从而提升Kafka整体的***性能。
图2是示出根据本公开的实施例的数据分级存储的方法的流程图。
在本公开的实施例中,数据分级存储的方法可以应用于如图1所示的分级存储架构。分级存储架构可以设置有至少两个存储层的分级存储结构,分级存储结构的读写性能从上到下依次降低。为描述方便,将以当前层和与当前层直接相邻的下一层指代分级存储结构中直接相邻的两层存储层。当前层的读写性能高于下一层的读写性能。例如,当前层可以是如图1所示的第一级存储,在这种情况下,下一层为如图1所示的第二级存储。又例如,当前层可以是第N-1级存储,在这种情况下,下一层为如图1所示的第N级存储。在实施例中,数据可以以通道的形式存储在分级存储结构中,例如,通道可以是文件通道(FileChannel)或持久性内存通道(PMemChannel)。在实施例中,通道可以具有通道ID(Channel ID)和存储状态(MixChannel)两个属性。通道ID可以用于识别通道,存储状态可以用于指示通道所存储的位置。例如,存储状态可以是“位于当前层”或者“位于下一层”。在实施例中,通道的通道ID和存储状态可以存储在与分级存储结构分开的存储介质中,例如,可以存储在易失性内存中。在另一实施例中,通道的通道ID和存储状态可以存储在分级存储结构的第一级存储中或者可以存储在第一级存储的分区中。第一通道列表表示包括在当前层中的通道,第二通道列表表示包括在下一层中的通道。
如图2所示,数据分级存储方法可以包括执行调度线程。例如,可以以预定周期(如,每10S运行一次)执行调度线程,或调度线程也可以实时监听。这里描述的调度线程可以指***后台中以单线程运行守护进程以对分级存储结构中存储的数据进行调度。例如,将数据在分级存储结构中的不同存储层间进行调度。在另一实施例中,调度线程可以是按需执行的线程。调度线程可以维护迁移任务队列,例如,迁移任务队列可以包括高-低迁移任务队列和低-高迁移任务队列。调度线程可以将创建的迁移任务加入到迁移任务队列中。
在步骤S10中,判断当前层的使用量是否等于或大于第一阈值。
如果当前层的使用量等于或大于第一阈值,那么在步骤S20中,执行第一迁移操作。第一迁移操作将第一通道列表的最前面的至少一个通道迁移至下一层并追加到第二通道列表。当下一层的使用量达到下一层的预定阈值(例如,剩余容量不足够接受待迁移通道,或者容量已满)时,第一迁移操作终止。
如果所述当前层的使用量小于第一阈值,那么在步骤S30中,执行第二迁移操作。第二迁移操作将第二通道列表的最后面的至少一个通道迁移至当前层并***到第一通道列表的最前面。当当前层的使用量达到当前层的预定阈值(例如,剩余容量不足够接受待迁移通道,或者容量已满)时,第二迁移操作终止。
在实施例中,第一阈值可以表示预设的使用量或存储百分比。第一阈值可以根据实际需要进行设置。例如,第一阈值可以为60%至95%。
图3是示出根据本公开的实施例的新建通道的流程图。
如图3所示,数据分级存储方法还可以包括执行通道新建操作。
例如,在步骤S301中,判断当前层的使用量是否小于第二阈值。
如果当前层的使用量小于第二阈值,则在步骤S302中,在当前层新建通道,将新建的通道追加到第一通道列表,并将与新建的通道对应的存储状态设置为位于当前层。
如果所述当前层的使用量等于或大于所述第二阈值,则在步骤S303中,在下一层新建通道,将新建的通道追加到第二通道列表,并将与新建的通道对应的存储状态设置为位于下一层。
在实施例中,第二阈值大于等于第一阈值。第二阈值可以是预先设定的用于表示当前层的使用量的上限的值,也可以是用于确保当前层具有足够存储新建的通道的容量。
在优选实施例中,步骤S301之前,还可以包括:当当前层以上的各存储层的使用量均达到各存储层分别对应的新建通道阈值时,再执行S301的判断当前层使用量是否小于第二阈值的步骤。
在更具体的实施例中,当前层可以是具有最高读写性能的第一层,下一层可以是与第一层直接相邻的第二层。在这种情况下,执行通道新建操作可以优先在第一层中执行。
例如,如果第一层的使用量小于第二阈值,则在步骤S302中,优先在第一层新建通道,将新建的通道追加到第一层的通道列表,并将与新建的通道对应的存储状态设置为位于第一层。
如果第一层的使用量等于或大于第二阈值,则在步骤S303中,在第二层新建通道,将新建的通道追加到第二层的通道列表,并将与新建的通道对应的存储状态设置为位于所述第二层。
以Kafka应用场景为例,新写入的数据具有更大的概率会被读取。因此,根据本公开的实施例,优先将新写入的数据存储在具有较高存储性能的存储层中,使得冷热数据分离,提升整体的***性能。
图4是示出根据本公开的实施例的迁移线程的流程图。
迁移线程是用以实现数据迁移的多线程-后台线程。参照图4,在步骤S401中,迁移线程可以判断待迁移通道是否被写入。没有被写入的通道可以被称为可迁移通道。只有可迁移通道才会被考虑做迁移任务。所以同一个通道不会同时发生迁移任务和写任务。因为仅在通道均未被写入的情况下才执行迁移任务,因此可以避免因迁移导致的写入错误。
在步骤S402中,迁移线程可以判断目标层的使用量是否小于第三阈值。第三阈值可以小于等于第二阈值。例如,第三阈值可以是预先设定的用于表示目标层的使用百分比或使用量的上限的值。第三阈值可以用于确保目标层具有足够存储待迁移通道的容量。
在步骤S403中,在目标层新建目标通道。例如,目标通道的大小与待迁移通道的大小相同或相似。
在步骤S404中,将待迁移通道拷贝至目标通道。
在步骤S405中,将与目标通道对应的存储状态更新为“位于目标层”。例如,在将待迁移通道拷贝至目标通道后,将与待迁移通道对应的通道ID更新为目标通道的通道ID,并且将与待迁移通道对应的存储状态更新为“位于目标层”。在实施例中,所述更新为原子更新。在这种情况下,下一次读操作将会直接在目标通道上执行,从而绕过原待迁移通道。
在步骤S406中,判断待迁移通道是否被读取。如果正在被读取,将返回等待,直至不再被读取后执行后续步骤。
在实施例中,为确定待迁移通道的读取状态,可以为每个通道设置读取计数器(例如,可以设置readCounter,readCounter的初始值为0)。当由读任务访问通道时,读取计数器加1(readCounter++),当该读任务结束时,读取计数器减1(readCounter--)。因此,当待迁移通道的读取计数器为0时,能够确定待迁移通道未被读取。
在步骤S407中,在确定待迁移通道均未被读取时,删除待迁移通道。因为仅在满足待迁移通道均未被读取时才执行删除任务,因此避免了删除任务带来的读取错误。
参照图2和图4,根据本公开的实施例的调度线程可以调用迁移线程。例如,当调度线程在步骤S20中确定要将第一通道列表的最前面的至少一个通道迁移至下一层时,可以将第一通道列表的最前面的至少一个通道确定为待迁移通道,并将所述下一层确定为目标层,并将待迁移通道和目标层作为输入传输给迁移线程。或者,当调度线程在步骤S30中确定要将第二通道列表的最后面的至少一个通道迁移至当前层时,可以将第二通道列表的最后面的至少一个通道确定为待迁移通道,并将所述当前层确定为目标层,并将待迁移通道和目标层作为输入传输给迁移线程。例如,调度线程可以基于待迁移通道和目标层创建迁移任务,并放置在迁移任务队列中。
在具体的实施例中,在步骤S20(见图2)中,调度线程可以创建从当前层至下一层的迁移任务,并放置在高-低迁移任务队列(H2L task queue)的最后面中。此后,由迁移线程读取H2L task queue(pop H2L task queue),如果有任务存在,则执行以下步骤:判断第一通道列表的最前面的至少一个通道是否被写入(S401);当下一层的使用量小于第三阈值时(S402),在下一层新建目标通道(S403);将第一通道列表的最前面的至少一个通道拷贝至目标通道(S404);将与目标通道对应的存储状态更新为位于下一层(S405);确定第一通道列表的所述最前面的至少一个通道均未被读取(S406)以及删除第一通道列表的所述最前面的至少一个通道(S407)。
在具体的实施例中,在步骤S30(见图2)中,调度线程可以创建从下一层至当前层的迁移任务,并放置在低-高迁移任务队列(L2H task queue)的最前面中,此后,由迁移线程读取L2H task queue(pop L2H task queue),如果有任务存在,则执行以下步骤:判断第二通道列表的最后面的至少一个通道是否被写入(S401);当当前层的使用量小于第三阈值时(S402),在当前层新建目标通道(S403);将第二通道列表的最后面的至少一个通道拷贝至目标通道(S404);将与目标通道对应的存储状态更新为位于当前层(S405);确定第二通道列表的所述最后面的至少一个通道均未被读取(S406)以及删除第二通道列表的所述最后面的至少一个通道(S407)。
根据本公开的一个或多个方面,数据分级存储的方法通过将非易失性内存用作非易失性分级存储的第一层,从而实现比现有方案更好的性能。此外,根据本公开的一个或多个方面,通过调度线程和迁移线程实现数据迁移的迁移策略,从而有效避免了因迁移导致的读取错误或写入错误。从而最大限度地实现分级存储效果而不会导致显著额外的存储成本。
图5是根据本公开的数据分级存储的装置10的框图。
根据本公开的一个或多个方面,本公开提供了一种数据分级存储的装置10,所述装置10包括:分级存储结构110、调度单元120、通道新建单元130和迁移单元140。
分级存储结构110被配置为包括至少两个存储层,其中,所述至少两个存储层包括当前层和与所述当前层直接相邻的下一层,所述当前层的读写性能高于所述下一层的读写性能。与参照图2描述的分级存储结构相同或相似,因此在此省略冗余的描述。
调度单元120被配置为执行调度线程。例如,如果当前层的使用量等于或大于第一阈值,则调度单元120执行第一迁移操作,第一迁移操作将第一通道列表的最前面的至少一个通道迁移至下一层并追加到第二通道列表。如果当前层的使用量小于第一阈值,则调度单元120执行第二迁移操作,第二迁移操作将第二通道列表的最后面的至少一个通道迁移至当前层并***到第一通道列表的最前面。调度单元120可以被配置为用来执行参照图2中的步骤S10至S30描述的方法,因此在此省略冗余的描述。
通道新建单元130被配置为执行通道新建操作。例如,如果当前层的使用量小于第二阈值,则通道新建单元在当前层新建通道,将新建的通道追加到第一通道列表,并将与新建的通道对应的存储状态设置为位于当前层;如果当前层的使用量等于或大于第二阈值,则通道新建单元在下一层新建通道,将新建的通道追加到第二通道列表,并将与新建的通道对应的存储状态设置为位于下一层,其中,第二阈值大于等于第一阈值。通道新建单元130可以被配置为用来执行参照图3中的步骤S301至S303描述的方法,因此在此省略冗余的描述。
迁移单元140被配置从调度单元120接收指令以执行第一迁移操作或第二迁移操作。例如,迁移单元140被配置为执行第一迁移操作时,执行以下步骤:在当下一层的使用量小于第三阈值时,在下一层新建目标通道;将第一通道列表的最前面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于下一层;以及删除第一通道列表的最前面的至少一个通道。迁移单元140还被配置为:执行第一迁移操作时,当确定第一通道列表的最前面的至少一个通道均未被读取时,再执行删除第一通道列表的最前面的至少一个通道的步骤。又例如,迁移单元140被配置在执行所述第二迁移操作时,执行以下步骤:当当前层的使用量小于第三阈值时,在当前层新建目标通道;将第二通道列表的最后面的至少一个通道拷贝至目标通道;将与目标通道对应的存储状态更新为位于当前层;以及删除第二通道列表的最后面的至少一个通道。迁移单元140还被配置为:在执行第二迁移操作时,当确定第二通道列表的最后面的至少一个通道均未被读取时,再执行删除第二通道列表的最后面的至少一个通道的步骤。其中,第三阈值小于等于第二阈值。迁移单元140可以被配置为用来执行参照图4中的步骤S401至S407描述的方法,因此在此省略冗余的描述。
关于上述实施例中的装置,其中各个模块/单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是示出根据本公开的示例性实施例的电子设备600的框图。
参照图6,电子设备600包括至少一个存储器601和至少一个处理器602,所述至少一个存储器601存储计算机可执行指令,当计算机可执行指令被至少一个处理器602执行时,促使至少一个处理器602执行根据本公开的实施例的数据分级存储的方法。
作为示例,电子设备600可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令的装置。这里,电子设备600并非必须是单个电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备600还可以是集成控制***或***管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备600中,处理器602可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器602可运行存储在存储器601中的指令或代码,其中,存储器601还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器601可与处理器602集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器601可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可使用的其他存储装置。存储器601和处理器602可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器602能够读取存储在存储器中的文件。
此外,电子设备600还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备600的所有组件可经由总线和/或网络而彼此连接。
根据本公开的实施例,还可提供一种计算机可读存储介质,其中,当存储在计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的实施例的数据分级存储的方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例,还可提供一种计算机程序产品,包括计算机指令,当所述计算机指令被至少一个处理器执行时实现根据本公开的实施例的数据分级存储的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据分级存储的方法,其特征在于,所述方法应用于设置有至少两个存储层的分级存储结构,其中,所述至少两个存储层的读写性能从上到下依次降低,包括当前层和与所述当前层直接相邻的下一层,所述方法包括:
执行调度线程,
其中,如果所述当前层的使用量等于或大于第一阈值,则执行第一迁移操作,所述第一迁移操作将第一通道列表的最前面的至少一个通道迁移至所述下一层并追加到第二通道列表;并且
其中,如果所述当前层的使用量小于第一阈值,则执行第二迁移操作,所述第二迁移操作将所述第二通道列表的最后面的至少一个通道迁移至所述当前层并***到所述第一通道列表的最前面,
其中,所述第一通道列表表示包括在所述当前层中的通道,所述第二通道列表表示包括在所述下一层中的通道。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
执行通道新建操作,
其中,如果所述当前层的使用量小于第二阈值,则在所述当前层新建通道,将新建的通道追加到所述第一通道列表,并将与所述新建的通道对应的存储状态设置为位于所述当前层;并且
其中,如果所述当前层的使用量等于或大于所述第二阈值,则在所述下一层新建通道,将新建的通道追加到所述第二通道列表,并将与所述新建的通道对应的存储状态设置为位于所述下一层,
其中,所述第二阈值大于等于所述第一阈值。
3.根据权利要求2所述的方法,其特征在于,所述第一迁移操作包括:
当所述下一层的使用量小于第三阈值时,在所述下一层新建目标通道;
将所述第一通道列表的所述最前面的至少一个通道拷贝至所述目标通道;
将与所述目标通道对应的存储状态更新为位于所述下一层;以及
删除所述第一通道列表的所述最前面的至少一个通道,
其中,所述第三阈值小于等于所述第二阈值。
4.根据权利要求2所述的方法,其特征在于,所述第二迁移操作包括:
当所述当前层的使用量小于第三阈值时,在所述当前层新建目标通道;
将所述第二通道列表的所述最后面的至少一个通道拷贝至所述目标通道;
将与所述目标通道对应的存储状态更新为位于所述当前层;以及
删除所述第二通道列表的所述最后面的至少一个通道,
其中,所述第三阈值小于等于所述第二阈值。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:当确定待迁移通道均未被写入时再执行对应的所述第一迁移操作和所述第二迁移操作中的至少一者,所述待迁移通道为所述第一通道列表的所述最前面的至少一个通道和所述第二通道列表的所述最后面的至少一个通道中的至少一者。
6.根据权利要求3所述的方法,其特征在于,所述第一迁移操作还包括:当确定所述第一通道列表的所述最前面的至少一个通道均未被读取时,再执行所述删除所述第一通道列表的所述最前面的至少一个通道的步骤。
7.根据权利要求4所述的方法,其特征在于,所述第二迁移操作还包括:当确定所述第二通道列表的所述最后面的至少一个通道均未被读取时,再执行所述删除所述第二通道列表的所述最后面的至少一个通道的步骤。
8.一种数据分级存储的装置,其特征在于,所述装置包括:
分级存储结构,被配置为包括至少两个存储层,其中,所述至少两个存储层的读写性能从上到下依次降低,包括当前层和与所述当前层直接相邻的下一层;以及
调度单元,被配置为执行调度线程,
其中,如果所述当前层的使用量等于或大于第一阈值,则所述调度单元执行第一迁移操作,所述第一迁移操作将第一通道列表的最前面的至少一个通道迁移至所述下一层并追加到第二通道列表,
其中,如果所述当前层的使用量小于第一阈值,则所述调度单元执行第二迁移操作,所述第二迁移操作将所述第二通道列表的最后面的至少一个通道迁移至所述当前层并***到所述第一通道列表的最前面,并且
其中,所述第一通道列表表示包括在所述当前层中的通道,所述第二通道列表表示包括在所述下一层中的通道。
9.一种包括至少一个处理器和至少一个存储指令的存储器的电子设备,其中,所述指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到7中的任一权利要求所述的数据分级存储的方法。
10.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1到7中的任一权利要求所述的数据分级存储的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081201.5A CN113741819A (zh) | 2021-09-15 | 2021-09-15 | 数据分级存储的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081201.5A CN113741819A (zh) | 2021-09-15 | 2021-09-15 | 数据分级存储的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113741819A true CN113741819A (zh) | 2021-12-03 |
Family
ID=78739072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111081201.5A Pending CN113741819A (zh) | 2021-09-15 | 2021-09-15 | 数据分级存储的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741819A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078933A (zh) * | 2012-12-29 | 2013-05-01 | 深圳先进技术研究院 | 一种确定数据迁移时机的方法和装置 |
CN104573020A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种分级存储***中数据自动迁移优化方法 |
CN105653591A (zh) * | 2015-12-22 | 2016-06-08 | 浙江中控研究院有限公司 | 一种工业实时数据分级存储及迁移方法 |
CN105657066A (zh) * | 2016-03-23 | 2016-06-08 | 天津书生云科技有限公司 | 用于存储***的负载再均衡方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN108089814A (zh) * | 2016-11-23 | 2018-05-29 | 中移(苏州)软件技术有限公司 | 一种数据存储方法及装置 |
US20190087342A1 (en) * | 2017-09-21 | 2019-03-21 | International Business Machines Corporation | Dynamic premigration throttling for tiered storage |
US20200089425A1 (en) * | 2018-09-19 | 2020-03-19 | Fujitsu Limited | Information processing apparatus and non-transitory computer-readable recording medium having stored therein information processing program |
CN111367469A (zh) * | 2020-02-16 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种分层存储数据迁移方法和*** |
CN111427969A (zh) * | 2020-03-18 | 2020-07-17 | 清华大学 | 一种分级存储***的数据替换方法 |
-
2021
- 2021-09-15 CN CN202111081201.5A patent/CN113741819A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078933A (zh) * | 2012-12-29 | 2013-05-01 | 深圳先进技术研究院 | 一种确定数据迁移时机的方法和装置 |
CN104573020A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种分级存储***中数据自动迁移优化方法 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN105653591A (zh) * | 2015-12-22 | 2016-06-08 | 浙江中控研究院有限公司 | 一种工业实时数据分级存储及迁移方法 |
CN105657066A (zh) * | 2016-03-23 | 2016-06-08 | 天津书生云科技有限公司 | 用于存储***的负载再均衡方法及装置 |
CN108089814A (zh) * | 2016-11-23 | 2018-05-29 | 中移(苏州)软件技术有限公司 | 一种数据存储方法及装置 |
US20190087342A1 (en) * | 2017-09-21 | 2019-03-21 | International Business Machines Corporation | Dynamic premigration throttling for tiered storage |
US20200089425A1 (en) * | 2018-09-19 | 2020-03-19 | Fujitsu Limited | Information processing apparatus and non-transitory computer-readable recording medium having stored therein information processing program |
CN111367469A (zh) * | 2020-02-16 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种分层存储数据迁移方法和*** |
CN111427969A (zh) * | 2020-03-18 | 2020-07-17 | 清华大学 | 一种分级存储***的数据替换方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089830B2 (ja) | 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法 | |
US8103847B2 (en) | Storage virtual containers | |
US8464003B2 (en) | Method and apparatus to manage object based tier | |
US10082984B2 (en) | Storage device and method of operating the same | |
US20090132621A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
US9026730B2 (en) | Management of data using inheritable attributes | |
US20150058568A1 (en) | HIERARCHICAL STORAGE FOR LSM-BASED NoSQL STORES | |
US20150347311A1 (en) | Storage hierarchical management system | |
KR102585883B1 (ko) | 메모리 시스템의 동작 방법 및 메모리 시스템 | |
US10831374B2 (en) | Minimizing seek times in a hierarchical storage management (HSM) system | |
WO2018171296A1 (zh) | 一种文件合并方法及控制器 | |
CN112988627A (zh) | 存储设备、存储***和操作存储设备的方法 | |
CN110989924B (zh) | 一种元数据存储性能优化方法及存储服务器 | |
CN114138200A (zh) | 一种基于RocksDB的预写日志方法及*** | |
US20090030868A1 (en) | Method And System For Optimal File System Performance | |
US20150082014A1 (en) | Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device | |
US11789622B2 (en) | Method, device and computer program product for storage management | |
US11210024B2 (en) | Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block | |
CN116209986A (zh) | 针对分区的命名空间存储设备的分区提示 | |
US20110153674A1 (en) | Data storage including storing of page identity and logical relationships between pages | |
US11010091B2 (en) | Multi-tier storage | |
US8504764B2 (en) | Method and apparatus to manage object-based tiers | |
US10521156B2 (en) | Apparatus and method of managing multi solid state disk system | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、*** | |
US10671525B2 (en) | Space reclamation in data deduplication storage systems |
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 |