CN107817946A - 用于混合存储设备读写数据的方法以及装置 - Google Patents

用于混合存储设备读写数据的方法以及装置 Download PDF

Info

Publication number
CN107817946A
CN107817946A CN201610822034.8A CN201610822034A CN107817946A CN 107817946 A CN107817946 A CN 107817946A CN 201610822034 A CN201610822034 A CN 201610822034A CN 107817946 A CN107817946 A CN 107817946A
Authority
CN
China
Prior art keywords
data
storage medium
write
data block
read
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.)
Granted
Application number
CN201610822034.8A
Other languages
English (en)
Other versions
CN107817946B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610822034.8A priority Critical patent/CN107817946B/zh
Publication of CN107817946A publication Critical patent/CN107817946A/zh
Application granted granted Critical
Publication of CN107817946B publication Critical patent/CN107817946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device

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

用于混合存储设备读写数据的方法以及装置
技术领域
本申请涉及存混合储介质技术领域,具体涉及一种混合用于混合存储设备读写数据的方法。本申请同时涉及一种混合用于混合存储设备读写数据的装置,另一种用于混合存储设备读写数据的方法以及装置,以及两种电子设备。
背景技术
随着信息技术的快速发展,计算机处理信息量的与日俱增,对计算机的信息存储密度、响应速度以及稳定性有了更高的要求,存储介质成为信息存储讨论的重点。存储介质根据性能的差异,可分为高性能存储介质和低性能存储介质,高性能存储介质具有数据读写速度快,但成本高和容量低的特点,以固态硬盘(SSD)为代表;低性能存储介质具有成本低、容量大,但数据读写速度慢的特点,以机械硬盘(HDD)为代表。
根据数据特点和应用场景的不同,采用混合存储技术组合高性能存储介质和低性能存储介质,实现既具有高性能存储介质的高性能,又具有低性能存储介质容量大,性价比高的优点,一直是混合存储技术的发展方向。混合存储设备主要有:固态硬盘(SSD)与机械硬盘(HDD)构成的混合存储设备,低性能固态硬盘(SSD)与高性能固态硬盘(SSD)构成的混合存储设备。
现有技术下,针对混合存储设备的混合存储技术,主要采用Facebook公司开发的Flash Cache,Flash Cache利用了Linux内核中的设备映射机制,将高性能存储介质和低性能存储介质的块做了一层映射,在操作系统中呈现为一块普通的硬盘。具体将高性能存储介质作为缓存区,并将缓存区划分为固定大小的缓存集合,固定大小的缓存集合与底层磁盘采用固定Hash的方式进行映射。Flash Cache缓存区划分为Super Block、元数据区和数据区三个部分,其中,Super Block用于存储整个缓存区的全局配置信息;元数据区用于存储每个缓存数据块的元数据,其中包含块的状态;数据区用于存储低性能存储介质对应的缓存数据块。
上述现有技术提供的混合存储技术存在明显的缺陷。
现有技术提供的混合存储技术,Flash Cache中的高性能存储介质与低性能存储介质之间采用固定Hash映射(哈希映射),对存储介质不同存储区域的操作不能进行聚合,一次写请求需要分别持久化请求数据及对应的元数据,产生两次随机写数据操作,增加了延迟时间,降低了存储介质的性能以及寿命。
发明内容
本申请提供一种用于混合存储设备读写数据的方法,以解决现有技术存在的降低存储介质的性能以及寿命问题。本申请还提供一种用于混合存储设备读写数据的装置,另一种用于混合存储设备读写数据的方法以及装置,以及两种电子设备。
本申请提供一种用于混合存储设备读写数据的方法,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该方法包括:
接收至少一个数据块写入所述混合存储设备的写入请求;
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
可选的,所述对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录步骤,采用下述方式实现:
按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储步骤,包括:
查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
可选的,所述转储,采用下述方式:
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
将读取到的所述数据块中包含的数据项写入所述第二存储介质。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述用于混合存储设备读写数据的方法,包括:
接收所述数据块的数据读取消息;
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请还提供一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该装置包括:
写入请求接收单元,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块聚合单元,用于对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
数据记录写入单元,用于将所述数据记录写入所述第一存储介质;
数据记录转储单元,用于将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据块聚合单元,包括:
数据块划分子单元,用于按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
数据块集聚合子单元,用于对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述数据记录转储单元,包括:
索引条目查找子单元,用于查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
转储子单元,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
可选的,所述用于混合存储设备读写数据的装置,包括:
数据读取消息接收单元,用于接收所述数据块的数据读取消息;
索引条目检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
第一数据项读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
第二数据项读取单元,用于从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请还提供另一种用于混合存储设备读写数据的方法,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该方法包括:
接收至少一个数据块写入所述混合存储设备的写入请求;
将所述数据块写入所述第一存储介质;
查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述将所述数据块写入所述第一存储介质步骤,包括:
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
本申请还提供另一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该装置包括:
写入请求接收单元,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块写入单元,用于将所述数据块写入所述第一存储介质;
索引条目查找单元,用于查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
数据块划分单元,用于根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
数据块转储单元,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
本申请还提供一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;所述电子设备包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
本申请还提供另一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;所述电子设备包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
将所述数据块写入所述第一存储介质;
查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
与现有技术相比,本申请具有以下优点:
本申请提供的一种用于混合存储设备读写数据的方法,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该方法包括:接收至少一个数据块写入所述混合存储设备的写入请求;对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;将所述数据记录写入所述第一存储介质;将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
本申请提供的所述用于混合存储设备读写数据的方法,将多个数据块写入预设存储介质的写入请求,聚合成一个数据记录,将聚合后的所述数据记录写入所述第一存储介质,并将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储,该方法可对多个数据块写入存储介质的写入请求进行批处理,减少了数据写入所述混合存储设备中存储介质的次数,同时,还实现了将所述数据块的数据信息和元信息在聚合后同时写入所述第一存储介质,进一步减少了数据写入所述混合存储设备中存储介质的次数,提升了所述混合存储设备中存储介质在数据写入时的性能,延长了所述混合存储设备中存储介质的使用寿命。
附图说明
图1是本申请实施例提供的一种用于混合存储设备读写数据的方法处理流程图;
图2是本申请实施例提供的一种数据记录的结构示意图;
图3是本申请实施例提供的一种用于混合存储设备读写数据的装置示意图;
图4是本申请实施例提供的另一种用于混合存储设备读写数据的方法处理流程图;
图5是本申请实施例提供的另一种用于混合存储设备读写数据的装置示意图;
图6是本申请实施例提供的一种电子设备示意图;
图7是本申请实施例提供的另一种电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种用于混合存储设备读写数据的方法,本申请还提供一种用于混合存储设备读写数据的装置,以及另一种用于混合存储设备读写数据的方法以及装置,以及两种电子设备。
所述一种用于混合存储设备读写数据的方法实施例如下:
参照图1,其示出了本实施例提供的一种用于混合存储设备读写数据的方法处理流程图,以及参照图2,其示出了本实施例提供的一种数据记录的结构示意图。
以下结合图1对本实施例提供的一种用于混合存储设备读写数据的方法进行说明,并且对该方法的各个步骤进行说明。
步骤S101,接收至少一个数据块写入所述混合存储设备的写入请求。
本申请所述的用于混合存储设备读写数据的方法,包括向所述混合存储设备写入数据信息,以及从所述混合存储设备中读取数据信息。本申请所述的用于混合存储设备读写数据的方法,向所述混合存储设备写入数据块时,采用批处理的方式,针对至少一个数据块写入所述混合存储设备的写入请求,将所述数据块聚合之后生成的数据记录写入所述混合存储设备,具体是将聚合之后生成的所述数据记录写入所述混合存储设备的第一存储介质,并将所述数据记录从所述第一存储介质向所述混合存储设备的第二存储介质转储,降低数据块写入所述混合存储设备的次数,提升所述混合存储设备中存储介质的性能,延长所述混合存储设备中存储介质的使用寿命。
从所述混合存储设备中读取数据块时,如果数据块存储在所述第一存储介质中,则从所述第一存储介质中读取;如果数据块存储在所述第二存储介质中,则从所述第二存储介质中读取;如果数据块中包含数据项部分存储在所述第一存储介质中,另一部分存储在所述第二存储介质中,则分别从所述第一存储介质和所述第二存储介质中读取相应数据项并进行合并。
所述混合存储设备,包括不同种类的存储介质构成的混合存储设备,例如,固态硬盘(SSD)和机械硬盘(HDD)构成的混合存储设备,还包括不同性能的同一种类的存储介质构成的混合存储设备,例如,低性能固态硬盘(SSD)与高性能固态硬盘(SSD)构成的混合存储设备,此外,所述混合存储设备还包括上述两种混合存储设备之外的其他混合存储设备。
所述数据块,是按照顺序排列的一组数据信息,是主存储器和输入、输出设备与混合存储设备之间进行数据传输的数据单位。
本申请实施例所述的混合存储设备,至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率。需要说明的是,所述第一存储介质和所述第二存储介质,可以是不同种类的存储介质,例如,所述第一存储介质为固态硬盘(SSD),所述第二存储介质为机械硬盘(HDD);此外,所述第一存储介质和所述第二存储介质,还可以是同一种类的存储介质,例如,所述第一存储介质为高性能固态硬盘(SSD),所述第二存储介质为低性能固态硬盘(SSD),在此不做限定,只要确保所述第一存储介质和所述第二存储介质的组合能够构成所述混合存储设备即可。
本步骤中,接收至少一个数据块写入所述混合存储设备的写入请求,结合下述步骤S102-步骤S104,将所述数据块写入所述混合存储设备。
步骤S102,对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录。
所述数据块的数据信息,是所述数据块自身携带的数据信息;所述数据块的元数据,用于描述所述数据块的数据信息的数据,对所述数据信息及信息资源的描述性信息,是关于数据信息的属性、数据域和关系的信息,例如,关于数据信息的存储位置、历史数据的信息。
所述数据记录,是所述数据块聚合之后生成的数据,所述数据记录中包含对应数据块各自的数据信息和元数据。所述对应数据块,是用于聚合生成所述数据记录的各个数据块。
所述预设的数据聚合基准,是指根据所述数据块聚合生成所述数据记录过程中依照的规则。
本步骤中,根据上述步骤S101接收的至少一个数据块写入所述混合存储设备的写入请求,针对所述数据块各自的数据信息和元数据,按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录。
本申请实施例所述的数据聚合基准,是指所述数据头信息与所述第一存储介质的存储单元的大小对齐,并且所述数据记录信息与所述第一存储介质的存储单元的大小对齐。本申请实施例所述的第一存储介质的存储单元,包括向所述第一存储介质写入数据信息时最小的数据写入单元-块(Block),例如,固态硬盘(SSD)采用4KB的块(Block)。
需要说明的是,本步骤按照所述数据头信息与所述第一存储介质的存储单元的大小对齐、且所述数据记录信息与所述第一存储介质的存储单元的大小对齐的方式,聚合所述数据块并生成数据记录,降低了所述数据块在写入所述混合存储设备时消耗的时间,提升了所述混合存储设备中存储介质的性能。
在具体实施时,所述数据聚合基准还可以采用上述数据聚合基准之外的其他数据聚合基准,例如,所述数据头信息与所述第一存储介质的存储单元的大小对齐,或者所述数据头信息与所述第一存储介质的存储单元的大小对齐,在此不做限定。
本申请实施例所述的数据记录,包括:数据头信息、数据记录信息和数据补充信息。
所述数据头信息中包含所述数据块各自的元数据;所述数据记录信息中包含所述数据块各自的数据信息;所述数据补充信息,是指所述数据块各自的数据信息和元数据,按照数据头信息与所述第一存储介质的存储单元的大小对齐、且数据记录信息与所述第一存储介质的存储单元的大小对齐的方式,聚合生成所述数据记录的过程中,所述数据头信息和所述数据记录信息无法与所述第一存储介质的存储单元的大小对齐时填充的数据。
本申请实施例所述的数据头信息,包括:Super Header和Block Header;
(1)Super Header;
所述Super Header,用于标识和校验所述数据记录,包括下述属性:
Magic:预先定义的常量字符串,用于标识数据记录为合法数据;
Version:主要用于数据记录格式或者属性变化后的兼容性处理,在数据记录格式或者属性含义变化时变更Version值;
Block Num:表示数据记录中包含的写入请求数目,每个Block为写入请求的数据块的数据信息;
SeqId:数据记录的序号,采用单调递增的方式记录;
Crc32:数据块的数据信息(Block Data)的checksum校验码,用于校验数据块的数据信息(Block Data)的完整性。
(2)Block Header。
所述Block Header,用于表示数据块的写入请求的元数据,包括下述属性:
Block Id:数据块标识;
Operation Type:对数据块的操作类型,例如,WRITE,SYNC WRITE,META_ONLY_WRITE,DELETE等;
Block Offset:写入请求写到Block的偏移量;
Block Length:写入请求写的长度;
Record Data Offset:写入请求对应的数据块的数据信息、在对应数据记录信息中的偏移量;
Block Meta:Block数据块的元数据,如版本,压缩类型等,该属性与应用层的实现相关;
Block Crc:用户记录数据块的校验信息。
本申请实施例所述的数据块各自的元数据,按照数据头信息与所述第一存储介质的存储单元的大小对齐、且数据记录信息与所述第一存储介质的存储单元的大小对齐的方式进行聚合时,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
例如,附图2所示的数据记录中的数据块1(Block_1)、数据块2(Block_2)和数据块3(Block_3);其中,数据块1(Block_1)、数据块2(Block_2)和数据块3(Block_3)的元数据聚合之后,分别生成对应的数据头信息Block_1Header、Block_2Header和Block_3Header,同时生成Super Header;由于Block_1Header、Block_2Header、Block_3Header和SuperHeader的大小之和小于4KB,则通过填充Reserved_Header(即数据补充信息)与4KB大小对齐。
类似的,所述数据块各自的数据信息,按照数据头信息与所述第一存储介质的存储单元的大小对齐、且数据记录信息与所述第一存储介质的存储单元的大小对齐的方式进行聚合时,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
例如,附图2所示的数据记录中的数据块1(Block_1)、数据块2(Block_2)和数据块3(Block_3);其中,数据块1(Block_1)、数据块2(Block_2)和数据块3(Block_3)的数据信息聚合之后,分别生成对应的数据记录信息Block_1Data、Block_2Data和Block_3Data;由于Block_1Data、Block_2Data和Block_3Data的大小之和大于4KB,并且与4KB大小没有对齐,则通过填充Reserved_Data(即数据补充信息)与4KB大小对齐。
需要说明的是,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
例如,附图2所示的数据记录中的数据块1(Block_1)、数据块2(Block_2)和数据块3(Block_3)的数据信息聚合之后,生成的数据头信息按照Block_1Header、Block_2Header和Block_3Header的排列顺序,生成的数据记录信息按照Block_1Data、Block_2Data和Block_3Data的排列顺序。
在具体实施时,本步骤所述的对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录,可采用下述方式实现:
按照预设的数据块数目基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
在实际应用中,还可以采用上述实现方式之外的其他实施方式实现本步骤,例如,按照预设的数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;或者,按照预设的数据块数目基准和数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录。实现本步骤的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
步骤S103,将所述数据记录写入所述第一存储介质。
上述步骤S102完成了所述数据块各自的数据信息和元数据聚合并生成所述数据块对应的数据记录,本步骤中,根据上述步骤S102聚合生成的所述数据块对应的数据记录,将所述数据记录写入所述第一存储介质中。
本步骤将所述数据记录写入所述第一存储介质,本申请实施例采用顺序写入的方式,将所述数据记录写入所述第一存储介质,相比现有技术采用随机写入的方式,避免了采用随机写入的方式将所述数据记录写入所述第一存储介质产生的写放大,因此,本申请实施例采用顺序写入的方式将所述数据记录写入所述第一存储介质,提升了所述混合存储设备中存储介质的性能,延长了所述第一存储介质的使用寿命。
在具体实施时,还可以采用上述顺序写入方式之外的其他实现方式,将所述数据记录写入所述第一存储介质,例如,采用随机写入的方式将所述数据记录写入所述第一存储介质。实现该数据写入的多种实现方式,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
上述步骤S103中,将所述数据块的数据信息和元信息聚合到同一数据记录当中,本步骤在将所述数据记录写入所述第一存储介质时,实现了将所述数据块的数据信息和元信息在聚合后同时写入所述第一存储介质,进一步减少了数据写入所述第一存储介质的次数,从而提升了所述第一存储介质的性能,延长了所述第一存储介质的使用寿命。
所述数据记录写入所述第一存储介质之后,所述数据记录在所述第一存储介质中存储的数据结构,可采用多种数据结构进行存储。本申请实施例所述的第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
具体的,所述索引结构中,每一个数据项的索引条目为一个Key-Value对,其中,Key用于索引结构中建立索引条目,包括:数据块标识、偏移量以及长度;Value为数据项在所述第一存储介质中的位置信息,包括:数据记录的位置信息、对应数据记录中数据项的编号,相对于数据记录信息的位置信息的偏移量。
需要说明的是,所述索引结构对Key-Value对的组织,不作为本申请的重点,可采用多种数据结构实现,例如,采用BTree及其变种、Skip List或者红黑树等数据结构实现,此外,还可以采用对数据块标识进行Hash,每个Hash桶内再采用BTree或者SkipList等数据结构实现。
本申请实施例所述的第一存储介质中写入的数据块,分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
本申请实施例所述的状态标识包括:可读写状态标识、第一只读状态标识、第二只读状态标识。
具体的,所述数据块的索引结构标记为所述可读写状态标识,表明所述数据块的索引处于可读写状态,例如,所述数据块有新的数据项写入时,可以在所述数据块的索引结构中增加新的索引条目。
所述数据块的索引结构标记为所述第一只读状态标识,表明所述数据块的索引处于只读状态,例如,所述数据块有新的数据项写入时,所述数据块的索引结构中不允许增加新的索引条目。
所述数据块的索引结构标记为所述第二只读状态标识,表明所述数据块的索引处于只读状态,所述数据块中包含的数据项已经被转储至所述第二存储介质中。
由此可知,标记为所述可读写状态标识和所述第一只读状态标识的索引结构对应的数据块,尚未被转储至所述第二存储介质,属于有效的数据项,不能被覆盖,并且,标记为所述可读写状态标识和所述第一只读状态标识的索引结构不能被清除。
此外,如果所述数据块存在多个标记为不同状态标识的索引结构,相应的,所述数据块有多个索引封装结构,当所述数据块的索引结构发生更新时,只能作用于标记为所述可读写状态标识的索引结构;所述数据块的转储,只能作用于标记为所述第一只读状态标识的索引结构。
所述索引封装结构是对索引结构统一标记的状态标识,而不是对所述数据块中每个数据项进行状态标记,减少了进行状态标记执行的查询操作。此外,对于标记了状态标识的索引结构,数据写入操作发生在标记为所述可读写状态标识的索引结构,转储发生在标记为所述第一只读标识的索引结构,避免了索引访问的互斥,降低了锁冲突,从而提升了混合存储设备中存储介质的性能。
步骤S104,将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储。
由于所述第一存储介质的读写速率大于所述第二存储介质的读写速率,因此所述第一存储介质的价格会高于所述第二存储介质的价格,考虑到所述混合存储设备的性价比,所述混合存储设备配置的所述第一存储介质的存储空间大小较小,所述混合存储设备配置的所述第二存储介质的存储空间较大,因此,所述第一存储介质中能够存储的数据记录有限,需要将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储。
当然,对于所述第一存储介质中存储的一些访问频率很高的数据记录,或者是写入所述第一存储介质的数据记录较少的情况下,或者是不考虑所述混合存储设备的价格的情况下,将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储之后,可以将被转储的数据记录同时存储在所述第一存储介质中。
本步骤执行之前,即所述数据块在转储之前,所述数据块只有一个索引结构和相应的索引封装结构,并且所述数据块的索引结构的状态标识为所述可读写状态标识。
一般而言,所述索引结构对应的数据块的大小较大,很难实现在一次转储操作中将所述索引结构对应的数据块转储至所述第二存储介质,因此,在转储时,采用拆分所述数据块,分为多次转储操作将所述数据块转储至所述第二存储介质。针对所述数据块的任意一次转储操作,将所述数据块的索引结构拆分为两部分,将拆分后需要转储的数据项的索引结构划分到一个新的索引封装结构中,该索引封装结构对应的索引结构被标记为所述第一只读状态标识;拆分后另一部分的索引结构的状态标识保持所述可读写状态标识不变。
转储完成后,标记为所述第一只读状态标识的索引结构对应的所述数据块被写入所述第二存储介质,根据需要,如果需要已转储数据块的缓存功能,则将所述数据块的索引结构的状态标识,从所述第一只读状态标识更新为所述第二只读状态标识,所述数据块的索引结构在所述第一存储介质中继续保存;如果不需要已转储数据块的缓存功能,可删除所述数据块的索引封装结构,相应的,所述数据块的索引封装结构中包含的索引也被删除,所述数据块的索引被删除后,所述数据块在所述第一存储介质中无法被查询到,也无法被读取。
本步骤中,将上述步骤S103中所述的,标记为所述第一可读状态标识的索引结构对应的数据块,向所述第二存储介质中转储。
在具体实施时,本步骤刻采用下述方式实现:
查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
在具体实施时,所述数据块的索引条目可按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
此外,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
在实际应用中,可以采用多种具体的实施方式实现所述转储。实现该转储的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
本申请实施例所述的转储,采用下述方式:
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
将读取到的所述数据块中包含的数据项写入所述第二存储介质。
在具体实施时,从所述混合存储设备中读取数据,可采用多种实施方式实现。实现该数据读取的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
本申请实施例所述的混合存储设备中数据的读取,采用下述方式:
接收所述数据块的数据读取消息;
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
综上所述,本申请提供的用于混合存储设备读写数据的方法,将多个数据块写入预设存储介质的写入请求,聚合成一个数据记录,将聚合后的所述数据记录写入所述第一存储介质,并将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储,该方法可对多个数据块写入存储介质的写入请求进行批处理,减少了数据块写入所述混合存储设备中存储介质的次数,同时,还实现了将所述数据块的数据信息和元信息在聚合后同时写入所述第一存储介质,进一步减少了数据写入所述混合存储设备中存储介质的次数,提升了所述混合存储设备中存储介质在数据写入时的性能,延长了所述混合存储设备中存储介质的使用寿命。
本申请提供的用于混合存储设备读写数据的方法,采用顺序写入的方式将所述数据记录写入所述第一存储介质,避免了采用随机写入的方式将所述数据记录写入所述第一存储介质产生的写放大,进一步提升了所述混合存储设备的性能,延长了所述混合存储设备中存储介质的使用寿命。
本申请提供的用于混合存储设备读写数据的方法,采用索引封装结构对索引结构进行统一标记的状态标记,而不是对所述数据块中每个数据项进行状态标记,减少了执行状态标记的查询操作,此外,所述索引结构的状态标识,写操作发生在标记为所述可读写状态标识的索引结构,转储发生在标记为所述第一只读标识的索引结构,避免了索引访问的互斥,降低了锁冲突,从而提升了所述混合存储设备中存储介质的性能。
所述用于混合存储设备读写数据的装置实施例如下:
在上述的实施例中,提供了一种用于混合存储设备读写数据的方法,与之相对应的,本申请还提供了一种用于混合存储设备读写数据的装置。
参照图3,其示出了根据本实施例提供的一种用于混合存储设备读写数据的装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请所述的一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该装置包括:
写入请求接收单元301,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块聚合单元302,用于对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
数据记录写入单元303,用于将所述数据记录写入所述第一存储介质;
数据记录转储单元304,用于将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
可选的,所述数据块聚合单元302,包括:
数据块划分子单元,用于按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
数据块集聚合子单元,用于对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述数据记录转储单元304,包括:
索引条目查找子单元,用于查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
转储子单元,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
可选的,所述用于混合存储设备读写数据的装置,包括:
数据块检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
数据块读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
数据块写入单元,用于将读取到的所述数据块中包含的数据项写入所述第二存储介质。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述用于混合存储设备读写数据的装置,包括:
数据读取消息接收单元,用于接收所述数据块的数据读取消息;
检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
第一数据项读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
第二数据项读取单元,用于从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请提供的另一种用于混合存储设备读写数据的方法实施例如下:
在上述的实施例中,提供了一种用于混合存储设备读写数据的方法,与之相类似的,本申请提供了另一种用于混合存储设备读写数据的方法。
参照图4,其示出了根据本实施例提供的一种用于混合存储设备读写数据的方法处理流程图。由于本实施例与上述方法实施例类似,所以描述得比较简单,相关的部分请参见上述方法实施例的对应说明即可。
步骤S401,接收至少一个数据块写入所述混合存储设备的写入请求。
所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率。
步骤S402,将所述数据块写入所述第一存储介质。
步骤S403,查找所述数据块在所述第一存储介质设置的索引结构中的索引条目。
所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
步骤S404,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中。
所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中。
步骤S405,将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
可选的,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述转储,采用下述方式:
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
将读取到的所述数据块中包含的数据项写入所述第二存储介质。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述将所述数据块写入所述第一存储介质步骤,包括:
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
可选的,所述对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录子步骤,包括:
按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述用于混合存储设备读写数据的方法,包括:
接收所述数据块的数据读取消息;
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请提供的另一种用于混合存储设备读写数据的装置实施例如下:
在上述的实施例中,提供了另一种用于混合存储设备读写数据的方法,与之相对应的,本申请还提供了另一种用于混合存储设备读写数据的装置。
参照图5,其示出了根据本实施例提供的另一种用于混合存储设备读写数据的装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请所述的另一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;该装置包括:
写入请求接收单元501,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块写入单元502,用于将所述数据块写入所述第一存储介质;
索引条目查找单元503,用于查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
数据块划分单元504,用于根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
数据块转储单元505,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述用于混合存储设备读写数据的装置,包括:
数据块检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
数据块读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
数据块写入单元,用于将读取到的所述数据块中包含的数据项写入所述第二存储介质。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述数据块写入单元502,包括:
数据块聚合子单元,用于对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
数据块写入子单元,用于将所述数据记录写入所述第一存储介质;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
可选的,所述数据块聚合子单元,包括:
数据块划分子单元,用于按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
数据记录生成子单元,用于对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述用于混合存储设备读写数据的装置,包括:
数据读取消息接收单元,用于接收所述数据块的数据读取消息;
检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
第一数据项读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
第二数据项读取单元,用于从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种用于混合存储设备读写数据的方法,此外,本申请还提供了一种用于实现所述用于混合存储设备读写数据的方法的电子设备,下面结合附图进行说明。
参照附图6,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的所述用于混合存储设备读写数据的方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;所述电子设备包括:
存储器601,以及处理器602;
所述存储器601用于存储计算机可执行指令,所述处理器602用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
可选的,所述对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录步骤,采用下述方式实现:
按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储步骤,包括:
查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
可选的,所述转储,采用下述方式:
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
将读取到的所述数据块中包含的数据项写入所述第二存储介质。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述用于混合存储设备读写数据的方法,包括:
接收所述数据块的数据读取消息;
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
本申请提供的另一种电子设备实施例如下:
在上述的实施例中,提供了另一种用于混合存储设备读写数据的方法,此外,本申请还提供了一种用于实现上述另一种用于混合存储设备读写数据的方法的电子设备,下面结合附图进行说明。
参照附图6,其示出了本实施例提供的另一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供另一种用于混合存储设备读写数据的方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供另一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;所述电子设备包括:
存储器701,以及处理器702;
所述存储器701用于存储计算机可执行指令,所述处理器702用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
将所述数据块写入所述第一存储介质;
查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
可选的,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
可选的,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
可选的,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
可选的,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
可选的,所述将所述数据块写入所述第一存储介质步骤,包括:
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
可选的,所述数据记录按照顺序写入方式写入所述第一存储介质。
可选的,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
可选的,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
可选的,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
可选的,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (39)

