CN107391761A - 一种基于重复数据删除技术的数据管理方法及装置 - Google Patents
一种基于重复数据删除技术的数据管理方法及装置 Download PDFInfo
- Publication number
- CN107391761A CN107391761A CN201710750609.4A CN201710750609A CN107391761A CN 107391761 A CN107391761 A CN 107391761A CN 201710750609 A CN201710750609 A CN 201710750609A CN 107391761 A CN107391761 A CN 107391761A
- Authority
- CN
- China
- Prior art keywords
- data
- metadata information
- deposit
- fingerprint value
- length
- 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
Classifications
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- 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
- 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
- G06F3/0641—De-duplication techniques
-
- 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)
- 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
本发明公开了一种基于重复数据删除技术的数据管理方法及装置,所述方法通过HASH算法计算目标数据的指纹值;并通过CRUSH映射确定目标数据的指纹值对应的存储位置;进而将目标数据作为待存数据,判断待存数据的存储位置中是否存有数据;若存有,便将待存数据的引用计数加一;若未存有,便存储待存数据,并将待存数据的引用计数置一,最后将待存数据的第一元数据信息存储。如此在进行数据存储的过程中,避免了数据的多次存储,提高了工作效率;同时,基于重复数据技术,实现了数据的管理,节约了成本,延长了存储***的寿命。本发明实施例提供的一种基于重复数据删除技术的数据管理装置,也同样具有上述技术效果。
Description
技术领域
本发明涉及云计算数据中心技术领域,更具体地说,涉及一种基于重复数据删除技术的数据管理方法及装置。
背景技术
随着计算机技术以及互联网行业的迅猛发展,数据信息日益增多,为了节约存储空间,实现资源共享,分布式存储***应运而生。分布式存储***将数据分散存储在多***立的设备上,采用可扩展的***结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,可以提高***的可靠性、可用性和管理效率,还易于扩展。
但是,由于众多终端都可以访问存储服务器,其中必然存在大量重复数据,占用存储空间,此时优化存储容量的重复数据删除技术解决了这一问题。重复数据删除技术通过消除存储***中重复的数据,缩减***中实际存储的数据或通过网络传输的数据,在备份、长期归档和数据灾难恢复等方面得到了广泛的应用。而在分布式存储领域中,为了降低存储单位容量成本,在线重复数据的处理迫在眉睫。
因此,如何在分布式存储领域中,实现重复数据技术,即利用重复数据技术在分布式存储领域中,实现数据的存储、读取以及删除操作,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于重复数据删除技术的数据管理方法及装置,以实现在分布式存储领域中,基于重复数据技术进行数据的存储、读取以及删除操作。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于重复数据删除技术的数据管理方法,包括:
S11、通过HASH算法计算目标数据的指纹值;
S12、通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;将所述目标数据作为待存数据,并执行S13;
S13、判断与待存数据对应的存储位置中是否存有数据;若是,则执行S14;若否,则执行S15;
S14、将与待存数据对应的引用计数加一,并执行S16;
S15、将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,并执行S16;
S16、存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
其中,执行所述S11之前,还包括:
S21、判断是否存在与所述目标数据对应的第二元数据信息;若是,则执行S22;若否,则执行S11;
S22、获取所述第二元数据信息;
S23、判断所述第二元数据信息中是否存在指纹值;若是,则执行S24;若否,则执行S11;
S24、比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则执行S11;若所述目标数据的长度小于所述预设的数据长度,则执行S25;
S25、将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,并执行S26;
S26、通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置;将所述拼接数据作为待存数据,并执行S13。
其中,所述若所述目标数据的长度等于所述预设的数据长度,包括:
若所述目标数据的长度等于所述预设的数据长度,则将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
其中,所述将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,包括:
获取与所述第二元数据信息对应的数据内容;
按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算所述拼接数据的指纹值;
将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
其中,还包括:
接收客户端发送的删除请求;
根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
判断与所述待删数据对应的引用计数是否为零;
若是,则删除所述待删数据和所述第三元数据信息。
一种基于重复数据删除技术的数据管理装置,包括:
第一计算模块,用于通过HASH算法计算目标数据的指纹值;
第一确定模块,用于通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;
第一判断模块,用于判断与待存数据对应的存储位置中是否存有数据;
第一执行模块,用于当与待存数据对应的存储位置中存有数据时,将与待存数据对应的引用计数加一;
第一存储模块,用于当与待存数据对应的存储位置中未存有数据时,将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;
第二存储模块,用于存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
其中,还包括:
第二判断模块,用于判断是否存在与所述目标数据对应的第二元数据信息;若不存在,则触发所述第一计算模块;
第一获取模块,用于当存在与所述目标数据对应的第二元数据信息时,获取所述第二元数据信息;
第三判断模块,用于判断所述第二元数据信息中是否存在指纹值;若不存在,则触发所述第一计算模块;
比较模块,用于当所述第二元数据信息中存在指纹值时,比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则触发所述第一计算模块;
拼接模块,用于当所述目标数据的长度小于所述预设的数据长度时,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值;
第二确定模块,用于通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置。
其中,所述比较模块包括:
第一执行单元,用于当所述目标数据的长度等于所述预设的数据长度时,将所述第二元数据信息对应的数据的引用计数减一;
第一判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第一删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
其中,所述拼接模块包括:
获取单元,用于获取与所述第二元数据信息对应的数据内容;
拼接单元,用于按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算单元,用于计算所述拼接数据的指纹值;
第二执行单元,用于将所述第二元数据信息对应的数据的引用计数减一;
第二判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第二删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
其中,还包括:
接收模块,用于接收客户端发送的删除请求;
第二获取模块,用于根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
第三确定模块,用于通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
第四判断模块,用于判断与所述待删数据对应的引用计数是否为零;
删除模块,用于当与所述待删数据对应的引用计数为零时,删除所述待删数据和所述第三元数据信息。
通过以上方案可知,本发明实施例提供的一种基于重复数据删除技术的数据管理方法,包括:
S11、通过HASH算法计算目标数据的指纹值;
S12、通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;将所述目标数据作为待存数据,并执行S13;
S13、判断与待存数据对应的存储位置中是否存有数据;若是,则执行S14;若否,则执行S15;
S14、将与待存数据对应的引用计数加一,并执行S16;
S15、将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,并执行S16;
S16、存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
可见,上述方法通过HASH算法计算目标数据的指纹值;并通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;其中,指纹值确定了目标数据的唯一性,进而确定了目标数据存储位置的唯一性;进而将所述目标数据作为待存数据,判断与待存数据对应的存储位置中是否存有数据;由于待存数据具有唯一的存储位置,所以若存储位置中已经存有数据,则表明待存数据已经存储,便不再存储待存数据,而是将与待存数据对应的引用计数加一;若存储位置中未存有数据,则表明待存数据未存储,便将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,最后将待存数据的第一元数据信息存储,所述第一元数据信息包括:待存数据的指纹值。如此通过上述方法,在进行数据存储的过程中,既避免了数据的多次存储,又提高了工作效率,节约了***的存储空间;同时,基于重复数据技术,在分布式存储领域中实现了数据的管理,节约了成本,延长了存储***的寿命。
相应地,本发明实施例提供的一种基于重复数据删除技术的数据管理装置,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于重复数据删除技术的数据管理方法流程图;
图2为本发明实施例公开的另一种基于重复数据删除技术的数据管理方法流程图;
图3为本发明实施例一种基于重复数据删除技术的数据管理方法中的数据删除方法流程图;
图4为本发明实施例公开的一种基于重复数据删除技术的数据管理装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于重复数据删除技术的数据管理方法及装置,以实现在分布式存储领域中,基于重复数据技术进行数据的存储、读取以及删除操作。
参见图1,本发明实施例提供的一种基于重复数据删除技术的数据管理方法,包括:
S11、通过HASH算法计算目标数据的指纹值;
具体的,在本实施例中,所述目标数据是当前操作要存储的数据,在计算目标数据的指纹值之前,首先需要将目标数据进行分块。
目前,在分布式存储领域中,为了使底层存储的数据规则化,一般把即将要存储的数据按照底层存储对象的大小进行划分。例如:如果底层存储对象按照4M的大小进行划分,且目标数据的大小为10M,那么将目标数据以4M为依据切分为4M、4M和2M这三个块。即将要存储的数据切为小于或者等于4M的块。
具体的,在计算目标数据的指纹值时,根据上述分块的数据内容通过HASH算法计算目标数据的指纹值,所述指纹值与分块的数据内容一一对应,即与要存储的数据一一对应,即数据内容与指纹值匹配成对,并形成键值对匹配信息。若目标数据被分为多个分块,则每个分块具有一个指纹值,对于每个指纹值对于的数据进行后续操作;若目标数据被分为一个分块,则目标数据具有一个指纹值,对于这个指纹值进行后续操作。在本实施例,目标数据被分为一个分块,具有唯一指纹值。
S12、通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;将所述目标数据作为待存数据,并执行S13;
具体的,根据通过上述HASH算法计算而得的指纹值,在Rados层通过CRUSH映射过程将目标数据替换为目标数据的指纹值,并传递至对象存储设备,进而由对象存储设备在自身存储***中寻找与目标数据对应的存储位置,进而确定存储位置。
S13、判断与待存数据对应的存储位置中是否存有数据;若是,则执行S14;若否,则执行S15;
具体的,将目标数据作为待存数据,对象存储设备确定待存数据的存储位置后,首先判断此存储位置中是否存有数据,若已经存有数据,则表明待存数据已经存储过;若未存有数据,则表明待存数据尚未存储。
S14、将与待存数据对应的引用计数加一,并执行S16;
具体的,通过步骤S13确定待存数据已经存储过,则不再存储待存数据,而是将与待存数据对应的引用计数加一。
S15、将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,并执行S16;
具体的,通过步骤S13确定待存数据尚未存储,则将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一。
S16、存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
具体的,在完成待存数据的存储后,待存数据对应的引用计数也会存储至对象存储设备准备的专用存储位置;同时,待存数据的元数据信息也要进行存储,元数据信息内包括待存数据的指纹值等各种属性。
具体的,元数据存储在存储指纹值的时候,会首先存储8K的元数据,然后将会在元数据后面存储该文件对应的指纹值。元数据存储的元数据信息是以文件为单位,以8K作为一个对象存储在集群环境中,对于4MB的数据分块,此时将会有4088KB的空间来存储指纹数据,采用SHA-1作为指纹HASH算法,一条指纹大小为20byte,此时将会存储209305条指纹值,对应了817GB的数据。
可见,本实施例提供的一种基于重复数据删除技术的数据管理方法,所述方法通过HASH算法计算目标数据的指纹值;并通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;其中,指纹值确定了目标数据的唯一性,进而确定了目标数据存储位置的唯一性;进而将所述目标数据作为待存数据,判断与待存数据对应的存储位置中是否存有数据;由于待存数据具有唯一的存储位置,所以若存储位置中已经存有数据,则表明待存数据已经存储,便不再存储待存数据,而是将与待存数据对应的引用计数加一;若存储位置中未存有数据,则表明待存数据未存储,便将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,最后将待存数据的第一元数据信息存储,所述第一元数据信息包括:待存数据的指纹值。如此通过上述方法,在进行数据存储的过程中,既避免了数据的多次存储,又提高了工作效率,节约了***的存储空间;同时,基于重复数据技术,在分布式存储领域中实现了数据的管理,节约了成本,延长了存储***的寿命。
参见图2,本发明实施例提供的另一种基于重复数据删除技术的数据管理方法,包括:
S21、判断是否存在与所述目标数据对应的第二元数据信息;若是,则执行S22;若否,则执行S11;
具体的,在本实施例中,在对目标数据进行存储之前,会首先判断目标数据的第二元数据信息是否存在,即判断目标数据是首次存储还是再次存储,从而确定当前操作是创建写还是修改写。若目标数据的第二元数据信息存在,则表明目标数据不是首次存储,则确定当前操作为修改写,继续执行步骤S22;若目标数据的第二元数据信息不存在,则表明目标数据是首次存储,则执行步骤S11。
S22、获取所述第二元数据信息;
具体的,获取所述第二元数据信息的具体过程如下:文件***客户端获取目标数的索引信息,并向元数据存储请求获取第二元数据信息;元数据存储根据目标数据的索引信息获取第二元数据信息,其中包括目标数据的指纹值,所述指纹值以键值对形式存储。
需要说明的是,此处仅获取到第二元数据信息,若要获取某元数据对应的数据内容,即读取该数据,则需客户端获取要读取数据的索引信息,并向元数据存储请求元数据信息;元数据存储根据索引信息获取元数据信息,其中包括组成文件的各个对象的,以键值对形式存储的指纹值;Rados根据数据偏移量、数据长度以及指纹值,到对象存储设备内直接读取数据。如此便完成了数据的读取过程。
S23、判断所述第二元数据信息中是否存在指纹值;若是,则执行S24;若否,则执行S11;
具体的,通过步骤S22获取到目标数据的第二元数据信息后,需要判断第二元数据信息是否完整,即判断第二元数据信息中是否存在指纹值,若存在指纹值,则继续执行步骤S24;若不存在指纹值,则执行步骤S11。
S24、比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则执行S11;若所述目标数据的长度小于所述预设的数据长度,则执行S25;
具体的,通过上述步骤S23确定第二元数据信息内存在指纹值后,需要比较目标数据的长度与预设的数据长度的大小。在比较数据长度的大小之前,一般会对目标数据进行大小划分,划分大小的具体过程与上述实施例类似,故在此并不赘述。
具体的,将目标数据进行分块处理后,比较分块的长度与预设的数据长度的大小,在本实施例中,假设目标数据被划分为一个数据块,则这个数据块的长度等于目标数据的长度,那么比较目标数据的长度与预设的数据长度即可。此处预设的数据长度为***内默认的长度,一般***默认长度为4M。若所述目标数据的长度等于所述预设的数据长度,则执行S11;若所述目标数据的长度小于所述预设的数据长度,则继续执行S25;
S25、将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,并执行S26;
具体的,若目标数据的长度小于预设的数据长度,则需要按照数据偏移量、数据长度将目标数据与所述第二元数据信息对应的数据进行拼接。在本实施例中,将预设的数据长度定为4M。例如:第二元数据信息对应的数据的长度是一个0~4M的数据对象,而目标数据的长度为1M,此时需要修改0~4M中的2~3M这个位置;首先把第二元数据信息对应的数据0~4M全部读取,和目标数据1M进行拼接,即将0~4M分为0~2M、2~3M、3~4M三段,并将原来的2~3M共1M内容替换为目标数据的1M内容,再将0~2M、新的2~3M、3~4M这三段拼接到一起,组成一个新的4M数据,即得到了拼接数据。
S26、通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置;将所述拼接数据作为待存数据,并执行S13。
具体的,在本实施例中,确定拼接数据的指纹值对应的存储位置的具体过程与上述实施例类似,故在此不再赘述。而在确定拼接数据的指纹值对应的存储位置后,需要将拼接数据作为待存数据,继续执行步骤S13。
可见,本实施例提供的一种基于重复数据删除技术的数据管理方法,所述方法首先判断是否存在与所述目标数据对应的第二元数据信息;当目标数据存在第二元数据信息时,则获取所述第二元数据信息;当目标数据不存在第二元数据信息时,则执行S11;在获取到第二元数据信息后,判断所述第二元数据信息中是否存在指纹值;若存在,则比较所述目标数据的长度与预设的数据长度;若不存在,则执行S11;在比较目标数据的长度与预设的数据长度后,若所述目标数据的长度等于所述预设的数据长度,则执行S11;若所述目标数据的长度小于所述预设的数据长度,则将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,并通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置;将所述拼接数据作为待存数据,进而执行S13。通过上述方法,在进行数据存储的过程中,既避免了数据的多次存储,又提高了工作效率,节约了***的存储空间;同时,基于重复数据技术,在分布式存储领域中实现了数据的管理,节约了成本,延长了存储***的寿命。
基于上述任意实施例,需要说明的是,所述若所述目标数据的长度等于所述预设的数据长度,包括:
若所述目标数据的长度等于所述预设的数据长度,则将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
具体的,在数据的修改写过程中,当所述目标数据的长度等于所述预设的数据长度时,将所述第二元数据信息对应的数据的引用计数减一,若第二元数据信息对应的数据不再有其他引用,则减一后的引用计数为零,此时便将第二元数据信息对应的数据进行删除。
基于上述任意实施例,需要说明的是,所述将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,包括:
获取与所述第二元数据信息对应的数据内容;
按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算所述拼接数据的指纹值;
将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
具体的,在数据的修改写过程中,所述目标数据的长度小于所述预设的数据长度,并按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,计算所述拼接数据的指纹值后;进而判断第二元数据信息对应的数据是否还存在其他引用,具体过程如下:将所述第二元数据信息对应的数据的引用计数减一,若所述引用计数减一后为零,则表明第二元数据信息对应的数据不存在其他引用,便将第二元数据信息对应的数据删除;若所述引用计数减一后不为零,则表明第二元数据信息对应的数据存在其他引用,则保留第二元数据信息对应的数据。
基于上述任意实施例,需要说明的是,本发明实施例提供的一种基于重复数据删除的数据管理方法,还包括数据的删除方法,参见图3,具体过程如下:
S31、接收客户端发送的删除请求;
S32、根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
S33、通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
S34、判断与所述待删数据对应的引用计数是否为零;
S35、若是,则删除所述待删数据和所述第三元数据信息;
S36、若否,暂不执行删除操作。
具体的,在执行数据的删除方法时,其中包含了数据的读取过程,即根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值,此处仅读取了待删数据的第三元数据信息和其中的指纹值,对于待删数据的内容并未读取。进而通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一并删除其元数据信息,告知客户端该待删数据成功删除;若所述引用计数减一后为零,则表明第二元数据信息对应的数据不存在其他引用,便将待删数据删除。
下面对本发明实施例提供的一种基于重复数据删除技术的数据管理装置进行介绍,下文描述的一种基于重复数据删除技术的数据管理装置与上文描述的一种基于重复数据删除技术的数据管理方法可以相互参照。
参见图4,本发明实施例提供的一种基于重复数据删除技术的数据管理装置,包括:
第一计算模块401,用于通过HASH算法计算目标数据的指纹值;
第一确定模块402,用于通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;
第一判断模块403,用于判断与待存数据对应的存储位置中是否存有数据;
第一执行模块404,用于当与待存数据对应的存储位置中存有数据时,将与待存数据对应的引用计数加一;
第一存储模块405,用于当与待存数据对应的存储位置中未存有数据时,将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;
第二存储模块406,用于存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
其中,还包括:
第二判断模块,用于判断是否存在与所述目标数据对应的第二元数据信息;若不存在,则触发所述第一计算模块;
具体的,当第二判断模块判断不存在与所述目标数据对应的第二元数据信息时,触发所述第一计算模块,由第一计算模块通过HASH算法计算目标数据的指纹值;并由第一确定模块通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;进而第一判断模块判断与待存数据对应的存储位置中是否存有数据;当与待存数据对应的存储位置中存有数据时,第一执行模块将与待存数据对应的引用计数加一;当与待存数据对应的存储位置中未存有数据时,第一存储模块将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;最后第二存储模块存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
第一获取模块,用于当存在与所述目标数据对应的第二元数据信息时,获取所述第二元数据信息;
第三判断模块,用于判断所述第二元数据信息中是否存在指纹值;若不存在,则触发所述第一计算模块;
具体的,当第三判读模块判断第二元数据信息中不存在指纹值时,触发所述第一计算模块;由第一计算模块通过HASH算法计算目标数据的指纹值;并由第一确定模块通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;进而第一判断模块判断与待存数据对应的存储位置中是否存有数据;当与待存数据对应的存储位置中存有数据时,第一执行模块将与待存数据对应的引用计数加一;当与待存数据对应的存储位置中未存有数据时,第一存储模块将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;最后第二存储模块存储待存数据的第一元数据信息,所述第一元数据信息包括:所述待存数据的指纹值。
比较模块,用于当所述第二元数据信息中存在指纹值时,比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则触发所述第一计算模块;
具体的,当第二元数据信息中存在指纹值时,比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则触发所述第一计算模块;由第一计算模块通过HASH算法计算目标数据的指纹值;并由第一确定模块通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;进而第一判断模块判断与待存数据对应的存储位置中是否存有数据;当与待存数据对应的存储位置中存有数据时,第一执行模块将与待存数据对应的引用计数加一;当与待存数据对应的存储位置中未存有数据时,第一存储模块将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;最后第二存储模块存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
拼接模块,用于当所述目标数据的长度小于所述预设的数据长度时,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值;
第二确定模块,用于通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置。
其中,所述比较模块包括:
第一执行单元,用于当所述目标数据的长度等于所述预设的数据长度时,将所述第二元数据信息对应的数据的引用计数减一;
第一判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第一删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
其中,所述拼接模块包括:
获取单元,用于获取与所述第二元数据信息对应的数据内容;
拼接单元,用于按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算单元,用于计算所述拼接数据的指纹值;
第二执行单元,用于将所述第二元数据信息对应的数据的引用计数减一;
第二判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第二删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
其中,还包括:
接收模块,用于接收客户端发送的删除请求;
第二获取模块,用于根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
第三确定模块,用于通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
第四判断模块,用于判断与所述待删数据对应的引用计数是否为零;
删除模块,用于当与所述待删数据对应的引用计数为零时,删除所述待删数据和所述第三元数据信息。
可见,本实施例提供的一种基于重复数据删除技术的数据管理装置,首先第一计算模块通过HASH算法计算目标数据的指纹值;第一确定模块通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;由第一判断模块判断与待存数据对应的存储位置中是否存有数据;当与待存数据对应的存储位置中存有数据时,第一执行模块将与待存数据对应的引用计数加一;当与待存数据对应的存储位置中未存有数据时,第一存储模块将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;最后第二存储模块存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。从而完成了数据的存储以及其元数据信息的存储。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于重复数据删除技术的数据管理方法,其特征在于,包括:
S11、通过HASH算法计算目标数据的指纹值;
S12、通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置;将所述目标数据作为待存数据,并执行S13;
S13、判断与待存数据对应的存储位置中是否存有数据;若是,则执行S14;若否,则执行S15;
S14、将与待存数据对应的引用计数加一,并执行S16;
S15、将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一,并执行S16;
S16、存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
2.根据权利要求1所述的基于重复数据删除技术的数据管理方法,其特征在于,执行所述S11之前,还包括:
S21、判断是否存在与所述目标数据对应的第二元数据信息;若是,则执行S22;若否,则执行S11;
S22、获取所述第二元数据信息;
S23、判断所述第二元数据信息中是否存在指纹值;若是,则执行S24;若否,则执行S11;
S24、比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则执行S11;若所述目标数据的长度小于所述预设的数据长度,则执行S25;
S25、将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,并执行S26;
S26、通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置;将所述拼接数据作为待存数据,并执行S13。
3.根据权利要求2所述的基于重复数据删除技术的数据管理方法,其特征在于,所述若所述目标数据的长度等于所述预设的数据长度,包括:
若所述目标数据的长度等于所述预设的数据长度,则将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
4.根据权利要求2所述的基于重复数据删除技术的数据管理方法,其特征在于,所述将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值,包括:
获取与所述第二元数据信息对应的数据内容;
按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算所述拼接数据的指纹值;
将所述第二元数据信息对应的数据的引用计数减一;
判断所述第二元数据信息对应的数据的引用计数是否为零;
若是,则删除所述第二元数据信息对应的数据。
5.根据权利要求1-4任意一项所述的基于重复数据删除技术的数据管理方法,其特征在于,还包括:
接收客户端发送的删除请求;
根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
判断与所述待删数据对应的引用计数是否为零;
若是,则删除所述待删数据和所述第三元数据信息。
6.一种基于重复数据删除技术的数据管理装置,其特征在于,包括:
第一计算模块,用于通过HASH算法计算目标数据的指纹值;
第一确定模块,用于通过CRUSH映射确定与所述目标数据的指纹值对应的存储位置,将所述目标数据作为待存数据;
第一判断模块,用于判断与待存数据对应的存储位置中是否存有数据;
第一执行模块,用于当与待存数据对应的存储位置中存有数据时,将与待存数据对应的引用计数加一;
第一存储模块,用于当与待存数据对应的存储位置中未存有数据时,将待存数据存储至与待存数据对应的存储位置,并将与待存数据对应的引用计数置一;
第二存储模块,用于存储待存数据的第一元数据信息,所述第一元数据信息包括:待存数据的指纹值。
7.根据权利要求6所述的基于重复数据删除技术的数据管理装置,其特征在于,还包括:
第二判断模块,用于判断是否存在与所述目标数据对应的第二元数据信息;若不存在,则触发所述第一计算模块;
第一获取模块,用于当存在与所述目标数据对应的第二元数据信息时,获取所述第二元数据信息;
第三判断模块,用于判断所述第二元数据信息中是否存在指纹值;若不存在,则触发所述第一计算模块;
比较模块,用于当所述第二元数据信息中存在指纹值时,比较所述目标数据的长度与预设的数据长度;若所述目标数据的长度等于所述预设的数据长度,则触发所述第一计算模块;
拼接模块,用于当所述目标数据的长度小于所述预设的数据长度时,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据,并计算所述拼接数据的指纹值;
第二确定模块,用于通过CRUSH映射确定与所述拼接数据的指纹值对应的存储位置。
8.根据权利要求7所述的基于重复数据删除技术的数据管理装置,其特征在于,所述比较模块包括:
第一执行单元,用于当所述目标数据的长度等于所述预设的数据长度时,将所述第二元数据信息对应的数据的引用计数减一;
第一判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第一删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
9.根据权利要求7所述的基于重复数据删除技术的数据管理装置,其特征在于,所述拼接模块包括:
获取单元,用于获取与所述第二元数据信息对应的数据内容;
拼接单元,用于按照所述预设的数据长度以及数据偏移量,将所述目标数据以及与所述第二元数据信息对应的数据进行拼接,得到拼接数据;
计算单元,用于计算所述拼接数据的指纹值;
第二执行单元,用于将所述第二元数据信息对应的数据的引用计数减一;
第二判断单元,用于判断所述第二元数据信息对应的数据的引用计数是否为零;
第二删除单元,用于当所述第二元数据信息对应的数据的引用计数为零时,删除所述第二元数据信息对应的数据。
10.根据权利要求6-9任意一项所述的基于重复数据删除技术的数据管理装置,其特征在于,还包括:
接收模块,用于接收客户端发送的删除请求;
第二获取模块,用于根据所述删除请求确定待删数据,并获取所述待删数据的第三元数据信息和所述第三元数据信息中的待删数据的指纹值;
第三确定模块,用于通过CRUSH映射确定与所述待删数据的指纹值对应的存储位置,并将与所述待删数据对应的引用计数减一;
第四判断模块,用于判断与所述待删数据对应的引用计数是否为零;
删除模块,用于当与所述待删数据对应的引用计数为零时,删除所述待删数据和所述第三元数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710750609.4A CN107391761B (zh) | 2017-08-28 | 2017-08-28 | 一种基于重复数据删除技术的数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710750609.4A CN107391761B (zh) | 2017-08-28 | 2017-08-28 | 一种基于重复数据删除技术的数据管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391761A true CN107391761A (zh) | 2017-11-24 |
CN107391761B CN107391761B (zh) | 2020-03-06 |
Family
ID=60346237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710750609.4A Active CN107391761B (zh) | 2017-08-28 | 2017-08-28 | 一种基于重复数据删除技术的数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391761B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800218A (zh) * | 2019-01-04 | 2019-05-24 | 平安科技(深圳)有限公司 | 分布式存储***、存储节点设备和数据去重方法 |
CN110399348A (zh) * | 2019-07-19 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 文件重删方法、装置、***及计算机可读存储介质 |
CN111711674A (zh) * | 2020-06-05 | 2020-09-25 | 华南师范大学 | 基于物联网的云计算方法 |
WO2021016728A1 (zh) * | 2019-07-26 | 2021-02-04 | 华为技术有限公司 | 存储***中数据处理方法、装置及计算机存储可读存储介质 |
CN112889021A (zh) * | 2019-07-23 | 2021-06-01 | 华为技术有限公司 | 重复数据删除的设备、***和方法 |
US12019890B2 (en) | 2022-01-25 | 2024-06-25 | Huawei Technologies Co., Ltd. | Adjustable deduplication method, apparatus, and computer program product |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101276366A (zh) * | 2007-03-27 | 2008-10-01 | 株式会社日立制作所 | 防止文件重复存储的计算机*** |
US20110184910A1 (en) * | 2009-07-31 | 2011-07-28 | Joel Michael Love | Chain-of-Custody for Archived Data |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及*** |
CN103248711A (zh) * | 2013-05-23 | 2013-08-14 | 华为技术有限公司 | 一种文件上传的方法和服务器 |
CN105049213A (zh) * | 2015-07-27 | 2015-11-11 | 小米科技有限责任公司 | 文件签名方法及装置 |
CN106649702A (zh) * | 2016-12-20 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 云存储***的文件存储方法、装置及云存储*** |
-
2017
- 2017-08-28 CN CN201710750609.4A patent/CN107391761B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101276366A (zh) * | 2007-03-27 | 2008-10-01 | 株式会社日立制作所 | 防止文件重复存储的计算机*** |
US20110184910A1 (en) * | 2009-07-31 | 2011-07-28 | Joel Michael Love | Chain-of-Custody for Archived Data |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及*** |
CN103248711A (zh) * | 2013-05-23 | 2013-08-14 | 华为技术有限公司 | 一种文件上传的方法和服务器 |
CN105049213A (zh) * | 2015-07-27 | 2015-11-11 | 小米科技有限责任公司 | 文件签名方法及装置 |
CN106649702A (zh) * | 2016-12-20 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 云存储***的文件存储方法、装置及云存储*** |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800218A (zh) * | 2019-01-04 | 2019-05-24 | 平安科技(深圳)有限公司 | 分布式存储***、存储节点设备和数据去重方法 |
WO2020140622A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 分布式存储***、存储节点设备和数据去重方法 |
CN109800218B (zh) * | 2019-01-04 | 2024-04-09 | 平安科技(深圳)有限公司 | 分布式存储***、存储节点设备和数据去重方法 |
CN110399348A (zh) * | 2019-07-19 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 文件重删方法、装置、***及计算机可读存储介质 |
CN112889021A (zh) * | 2019-07-23 | 2021-06-01 | 华为技术有限公司 | 重复数据删除的设备、***和方法 |
CN112889021B (zh) * | 2019-07-23 | 2023-11-28 | 华为技术有限公司 | 重复数据删除的设备、***和方法 |
WO2021016728A1 (zh) * | 2019-07-26 | 2021-02-04 | 华为技术有限公司 | 存储***中数据处理方法、装置及计算机存储可读存储介质 |
CN111711674A (zh) * | 2020-06-05 | 2020-09-25 | 华南师范大学 | 基于物联网的云计算方法 |
CN111711674B (zh) * | 2020-06-05 | 2023-03-14 | 华南师范大学 | 基于物联网的云计算方法 |
US12019890B2 (en) | 2022-01-25 | 2024-06-25 | Huawei Technologies Co., Ltd. | Adjustable deduplication method, apparatus, and computer program product |
Also Published As
Publication number | Publication date |
---|---|
CN107391761B (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391761A (zh) | 一种基于重复数据删除技术的数据管理方法及装置 | |
US10776396B2 (en) | Computer implemented method for dynamic sharding | |
US10380073B2 (en) | Use of solid state storage devices and the like in data deduplication | |
US9305005B2 (en) | Merging entries in a deduplication index | |
CN102629247B (zh) | 一种数据处理方法、装置和*** | |
CN107045422B (zh) | 分布式存储方法和设备 | |
US10949405B2 (en) | Data deduplication device, data deduplication method, and data deduplication program | |
CN106201771B (zh) | 数据存储***和数据读写方法 | |
CN112380149B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN103959256A (zh) | 基于指纹的数据重复删除 | |
CN107622079A (zh) | 数据存储、查询方法及装置 | |
CN109445861A (zh) | ***启动方法、装置、计算机装置及存储介质 | |
CN109522283A (zh) | 一种重复数据删除方法及*** | |
CN107085613B (zh) | 入库文件的过滤方法和装置 | |
CN107506150A (zh) | 分布式存储装置、重删、写、删除、读取方法以及*** | |
CN111522502A (zh) | 数据去重方法、装置、电子设备及计算机可读存储介质 | |
US11372570B1 (en) | Storage device, computer system, and data transfer program for deduplication | |
CN102799659A (zh) | 一种基于无中心分布***的全局重复数据删除***及方法 | |
CN114490060A (zh) | 内存分配方法、装置、计算机设备和计算机可读存储介质 | |
JP6059558B2 (ja) | 負荷分散判定システム | |
CN110633261A (zh) | 一种图片存储方法、图片查询方法及装置 | |
CN106528703A (zh) | 一种重复删除的模式切换方法及装置 | |
CN109388335A (zh) | 一种数据存储方法及*** | |
Li et al. | NFT content data placement strategy in P2P storage network for permissioned blockchain |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200110 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: Suzhou Wave Intelligent Technology Co., Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: Zhengzhou Yunhai Information Technology Co. Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |