CN111399765A - 数据处理方法、装置、电子设备及可读存储介质 - Google Patents
数据处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111399765A CN111399765A CN201911407548.7A CN201911407548A CN111399765A CN 111399765 A CN111399765 A CN 111399765A CN 201911407548 A CN201911407548 A CN 201911407548A CN 111399765 A CN111399765 A CN 111399765A
- Authority
- CN
- China
- Prior art keywords
- storage unit
- data
- target
- index table
- storage
- 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
Links
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability 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/0638—Organizing or formatting or addressing of data
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据处理方法、装置、电子设备及可读存储介质,该方法包括:当接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元,并将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。该方法可以提高云存储系统的读写性能和系统稳定性。
Description
技术领域
本申请涉及分布式数据存储技术,尤其涉及一种数据处理方法、装置、电子设备及可读存储介质。
背景技术
分布式的云存储系统一般支持对存储在标准文件操作系统中的存储文件采用标准的pwrite接口进行随机写操作。为了避免在随机写时从磁盘中读取整个对象文件数据,一般的处理方法是将对象文件进行分片存储(如EC(Erasure Coding,纠删码)条带的分片)。
相对于文件多副本存储,EC技术具有更高的存储空间利用率和高可靠性,但EC技术的编码方式比较复杂,对于存在频繁随机写的场景,每次随机写均需从磁盘中读取整个条带的原始数据,并将待写入的数据与条件中的原始数据进行整合,重新计算校验数据后,将新的条带重新写入磁盘。
可见,频繁的随机写业务,会触发云存储系统进行频繁的EC计算和数据读写,对云存储系统的CPU(Center Process Unit,中央处理单元)、内存、磁盘IO(Input/output,输入/输出)等硬件资源消耗非常大,影响云存储系统的读写功能和系统稳定性。
发明内容
有鉴于此,本申请提供一种数据处理方法、装置、电子设备及可读存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种数据处理方法,应用于云存储系统,所述方法包括:
当接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元,并将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;
当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。
根据本申请实施例的第二方面,提供一种数据处理装置,应用于云存储系统,所述装置包括:接收单元、确定单元、写入单元、检测单元以及处理单元;其中:
所述确定单元,用于当所述接收单元接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元;
所述写入单元,用于将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;
所述处理单元,用于当所述检测单元检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述方法步骤。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法步骤。
本申请实施例的数据处理方法,当接收到针对第一目标数据的随机写请求时,确定用于存储第一目标数据的第一目标存储单元,并将第一目标数据写入到缓存区域中的第一目标存储单元;当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将第二目标存储单元中的数据转存至云存储系统的存储区域,通过将针对云存储系统的随机写小IO整合为大IO后,进行写入,避免了频繁随机写对云存储系统的读写功能和系统稳定性的影响,提高了云存储系统的读写性能和系统稳定性。
附图说明
图1是本申请一示例性实施例示出的一种数据处理方法的流程示意图;
图2是本申请一示例性实施例示出的一种云存储系统的架构示意图;
图3A是本申请一示例性实施例示出的一种云存储系统响应随机写的实现流程示意图;
图3B是本申请一示例性实施例示出的一种加速节点将缓存区域中的数据转存至云存储系统的存储区域的实现流程示意图;
图3C是本申请一示例性实施例示出的一种数据预加载的实现流程示意图;
图4是本申请一示例性实施例示出的一种数据处理装置的结构示意图;
图5是本申请一示例性实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于云存储系统,如图1所示,该数据处理方法可以包括:
步骤S100、当接收到针对第一目标数据的随机写请求时,确定用于存储该第一目标数据的第一目标存储单元,并将该第一目标数据写入到缓存区域中的与第一目标存储单元。
本申请实施例中,第一目标数据并不特指某一固定数据,而是可以指代任意通过随机写的方式请求写入云存储系统的数据,本申请实施例后续不再复述。
本申请实施例中,为了避免频繁的随机写影响云存储系统的读写功能和系统稳定性的影响,对随机写的IO访问操作先进行缓存,并将缓存的随机写IO整合后,在进行落盘处理(即将数据存储至云存储系统的存储区域)。
相应地,在本申请实施例中,当接收到针对第一目标数据的随机写请求时,可以先确定用于存储该第一目标数据的存储单元(本文中称为第一目标存储单元),并将该第一目标数据写入到缓存区域中的第一目标存储单元。
示例性的,存储单元为缓存区域以及存储区域中数据存储的最小单元,该第一目标存储单元可以包括一个或多个存储单元。
在一个示例中,上述确定用于存储第一目标数据的第一目标存储单元,可以包括:
根据随机写请求中携带的第一偏移量以及第一数据长度,按照以下公式确定第一目标存储单元的序号:
其中,S为第一目标存储单元中第一个存储单元的序号,E为第一目标存储单元中最后一个存储单元的序号,offset为第一偏移量,len为第一数据长度,为向下取整运算,缓存区域以及存储区域中第一个存储单元的序号为0。
示例性的,以缓存区域以及存储区域中的第一个存储单元的序号为0为例。
当接收到针对第一目标数据的随机写请求时,可以获取该随机写请求中携带的偏移量(本文中称为第一偏移量)以及数据长度(即第一目标数据的数据长度,本文中称为第一数据长度),并根据该第一偏移量、第一数据长度以及存储单元的大小,利用上述公式确定第一目标存储单元中第一个存储单元的序号,以及最后一个存储单元的序号。
举例来说,假设存储单元的大小为1M字节(即1048576字节),第一偏移量为1500000字节,第一数据长度为5242880字节,则:
即第一目标存储单元中的第一存储单元的序号为1,最后一个存储单元的序号为6,即第一目标存储单元包括存储单元1~存储6。
作为一种可能的实施例,上述将第一目标数据写入到缓存区域中的第一目标存储单元,可以包括:
对于第一目标存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;其中,集群索引表记录有存储单元的序号与主备节点的地址信息的对应关系;
将该存储单元的序号以及目标数据分片发送给该存储单元对应的主节点,以使该主节点将该目标数据分片写入对应的缓存区域,并将该存储单元的序号以及目标数据分片同步给备节点,由该备节点将该目标数据分片写入对应的缓存区域;其中,该目标数据分片为所述第一目标数据中存储在该存储单元中的数据。
示例性的,为了提高缓存区域中数据的可靠性,可以将写入缓存区域的数据备份到不同节点,并维护缓存区域中的数据与主备节点的映射关系。
需要说明的是,在本申请实施例中,若根据该存储单元的序号未查询到匹配的集群索引表项时,可以将本节点确定该存储单元对应的主节点,并从本组其他节点中选择一个节点作为副节点。
示例性的,可以将多个具有数据缓存功能的节点划分为一个分组,对于存储在该分组中任一节点的缓存区域中的数据,可以在本组其他节点中选择一个或多个(以一个为例)节点作为副节点。
示例性的,从本组其他节点中选择副节点时,可以随机选择,或者,根据本组其他节点的负荷选择负荷最小的节点作为副节点。
示例性的,确定了该存储单元的主节点和副节点之后,还可以在集群索引表中插入与该主节点和副节点匹配的集群索引表项,该集群索引表项中记录有该存储单元的序号与主副节点的地址信息的对应关系。
在一个示例中,可以通过集群索引表实现缓存区域中的数据与主备节点的映射关系,该集群索引表可以记录存储单元的序号与主备节点的地址信息(如IP地址)的对应关系。
示例性的,当确定了用于存储第一目标数据的第一目标存储单元时,对于第一目标存储单元中的任一存储单元,可以根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应主备节点的地址信息,并而根据该主备节点的地址信息确定该存储单元对应的主备节点。
当确定了该存储单元对应的主备节点时,可以将该存储单元的序号,以及第一目标数据中存储在该存储单元中的数据(本文中称为目标数据分片)发送给该存储单元对应的主节点。
在一个示例中,可以通过本地索引表维护缓存区域中的数据与存储位置信息的映射关系,该本地索引表可以记录存储单元的序号与缓存区域中的存储位置的对应关系。
当存储单元对应的主节点接收到该存储单元的序号以及目标数据分片时,可以根据该存储单元的序号查询匹配的本地索引表项,以确定该存储单元在本地缓存区域中对应的存储位置信息,并根据该存储位置信息将该目标数据分片写入对应的缓存区域。
需要说明的是,在本申请实施例中,若根据该存储单元的序号查询匹配的本地索引表项时,未查询到匹配的本地索引表项,则可以从云存储系统的存储区域中读取该存储单元的数据。
当从云存储系统的存储区域成功读取到该存储单元的数据时,可以从缓存区域中申请一个空闲的存储单元,并将该目标数据分片与读取到的数据合并后存入所申请的存储单元。
示例性的,当该目标数据分片的大小与存储单元的大小一致时,该目标数据分片可以完全覆盖所读取到的数据;当该目标数据分片的大小小于存储单元的大小时,该目标数据分片可以覆盖所读取到的数据的部分(与目标数据分片等大的部分),并与剩余部分整合为与存储单元大小一致的数据。
示例性的,当将目标数据分配与读取到的数据合并后存入了所申请的存储单元时,可以在本地索引表中插入与所申请的申请单元匹配的本地索引表项,该本地索引表项记录有该存储单元的序号与缓存区域中的存储位置信息的对应关系。
步骤S110、当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将第二目标存储单元中的数据转存至云存储系统的存储区域。
本申请实施例中,云存储系统中提高缓存服务的节点可以定时检测本地缓存区域中是否存在满足满条带要求的存储单元(本文中称为第二目标存储单元),该第二目标存储单元包括多个存储单元。
当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,可以将第二目标存储单元中的数据转存至云存储系统的存储区域。
作为一种可能的实现方式,上述将第二目标存储单元中的数据转存至云存储系统的存储区域,包括:
根据第二目标存储单元中各存储单元的序号,按序从缓存区域中读取各存储单元中的数据;
将所读取的数据拼接为一个完整的条带的数据,并转存至所述云存储系统的存储区域。
示例性的,当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,可以根据第二目标存储单元中各存储单元的序号,按序从缓存区域中读取各存储单元中的数据。
例如,假设第二目标存储单元包括存储单元1~4,则可以分别根据存储单元1~4的序号查询本地索引表项,确定该存储单元对应的缓存区域中的存储位置信息,依次从缓存区域中读取存储单元1~4的数据。
示例性的,当从缓存区域中成功读取到第二目标存储单元中各存储单元的数据时,可以将所读取的数据拼接为一个完整的条带的数据,并转存至云存储系统的存储区域。
需要说明的是,将一个完整的条带的数据(均为原始数据)存储到云存储系统的存储区域的具体实现可以参见现有云存储系统中的条带数据存储实现的相关描述,本申请实施例对此不做赘述。
作为一种可能的实现方式,上述将第二目标存储单元中的数据转存至云存储系统的存储区域之后,还可以包括:
将第二目标存储单元对应的本地索引表项设置为已转存状态;
上述本地缓存区域中存在第二目标存储单元满足满条带要求通过以下方式检测:
轮询本地索引表中各本地索引表项;
将未转存状态的本地索引表项中记录的存储单元的序号记录到目标列表中;
当目标列表中存在序号连续的多个存储单元的数量满足一个条带的数量时,将该序号连续的多个存储单元确定为满足满条带要求的第二目标存储单元。
示例性的,为了确定本地缓存区域中是否存在满足满条带要求的第二目标存储单元,可以轮询本地索引表中各索引表项,并未转存状态的本地索引表项中记录的存储单元的序号记录到指定列表(本文中称为目标列表)。
当将本地索引表中各未转存状态的本地索引表项中记录的存储单元的序号均记录到目标列表时,可以检测目标列表中的连续序号的数量。
若目标列表中存在序号连续的多个存储单元的数量满足一个条带的数量,则可以将该序号连续的多个存储单元确定为满足满条带要求的第二目标存储单元。
例如,以4+2的EC条带为例,当目标列表中存在4个连续的序号时,可以将该4个连续的序号对应的存储单元确定为满足满条带要求的第二目标存储单元。
在一个示例中,对于任一已转存状态的本地索引表项,当该本地索引表项中记录的存储单元的序号对应的存储单元发生数据更新时,将该本地索引表项设置为未转存状态;
当该本地索引表项为已转存状态的持续时间达到预设时间阈值时,释放该本地索引表项中记录的存储单元的序号对应的存储单元中的数据。
示例性的,为了提高数据读写效率,对于任一本地索引表项,当该本地索引表项中记录的存储单元中的数据转存至云存储系统的存储区域之后,会将该本地索引表项设置为已转存状态,并对该本地索引表项中记录的存储单元中的数据进行延后释放(延后时间可以根据实际场景设定,本文中称为预设时长)。
若在该本地索引表项为已转存状态的持续时间达到该预设时长之前,该本地索引表项中记录的存储单元的序号对应的存储单元发生数据更新,则将该本地索引表项设置为未转存状态,避免重新申请存储单元,以及更新本地索引表项。
若该本地索引表项为已转存状态的持续时间达到该预设时长,则释放该本地索引表项中记录的存储单元的序号对应的存储单元中的数据,此时,从本地索引表中删除该本地索引表项,并删除集群索引表中对应的集群索引表项。
作为一种可能的实现方式,上述数据处理方法还可以包括:
当检测到本地缓存区域中的第三目标存储单元未进行数据更新的持续时间达到预设时间阈值时,将第三目标存储单元中的数据转存至云存储系统的存储区域。
示例性的,为了避免部分存储单元中的数据长时间存储在缓存区域中,占用缓存区域的空间,并导致数据丢失的风险加大,可以预先设定一个时间阈值(本文中称为预设时间阈值,其值可以根据具体场景设定),在数据未发生更新的情况下,若某存储单元中的数据在缓存区域中的数据达到预设时长,则将该存储单元中的数据转存至云存储系统的存储区域。
在定时检测本地缓存区域中是否存在满足满带条要求的第二目标存储单元时,还可以检测本地缓存区域中是否存在未进行数据更新的持续时间达到预设时间阈值的存储单元(本文中称为目标存储单元)。
若存在,则可以将该第三目标存储单元中的数据转存至云存储系统的存储区域。
示例性的,第三目标存储单元可以包括一个或多个存储单元;将第三目标存储单元中的数据转存至云存储系统的存储区域时,可以按照单个存储单元的完整数据转存的方式进行转存。
需要说明的是,将单个存储单元的数据存储到云存储系统的存储区域的具体实现可以参见现有云存储系统的数据存储方案中的相关描述,本申请实施例在此不做赘述。
作为一种可能的实现方式,上述数据处理方法还可以包括:
当接收到针对第二目标数据的随机读请求时,确定存储第二目标数据的第四目标存储单元;
判断缓存区域中是否存在第四目标存储单元的数据;
若存在,则从缓存区域中读取第四目标存储单元的数据;
若不存在,则从云存储系统的存储区域读取第四目标存储单元的数据。
本申请实施例中,第二目标数据并不特指某一固定的数据,而是可以指代任一存储在采用本申请实施例提供的技术方案的云存储系统中存储的数据,本申请实施例后续不再复述。
示例性的,当接收到针对第二目标数据的随机读请求时,可以确定存储第二目标数据的存储单元(本文中称为第四目标存储单元)。
示例性的,可以根据随机读请求中携带的偏移量(本文中可以称为第二偏移量)以及数据长度(本文中可以称为第二数据长度),确定存储第二目标数据的存储单元,其具体实现可以参见上述确定用于存储第一目标数据的存储单元的相关实现,本申请实施例在此不做赘述。
当确定了存储第二目标数据的第四目标存储单元时,可以判断缓存区域中是否存在该第四目标存储单元的数据。
若存在,则从缓存区域中读取该第四目标存储单元的数据,以提高数据读取效率。
若不存在,则从云存储系统的存储区域读取第四目标存储单元的数据。
在一个示例中,上述判断缓存区域中是否存在第四目标存储单元的数据,可以包括:
对于第四存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;
向该存储单元对应的主节点发送携带该存储单元的序号的数据读取请求,以使该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据。
示例性的,对于第四存储单元中的任一存储单元,可以根据该存储单元的序号查询集群索引表,以确定是否存在匹配的集群索引表项。
若存在,则根据该集群索引表项确定该存储单元对应的主备节点,并向该存储单元对应的主节点发送携带该存储单元的序号的数据读取请求,以使该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据。
示例性的,若未查询到匹配的集群索引表项,则确定缓存区域中不存在该存储单元的数据。
在一个示例中,上述存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据,可以包括:
根据该存储单元的序号查询本地索引表;
若查询到匹配的索引表项,则确定缓存区域中存在该存储单元的数据;
若未查询到匹配的索引表项,则确定缓存区域中不存在该存储单元的数据。
示例性的,存储单元对应的主节点接收到数据读取请求时,可以根据该数据读取请求中携带的存储单元的序号查询本地索引表,以确定是否存在匹配的索引表项。
若存在,则确定缓存区域中存在该存储单元的数据;
若不存在,则确定缓存区域中不存在该存储单元的数据。
在一个示例中,上述从缓存区域中读取第四目标存储单元的数据,可以包括:
根据该存储单元的序号匹配的索引表项,确定该存储单元的数据在本地缓存区域中的位置信息;
根据该位置信息,从缓存区域中读取该存储单元的数据。
示例性的,当根据数据读取请求中携带存储单元的序号查询到匹配的本地索引表项时,可以根据该本地索引表项确定该存储单元的数据在本地缓存区域中的存储位置信息,并根据该存储位置信息从缓存区域中读取该存储单元的数据。
在一个示例中,上述从云存储系统的存储区域读取第四目标存储单元的数据之后,还可以包括:
对于第四目标存储单元中的任一存储单元,当预设统计周期内,从云存储系统的存储区域中读取该存储单元的数据的次数达到预设次数阈值时将该存储单元的数据存储到缓存区域。
示例性的,为了提高热点数据的读取效率,可以统计预设统计周期内从云存储系统的存储区域中读取各存储单元的数据的次数。
对于第四目标存储单元中的任一存储单元,当在预设统计周期内,从云存储系统的存储区域中读取该存储单元的数据的次数达到预设次数阈值(可以根据实际场景设定)时,可以确定该存储单元中的数据为热点数据,此时,一方面,可以将读取到的数据返回给读取请求方,另一方面,可以将该存储单元的数据存储到缓存区域,以提高后续读取该存储单元的数据的效率。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
请参见图2,为本申请实施例提供的一种云存储系统的架构示意图,其中,在该实施例中,以云存储系统为对象云存储系统(即数据以对象的形式进行读写),且采用EC技术存储对象文件数据为例,如图2所示,该云存储系统除了可以包括常规云存储系统中包括的管理节点(集群)、存储节点(集群)之外,还包括加速节点(集群)。
示例性的,管理节点上运行有元数据管理服务模块,负责对象文件元数据、条带等信息管理;存储节点上运行有存储服务模块,负责将数据存储在物理存储介质中;一个对象文件可以包括一个或多个条带,一个条带根据EC类型包含多个Unit(即上述存储单元),该Unit为缓存区域和存储区域进行数据读写的最小单元。
在一个示例中,加速节点(还可以称为加速集群服务模块)可以集成在存储节点上,与存储节点使用相同的物理设备;云存储系统的存储区域使用普通磁盘,缓存区域使用SSD(Solid State Drive,固态硬盘)。
加速节点将随机写的小IO在缓存区域进行高速缓存,并整合为大IO(优先整合为一个完整EC条带数据大小,最小整合为条带内的一个Unit)后,异步将对象文件的整个条带转存到云存储系统的存储区域。
此外,为了保证缓存区域中缓存的数据在未转存到云存储系统的存储区域时,进行长期、安全存储前的数据安全性,采用组内数据双副本存储的方式进行数据缓存,即每一个Unit的数据均分别保存在一个主节点的缓存区域和一个副节点的缓存区域。
基于图2所示云存储系统,本申请实施例提供的数据处理方案实现流程如下:
一、随机写流程
如图3A所示,在该实施例中,云存储系统响应随机写的实现流程如下:
1、当用户通过客户端使用随机写方式向云存储系统请求存储对象文件的某一段数据(下文中称为第一目标数据)时,客户端中的云存储SDK(Software Development Kit,软件开发工具包)可以根据对象文件的标识信息(以bucket(存储池)&object_key(对象关键字)为例)进行hash(散列),将该随机写请求定向至加速节点集群中的某个加速节点,该随机写请求中携带bucket、object_key、偏移量(以offset1为例)、长度(以len1为例)等信息;
2、加速节点接收到随机写请求时,根据该随机写请求中携带的offset1和len1,确定用于存储第一目标数据的unit(下文中称为第一目标unit),并将第一目标unit的unit_id记录到unit_id列表1。
3、对于第一目标unit中的任一unit(下文中称为第一unit),加速节点根据第一unit的unit_id查询集群索引表,以确定该第一unit对应的主备节点,并将需要写入第一unit的数据(下文中称为目标数据分片)发送给主节点(由主节点将数据同步给备节点,若主节点不在线或异常,则发送给备节点);
示例性的,集群索引表可以采用key-value(关键字-值)形式维护:
key:bucket&object_key&unit_id
value:主备节点IP信息
需要说明的是,若未查询到匹配的集群索引表项,则该加速节点确定本节点为该unit对应的主节点,从本组其他节点中选择一个副节点,并在集群索引表中插入该unit对应的集群索引表项;
4、主节点根据第一unit的unit_id,查询本地索引表;若查询到匹配的本地索引表项,则将目标数据分片覆盖写入对应的存储位置;若未查询到匹配的本地索引表项,则从云存储系统的存储区域读取第一unit的数据,将目标数据分片与所读取的数据合并后,写入新申请的空闲unit(unit_id即为第一unit的unit_id),并在本地索引表中插入该unit对应的本地索引表项;
示例性的,本地索引表可以采用key-value形式维护:
key:bucket&object_key&unit_id
value:unit在本地缓存区域(即SSD)中的存储位置信息
5、主节点将第一unit的数据写入缓存区域后,进行数据同步,将数据同步至备节点(携带第一unit的unit_id);
示例性的,备节点将第一unit的数据写入缓存区域的具体实现与主节点将第一unit的数据写入缓存区域的实现相类似,本申请实施例在此不再赘述。
6、主节点完成同步备份后,更新集群索引表中对应的表项(若主备节点均为发生变化,则更新前后表项相同);
7、返回随机写结果。
二、转存流程
如图3B所示,在该实施例中,加速节点将缓存区域中的数据转存至云存储系统的存储区域的实现流程如下:
1、加速节点定时轮询本地索引表,按照object进行分类,将属于同一个object的unit_id记录到同一个object_task任务表(即上文中的目标列表),该object_task任务表中各unit_id升序排列;
2、加速节点逐个检测object_task任务表,若object_task任务表中连续的unit_id满足一个EC条带的满条带要求,则根据该连续的unit_id查询本地索引表,从缓存区域中读取数据,将所读取的数据拼接为一个完整的条带,转存至云存储系统的存储区域;
3、若不存在满足满条带要求的unit_id,则检测各unit最后进行数据更新的时间,若距离当前系统时间达到30分钟(可以根据需求调整),将单个unit中的完整数据转存到云存储系统的存储区域;
4、加速节点成功完成数据转存后,更新对应的本地索引表项的状态,将其设置为已转存状态,并通知备节点更新对应的本地索引表项的状态,也将其设置为已转存状态,避免主备节点重复进行数据转存。
需要说明的是,在本申请实施例中,加速节点在进行数据转存前,对于任一unit中的数据,加速节点可以根据该unit中的数据的来源信息(包括外部写入或系统内节点同步)。
若为外部写入,则确定本节点为主节点,此时,主节点可以检测副节点是否进行了unit数据转存,若已转存,则更新对应本地索引表项的状态,而不需要再次进行unit数据转存;若未转存,则进行unit数据转存。
若为系统内节点同步,则确定本节点为副节点,此时,副节点可以检测主节点的状态,若主节点正常,则等待主节点进行unit转存;若主节点异常,则进行unit数据转存。
此外,加速节点完成unit数据转存后,还可以为对应的本地索引表项设置延迟删除标记,若30分钟(可以根据实际需求调整)内该unit发生数据更新,则重新按照上述方式执行unit数据转存;若30分钟内未发生数据更新,则释放该unit占用的缓存空间,并删除对应的本地索引表项以及集群索引表项。
三、数据预加载
为了提高热点数据的读取效率,可以将热点数据预加载到缓存区域,从而,后续针对热点数据的读取,可以从缓存区域中读取。
如图3C所示,在该实施例中,数据预加载的实现流程如下:
1、当用户通过客户端使用随机读方式向云存储系统请求下载指定对象数据(本文中称为第二目标数据)时,客户端中的云存储SDK可以根据对象文件的标识信息进行hash,将该随机读请求定向至加速节点集群中的某个加速节点,该随机读请求中携带bucket、object_key、偏移量(以offset2为例)、长度(以len2为例)等信息;
2、加速节点接收到随机读请求时,根据该随机读请求中携带的offset2和len2,确定存储第二目标数据的unit(下文中称为第二目标unit),并将该第二目标unit的unit_id记录到unit_id列表2;
3、对于第二目标unit中的任一unit(下文中称为第二unit),加速节点根据第二unit的unit_id查询集群索引表,以确定该第二unit对应的主备节点,并向第二unit对应的主节点发送携带第二unit的unit_id数据读取请求(主节点不在线或异常,则发送给备节点);
需要说明的是,若未查询到匹配的集群索引表项,则该加速节点确定第二unit的数据未缓存,此时,从云存储系统的存储区域读取该第二unit的数据。
4、主节点根据第二unit的unit_id,查询本地索引表;若查询到匹配的本地索引表项,则从对应的存储位置读取第二unit的数据,并返回给读取请求方;若未查询到匹配的本地索引表项,则确定第二unit的数据未缓存,此时,从云存储系统的存储区域读取该第二unit的数据,并返回给读取请求方。
5、当从云存储系统的存取区域读取第二unit的数据成功时,可以更新第二unit的提取次数,并判断该第二unit的提取次数是否达到热点数据阈值;若达到,则将第二unit的数据写入本地缓存区域,向副节点进行数据同步;第二unit对应的主备节点均在本地索引表中插入对应的本地索引表项,并设置为已转存状态,以及设置延迟删除标记,且主节点在集群索引表中插入对应的集群索引表项。
需要说明的是,热点数据的识别存在一个统计周期(距更新unit的提取次数的当前时间点最近的预设时长),即判断统计周期内该unit的提取次数是否达到热点数据阈值。
举例来说,假设统计周期为6个小时,热点数据阈值为5,则当加速节点成功从云存储系统的存储区域中提取第二unit的数据时,可以判断以当前时间点为结束时间的6个小时内,成功从云存储系统的存储区域中提取第二unit的数据的次数是否达到5次,若达到,则确定第二unit的数据为热点数据。
本申请实施例中,当接收到针对第一目标数据的随机写请求时,确定用于存储第一目标数据的第一目标存储单元,并将第一目标数据写入到缓存区域中的第一目标存储单元;当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将第二目标存储单元中的数据转存至云存储系统的存储区域,通过将针对云存储系统的随机写小IO整合为大IO后,进行写入,避免了频繁随机写对云存储系统的读写功能和系统稳定性的影响,提高了云存储系统的读写性能和系统稳定性。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图4,为本申请实施例提供的一种数据处理装置的结构示意图,如图4所示,该数据处理装置可以包括:接收单元、确定单元、写入单元、检测单元以及处理单元;其中:
所述确定单元,用于当所述接收单元接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元;
所述写入单元,用于将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;
所述处理单元,用于当所述检测单元检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。
在一种可选的实施例中,所述确定单元确定用于存储所述第一目标数据的第一目标存储单元,包括:
根据所述随机写请求中携带的第一偏移量以及第一数据长度,按照以下公式确定所述第一目标存储单元的序号:
其中,S为所述第一目标存储单元中第一个存储单元的序号,E为所述第一目标存储单元中最后一个存储单元的序号,offset为所述第一偏移量,len为所述第一数据长度,为向下取整运算,所述缓存区域以及所述存储区域中第一个存储单元的序号为0。
在一种可选的实施例中,所述写入单元将所述第一目标数据写入到缓存区域中的所述第一目标存储单元,包括:
对于所述第一目标存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;其中,集群索引表记录有存储单元的序号与主备节点的地址信息的对应关系;
将该存储单元的序号以及目标数据分片发送给该存储单元对应的主节点,以使该主节点将该目标数据分片写入对应的缓存区域,并将该存储单元的序号以及目标数据分片同步给备节点,由该备节点将该目标数据分片写入对应的缓存区域;其中,该目标数据分片为所述第一目标数据中存储在该存储单元中的数据。
在一种可选的实施例中,所述写入单元根据该存储单元的序号查询匹配的集群索引表项之后,还包括:
若未查询到匹配的集群索引表项,则将本节点确定为主节点,并从本组其他节点中选择一个节点作为副节点;
在集群索引表中插入与该主节点和副节点匹配的集群索引表项。
在一种可选的实施例中,所述主节点将该目标数据分片写入对应的缓存区域,包括:
根据该存储单元的序号查询匹配的本地索引表项,以确定该存储单元在本地缓存区域中对应的存储位置信息;其中,本地索引表记录有存储单元的序号与缓存区域中的存储位置信息的对应关系;
根据该存储位置信息将该目标数据分片写入对应的缓存区域。
在一种可选的实施例中,所述所述写入单元根据该存储单元的序号查询匹配的本地索引表项之后,还包括:
若未查询到匹配的本地索引表项,则从所述云存储系统的存储区域中读取该存储单元的数据;
从缓存区域中申请一个空闲的存储单元,并将该目标数据分片与读取到的数据合并后存入所申请的存储单元;
在本地索引表中插入与所申请的存储单元匹配的本地索引表项。
在一种可选的实施例中,所述处理单元将所述第二目标存储单元中的数据转存至云存储系统的存储区域,包括:
根据所述第二目标存储单元中各存储单元的序号,按序从所述缓存区域中读取各存储单元中的数据;
将所读取的数据拼接为一个完整的条带的数据,并转存至所述云存储系统的存储区域。
在一种可选的实施例中,所述处理单元将所述第二目标存储单元中的数据转存至云存储系统的存储区域之后,还包括:
将所述第二目标存储单元对应的本地索引表项设置为已转存状态;其中,本地索引表记录有存储单元的序号与存储区域中的存储位置信息的对应关系;
所述本地缓存区域中是否存在第二目标存储单元满足满条带要求通过以下方式检测:
轮询本地索引表中各本地索引表项;
将未转存状态的本地索引表项中记录的存储单元的序号记录到目标列表中;
当所述目标列表中存在序号连续的多个存储单元的数量满足一个条带的数量时,将该序号连续的多个存储单元确定为满足满条带要求的第二目标存储单元。
在一种可选的实施例中,所述云存储系统为对象存储系统;
所述本地索引表记录有对象标识、存储单元的序号以及存储区域中的存储位置信息的对应关系;
所述处理单元将未转存状态的本地索引表项中记录的存储单元的序号记录到目标列表中,包括:
按照对象标识对本地索引表项进行分类;同一分类的本地索引表项中记录的对象标识相同,不同分类的本地索引表项中记录的对象标识不同;
分别将各分类的本地索引表项中,未转存状态的本地索引表项中记录的存储单元的序号记录到该分类的目标列表。
在一种可选的实施例中,所述处理单元将所述第二目标存储单元对应的本地索引表项设置为已转存状态之后,还包括:
对于任一已转存状态的本地索引表项,当该本地索引表项中记录的存储单元的序号对应的存储单元发生数据更新时,将该本地索引表项设置为未转存状态;
当该本地索引表项为已转存状态的持续时间达到预设时长时,释放该本地索引表项中记录的存储单元的序号对应的存储单元中的数据。
在一种可选的实施例中,所述处理单元,还用于当检测到本地缓存区域中的第三目标存储单元未进行数据更新的持续时间达到预设时间阈值时,将所述第三目标存储单元中的数据转存至所述云存储系统的存储区域。
在一种可选的实施例中,所述确定单元,还用于当所述接收单元接收到针对第二目标数据的随机读请求时,确定存储所述第二目标数据的第四目标存储单元;
所述处理单元,还用于判断所述缓存区域中是否存在所述第四目标存储单元的数据;若存在,则从所述缓存区域中读取所述第四目标存储单元的数据;若不存在,则从所述云存储系统的存储区域读取所述第四目标存储单元的数据。
在一种可选的实施例中,所述处理单元判断所述缓存区域中是否存在所述第四目标存储单元的数据,包括:
对于所述第四存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;其中,集群索引表记录有存储单元的序号与主备节点的地址信息的对应关系;
向该存储单元对应的主节点发送携带该存储单元的序号的数据读取请求,以使该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据。
在一种可选的实施例中,所述处理单元根据该存储单元的序号查询匹配的集群索引表项之后,还包括:
若未查询到匹配的集群索引表项,则确定缓存区域中不存在该存储单元的数据。
在一种可选的实施例中,所述该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据,包括:
根据该存储单元的序号查询本地索引表;其中,本地索引表记录有存储单元的序号与缓存区域中的存储位置信息的对应关系;
若查询到匹配的索引表项,则确定缓存区域中存在该存储单元的数据;
若未查询到匹配的索引表项,则确定缓存区域中不存在该存储单元的数据。
在一种可选的实施例中,所述处理单元从缓存区域中读取所述第四目标存储单元的数据,包括:
根据该存储单元的序号匹配的本地索引表项,确定该存储单元的数据在本地缓存区域中的存储位置信息;
根据该存储位置信息,从缓存区域中读取该存储单元的数据。
在一种可选的实施例中,所述处理单元从所述云存储系统的存储区域读取所述第四目标存储单元的数据之后,还包括:
对于所述第四目标存储单元中的任一存储单元,当预设统计周期内,从所述云存储系统的存储区域中读取该存储单元的数据的次数达到预设次数阈值时,将该存储单元的数据存储到缓存区域。
请参见图5,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器501、通信接口502、存储器503和通信总线504。处理器501、通信接口502以及存储器503通过通信总线504完成相互间的通信。其中,存储器503上存放有计算机程序;处理器501可以通过执行存储器503上所存放的程序,实现上述方法实施例中描述的数据处理方法。
本文中提到的存储器503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器502可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图5中的存储器503,所述计算机程序可由图5所示电子设备中的处理器501执行以实现上述方法实施例中描述的数据处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (20)
1.一种数据处理方法,应用于云存储系统,其特征在于,所述方法包括:
当接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元,并将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;
当检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一目标数据写入到缓存区域中的所述第一目标存储单元,包括:
对于所述第一目标存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;其中,集群索引表记录有存储单元的序号与主备节点的地址信息的对应关系;
将该存储单元的序号以及目标数据分片发送给该存储单元对应的主节点,以使该主节点将该目标数据分片写入对应的缓存区域,并将该存储单元的序号以及目标数据分片同步给备节点,由该备节点将该目标数据分片写入对应的缓存区域;其中,该目标数据分片为所述第一目标数据中存储在该存储单元中的数据。
4.根据权利要求3所述的方法,其特征在于,所述根据该存储单元的序号查询匹配的集群索引表项之后,还包括:
若未查询到匹配的集群索引表项,则将本节点确定为主节点,并从本组其他节点中选择一个节点作为副节点;
在集群索引表中插入与该主节点和副节点匹配的集群索引表项。
5.根据权利要求3所述的方法,其特征在于,所述主节点将该目标数据分片写入对应的缓存区域,包括:
根据该存储单元的序号查询匹配的本地索引表项,以确定该存储单元在本地缓存区域中对应的存储位置信息;其中,本地索引表记录有存储单元的序号与缓存区域中的存储位置信息的对应关系;
根据该存储位置信息将该目标数据分片写入对应的缓存区域。
6.根据权利要求5所述的方法,其特征在于,所述根据该存储单元的序号查询匹配的本地索引表项之后,还包括:
若未查询到匹配的本地索引表项,则从所述云存储系统的存储区域中读取该存储单元的数据;
从缓存区域中申请一个空闲的存储单元,并将该目标数据分片与读取到的数据合并后存入所申请的存储单元;
在本地索引表中插入与所申请的存储单元匹配的本地索引表项。
7.根据权利要求1所述的方法,其特征在于,所述将所述第二目标存储单元中的数据转存至云存储系统的存储区域,包括:
根据所述第二目标存储单元中各存储单元的序号,按序从所述缓存区域中读取各存储单元中的数据;
将所读取的数据拼接为一个完整的条带的数据,并转存至所述云存储系统的存储区域。
8.根据权利要求1所述的方法,其特征在于,所述将所述第二目标存储单元中的数据转存至云存储系统的存储区域之后,还包括:
将所述第二目标存储单元对应的本地索引表项设置为已转存状态;其中,本地索引表记录有存储单元的序号与存储区域中的存储位置信息的对应关系;
所述本地缓存区域中是否存在第二目标存储单元满足满条带要求通过以下方式检测:
轮询本地索引表中各本地索引表项;
将未转存状态的本地索引表项中记录的存储单元的序号记录到目标列表中;
当所述目标列表中存在序号连续的多个存储单元的数量满足一个条带的数量时,将该序号连续的多个存储单元确定为满足满条带要求的第二目标存储单元。
9.根据权利要求8所述的方法,其特征在于,所述云存储系统为对象存储系统;
所述本地索引表记录有对象标识、存储单元的序号以及存储区域中的存储位置信息的对应关系;
所述将未转存状态的本地索引表项中记录的存储单元的序号记录到目标列表中,包括:
按照对象标识对本地索引表项进行分类;同一分类的本地索引表项中记录的对象标识相同,不同分类的本地索引表项中记录的对象标识不同;
分别将各分类的本地索引表项中,未转存状态的本地索引表项中记录的存储单元的序号记录到该分类的目标列表。
10.根据权利要求8所述的方法,其特征在于,所述将所述第二目标存储单元对应的本地索引表项设置为已转存状态之后,还包括:
对于任一已转存状态的本地索引表项,当该本地索引表项中记录的存储单元的序号对应的存储单元发生数据更新时,将该本地索引表项设置为未转存状态;
当该本地索引表项为已转存状态的持续时间达到预设时长时,释放该本地索引表项中记录的存储单元的序号对应的存储单元中的数据。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到本地缓存区域中的第三目标存储单元未进行数据更新的持续时间达到预设时间阈值时,将所述第三目标存储单元中的数据转存至所述云存储系统的存储区域。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到针对第二目标数据的随机读请求时,确定存储所述第二目标数据的第四目标存储单元;
判断所述缓存区域中是否存在所述第四目标存储单元的数据;
若存在,则从所述缓存区域中读取所述第四目标存储单元的数据;
若不存在,则从所述云存储系统的存储区域读取所述第四目标存储单元的数据。
13.根据权利要求12所述的方法,其特征在于,所述判断所述缓存区域中是否存在所述第四目标存储单元的数据,包括:
对于所述第四存储单元中的任一存储单元,根据该存储单元的序号查询匹配的集群索引表项,以确定该存储单元对应的主备节点;其中,集群索引表记录有存储单元的序号与主备节点的地址信息的对应关系;
向该存储单元对应的主节点发送携带该存储单元的序号的数据读取请求,以使该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据。
14.根据权利要求13所述的方法,其特征在于,所述根据该存储单元的序号查询匹配的集群索引表项之后,还包括:
若未查询到匹配的集群索引表项,则确定缓存区域中不存在该存储单元的数据。
15.根据权利要求13所述的方法,其特征在于,所述该存储单元对应的主节点判断缓存区域中是否存在该存储单元的数据,包括:
根据该存储单元的序号查询本地索引表;其中,本地索引表记录有存储单元的序号与缓存区域中的存储位置信息的对应关系;
若查询到匹配的索引表项,则确定缓存区域中存在该存储单元的数据;
若未查询到匹配的索引表项,则确定缓存区域中不存在该存储单元的数据。
16.根据权利要求15所述的方法,其特征在于,所述从缓存区域中读取所述第四目标存储单元的数据,包括:
根据该存储单元的序号匹配的本地索引表项,确定该存储单元的数据在本地缓存区域中的存储位置信息;
根据该存储位置信息,从缓存区域中读取该存储单元的数据。
17.根据权利要求12所述的方法,其特征在于,所述从所述云存储系统的存储区域读取所述第四目标存储单元的数据之后,还包括:
对于所述第四目标存储单元中的任一存储单元,当预设统计周期内,从所述云存储系统的存储区域中读取该存储单元的数据的次数达到预设次数阈值时,将该存储单元的数据存储到缓存区域。
18.一种数据处理装置,应用于云存储系统,其特征在于,所述装置包括:接收单元、确定单元、写入单元、检测单元以及处理单元;其中:
所述确定单元,用于当所述接收单元接收到针对第一目标数据的随机写请求时,确定用于存储所述第一目标数据的第一目标存储单元;
所述写入单元,用于将所述第一目标数据写入到缓存区域中的所述第一目标存储单元;
所述处理单元,用于当所述检测单元检测到本地缓存区域中的第二目标存储单元满足满条带要求时,将所述第二目标存储单元中的数据转存至云存储系统的存储区域。
19.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-17任一所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-17任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911407548.7A CN111399765B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911407548.7A CN111399765B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399765A true CN111399765A (zh) | 2020-07-10 |
CN111399765B CN111399765B (zh) | 2022-11-01 |
Family
ID=71435912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911407548.7A Active CN111399765B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399765B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857603A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法及相关装置 |
CN113204554A (zh) * | 2021-05-11 | 2021-08-03 | 深圳市杉岩数据技术有限公司 | 一种对象存储系统实现稀疏写的方法、装置及电子设备 |
CN113776172A (zh) * | 2021-08-12 | 2021-12-10 | 启北公司 | 场景温度规划方法和装置、计算机设备以及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727299A (zh) * | 2010-02-08 | 2010-06-09 | 北京同有飞骥科技有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
CN103729149A (zh) * | 2013-12-31 | 2014-04-16 | 创新科存储技术有限公司 | 一种存储数据的方法 |
US9037793B1 (en) * | 2011-09-30 | 2015-05-19 | Emc Corporation | Managing data storage |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
CN105824583A (zh) * | 2016-04-18 | 2016-08-03 | 北京鲸鲨软件科技有限公司 | 纠删码集群文件系统提高顺序写效率的处理方法及装置 |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 |
CN107094186A (zh) * | 2017-06-15 | 2017-08-25 | 深圳市云舒网络技术有限公司 | 一种分布式存储系统的纠删码优化方法 |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN108628541A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件存储的方法、装置及存储系统 |
CN109783000A (zh) * | 2017-11-10 | 2019-05-21 | 成都华为技术有限公司 | 一种数据处理方法及设备 |
-
2019
- 2019-12-31 CN CN201911407548.7A patent/CN111399765B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727299A (zh) * | 2010-02-08 | 2010-06-09 | 北京同有飞骥科技有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
US9037793B1 (en) * | 2011-09-30 | 2015-05-19 | Emc Corporation | Managing data storage |
CN103729149A (zh) * | 2013-12-31 | 2014-04-16 | 创新科存储技术有限公司 | 一种存储数据的方法 |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN105824583A (zh) * | 2016-04-18 | 2016-08-03 | 北京鲸鲨软件科技有限公司 | 纠删码集群文件系统提高顺序写效率的处理方法及装置 |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 |
CN108628541A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件存储的方法、装置及存储系统 |
CN107094186A (zh) * | 2017-06-15 | 2017-08-25 | 深圳市云舒网络技术有限公司 | 一种分布式存储系统的纠删码优化方法 |
CN109783000A (zh) * | 2017-11-10 | 2019-05-21 | 成都华为技术有限公司 | 一种数据处理方法及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857603A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法及相关装置 |
CN111857603B (zh) * | 2020-07-31 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据处理方法及相关装置 |
CN113204554A (zh) * | 2021-05-11 | 2021-08-03 | 深圳市杉岩数据技术有限公司 | 一种对象存储系统实现稀疏写的方法、装置及电子设备 |
CN113776172A (zh) * | 2021-08-12 | 2021-12-10 | 启北公司 | 场景温度规划方法和装置、计算机设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111399765B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11474972B2 (en) | Metadata query method and apparatus | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN111399765B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
US8627026B2 (en) | Storage apparatus and additional data writing method | |
US12067236B2 (en) | Data stability in data storage system | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
US10353820B2 (en) | Low-overhead index for a flash cache | |
CN109445702A (zh) | 一种块级数据去重存储系统 | |
CN108415986B (zh) | 一种数据处理方法、装置、系统、介质和计算设备 | |
US20190087437A1 (en) | Scheduling database compaction in ip drives | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
US11144508B2 (en) | Region-integrated data deduplication implementing a multi-lifetime duplicate finder | |
CN114253908A (zh) | 键值存储系统的数据管理方法及其装置 | |
CN110908589A (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
WO2016101145A1 (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
CN111796767A (zh) | 一种分布式文件系统及数据管理方法 | |
US11093453B1 (en) | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication | |
CN104102735A (zh) | 一种针对数据库文件的文件系统优化方法和装置 | |
US10795596B1 (en) | Delayed deduplication using precalculated hashes | |
US11429587B1 (en) | Multiple duration deduplication entries | |
CN111913658A (zh) | 一种提升云对象存储系统中负载性能的方法及系统 | |
CN112597074B (zh) | 数据处理方法及装置 | |
US10481813B1 (en) | Device and method for extending cache operational lifetime | |
TWI475419B (zh) | 用於在儲存系統上存取檔案的方法和系統 |
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 |