1.一种用于混合存储设备读写数据的方法,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
接收至少一个数据块写入所述混合存储设备的写入请求;
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
2.根据权利要求1所述的用于混合存储设备读写数据的方法,其特征在于,所述数据记录按照顺序写入方式写入所述第一存储介质。
3.根据权利要求1所述的用于混合存储设备读写数据的方法,其特征在于,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
4.根据权利要求3所述的用于混合存储设备读写数据的方法,其特征在于,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
5.根据权利要求4所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
6.根据权利要求4所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
7.根据权利要求3所述的用于混合存储设备读写数据的方法,其特征在于,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
8.根据权利要求1所述的用于混合存储设备读写数据的方法,其特征在于,所述对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录步骤,采用下述方式实现:
按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
9.根据权利要求1所述的用于混合存储设备读写数据的方法,其特征在于,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
10.根据权利要求9所述的用于混合存储设备读写数据的方法,其特征在于,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
11.根据权利要求10所述的用于混合存储设备读写数据的方法,其特征在于,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
12.根据权利要求11所述的用于混合存储设备读写数据的方法,其特征在于,所述将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储步骤,包括:
查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
13.根据权利要求12所述的用于混合存储设备读写数据的方法,其特征在于,所述转储,采用下述方式:
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
将读取到的所述数据块中包含的数据项写入所述第二存储介质。
14.根据权利要求12所述的用于混合存储设备读写数据的方法,其特征在于,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
15.根据权利要求14所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
16.根据权利要求9所述的用于混合存储设备读写数据的方法,其特征在于,包括:
接收所述数据块的数据读取消息;
根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
17.一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
写入请求接收单元,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块聚合单元,用于对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
数据记录写入单元,用于将所述数据记录写入所述第一存储介质;
数据记录转储单元,用于将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
18.根据权利要求17所述的用于混合存储设备读写数据的装置,其特征在于,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
19.根据权利要求17所述的用于混合存储设备读写数据的装置,其特征在于,所述数据块聚合单元,包括:
数据块划分子单元,用于按照预设的数据块数目基准和/或数据量基准,将获取到的所述写入请求各自对应的数据块划分为至少一个数据块集;
数据块集聚合子单元,用于对划分后的各个数据块集分别按照所述数据聚合基准进行聚合,聚合之后生成各个数据块集分别对应的数据记录;
其中,所述数据记录中包含对应的数据块集中各个数据块的数据信息和元数据。
20.根据权利要求17所述的用于混合存储设备读写数据的装置,其特征在于,所述第一存储介质中写入的数据块分别设置有至少一个索引结构,所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
21.根据权利要求20所述的用于混合存储设备读写数据的装置,其特征在于,所述第一存储介质中写入的数据块分别设置有至少一个索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
22.根据权利要求21所述的用于混合存储设备读写数据的装置,其特征在于,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
23.根据权利要求22所述的用于混合存储设备读写数据的装置,其特征在于,所述数据记录转储单元,包括:
索引条目查找子单元,用于查找所述数据块的索引条目,根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中,并且该索引封装结构的索引结构标记为所述第一只读状态标识;
转储子单元,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储。
24.根据权利要求17所述的用于混合存储设备读写数据的装置,其特征在于,包括:
数据读取消息接收单元,用于接收所述数据块的数据读取消息;
索引条目检索单元,用于根据所述第一存储介质中所述数据块的索引结构,检索所述数据块的索引条目;
第一数据项读取单元,用于根据所述索引条目中记录的存储位置信息,从所述第一存储介质中读取所述数据块中包含的数据项;
第二数据项读取单元,用于从所述第二存储介质中读取所述数据块中未检索到的数据项,与所述第一存储介质中读取的所述数据块中包含的数据项合并。
25.一种用于混合存储设备读写数据的方法,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
接收至少一个数据块写入所述混合存储设备的写入请求;
将所述数据块写入所述第一存储介质;
查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
26.根据权利要求25所述的用于混合存储设备读写数据的方法,其特征在于,所述索引封装结构还包括:
所述数据块的索引结构在所述第一存储介质存储的起始位置信息和终止位置信息,所述数据块的索引结构的状态标识。
27.根据权利要求26所述的用于混合存储设备读写数据的方法,其特征在于,所述状态标识包括:
可读写状态标识、第一只读状态标识、第二只读状态标识。
28.根据权利要求27所述的用于混合存储设备读写数据的方法,其特征在于,所述数据块的索引条目按照下述查找优先级进行查找:
所述查找优先级从高到低依次为:标记为所述可读写状态标识的索引结构->标记为所述第一只读状态标识的索引结构->标记为所述第二只读状态标识的索引结构。
29.根据权利要求28所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据块存在至少2个处于同一查找优先级的索引结构,按照索引结构建立的先后顺序,优先查找在先建立的索引结构。
30.根据权利要求25所述的用于混合存储设备读写数据的方法,其特征在于,所述将所述数据块写入所述第一存储介质步骤,包括:
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
31.根据权利要求30所述的用于混合存储设备读写数据的方法,其特征在于,所述数据记录按照顺序写入方式写入所述第一存储介质。
32.根据权利要求30所述的用于混合存储设备读写数据的方法,其特征在于,所述数据记录,包括:
数据头信息、数据记录信息和数据补充信息;
其中,所述数据头信息中包含所述数据块各自的元数据,所述数据记录信息中包含所述数据块各自的数据信息。
33.根据权利要求32所述的用于混合存储设备读写数据的方法,其特征在于,所述数据聚合基准,包括:
所述数据头信息与所述第一存储介质的存储单元的大小对齐,和/或所述数据记录信息与所述第一存储介质的存储单元的大小对齐。
34.根据权利要求33所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据头信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据头信息中填充所述数据补充信息,使填充后的所述数据头信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
35.根据权利要求33所述的用于混合存储设备读写数据的方法,其特征在于,若所述数据记录信息的大小大于或者小于所述第一存储介质的存储单元的大小,在所述数据记录信息中填充所述数据补充信息,使填充后的所述数据记录信息与所述第一存储介质的存储单元的大小对齐;
其中,填充的所述数据补充信息的大小小于所述第一存储介质的存储单元的大小。
36.根据权利要求32所述的用于混合存储设备读写数据的方法,其特征在于,所述数据头信息中包含的各个数据块对应的数据头信息的排列顺序,与所述数据记录信息中包含的各个数据块对应的数据记录信息的排列顺序相同。
37.一种用于混合存储设备读写数据的装置,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
写入请求接收单元,用于接收至少一个数据块写入所述混合存储设备的写入请求;
数据块写入单元,用于将所述数据块写入所述第一存储介质;
索引条目查找单元,用于查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
数据块划分单元,用于根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
数据块转储单元,用于将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
38.一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
对所述数据块各自的数据信息和元数据按照预设的数据聚合基准进行聚合,聚合之后生成所述数据块对应的数据记录;
将所述数据记录写入所述第一存储介质;
将所述第一存储介质中写入的所述数据记录向所述第二存储介质中转储;
其中,所述数据记录中包含对应的数据块各自的数据信息和元数据。
39.一种电子设备,所述电子设备用于混合存储设备的数据读写,所述混合存储设备至少包括第一存储介质和第二存储介质,所述第一存储介质的读写速率大于所述第二存储介质的读写速率;其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收至少一个数据块写入所述混合存储设备的写入请求;
将所述数据块写入所述第一存储介质;
查找所述数据块在所述第一存储介质设置的索引结构中的索引条目;
根据查找到的索引条目将需要转储的所述数据块中包含的数据项划分到新的索引封装结构中;
将划分后所述新的索引封装结构中的数据项向所述第二存储介质中转储;
其中,所述第一存储介质中的数据块设置有索引封装结构,所述数据块的索引结构包含在所述数据块对应的索引封装结构中;所述数据块中包含的数据项在所述数据块的索引结构中设置有对应的索引条目,所述索引条目中记录有所述数据项标识和所述数据项在所述第一存储介质中的存储位置信息。
CN201610822034.8A 2016-09-13 2016-09-13 用于混合存储设备读写数据的方法以及装置 Active CN107817946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610822034.8A CN107817946B (zh) 2016-09-13 2016-09-13 用于混合存储设备读写数据的方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610822034.8A CN107817946B (zh) 2016-09-13 2016-09-13 用于混合存储设备读写数据的方法以及装置

Publications (2)

Publication Number Publication Date
CN107817946A true CN107817946A (zh) 2018-03-20
CN107817946B CN107817946B (zh) 2021-06-04

Family

ID=61601266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610822034.8A Active CN107817946B (zh) 2016-09-13 2016-09-13 用于混合存储设备读写数据的方法以及装置

Country Status (1)

Country Link
CN (1) CN107817946B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109741777A (zh) * 2018-12-28 2019-05-10 上海新储集成电路有限公司 一种提高速度和保持数据时间的存储器
CN110209341A (zh) * 2018-03-23 2019-09-06 腾讯科技(深圳)有限公司 一种数据写入方法、装置和存储设备
CN111158609A (zh) * 2019-12-31 2020-05-15 广州鼎甲计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN111596865A (zh) * 2020-05-22 2020-08-28 浙江大华技术股份有限公司 一种存储处理方法及装置
WO2021093461A1 (zh) * 2019-11-11 2021-05-20 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的聚合计算方法、装置及设备
CN112990612A (zh) * 2021-05-17 2021-06-18 湖南三湘银行股份有限公司 一种基于联邦学习的预测系统及方法
CN113111194A (zh) * 2021-04-07 2021-07-13 山东英信计算机技术有限公司 对象元数据聚合方法、读取方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1003621A6 (fr) * 1991-12-13 1992-05-05 Uken Res And Dev Ltd Procede de controle de memoire.
CN102147768A (zh) * 2010-05-21 2011-08-10 苏州捷泰科信息技术有限公司 存储器、固态缓存系统及缓存数据处理方法
CN103039057A (zh) * 2010-03-31 2013-04-10 安全第一公司 对移动中数据进行保护的系统和方法
CN103902702A (zh) * 2014-03-31 2014-07-02 北京车商汇软件有限公司 一种数据存储系统和存储方法
CN103942159A (zh) * 2014-03-19 2014-07-23 华中科技大学 一种基于混合存储设备的数据读写方法与装置
CN103984605A (zh) * 2013-02-08 2014-08-13 希捷科技有限公司 在多层存储器结构中存储纠错码
CN104285214A (zh) * 2012-03-07 2015-01-14 网络装置公司 混合储存集合块跟踪

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1003621A6 (fr) * 1991-12-13 1992-05-05 Uken Res And Dev Ltd Procede de controle de memoire.
CN103039057A (zh) * 2010-03-31 2013-04-10 安全第一公司 对移动中数据进行保护的系统和方法
CN102147768A (zh) * 2010-05-21 2011-08-10 苏州捷泰科信息技术有限公司 存储器、固态缓存系统及缓存数据处理方法
CN104285214A (zh) * 2012-03-07 2015-01-14 网络装置公司 混合储存集合块跟踪
CN103984605A (zh) * 2013-02-08 2014-08-13 希捷科技有限公司 在多层存储器结构中存储纠错码
CN103942159A (zh) * 2014-03-19 2014-07-23 华中科技大学 一种基于混合存储设备的数据读写方法与装置
CN103902702A (zh) * 2014-03-31 2014-07-02 北京车商汇软件有限公司 一种数据存储系统和存储方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209341A (zh) * 2018-03-23 2019-09-06 腾讯科技(深圳)有限公司 一种数据写入方法、装置和存储设备
CN110209341B (zh) * 2018-03-23 2022-02-01 腾讯科技(深圳)有限公司 一种数据写入方法、装置和存储设备
CN109741777A (zh) * 2018-12-28 2019-05-10 上海新储集成电路有限公司 一种提高速度和保持数据时间的存储器
WO2021093461A1 (zh) * 2019-11-11 2021-05-20 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的聚合计算方法、装置及设备
CN111158609A (zh) * 2019-12-31 2020-05-15 广州鼎甲计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN111158609B (zh) * 2019-12-31 2020-11-20 广州鼎甲计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN111596865A (zh) * 2020-05-22 2020-08-28 浙江大华技术股份有限公司 一种存储处理方法及装置
CN113111194A (zh) * 2021-04-07 2021-07-13 山东英信计算机技术有限公司 对象元数据聚合方法、读取方法、装置、设备及存储介质
CN113111194B (zh) * 2021-04-07 2022-11-18 山东英信计算机技术有限公司 对象元数据聚合方法、读取方法、装置、设备及存储介质
CN112990612A (zh) * 2021-05-17 2021-06-18 湖南三湘银行股份有限公司 一种基于联邦学习的预测系统及方法
CN112990612B (zh) * 2021-05-17 2021-08-10 湖南三湘银行股份有限公司 一种基于联邦学习的预测系统及方法

