CN112817544A - 一种数据处理方法、存储***及存储设备 - Google Patents
一种数据处理方法、存储***及存储设备 Download PDFInfo
- Publication number
- CN112817544A CN112817544A CN202110245480.8A CN202110245480A CN112817544A CN 112817544 A CN112817544 A CN 112817544A CN 202110245480 A CN202110245480 A CN 202110245480A CN 112817544 A CN112817544 A CN 112817544A
- Authority
- CN
- China
- Prior art keywords
- data
- storage medium
- storage
- block
- aggregation
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 399
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 230000002776 aggregation Effects 0.000 claims abstract description 243
- 238000004220 aggregation Methods 0.000 claims abstract description 243
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 58
- 238000013500 data storage Methods 0.000 claims description 13
- 230000004931 aggregating effect Effects 0.000 claims description 9
- 230000003321 amplification Effects 0.000 abstract description 15
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 15
- 239000007787 solid Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 239000000872 buffer Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据处理方法、存储***及存储设备。其中,所述方法包括:获取欲写入的数据;将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。本申请实施例提供的技术方案,可提升数据写入速率,且能够降低写放大,减少硬盘损耗。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据处理方法、存储***及存储设备。
背景技术
目前,利用分布式存储***存储数据时,数据常以多副本方式被同步记录到分布式存储***的各个存储节点下的硬盘中,以实现持久化保存。虽然,采用多副本同步记录方式在冗余范围内可有效避免数据的丢失,但却存在数据写入延迟高、硬盘损耗大等问题。
发明内容
鉴于上述问题,本申请提供一种解决上述问题或至少部分解决上述问题的一种数据处理方法、***及存储设备。
在本申请的一个实施例中,提供了一种数据处理方法。该方法,包括:
获取欲写入的数据;
将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;
待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
在本申请的一个实施例中,提供了一种存储***。该***,包括:
第一存储介质,用于获取欲写入的数据;将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;待转存条件满足时,向第二存储介质发送所述聚合块内的多个数据;
第二存储介质,用于持久化保存所述聚合块内的多个数据,并向所述第一存储介质发送已存入信息;
所述第一存储介质,还用于在接收到所述已存入信息后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
在本申请的一个实施例中,提供了一种存储设备。该存储设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取欲写入的数据;
将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;
待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
本申请实施例提供的技术方案,在获取到欲写入的数据后,会将所述数据先存入第一存储介质内的聚合块,然后待转存条件满足时,再将所述聚合块内的多个数据存入第二存储介质,以持久化保持所述多个数据;且在所述聚合块内的多个数据存入所述第二存储介质后,将会把所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。本方案以聚合块为基本存入单位将数据存入所述第二存储介质,可利于提高数据存入速率,且能够效降低写放大,减少硬盘损耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要利用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据处理方法的流程示意图;
图2a为本申请一实施例提供的数据处理对应的软件架构原理性示意图;
图2b为本申请另一实施例提供的数据处理对应的软件架构原理性示意图;
图3a为本申请一实施例提供的数据存入第一存储介质时的原理性示意图;
图3b为本申请一实施例提供的第一存储介质内的聚合块对应的状态示意图;
图3c为本申请另一实施例提供的第一存储介质内的聚合块对应的状态示意图;
图3d为本申请又一实施例提供的第一存储介质内的聚合块对应的状态结果示意图;
图4为本申请一实施例提供的存储***的结构框图;
图5为本申请一实施例提供的数据处理装置的结构框图;
图6为本申请一实施例提供的存储设备的结构框图。
具体实施方式
目前,市面上的存储装置主要分为机械硬盘(Hard Driver disk,HDD)及固态硬盘(Solid State Disk,SSD)两大类。一般来说,由于制造HDD的成本较低,故而HDD的容量普遍大于SSD,但对于数据存储速度来说,SSD的数据存储速度却远高于HDD。因此,现有技术中越来越多的存储服务器采用固态混合硬盘(Solid State Hybrid Drive)的混合式硬盘架构,即将HDD作为基本的数据存储空间,将SSD作为***缓存层,以此实现性能和成本之间的平衡。例如,参见图2a示出的数据写入对应的软件架构原理性示意图,用户在通过客户端将欲写入的数据(即Write IO)发送至存储设备01时,存储设备01首先会将该数据存入内存(Memory write cache),由于内存只能用来暂时存放数据,一旦掉电,内存中的数据就会丢失,为此,还需将内存中的数据写入可持久化保存的硬盘。比如,将内存中的数据写入机械硬盘HDD,此时为确保存储设备01的数据写入性能,是以写缓存固态硬盘(SSD writecache)作为内存中的数据写入机械硬盘HDD之前的缓存层,以使数据在SSD write cache中保存到一定大小后,再将这部分数据写入机械硬盘HDD;再比如,将内存中缓存的数据直接写入以日志方式记录数据的缓存固态硬盘(SSD WAL cache),以持久化保存数据、提升存储设备的整体性能。上述图2a中示出的SSD write cache和SSD WAL cache本质上均是固态硬盘SSD,区别仅在于对固态硬盘SSD空间的使用方式不同,
不过,随着分布式技术的发展,分布式存储***应运而生。现有分布式存储***,在将内存中的数据写入不同存储节点(即存储设备,也可简单理解为存储服务器)下的SSDWAL cache时,多通过分布式哈希算法,采用多副本方式,将数据以日志形式同步记录到各存储节点下的SSD WAL cache,以此来保证数据持久化。虽然,利用多副本同步日志记录方式在冗余范围内可有效避免存储***丢失数据,但在如以存储***作为***盘的虚拟机等一些场景下,却存在允许存储***丢失***异常前的部分数据问题,而且,上述多副本同步日志记录方式由于是直接将内存中的数据写入各存储节点下的SSD WAL cache,故而还存在数据写入延迟高、硬盘损耗大等问题。此外,现有技术在实现数据读写过程时,多侧重于数据读写整体设计,并未专门针对将数据写入SSD WAL cache的过程进行具体设计。
为了解决或部分解决上述问题,本申请一个或多个实施例提供了一种数据处理方法,该数据处理方法采用异步聚合方式将欲写入的数据分布存入至存储***中的各存储节点下的SSD WAL cache。为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。而本申请中术语“或/和”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如:A或/和B,表示可以单独存在A,同时存在A和B,单独存在B这三种情况;本申请中字符“/”,一般表示前后关联对象是一种“或”关系。此外,下述的各实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在对本申请各实施例提供的方案进行说明之前,先对本申请中涉及的相关名词进行简要说明。
同步方式:在分布式存储***中,将客户端对应的主存储节点下用于缓存数据的内存(如图2a示出的内存Memory write cache)中的数据,发送至其它副存储节点后,数据被成功存入其它副存储节点下的可持久化保持的固态硬盘(如图2a示出的SSD WAL cache)中,才向主存储节点反馈数据写成功信息,这种方式即为同步;
异步方式:在分布式存储***中,将客户端对应的主存储节点下内存中的数据,发送至其它副存储节点后,数据被保存到其它副存储节点下的内存中,就向主存储节点反馈数据写成功信息,这种方式即为异步;
写放大(Write Amplification,WF)是固态硬盘SSD及闪存装置中的一个不良现象,具体是指实际写入固态硬盘SSD的数据量大于数据本身的数据量。举例来说,由于固态硬盘SSD自身特征,当固态硬盘SSD被写满一遍后,再执行数据写入就必须对原有数据进行擦除(一般情况下,擦除单位要远大于最小写入单位,如常见的写入单位为页大小(即4KB),但常见的擦除单位为块大小(即512KB,或者更高)),而在擦除之前需要将原来擦除块中的数据(这里指有效数据)复制到其他擦除块中,从而也就导致了这些被复制的数据再次被写入其他擦除块(第一次写入是指从外部接收该数据时将其写入一个擦除块),为此在执行一新数据写入时,实际写入固态硬盘的数据量大于该新数据本身的数据量。此外,由于固态硬盘SSD的擦除次数有限,因此写放大问题会增大固态硬盘SSD的损耗,减少其使用寿命。
RPO(Recovery Point Object),即恢复点目标,指在灾难发生后,容灾***将数据恢复到灾难发生前的时间点目标,可以描述为存储***所允许丢失的最大数据量。例如,1小时的RPO至灾难发生后容灾***能够对灾难发生1小时前的所有数据进行恢复,但这1小时的数据可能会丢失;
以下各实施例提供的数据处理方法可应用于如图4示出的分布式存储***中,且是基于图2b示出的存储设备执行数据写入对应的软件架构进行实现的。如图2b所示,为了解决图2a中存储设备01将内存Memory write cache中的数据直接写入SSD WAL cache时,所存在的数据写入延迟高、硬盘损耗大等问题,本实施例对图2a中存储设备01执行数据写入对应的软件架构进行了改进,得到图2b中示出的存储设备02(也即存储设备01)执行数据写入对应的软件架构。如图2b所示,在存储设备02中的内存Memory write cache与SSD WALcache之间增设了一缓存层Memory WAL buffer。利用缓存层Memory WAL buffer,在将内存Memory write cache中的数据写入SSD WAL cache之前,可先将数据缓存至缓存层MemoryWAL buffer并进行聚合处理,待缓存至缓存层Memory WAL buffer中的数据聚合到预设数量阈值时,再将聚合后的多个数据写入SSD WAL cache,以此减少硬盘损耗;其中,所述预设数量阈值可以根据实际情况而定,比如该预设数量阈值可以是使固态硬盘的写放大效果最小所对应的数量阈值,具体可以为固态硬盘物理块大小的整数倍。基于上述所述,在图4示出的存储***中,可在每个存储节点的内存Memory write cache与SSD WAL cache之间均设有缓存层Memory WAL buffer,用户通过客户端设备30将欲写入数据发送至主存储节点(即第一存储设备10)后,为了实现备灾效果,主存储节点会将存入至内存中的所述欲写入数据分发至副存储节点(即第二存储设备20),存储***在确认数据存入副存储节点下的内存Memory write cache和缓存层Memory WAL buffer的情况下,即可向客户端设备30反馈数据存入成功的提示信息,所述提示信息包括但不限于图像、文本、语音等。另外,为了实现数据的持久化保存,还会继续控制各个存储节点将缓存层Memory WAL buffer中的数据存入SSD WAL cache中。具体实施时,是将聚合处理后的缓存层Memory WAL buffer中的数据存入SSD WAL cache,以减少硬盘损耗,具体实现过程可参见下述相关内容,这里不作具体赘述。
图1示出了本申请一实施例提供的数据处理方法的流程示意图。如图1所示,该方法包括以下步骤:
101、获取欲写入的数据;
102、将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的。
103、待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
104、所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
上述101中,所述欲写入的数据可以是从一存储设备中的第三存储介质获取到的,而所述第三存储介质中的所述欲写入数据则是客户端设备或者***中的任一执行某项任务的设备(比如摄像头、麦克风)向相应的存储设备发送的。其中,所述第三存储介质为存储设备对应的内存,如为图2a或图2b中的内存Memory write cache;所述数据具体可以是摄像头采集的图像数据,也可以是麦克风采集的语音数据,或者还可以是从互联网上下载的文字数据等等,本实施例对所述数据的具体形式并不作限定;所述客户端设备可以为手机、平板电脑、台式计算机、笔记本电脑、智能穿戴设备等任意终端设备,本实施例对此不作具体限定。据此,步骤101“获取欲写入的数据”的一种可实现方式为:从第三存储介质中,获取欲写入的数据。
在实际应用中,继续参见图2b,SSD WAL cache中通常不仅需要保存客户端设备或者***中的任一执行某项任务的设备发送的诸如图像、语音、文本等数据的本体内容,还需要保存与数据本体相关的元数据,所述元数据可简单的理解为数据的描述信息,比如:数据的偏移地址、数据长度、用来检验数据完整性的校验值等。一般情况下,元数据在存入SSDWAL cache时,往往仅需占用较小的存储空间即可,一般为几十字节,但在将元数据写入至SSD WAL cache的过程中,因受存储***的最小读写单位限制,常需将元数据对齐到一固定长度才能够将元数据写入SSD WAL cache。例如,假设元数据a本身只占有30字节,SSD WALcache的最小读写单位为4096字节,此种情况下,若想将元数据a写入SSD WAL cache,需将元数据a对齐到4096字节大小,这无疑造成了存储空间的极大浪费,且还会增大硬盘损耗;同样,在将数据本体写入至SSD WAL cache时,若数据本体比较小,也存在上述浪费存储空间、增大硬盘损耗问题。基于此,为避免上述问题,本实施例在将内存Memory write cache中的数据本体及与数据本体相关的元数据写入SSD WAL cache之前,是先将数据本体及与数据本体相关的元数据缓存至一缓存层中,比如图2b示出的缓存层Memory WAL buffer,且同时对数据本体及与数据本体相关的元数据进行聚合处理,以聚合形成若干个包含有多个数据本体或者与数据本体相关的多个元数据的聚合块后,再以聚合块为基本单位将所述聚合块内的多个数据本体或者与多个数据本体相关的多个元数据存入SSD WAL cache。具体实施时,可采用将数据本体及与数据本体相关的元数据在缓存层Memory WAL buffer内的不同存储队列中进行分开聚合。
基于上述内容,步骤101中的所述数据可包括第一类型数据或第二类型数据;其中,所述第一类型数据为所述第二类型数据的描述信息;不同类型的数据存入所述第一存储介质内的不同聚合块内;相应地,在一具体可实现技术方案中,上述步骤102“将所述数据存入第一存储介质内的聚合块”,可具体包括:
S01、根据所述数据所属类型,将所述数据存入所述第一存储介质内对应的聚合块;
具体实施时,所述第一存储介质即为存储设备中位于内存与固态硬盘之间的一缓存层,比如,所述第一存储介质为图2b中的缓存层Memory WAL buffer。在所述第一存储介质内具有至少一个存储队列,一个存储队列中的数据通过聚合形成多个聚合块;同一类型数据存入同一个存储队列中。为此,上述步骤S01中“将所述数据存入所述第一存储介质内对应的聚合块”,具体可采用以下步骤来实现:
S011、根据所述数据所属的类型,将所述数据存入对应的存储队列中;
S012、采用编号递增的方式,对进入所述存储队列中的所述数据标记队列编号;
其中,所述存储队列内的聚合块对应一个编号区间,基于所述数据对应的队列编号所处编号区间,能确定出所述数据所在的聚合块。
上述S011中,参见图3a,在所述数据为第一类型数据时,可以将所述数据存入存储队列R1;而在所述数据为第二类型数据时,可以将所述数据存入存储队列R2。
上述S012中,在采用编号递增方式对进入所述存储队列的所述数据进行标记队列编号时,可以将0或1等作为起始队列编号,对此本实施例不作限定。为了便于对本申请技术方案进行说明,本实施例以***数字从1开始对先后进入所述存储队列的所述数据进行递增标记队列编号,则队列编号后的存储队列内的所述数据的队列编号为一个自然数列,具体地存储队列的所述数据的队列编号可参见图3a中示出的存储队列R1内的第一类型数据对应的队列编号,或者存储队列R2内的第二类型数据对应的队列编号。
需要说明的是:由于一个存储队列内的多个聚合块是该存储队列内的数据通过聚合所形成的,为此所述存储队列内的聚合块实际对应一个编号区间,该编号区间与对存储队列的数据进行聚合处理时所设定的数量阈值以及所述数据的队列编号相关,所述数量阈值可以根据实际情况进行确定,例如,所述数量阈值可以是使写放大效果最小时所对应的数量,如可以为5、10、20等。具体地,继续参见图3a,假定所述数量阈值为10,所述数据为第一类型数据,与之对应的存储队列为R1,对存储队列R1内的第一类型数据进行聚合时,会依次顺序性地将连续10个进入存储队列R1内的第一类型数据进行聚合形成一聚合块,聚合块对应编号区间的上下限编号即为相应的一聚合开始及结束时所各自对应的第一类型数据的队列编号,故而存储队列R1内的第一类型数据通过聚合所形成的聚合块A1对应编号区间[1,10]、聚合块A2对应编号区间[11,20],以此类推,可以确定出存储队列R1内的数据通过聚合形成的其它聚合块所对应编号区间。因此,基于所述数据对应的队列编号所处编号区间,就能够确定所述数据所在的聚合块,进而还能够根据所述数据对应的队列编号和所处编号区间的上限编号,来判定所述数据所在聚合块内的数据量是否达到数据阈值。
也即,上述步骤S01“将所述数据存入所述第一存储介质内对应的聚合块”,还包括以下步骤:
S013、若所述数据对应的队列编号等于所处编号区间的上限编号,则所述数据所在聚合块内的数据量达到数量阈值。
本实施例中,属于同一数据信息的第一类型数据和第二类型数据,在不同存储队列中的存入编号相同,例如,参见图3a,存储队列R1内的第一类型数据a1与存储队列R2内的第二类型数据b1属于同一数据信息,二者在存入各自对应的存储队列时具有相同的队列编号,即均为1。
上述103中,由于所述第一存储介质的本质为缓存层,其作用是为所述数据提供一缓存聚合的空间,所述数据并无法在第一存储介质中进行长久存储,一旦掉电,所述数据便会丢失,为了能够持久化保存数据,还需待转存条件满足的情况下,针对所述聚合块内的多个数据向可持久化的所述第二存储介质发送写入请求,以便所述第二存储介质响应该写入请求,将所述聚合块内的多个数据存入所述第二存储介质。具体实施时,所述第二存储介质可以为如图2b中示出的SSD WAL cache;所述转存条件满足的情况包括如下中的至少一项:
S11、所述聚合块内的多个数据的存储时长达到时间阈值时,满足所述转存条件;
S12、所述聚合块内的数据量达到数量阈值时,满足所述转存条件;
S13、接收到针对所述聚合块的转存指示时,满足所述转存条件。
上述S11中,所述时间阈值与用户为所述第一存储介质配置的参数相关,所述参数可以为如RPO,例如,若设置RPO为1小时,则在所述聚合块内的多个数据存储时长达到1小时时,所述聚合块内的多个数据将会被发送至第二存储介质,以进行保存;
上述S12中,所述数量阈值可以根据实际情况进行确定,具体可以是使写放大效果最小所对应的数量,例如,所述数量阈值可以为5、10、20等,对此本实施例不作限定。
上述S13中,所述转存指示可以为如Flush请求中所包含的转存指示,所述Flush请求是根据客户端设备与存储设备之间的交互协议确定的,所述交互协议如可以为SCSI协议,所述SCSI协议中定义了SYNCHRONIZE CACHE操作,即为Flush请求对应的相关指示操作,比如针对所述聚合块的转存指示及删除指示等。上述Flush请求可以是由用户通过客户端设备提供的交互方式(比如鼠标、键盘、手触)向本实施例的应用存储***(如图4示出的存储***)发送的,存储***基于所接收到Flush请求中针对所述聚合块的转存指示,将所述聚合块内的多个数据存入第二存储介质,并在确定与所述Flush请求相对应的聚合块内的多个数据从所述第一存储介质删除后,认为完成了用户的Flush请求,从而可向用户对应的客户端设备反馈相应的提示信息,具体地如何确认Flush请求完成的过程可参见下述相关内容,这里不再作具体赘述
上述通过一种或多种方式来判定所述聚合块是否满足转存条件,从而在转存条件满足时将所述聚合块内的多个数据存入第二存储介质,可有效确保数据存入第二存储介质的效率,且利于提高数据的可靠性。例如,利用步骤S11和步骤S12中的转存条件,只要保证聚合块内的多个数据的存储时长达到时间阈值和/或聚合块内的数据量达到数量阈值,即可将聚合块内的多个数据存入第二存储介质,这既能够保证所述第一存储介质的参数(如PRO),又可提高数据存入效率、减少对硬盘寿命的影响,而利用步骤S13中的转存条件,即接收到针对所述聚合块的转存指示,则可进一步确保数据被存入第二存储介质,提升数据的可靠性。
这里需要说明的是,上述在转存条件满足时,将所第一存储介质内的聚合块内的多个数据存入所述第二存储介质过程,所对应的写入操作为异步操作,即:先向所述第二存储介质提交写入请求对应的聚合块内的多个数据可能会较晚存入所述第二存储介质。例如,参见图3a中示出的存储队列R1,假设聚合块A1先于聚合块A2满足转存条件,虽然第一存储介质会先针对聚合块A1内的多个数据向第二存储介质发送写入请求,之后在针对聚合块A2内的多个数据向第二存储介质发送写入请求,但聚合块A2内的多个数据可能会先成功存入第二存储介质。
上述104中,在确定所述聚合块内的多个数据全部被成功存入第二存储介质后,为了便于针对该聚合块内的多个数据作进一步地操作(如删除操作)还可以对该聚合块的状态进行设置,比如将所述聚合块的状态设置为可移除状态,从而在待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除,以释放存储空间。具体实施时,所述聚合块为队头聚合块时,判定满足所述移除条件,这是本着遵循队列相关性质原则(即队列只允许在一端(即队尾)进行***,而在另一端(即队头)进行删除)。据此,本实施例提供的所述方法,还可包括以下步骤:
105、所述聚合块的状态为可移除状态的情况下,判定所述聚合块是否为队头聚合块;
106、所述聚合块为队头聚合块时,处于可移除状态的所述聚合块内的多个数据从所述第一存储介质中删除。
进一步地,在所述聚合块内的多个数据从所述第一存储介质中删除之后,上述方法,还包括:
107、所述存储队列中位于所述聚合块后的至少一个聚合块前移。
具体实施时,前移动作在技术层面可包括:修改聚合块内的多个数据在存储队列的位置,数据的队列编号不变。
进一步地,上述方法,还包括:
108、在所述聚合块内的多个数据从所述第一存储介质中删除后,根据所述数据的写入请求方,向所述写入请求方对应的设备反馈第一提示信息。
具体实施时,承接上述步骤S13,所述第一提示信息可以是在确认完成用户(即写入请求方)发送的一Flush请求后,向用户对应的设备所反馈的提示信息,以使用户通过该第一提示信息能够明确所述数据被存入第二存储介质,利于进一步确保数据可靠性。其中,所述第二提示信息可以为但不限于如下中的至少一项:文本、图像、语音;所述写入请求方对应的设备可以为客户端设备,也可以是***中的任一项执行某项任务的设备。
进一步地,在步骤102“将所述数据存入所述第一存储介质内的聚合块”之后,还包括:
根据所述数据的写入请求方,向所述写入请求方对应的设备反馈所述数据存入成功的第二提示信息。
具体实施时,由于本实施例在处理欲写入数据时,采用的是异步聚合方式,在当数据存入第一存储介质内的聚合块之后,即可向写入请求方对应的设备反馈数据存入成功的第二提示信息,其中,所述写入请求方对应的设备可以是客户端设备,也可以是***中的任一执行某项任务的设备,比如摄像头、麦克风等;所述第二提示信息可以包括但不限于文本、图像、语音等。
举例来说,以写入请求方对应的设备为客户端设备为例,参见图4示出的存储***,用户通过客户端设备30针对欲写入的数据向第一存储设备10发送相应的写入请求后,所述第一存储设备10响应该写入请求,将所述数据缓存于自身内的第三存储介质11,同时为了实现备灾效果,第一存储设备还会将存入自身第三存储介质内的数据发送给第二存储设备20,所述第二存储设备20接收到所述数据并将所述数据缓存至其自身内的第一存储介质21后,存储***即可向用户对应的客户端设备30反馈数据存入成功的诸如文本、图像、语音等的提示信息。
本实施例提供的技术方案,在获取到欲写入的数据后,将会先将所述数据存入所述第一存储介质内对应的存储队列中,并同时对所述存储队列内的数据通过聚合形成多个聚合块;待满足转存条件时,然后以聚合块为基本单位将所述聚合块内的多个数据存入可持久化保持的第二存储介质,这可以有效提升数据存入速率,且能够有效降低写放大,减少硬盘损耗。
以上主要是从获取到的数据为单一类型数据角度来举例阐述本实施例提供的技术方案的,下面将从获取到多种类型数据的角度来例举一具体示例,以进一步阐述说明本实施例提供的技术方案,其中,所述多个类型数据属于同一数据信息。
在具体阐述本示例之前,先大概针对本实施例所涉及到的相关示意图,即图3a至图3d进行简单说明。具体地,图3a中存储队列内的数据在聚合时,对应的数据阈值为10,即将存储队列内的连续10个数据聚合形成一聚合块;在图3b至图3d中,并未对聚合块内的多个数据进行具体示出,仅通过过聚合块上显示的数据标识(如聚合块A1上显示的数据标识10)简单示出可每个聚合块内的多个数据各自对应的队列编号中的最大队列编号,且图中灰色聚合块(如图3c中的聚合块A3、聚合块B4)表征该聚合块内的多个数据已成功存入第二存储介质,对应的状态为聚合块内的多个数据处于可移除状态;白色聚合块(如图3c中的聚合块A1、聚合块B3)表征已针对该聚合块内的多个数据向第二存储介质提交了写入请求,但聚合块内的数据还未存入第二存储介质,对应的状态为聚合块内的多个数据处于不可移除状态。下面以获取到属于同一数据信息的两种类型数据为例来介绍本实施例提供的技术方案。
参见图3a,在获取到欲写入的属于同一数据信息的第一类型数据和第二类型数据后,基于第一类型数据和第二类型数据各自所属类型,分别将所述第一类型数据和所述第二类型数据存入第一存储介质内对应的存储队列中,如将第一类型数据存入存储队列R1,将所述第二类型数据存入存储队列R2;若当前存储队列R1内的第一类型数据通过聚合形成如图3b中存储队列R1内示出的4个聚合块,即聚合块A1、聚合块A2、聚合块A3和聚合块A4,同时存储队列R2内的第二类型数据通过聚合形成如图3b中存储队列R2内示出的4个聚合块,即聚合块B1、聚合块B2、聚合块B3和聚合块B4,且上述图3b中存储队列R1内的4个聚合块和存储队列R2内的4个聚合块均在满足转存条件时便已被异步地发送给了第二存储介质,但当前还均未存入第二存储介质,这里设定上述满足转存条件的情况含有接收到针对所述聚合块的转存指示,所述转存指示对应于用户通过客户端设备发送的一个Flush请求。令***是在第28个数据信息时接收到用户发送的一个Flush请求的,那么只有在确定第一存储介质内的队列编号不大于28的第一类型数据和第二个类型数据全部存入第二存储介质并从第一存储介质删除后,才能确认***完成了用户的Flush请求,从而才可针对用户的Flush请求向用户反馈相应的提示信息,也即是,需要确保第28个第一类型数据所在的聚合块A3和第28个第二类型数据所在的聚合块B3全部从各自所位于的存储队列中移除之后,才能确定***完成了用户的Flush请求。
承接上述内容,假定经一时间段后,比如3秒、1分钟,第二存储介质针对聚合块A2、聚合块A3、聚合块B1、聚合块B2及聚合块B4,向第一存储介质反馈了存入成功的信息;根据该反馈信息,设置第一存储介质内的聚合块A2、聚合块A3、聚合块B1、聚合块B2及聚合块B4各自对应的状态为可移除状态,具体设置结果可参见图3c。由于聚合块B1为队头聚合块且其状态为可移除状态,此时可将聚合块B1内的多个第二类型数据从所述第一存储介质中删除;在聚合块B1内的多个第二类型数据删除之后,与聚合块B1相邻的聚合块B2将作为存储队列R2的新队头聚合块,而聚合块B2对应的状态也为可移除状态,为此继续执行将聚合块B2内的多个第二类型数据从第一存储介质中删除的操作,并将聚合块B3更新为存储队列R2的新队头聚合块,虽然存储队列R2内的聚合块B4对应的状态也为可移除状态,但聚合块B4为非队头聚合块,故而目前无法将聚合块B4内的多个第二类型数据从第一存储介质中删除,需等待聚合块B3内的多个第二类型数据存入第二存储介质。基于相同理由,同样也无法将聚合块A2和聚合块A3内的多个第一类型数据从第一存储介质中删除,由于聚合块A3和聚合块B3均未被移除各自所在存储队列,所以此时***还尚未完成用户的Flush请求。经上述一系列删除操作后,当前最终存储队列R1和存储队列R2的状态可参见图3d中的示意图100。
假定又经一时间段后,比如2分钟、5分钟,确定聚合块A1存入第二存储介质,则此时聚合块A1对应的状态为可移除状态且聚合块A1为队头聚合块,按照上述删除操作,针对存储队列R1内的处于可移除状态的聚合块内的多个第一类型数据,执行从所述第一存储介质中删除的操作,并得到如图3d中的示意图200示出的存储队列R1和存储队列R2的状态。基于示意图200示出的结果可知,此时聚合块A3内的多个第一类型数据已从存储队列R1内删除,即表明队列编号小于或等于30的第一类型数据已全部存入第二存储介质,不过聚合块B3还处于不可移除状态,为此***仍还尚未完成用户的Flush请求,还需等待聚合块B3内的多个第二类型数据存入第二存储介质并从第一存储介质移除,才能确认完成了用户的Flush请求,从而也就可针对用户的Flush请求向用户对应的设备反馈第一提示信息;其中,所述第一提示信息可以为但不限于文字、图片、语音等。
综上,本实施例是通过将属于同一数据信息的不同类型数据,在第一存储介质中进行分开聚合形成相对应的聚合块后,再以聚合块为基本单位将所述聚合块内的多个数据存入第二存储介质的。由于在聚合处理过程中,所设置的数量阈值(即一个聚合块内包含的数据所能够达到的最大数量)是根据实际情况进行灵活设置的,具体可为使写放大效果最小时对应的数量,为此在后续以聚合块为基本单位将所述聚合块内的多个数据存入第二存储介质时,也就可有效降低写放大,减少硬盘损耗。举例来说,设定一个数据的大小为4KB,第二存储介质为如图2b中示出的SSD WAL cache,SSD WAL cache内的块大小为512KB,在不对数据进行聚合处理的情况下,若将该大小为4KB的数据直接存入SSD WAL cache的一个块内,该块已无干净空间(即已被写满),但存有失效的数据可以擦除,此时SSD WAL cache的主控就会把该块内有效的数据(假设该块内的所有数据均为有效数据)复制到另外一个块内,然后对该块进行擦除,之后再执行该大小为4KB的数据存入操作。在上述整个过程中,实际本要写4KB的数据,却造成了整个块的写入操作,即造成了写512KB的数据,写放大为128倍。而若采用本实施例提供的技术方案对数据进行聚合处理,形成相对应的的聚合块(设定该聚合块包含有128个大小为4KB的数据)后,再以该聚合块为基本单位将该聚合块内的128个大小为4KB的数据存入上述SSD WAL cache的一个已写满的块内时,实际本来要写512KB的数据,造成的是写了2*512KB的数据,写放大仅为2。由此可见,本实施例提供的技术方案可有效降低写放大,从而也就可以有效减少硬盘损耗。
需要说明的是:以上数据处理方法可适用于任何涉及数据存储的场景中,本实施例对具体的应用场景不做具体限定。
下面介绍一种存储***。参见图4示出的本申请一实施例提供的存储***的结构示意图。该存储***,具体包括:
第一存储介质21,用于获取欲写入的数据;将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;待转存条件满足时,向第二存储介质发送所述聚合块内的多个数据;
第二存储介质22,用于持久化保存所述聚合块内的多个数据;并向所述第一存储介质发送已存入信息;
所述第一存储介质21,还用于在接收到所述已存入信息后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
本实施例提供的技术方案,在第一存储介质在获取到欲写入的数据后,将会先将所述数据存入所述第一存储介质内对应的存储队列中,并同时对所述存储队列内的数据通过聚合形成多个聚合块;待满足转存条件时,然后以聚合块为基本单位将所述聚合块内的多个数据存入可持久化保持的第二存储介质,这可以有效提升数据存入速率,且能够有效降低写放大,减少硬盘损耗。
进一步地,本实施例提供的所述***,还包括:
第三存储介质11,用于缓存欲写入的数据;
所述第一存储介质21,用于从所述第三存储介质中,获取欲写入的所述数据。
进一步地,上述所述存储***,还包括:
第一存储设备10,包含所述第三存储介质;
第二存储设备20,包含所述第一存储介质及所述第二存储介质;
客户端设备30,用于向所述第一存储设备发送欲写入的数据,以便所述第一存储设备10将所述数据缓存于所述第三存储介质中。
这里需要说明的是:第一存储设备10除包含图4中示出的第三存储介质外,还包含有第二存储设备20内的第一存储介质和第二存储介质,同样第二存储设备20还包含有第一存储设备10内的第三存储介质,在图4中并未进行具体示出。在具体交互过程中,用户通过客户端设备提供的交互方式(比如鼠标、键盘、手触)将欲写入的数据发送给主存储设备(即第一存储设备10),主存储设备在接收到所述数据后,会将所述数据先存入至其自身的第三存储介质(如内存),之后还会将自身第三存储介质内的所述数据下发至自身的第一存储介质;同时,为实现备灾效果,主存储设备同时还会将存入自身第三存储介质内的所述数据发送给副存储设备(即第二存储设备20),在副存储设备将所述数据先后存入自身的第三存储介质及第一存储介质后,存储***便可认为数据存入成功,即可向用户对应的客户端设备30反馈所述数据存入成功的提示信息。另外,由于第一存储介质的本质为缓存层,实质作用是用来缓存所述数据并对所述数据进行聚合处理,为此为实现数据的持久化保持,不管是主存储设备还是副存储设备都会执行将所述第一存储介质内的数据存入可持久化的第二存储介质中,相关地具体存入过程可参见上述相关内容,这里不再作具体阐述。
这里还需要说明的是:图4示出的存储***中的存储设备的数量仅仅是示意性的,并不代表实际数据,具体数量可以根据实际情况进行确定,本实施例对此不作具体限定。此外,本实施例提供的所述存储***中各步骤未尽详述的内容可参见上述各实施例中的相应内容,此处不再作赘述。另外,本实施例提供的所述存储***中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
图5示出了本申请一实施例提供的数据处理装置的结构框图。如图5所示,该数据处理装置,包括:获取模块301、第一存入模块302、第二存入模块303以及设置模块304,其中,
获取模块301,用于获取欲写入的数据;
第一存入模块302,用于将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;
第二存入模块303,用于待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
设置模块304,用于所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
本实施例提供的技术方案,在获取到欲写入的数据后,将会先将所述数据存入所述第一存储介质内对应的存储队列中,并同时对所述存储队列内的数据通过聚合形成多个聚合块;待满足转存条件时,然后以聚合块为基本单位将所述聚合块内的多个数据存入可持久化保持的第二存储介质,这可以有效提升数据存入速率,降低写放大,减少硬盘损耗。
进一步地,所述数据包括第一类型数据或第二类型数据;其中,所述第一类型数据为所述第二类型数据的描述信息;不同类型的数据存入所述第一存储介质内的不同聚合块内;相应地,
上述第一存入模块302,在用于将所述数据存入第一存储介质内的聚合块时,具体用于:根据所述数据所属的类型,将所述数据存入所述第一存储介质内对应的聚合块。
进一步地,所述第一存储介质内具有至少一个存储队列,一个存储队列中的数据通过聚合形成多个聚合块;同一类型数据存入同一个存储队列中。
再进一步地,上述第一存入模块302,在用于将所述数据存入第一存储介质内的聚合块时,具体用于:
根据所述数据所属的类型,将所述数据存入对应的存储队列中;
采用编号递增的方式,对进入所述存储队列中的所述数据标记队列编号;
其中,所述存储队列内的聚合块对应一个编号区间,基于所述数据对应的队列编号所处编号区间,能确定出所述数据所在的聚合块。
进一步地,上述第一存入模块302,还具体用于:若所述数据对应的队列编号等于所处编号区间的上限编号,则所述数据所在聚合块内的数据量达到数量阈值。
进一步地,属于同一数据信息的第一类型数据和第二类型数据,在不同存储队列中的存入编号相同。
进一步地,上述第二存储模块303,还用于如下中的至少一项:
所述聚合块内的多个数据的存储时长达到时间阈值时,满足所述转存条件;
所述聚合块内的数据量达到数量阈值时,满足所述转存条件;
接收到针对所述聚合块的转存指示时,满足所述转存条件。
进一步地,所述聚合块位于存储队列中;相应地,本实施例提供的装置,还包括:
判定模块,用于所述聚合块的状态为可移除状态的情况下,判定所述聚合块是否为队头聚合块;
删除模块,用于所述聚合块为对头聚合块时,处于可移除状态的所述聚合块内的多个数据从所述第一存储介质中删除。
进一步地,上述删除模块,在用于将所述聚合块内的多个数据从所述第一存储介质中删除后,还用于所述存储队列中位于所述聚合块后的至少一个聚合块前移。
进一步地,上述删除模块,还用于在所述聚合块内的多个数据从所述第一存储介质中删除后,根据所述数据的写入请求方,向所述写入请求方对应的设备反馈第一提示信息。
进一步地,本实施例提供的方法,还包括:反馈模块;
上述第一存入模块,在用于将所述数据存入所述第一存储介质内的聚合块之后,所述反馈模块,用于根据所述数据的写入请求方,向所述写入请求方对应的设备反馈所述数据存入成功的第二提示信息。
进一步地,上述获取模块301,在用于获取欲写入的数据时,具体用于:从所述第三存储介质中,获取欲写入的数据。
这里需要说明的是:本实施例提供的数据处理装置可实现上述图1示出的数据处理方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图1示出的数据处理方法实施例中的相应内容,此处不再赘述。
图6示出了本申请一实施例提供一个存储设备的结构示意图。如图6所示,所述存储设备包括:存储器401、处理器402以及通信组件403。存储器401可被配置为存储其它各种数据以支持在传感器上的操作。这些数据的示例包括用于在传感器上操作的任何应用程序或方法的指令。存储器401可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述处理器402,与所述存储器401耦合,用于执行所述存储器401中存储的所述程序,以用于:
获取欲写入的数据;
将所述数据存入第一存储介质内的聚合块;
待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
其中,处理器402在执行存储器401中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步,如图6所示,存储设备还包括:显示器404、电源组件405以及音频组件406等其它组件。图6中仅示意性给出部分组件,并不意味着存储设备只包括图6所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据处理方法步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
获取欲写入的数据;
将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是由多个数据通过聚合形成的;
待转存条件满足时,将所述聚合块内的多个数据存入第二存储介质,以持久化保存所述多个数据;
所述聚合块内的多个数据存入所述第二存储介质后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
2.根据权利要求1所述的方法,其特征在于,所述数据包括第一类型数据或第二类型数据;其中,所述第一类型数据为所述第二类型数据的描述信息;不同类型的数据存入所述第一存储介质内的不同聚合块内;
以及,将所述数据存入第一存储介质内的聚合块,包括:
根据所述数据所属的类型,将所述数据存入所述第一存储介质内对应的聚合块。
3.根据权利要求2所述的方法,其特征在于,
所述第一存储介质内具有至少一个存储队列,一个存储队列中的数据通过聚合形成多个聚合块;
同一类型数据存入同一个存储队列中。
4.根据权利要求3所述的方法,其特征在于,将所述数据存入第一存储介质内的聚合块,包括:
根据所述数据所属的类型,将所述数据存入对应的存储队列中;
采用编号递增的方式,对进入所述存储队列中的所述数据标记队列编号;
其中,所述存储队列内的聚合块对应一个编号区间,基于所述数据对应的队列编号所处编号区间,能确定出所述数据所在的聚合块。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述数据对应的队列编号等于所处编号区间的上限编号,则所述数据所在聚合块内的数据量达到数量阈值。
6.根据权利要求2所述的方法,其特征在于,属于同一数据信息的第一类型数据和第二类型数据,在不同存储队列中的存入编号相同。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括如下中的至少一项:
所述聚合块内的多个数据的存储时长达到时间阈值时,满足所述转存条件;
所述聚合块内的数据量达到数量阈值时,满足所述转存条件;
接收到针对所述聚合块的转存指示时,满足所述转存条件。
8.根据权利要求1所述的方法,其特征在于,所述聚合块位于存储队列中,
所述聚合块的状态为可移除状态的情况下,判定所述聚合块是否为队头聚合块;
所述聚合块为队头聚合块时,处于可移除状态的所述聚合块内的多个数据从所述第一存储介质中删除。
9.根据权利要求8所述的方法,其特征在于,所述聚合块内的多个数据从所述第一存储介质中删除后,还包括:
所述存储队列中位于所述聚合块后的至少一个聚合块前移。
10.根据权利要求8所述的方法,其特征在于,在所述聚合块内的多个数据从所述第一存储介质中删除后,还包括:
根据所述数据的写入请求方,向所述写入请求方对应的设备反馈第一提示信息。
11.根据权利要求1所述的方法,其特征在于,将所述数据存入所述第一存储介质内的聚合块之后,还包括:
根据所述数据的写入请求方,向所述写入请求方对应的设备反馈所述数据存入成功的第二提示信息。
12.一种存储***,其特征在于,包括:
第一存储介质,用于获取欲写入的数据;将所述数据存入第一存储介质内的聚合块;其中,所述聚合块是通过多个数据聚合形成的;待转存条件满足时,向第二存储介质发送所述聚合块内的多个数据;
第二存储介质,用于持久化保存所述聚合块内的多个数据,并向所述第一存储介质发送已存入信息;
所述第一存储介质,还用于在接收到所述已存入信息后,将所述聚合块的状态设置为可移除状态,以待移除条件满足时,将所述聚合块内的多个数据从所述第一存储介质中删除。
13.根据权利要求12所述的存储***,其特征在于,还包括:
第三存储介质,用于缓存欲写入的数据;
所述第一存储介质,用于从所述第三存储介质中,获取欲写入的所述数据。
14.根据权利要求13所述的存储***,其特征在于,还包括:
第一存储设备,包含所述第三存储介质;
第二存储设备,包含所述第一存储介质及所述第二存储介质;
客户端设备,用于向所述第一存储设备发送欲写入的数据,以便所述第一存储设备将所述数据缓存于所述第三存储介质中。
15.一种存储设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现权利要求1至11任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245480.8A CN112817544A (zh) | 2021-03-05 | 2021-03-05 | 一种数据处理方法、存储***及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245480.8A CN112817544A (zh) | 2021-03-05 | 2021-03-05 | 一种数据处理方法、存储***及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817544A true CN112817544A (zh) | 2021-05-18 |
Family
ID=75862915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110245480.8A Pending CN112817544A (zh) | 2021-03-05 | 2021-03-05 | 一种数据处理方法、存储***及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817544A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885797A (zh) * | 2021-09-24 | 2022-01-04 | 济南浪潮数据技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN113934370A (zh) * | 2021-09-09 | 2022-01-14 | 珠海海奇半导体有限公司 | 非易失性存储器的耗损均衡方法、设备及介质 |
CN114327280A (zh) * | 2021-12-29 | 2022-04-12 | 以萨技术股份有限公司 | 一种基于冷热分离存储的消息存储方法及*** |
CN115146716A (zh) * | 2022-06-22 | 2022-10-04 | 腾讯科技(深圳)有限公司 | 标注方法、装置、设备、存储介质及程序产品 |
CN115469797A (zh) * | 2021-09-09 | 2022-12-13 | 上海江波龙数字技术有限公司 | 一种数据写入方法、存储装置及计算机可读存储介质 |
CN116755637A (zh) * | 2023-08-17 | 2023-09-15 | 深圳华锐分布式技术股份有限公司 | 交易数据存储方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN105677236A (zh) * | 2015-12-29 | 2016-06-15 | 华为技术有限公司 | 一种存储设备及其存储数据的方法 |
US20180246934A1 (en) * | 2017-02-27 | 2018-08-30 | Timescale, Inc. | Adjusting partitioning policies of a database system in view of storage reconfiguration |
CN109376100A (zh) * | 2018-11-05 | 2019-02-22 | 浪潮电子信息产业股份有限公司 | 一种缓存写入方法、装置、设备及可读存储介质 |
CN111625180A (zh) * | 2019-02-27 | 2020-09-04 | 英韧科技(上海)有限公司 | 数据写入方法及装置、存储介质 |
CN111881135A (zh) * | 2020-07-28 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种数据聚合方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-03-05 CN CN202110245480.8A patent/CN112817544A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN105677236A (zh) * | 2015-12-29 | 2016-06-15 | 华为技术有限公司 | 一种存储设备及其存储数据的方法 |
US20180246934A1 (en) * | 2017-02-27 | 2018-08-30 | Timescale, Inc. | Adjusting partitioning policies of a database system in view of storage reconfiguration |
CN109376100A (zh) * | 2018-11-05 | 2019-02-22 | 浪潮电子信息产业股份有限公司 | 一种缓存写入方法、装置、设备及可读存储介质 |
CN111625180A (zh) * | 2019-02-27 | 2020-09-04 | 英韧科技(上海)有限公司 | 数据写入方法及装置、存储介质 |
CN111881135A (zh) * | 2020-07-28 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种数据聚合方法、装置、设备及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934370A (zh) * | 2021-09-09 | 2022-01-14 | 珠海海奇半导体有限公司 | 非易失性存储器的耗损均衡方法、设备及介质 |
CN115469797A (zh) * | 2021-09-09 | 2022-12-13 | 上海江波龙数字技术有限公司 | 一种数据写入方法、存储装置及计算机可读存储介质 |
CN115469797B (zh) * | 2021-09-09 | 2023-12-29 | 上海江波龙数字技术有限公司 | 一种数据写入方法、存储装置及计算机可读存储介质 |
CN113885797A (zh) * | 2021-09-24 | 2022-01-04 | 济南浪潮数据技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN113885797B (zh) * | 2021-09-24 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN114327280A (zh) * | 2021-12-29 | 2022-04-12 | 以萨技术股份有限公司 | 一种基于冷热分离存储的消息存储方法及*** |
CN114327280B (zh) * | 2021-12-29 | 2024-02-09 | 以萨技术股份有限公司 | 一种基于冷热分离存储的消息存储方法及*** |
CN115146716A (zh) * | 2022-06-22 | 2022-10-04 | 腾讯科技(深圳)有限公司 | 标注方法、装置、设备、存储介质及程序产品 |
CN116755637A (zh) * | 2023-08-17 | 2023-09-15 | 深圳华锐分布式技术股份有限公司 | 交易数据存储方法、装置、设备及介质 |
CN116755637B (zh) * | 2023-08-17 | 2024-02-09 | 深圳华锐分布式技术股份有限公司 | 交易数据存储方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817544A (zh) | 一种数据处理方法、存储***及存储设备 | |
US11960729B2 (en) | Method of increasing flash endurance by improved metadata management | |
US9557928B2 (en) | Autonomic reclamation processing on sequential storage media | |
WO2018033036A1 (zh) | 固态硬盘和应用于固态硬盘的数据存取方法 | |
US11698728B2 (en) | Data updating technology | |
EP2879040B1 (en) | Data storage method, data storage apparatus, and storage device | |
US20120158674A1 (en) | Indexing for deduplication | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
KR101709118B1 (ko) | 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치 | |
CN103678149B (zh) | 数据处理的方法及设备 | |
WO2020015366A1 (zh) | 一种数据迁移方法及装置 | |
WO2020098654A1 (zh) | 基于云存储的数据存储方法、装置和存储介质 | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及*** | |
JP2017117055A (ja) | メモリシステムおよび制御方法 | |
US20140074782A1 (en) | Re-trim of free space within vhdx | |
US10884926B2 (en) | Method and system for distributed storage using client-side global persistent cache | |
CN103034592B (zh) | 数据处理方法和装置 | |
CN104794119B (zh) | 用于中间件消息的存储与传输方法及*** | |
US20220182445A1 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
WO2012079432A1 (zh) | 快照方法和固态硬盘 | |
CN101796495A (zh) | 存储器设备和文件*** | |
CN110377223A (zh) | 数据再同步 | |
CN112799595A (zh) | 数据处理方法、设备及存储介质 | |
JP2015052844A (ja) | コピー制御装置,コピー制御方法及びコピー制御プログラム |
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 |