Also Published As

Publication number Publication date
CN107817946B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN107817946A (zh) 用于混合存储设备读写数据的方法以及装置
CN106570018B (zh) 序列化与反序列化的方法、装置、系统以及电子设备
CN107180092B (zh) 一种文件系统的控制方法、装置及终端
US6789094B2 (en) Method and apparatus for providing extended file attributes in an extended attribute namespace
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN103838853B (zh) 一种基于不同存储介质的混合文件系统
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
CN103229164B (zh) 数据访问方法和装置
CN106682110B (zh) 一种基于哈希格网索引的影像文件存储和管理系统及方法
CN107958079A (zh) 聚合文件删除方法、系统、装置及可读存储介质
CN104778192B9 (zh) 表示可内容寻址存储系统的目录结构
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN104217023A (zh) 一种利用打包技术解决地图瓦片存储的方法
CN109885577A (zh) 数据处理方法、装置、终端及存储介质
US11868328B2 (en) Multi-record index structure for key-value stores
CN108052541A (zh) 基于多级页表目录结构的文件系统的实现、访问方法、终端
CN110399333A (zh) 删除快照的方法、设备和计算机程序产品
CN105117451B (zh) 一种地图瓦片文件的存储方法
CN114153848A (zh) 区块链数据存储方法及装置、电子设备
CN104951482B (zh) 一种操作Sparse格式的镜像文件的方法及装置
CN107423425A (zh) 一种对k/v格式的数据快速存储和查询方法
CN101777077B (zh) 嵌入式设备文件系统实现方法
CN102270179B (zh) 用于cad系统的基于片元的数据存储和处理方法及其系统
CN110288340B (zh) 一种基于Java智能合约的数据集合存储方法
US20170286442A1 (en) File system support for file-level ghosting

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