CN117472918A - 数据处理方法、系统、电子设备及存储介质 - Google Patents

数据处理方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN117472918A
CN117472918A CN202311827930.XA CN202311827930A CN117472918A CN 117472918 A CN117472918 A CN 117472918A CN 202311827930 A CN202311827930 A CN 202311827930A CN 117472918 A CN117472918 A CN 117472918A
Authority
CN
China
Prior art keywords
hash fingerprint
target
hash
library
data
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
CN202311827930.XA
Other languages
English (en)
Other versions
CN117472918B (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311827930.XA priority Critical patent/CN117472918B/zh
Publication of CN117472918A publication Critical patent/CN117472918A/zh
Application granted granted Critical
Publication of CN117472918B publication Critical patent/CN117472918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据处理方法、系统、电子设备及存储介质,涉及数据处理技术领域,该方法包括:获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。本发明提高了数据重删处理的效率。

Description

数据处理方法、系统、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、系统、电子设备及存储介质。
背景技术
随着大数据、人工智能、物联网和科学探测等技术的发展,数据量呈现爆炸式增长,数据存储空间的需求越来越大,存储成本越来越高,所以数据缩减技术是存储阵列的关键技术,通过数据缩减,减少数据存储的空间。
对数据缩减的关键技术主要有重复数据删除(Data deduplication)技术,简称重删技术。对于重删技术,重要的是判断数据是否和已保存的数据重复,对于多份重复的数据,只保存其中一份,其它份数据不需要存储,只需建立到已保存数据的映射关系即可。然而,现有存储阵列一般有多个节点,由于数据量较大,多个节点同时进行重删处理,存在大量的通信交互,导致数据重删处理效率较低。
因此,现在亟需一种数据处理方法、系统、电子设备及存储介质来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种数据处理方法、系统、电子设备及存储介质。
本发明提供一种数据处理方法,包括:
获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;
判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;
判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
根据本发明提供的一种数据处理方法,所述方法还包括:
基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库;
将各个所述哈希指纹子库分配到对应的目标服务器节点;
所述获取主机端发送的待进行数据写入操作的目标数据,包括:
接收第一输入,所述第一输入包括通过所述主机端对所述目标数据进行数据写入的操作;
响应于所述第一输入,基于各个所述目标服务器节点,获取待进行数据写入操作的所述目标数据。
根据本发明提供的一种数据处理方法,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
根据服务器节点数量,确定哈希指纹子库数量;
基于所述哈希指纹子库数量和数据库的存储空间中已存储的历史数据,构建得到多个所述哈希指纹子库。
根据本发明提供的一种数据处理方法,所述预设哈希指纹值存储规则通过以下步骤得到:
根据所述哈希指纹子库数量以及各个所述哈希指纹库中的哈希指纹值的最大值和最小值,确定多个哈希指纹值范围;
基于多个所述哈希指纹值范围,构建各个所述哈希指纹值范围与各个所述哈希指纹子库之间的对应关系,并根据所述对应关系,确定所述预设哈希指纹值存储规则。
根据本发明提供的一种数据处理方法,所述根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库,包括:
基于所述预设哈希指纹值存储规则,根据所述目标哈希指纹值对应的所述哈希指纹范围,从多个所述哈希指纹子库中确定所述目标哈希指纹值的所述归属哈希指纹库。
根据本发明提供的一种数据处理方法,所述方法还包括:
在预设监测周期内,获取各个所述哈希指纹子库中各个已存储的哈希指纹值被各个所述目标服务器节点引用的引用次数;
根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库。
根据本发明提供的一种数据处理方法,所述根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库,包括:
获取所述预设监测周期内被监测哈希指纹值的多个第一引用次数,其中,所述被监测哈希指纹值表示所述哈希指纹子库中各个所述已存储的哈希指纹值;各个所述第一引用次数表示所述被监测哈希指纹值被对应的其它所述目标服务器节点引用的次数;
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对,并根据比对结果,获取目标哈希指纹子库;
将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库复制到所述目标哈希指纹子库;
对所述被监测哈希指纹值当前所存储的所述哈希指纹子库中记录的所述目标哈希指纹子库对应的所述第一引用次数进行清零处理,并对所述目标哈希指纹子库中复制得到的所述被监测哈希指纹值的引用次数进行更新,得到所述调整后的哈希指纹子库。
根据本发明提供的一种数据处理方法,所述根据比对结果,获取目标哈希指纹子库,包括:
根据所述比对结果,将所述第一引用次数大于所述第一预设引用次数阈值的所述哈希指纹子库确定为所述目标哈希指纹子库。
根据本发明提供的一种数据处理方法,在所述在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对之后,所述方法还包括:
在所述预设监测周期内,对引用次数差值小于预设差值的所述第一引用次数对应的所述哈希指纹子库进行持续监测,在确定所述引用次数差值大于所述预设差值时,获取所述目标哈希指纹子库,其中,第一引用次数差值为所述第一引用次数与所述第一预设引用次数阈值之间的差值。
根据本发明提供的一种数据处理方法,所述方法还包括:
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库不属于所述归属哈希指纹库时,获取所述预设监测周期内所述被监测哈希指纹值的第二引用次数,其中,所述第二引用次数表示所述被监测哈希指纹值被当前所存储的所述哈希指纹子库引用的次数;
判断所述第二引用次数是否小于第二预设引用次数阈值,若小于,将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库中删除,并根据所述第二引用次数对所述被监测哈希指纹值对应的所述归属哈希指纹库中的所述第一引用次数进行更新,得到所述调整后的哈希指纹子库。
根据本发明提供的一种数据处理方法,在所述判断所述目标哈希指纹值是否已存储于本地哈希指纹库中之后,所述方法还包括:
若所述目标哈希指纹值存储于所述本地哈希指纹库中,对所述目标数据进行重删处理,并对所述目标哈希指纹值对应的所述第二引用次数进行更新。
根据本发明提供的一种数据处理方法,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理之后,包括:
对所述目标哈希指纹值在所述归属哈希指纹库中的引用次数进行更新。
根据本发明提供的一种数据处理方法,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库之后,所述方法还包括:
若所述目标哈希指纹值在所述归属哈希指纹库中未存储,对所述目标数据进行存储操作,并构建所述目标数据的存储地址与所述目标哈希指纹值之间的映射关系,以及在对应的所述归属哈希指纹库中新增所述目标哈希指纹值的引用次数。
根据本发明提供的一种数据处理方法,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
基于哈希算法,对所述数据库的存储空间中已存储的历史数据进行哈希计算,生成对应的哈希指纹值;
根据所述哈希指纹值与对应的所述历史数据之间的映射关系,构建得到多个所述哈希指纹子库。
根据本发明提供的一种数据处理方法,在所述将各个所述哈希指纹子库分配到对应的目标服务器节点之前,所述方法还包括:
基于各个服务器节点的数据处理能力,从多个所述服务器节点中确定所述目标服务器节点。
根据本发明提供的一种数据处理方法,在所述获取主机端发送的待进行数据写入操作的目标数据之后,所述方法还包括:
基于预设数据块粒度,对所述目标数据进行分割,得到多个分割后的目标数据;
所述计算所述目标数据对应的目标哈希指纹值,包括:
基于哈希算法,分别计算各个所述分割后的目标数据的哈希值,并根据计算得到的哈希值,获取所述目标数据对应的目标哈希指纹值。
根据本发明提供的一种数据处理方法,在所述目标数据进行重删处理之后,所述方法还包括:
在确定所述重删处理完成之后,生成对应的重删响应信息,并将所述重删响应信息发送至所述主机端。
本发明还提供一种数据处理系统,包括:
数据输入模块,用于获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;
第一数据处理模块,用于判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;
第二数据处理模块,用于判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据处理方法。
本发明提供的数据处理方法、系统、电子设备及存储介质,通过将哈希指纹子库分配至多个节点,根据各个节点接收到的目标数据对应的哈希指纹值在本地节点的哈希指纹子库中的存储情况,判断是否对目标数据进行重删处理,若本地节点未存储该目标数据对应的哈希指纹值,进而再通过默认归属哈希指纹库中哈希指纹值的存储情况,判断对目标数据进行重删处理还是存储操作,提高了数据重删处理的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的数据处理方法的流程示意图;
图2为本发明提供的多个哈希指纹子库的构建示意图;
图3为本发明提供的哈希指纹子库的调整示意图之一;
图4为本发明提供的哈希指纹子库的调整示意图之二;
图5为本发明提供的数据处理系统的结构示意图;
图6为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于数据重删技术,需要判断数据是否和已保存数据重复,常用方式是对存储的数据进行分块,并对每个分块利用加密函数计算哈希(hash)指纹值,用计算到的哈希指纹值来代表该分块数据,并建立重删指纹库,记录哈希指纹值和该数据存储位置的映射关系。
在存储阵列接收到新数据时,用同样的加密函数计算新数据对应的哈希指纹值,并在重删指纹库中查询存储阵列中是否已经存在该数据,若存在,则说明存储阵列中已经存储过相同的数据,此时新数据可以被重删掉,而不需要存储,只需建立到哈希指纹值对应数据块的存储位置的LP(logic block address-physical block address)映射关系,并增加重删数据库对相应数据的引用数量;如果新数据在重删指纹库中没有查询到对应的哈希指纹值,则将数据存储,建立指纹值和数据保存地址的映射关系,并将新数据对应的哈希指纹值加入重删指纹库。
然而,存储阵列一般有多个服务器节点(node),每个节点都可以处理主机业务,但是目前都是多个节点同时操作同一个重删指纹库,存在互斥问题,或者发送到单个节点进行重删指纹库的操作,但是都会存在大量的通信,影响业务处理效率;并且,由于数据量大,针对目前重删指纹库的数据重删操作的效率也会比较低。
本发明提供了一种优化存储阵列的重删数据的分布处理方法,当每个节点接收到数据写入请求的时候,首先在本节点的哈希指纹库中查找是否存在待写入数据对应的哈希指纹值,若能查找到则对该数据进行重删,若不能,则按照默认规则(如根据数据的哈希指纹值所处于的哈希指纹值范围,确定该数据的归属节点),通过待写入数据对应的归属节点的哈希指纹库中去查找和操作,若仍然没有查找到,则对数据进行存储,并将这个数据对应的哈希指纹值添加到对应的哈希指纹库。
图1为本发明提供的数据处理方法的流程示意图,如图1所示,本发明提供了一种数据处理方法,包括:
步骤101,获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值。
在本发明中,从主机端接收待写入的目标数据,并将其存储缓存中,进而对接收到的目标数据进行哈希计算,并生成对应的哈希指纹值,其中,哈希计算可以采用常见的哈希函数,如SHA-1、MD5等,以方便后续进行数据重删管理和存储空间的优化。
步骤102,判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库。
在本发明中,在各个服务器节点上分配对应的哈希指纹子库,使得每个服务器节点在接收到数据写入请求时,首先从本地哈希指纹库(即服务器节点自身的哈希指纹子库)中查询目标哈希指纹值是否已存储于其中。如果目标哈希指纹值已存在于本地哈希指纹库中,则执行相应的重删操作,否则进行下一步,从而继续判断目标数据是否为重复数据。
在本发明中,根据预设的哈希指纹值存储规则,确定目标哈希指纹值对应的归属哈希指纹库,即通过计算目标数据的哈希指纹值,进而根据预设的哈希指纹值存储规则,确定这个哈希指纹值实际需要存储的哈希指纹子库,其中,预设哈希指纹值存储规则可以基于哈希值的特征信息、数据类型和时间戳等因素进行制定。在一实施例中,在前期构建哈希指纹子库时,基于已存储的哈希指纹值的范围,将所有哈希指纹值按照区段范围进行划分,并将每个区段范围的哈希指纹值与对应的哈希指纹子库建立对应关系,当计算得到目标数据的目标哈希指纹值后,通过查找该目标哈希指纹值所处的区段范围,进而确定目标哈希指纹值的归属哈希指纹库(即该目标哈希指纹值实际需要存储的哈希指纹子库)。本发明将哈希指纹值分散到多个服务器节点上,将哈希指纹操作的压力均衡到所有服务器节点,且无需进行全局所有节点的互斥,提高哈希指纹操作效率,有助于管理大量的哈希指纹值数据,提高数据存储的效率和检索性能。
步骤103,判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
在本发明中,从归属哈希指纹库中查询目标哈希指纹值是否已存储,如果目标哈希指纹值已经存在于归属哈希指纹库中,则执行重删处理操作。
具体地,在本发明中,当接收到主机端发送的数据写入请求时,将待写入的数据(即目标数据)对,按照一定粒度(比如8KB)分割为多个小块,并利用加密算法(例如,sha256算法)分别计算各小块的哈希指纹值(Finger Print,简称FP),需要说明的是,本发明中对目标数据采用的分割方式以及加密算法,与哈希指纹库构建时对已存储的历史数据采用的分割方式和加密算法是相同的。
进一步地,每个服务器节点在获取到目标哈希指纹值后,通过目标哈希指纹值,查找自身服务器节点的本地哈希指纹库,确认目标哈希指纹值是否存在,若存在,则该数据写入请求被成功重删掉,只需建立该目标哈希指纹值对应数据的LP指针引用,并增加该目标哈希指纹值在本节点的引用次数,之后响应主机端的应用完成数据写入请求;若各个服务器节点确定目标哈希指纹值未存储在自身的本地哈希指纹库,则通过目标哈希指纹值对应的归属节点上的归属哈希指纹库查找指纹是否存在,若存在,则在目标数据重删成功后,在归属节点上增加该目标哈希指纹值的引用次数,并在建立目标哈希指纹值对应数据的LP指针引用之后,响应主机端的应用完成数据写入请求;若目标哈希指纹值在本地哈希指纹库和归属哈希指纹库中都不存在,则将目标数据存储到存储空间中,并在归属节点上的哈希指纹库(即归属哈希指纹库)中建立目标哈希指纹值和保存地址之间的映射关系,同时将目标哈希指纹值添加至归属哈希指纹库,并增加相应服务器节点对该指纹数据的引用计数,同时,在建立目标哈希指纹值对应数据的LP指针引用之后,响应主机端的应用完成数据写入请求。
本发明提供的数据处理方法,通过将哈希指纹子库分配至多个节点,根据各个节点接收到的目标数据对应的哈希指纹值在本地节点的哈希指纹子库中的存储情况,判断是否对目标数据进行重删处理,若本地节点未存储该目标数据对应的哈希指纹值,进而再通过默认归属哈希指纹库中哈希指纹值的存储情况,判断对目标数据进行重删处理还是存储操作,提高了数据重删处理的效率。
在上述实施例的基础上,所述方法还包括:
基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库;
将各个所述哈希指纹子库分配到对应的目标服务器节点;
所述获取主机端发送的待进行数据写入操作的目标数据,包括:
接收第一输入,所述第一输入包括通过所述主机端对所述目标数据进行数据写入的操作;
响应于所述第一输入,基于各个所述目标服务器节点,获取待进行数据写入操作的所述目标数据。
在本发明中,从数据库存储空间中获取已存储的历史数据,并对这些数据进行哈希计算,生成相应的哈希指纹值;然后,将生成的哈希指纹值按照一定的规则进行哈希指纹子库的构建,例如,按照哈希值的范围、数据类型等进行分割,以便后续的分布式存储和管理;最后,将各个哈希指纹子库根据其特征或规则分配到对应的目标服务器节点,可通过负载均衡算法来实现,确保每个目标服务器节点都能够承担适当的哈希指纹子库负载。通过以上步骤,能够有效地利用数据库存储空间中的历史数据构建哈希指纹库,并将其分配到多个目标服务器节点上,实现了哈希指纹值的分布式存储和管理,提高了系统的扩展性和容错性。
具体地,在本发明中,依据服务器节点个数及各服务器节点除去必须任务之后的剩余处理能力,按照默认规则(如哈希值的范围、数据类型等)依据节点数分为多个较小的指纹库(即哈希指纹子库),各个哈希指纹子库只会存储一部分指纹。图2为本发明提供的多个哈希指纹子库的构建示意图,可参考图2所示,基于4个节点(node),构建对应4个哈希指纹子库,分别为节点1指纹库、节点2指纹库、节点3指纹库和节点4指纹库;同时,根据哈希值的范围,将哈希指纹值存储至对应的哈希指纹子库中,如哈希值1至哈希值N1的哈希指纹,归属指纹库(归属节点)为节点1指纹库,同时,每个哈希指纹子库中记录有哈希指纹值的引用次数,如在节点1指纹库中,哈希值1的引用次数依次为n1、n2、n3和n4,分别表示哈希值1被节点1指纹库的所在服务器节点引用的次数,哈希值1被节点2指纹库的所在服务器节点引用的次数,哈希值1被节点3指纹库的所在服务器节点引用的次数,以及哈希值1被节点4指纹库的所在服务器节点引用的次数。在本发明中,各个哈希指纹子库的操作权限归属于各服务器节点,即所有服务器节点需要操作的重删指纹若归属本节点,在本地处理即可,如果不归属于本节点,则需要发送消息到相应服务器节点进行重删操作。
在上述实施例的基础上,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
根据服务器节点数量,确定哈希指纹子库数量;
基于所述哈希指纹子库数量和数据库的存储空间中已存储的历史数据,构建得到多个所述哈希指纹子库。
在本发明中,首先需要明确系统中可用的服务器节点数量,这可以是预先确定的固定数量,也可以是动态调整的数量。然后,根据所得到的服务器节点数量,确定哈希指纹子库的数量,在一实施例中,可将哈希指纹值均匀地分配到这些服务器节点上,以实现负载均衡和分布式存储,确保每个子库包含适当数量的哈希指纹值,并且这些子库之间的数据能够均匀分布或按照一定规则分布,以提高系统的性能和稳定性,从而可以更好地利用系统资源,提高系统的可扩展性和并发性。
在上述实施例的基础上,所述预设哈希指纹值存储规则通过以下步骤得到:
根据所述哈希指纹子库数量以及各个所述哈希指纹子库中的哈希指纹值的最大值和最小值,确定多个哈希指纹值范围;
基于多个所述哈希指纹值范围,构建各个所述哈希指纹值范围与各个所述哈希指纹子库之间的对应关系,并根据所述对应关系,确定所述预设哈希指纹值存储规则。
在本发明中,根据各个哈希指纹子库中哈希指纹值的最大最小范围,获取每个子库的哈希指纹值范围。
进一步地,构建哈希指纹值范围与哈希指纹子库之间的对应关系,将每个子库与其对应的哈希指纹值范围进行关联,确保在新的哈希指纹值生成后,能够快速确定归属哈希指纹库。最后,根据建立的对应关系,确定预设的哈希指纹值存储规则,根据写入请求中的哈希指纹值,通过对应关系可以确定哈希指纹值需要在哪个子库中进行存储,以提高系统的效率和性能,实现更加灵活和高效的数据存储。
在上述实施例的基础上,所述根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库,包括:
基于所述预设哈希指纹值存储规则,根据所述目标哈希指纹值对应的所述哈希指纹范围,从多个所述哈希指纹子库中确定所述目标哈希指纹值的所述归属哈希指纹库。
在本发明中,确定目标哈希指纹值所在的哈希指纹范围,再根据目标哈希指纹值的所在范围,确定需要进行查询的哈希指纹子库,以查找目标哈希指纹值的归属哈希指纹库,从而快速准确地定位目标哈希指纹值对应的归属哈希指纹库。
在上述实施例的基础,所述方法还包括:
在预设监测周期内,获取各个所述哈希指纹子库中各个已存储的哈希指纹值被各个所述目标服务器节点引用的引用次数;
根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库。
在本发明中,在预设监测周期内,获取各个哈希指纹子库中已存储的哈希指纹值被目标服务器节点引用的引用次数,可通过定期扫描目标服务器节点的日志或者其它方式,记录每个哈希指纹值被引用的次数。然后,根据获取到的引用次数,对各个哈希指纹子库中的哈希指纹值进行动态调整,以减少节点之间的通信交互过程,提高重删效率。
在本发明中,记录各哈希指纹值被各个服务器节点引用的次数,通过后台任务,定时查找哈希指纹被各服务器节点引用的频次,并将哈希指纹值从默认节点上复制到引用频次高于一定阈值的服务器节点上的哈希指纹子库内;对于检测到的哈希指纹值的引用频率降低到一定阈值时,若该哈希指纹值默认归属不属于本服务器节点,则将这个哈希指纹值从本节点的哈希指纹子库中删除。
在上述实施例的基础上,所述根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库,包括:
获取所述预设监测周期内被监测哈希指纹值的多个第一引用次数,其中,所述被监测哈希指纹值表示所述哈希指纹子库中各个所述已存储的哈希指纹值;各个所述第一引用次数表示所述被监测哈希指纹值被对应的其它所述目标服务器节点引用的次数;
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对,并根据比对结果,获取目标哈希指纹子库;
将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库复制到所述目标哈希指纹子库;
对所述被监测哈希指纹值当前所存储的所述哈希指纹子库中记录的所述目标哈希指纹子库对应的所述第一引用次数进行清零处理,并对所述目标哈希指纹子库中复制得到的所述被监测哈希指纹值的引用次数进行更新,得到所述调整后的哈希指纹子库。
图3为本发明提供的哈希指纹子库的调整示意图之一,可参考图3所示,在本发明中,各服务器节点后台定时检查(如预设监测周期为5分钟)本服务器节点上的哈希指纹子库中各个哈希指纹值被其它各服务器节点(包括本地服务器节点自身)的引用次数(即第一引用次数),如节点1指纹库中哈希值1对应的(0,3,1,0),表示该哈希值被本地节点,节点2、节点3和节点4在当前监测周期引用的次数分别为0次,3次,1次和0次。
在上述实施例的基础上,所述根据比对结果,获取目标哈希指纹子库,包括:
根据所述比对结果,将所述第一引用次数大于所述第一预设引用次数阈值的所述哈希指纹子库确定为所述目标哈希指纹子库。
在本发明中,以哈希值1进行举例说明,若哈希值1的默认归属节点是本节点(即节点1),则将其复制到引用次数超过第一预设引用次数阈值(本实施例中设置为1)的其它节点上的哈希指纹子库中,如哈希值1被节点2引用了3次,需要将哈希值1从节点1复制到节点2,并将哈希值1所在的本地指纹库中被节点2引用的次数清零,同时在哈希值1加入到节点2的哈希指纹子库时,对节点2中的哈希值1的引用次数进行更新,即在节点1中,将哈希值1的引用次数(0,3,1,0)中的3(表示哈希值1当前所存储的节点1指纹库中记录的哈希值1被节点2引用的次数,即第一引用次数)清零更新为(0,0,1,0),当哈希值1复制至节点2的哈希指纹子库后,对节点2指纹库中哈希值1的引用次数进行更新,即在节点2指纹库中增加复制得到的哈希值1的引用次数(0,3,0,0)。相应地,如果其它节点对该哈希值1的引用次数(即第一引用次数)都低于第一预设引用次数,则不进行上述复制操作。本发明将哈希指纹值动态复制到引用频次高于阈值的节点中,使得引用频次较高的节点尽量在自身哈希指纹子库中引用相关的哈希指纹值,减少通信交互过程,提高数据重删效率。
在上述实施例的基础上,在所述在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对之后,所述方法还包括:
在所述预设监测周期内,对引用次数差值小于预设差值的所述第一引用次数对应的所述哈希指纹子库进行持续监测,在确定所述引用次数差值大于所述预设差值时,获取所述目标哈希指纹子库,其中,第一引用次数差值为所述第一引用次数与所述第一预设引用次数阈值之间的差值。
在本发明中,计算第一引用次数与第一预设引用次数阈值之间的差值,即第一引用次数差值。在预设监测周期内,持续监测所有的哈希指纹子库,并记录它们的引用次数,对于引用次数差值小于预设差值的哈希指纹子库,继续进行监测,如在实时监测中,虽然当前某个节点引用哈希指纹值1的次数(即第一引用次数)小于第一预设引用次数,但在预设监测周期未结束前,还会持续记录第一引用次数的变化情况。在持续监测的过程中,如果发现引用次数差值大于预设差值,即第一引用次数超过了第一预设引用次数,那么可以确定该哈希指纹子库为目标哈希指纹子库。
本发明通过持续监测引用次数差值小于预设差值的哈希指纹子库,并在引用次数差值超过预设差值时获取目标哈希指纹子库,可以实现对引用次数的动态调整和负载均衡,提高系统的效率和资源利用率。
在上述实施例的基础上,所述方法还包括:
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库不属于所述归属哈希指纹库时,获取所述预设监测周期内所述被监测哈希指纹值的第二引用次数,其中,所述第二引用次数表示所述被监测哈希指纹值被当前所存储的所述哈希指纹子库引用的次数;
判断所述第二引用次数是否小于第二预设引用次数阈值,若小于,将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库中删除,并根据所述第二引用次数对所述被监测哈希指纹值对应的所述归属哈希指纹库中的所述第一引用次数进行更新,得到所述调整后的哈希指纹子库。
图4为本发明提供的哈希指纹子库的调整示意图之二,可参考图4所示,在本发明中,以哈希值1进行举例说明,若哈希值1的默认归属节点是节点1,此时节点2存储了哈希值1,而节点2对于哈希值1属于非归属节点,若节点2中的引用次数(即第二引用次数,本发明中为1)低于第二预设引用次数阈值(本发明为2)阈值2,则将哈希值1从节点2的本地指纹库中删除,即将节点2中哈希值1以及引用次数(0,1,0,0)删除,并将节点2中的哈希值1被节点2引用的次数更新到归属哈希指纹库的引用次数(即第一引用次数)中,即将节点1中的哈希值1的引用次数(0,0,1,0)更新为(0,1,1,0);相应地,如果第二引用次数高于第二预设次数阈值,则无需进行上述操作。本发明将非归属节点中引用频次低于阈值的哈希指纹值进行删除,从而提高了哈希指纹子库的空间利用率。
在上述实施例的基础上,在所述判断所述目标哈希指纹值是否已存储于本地哈希指纹库中之后,所述方法还包括:
若所述目标哈希指纹值存储于所述本地哈希指纹库中,对所述目标数据进行重删处理,并对所述目标哈希指纹值对应的所述第二引用次数进行更新。
在本发明中,更新目标哈希指纹值对应的第二引用次数,将第二引用次数加1,表示目标哈希指纹值被当前所存储的哈希指纹子库的引用次数增加。进而将更新后的第二引用次数保存到本地哈希指纹库中,确保引用次数的准确性。本发明通过对目标数据进行重删处理,并更新目标哈希指纹值对应的第二引用次数,可以有效管理和维护本地哈希指纹库的数据,并确保引用次数的正确性。
在上述实施例的基础上,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理之后,包括:
对所述目标哈希指纹值在所述归属哈希指纹库中的引用次数进行更新。
在本发明中,在重删处理之后,向归属哈希指纹库发送更新请求,请求更新目标哈希指纹值在归属哈希指纹库中的引用次数。归属哈希指纹库接收到更新请求后,对目标哈希指纹值所对应的引用次数进行更新,以确保引用次数的可靠性和正确性。
在上述实施例的基础上,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库之后,所述方法还包括:
若所述目标哈希指纹值在所述归属哈希指纹库中未存储,对所述目标数据进行存储操作,并构建所述目标数据的存储地址与所述目标哈希指纹值之间的映射关系,以及在对应的所述归属哈希指纹库中新增所述目标哈希指纹值的引用次数。
在本发明中,为了能够快速定位目标数据,需要将目标哈希指纹值与其对应的存储地址建立映射关系,在后续需要获取目标数据时,可以通过目标哈希指纹值快速找到对应的存储地址。由于目标哈希指纹值是新存储的,此时将目标哈希指纹值存储至相应的归属哈希指纹库中,并在归属哈希指纹库中新增该哈希指纹值的引用次数记录,以方便后续对哈希指纹值的管理和使用。在本发明中,当目标哈希指纹值对应的本地服务器节点和归属服务器节点属于同一服务器节点时,只需在归属哈希指纹库中新增目标哈希指纹值的引用次数记录;而在本地服务器节点和归属服务器节点不属于同一服务器节点时,当本地服务器节点和归属服务器节点各自对应的哈希指纹子库中均未存储该目标哈希指纹值时,则在对应的本地哈希指纹库和归属哈希指纹库中增加目标哈希指纹值的引用次数。
在上述实施例的基础上,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
基于哈希算法,对所述数据库的存储空间中已存储的历史数据进行哈希计算,生成对应的哈希指纹值;
根据所述哈希指纹值与对应的所述历史数据之间的映射关系,构建得到多个所述哈希指纹库。
在本发明中,对数据库存储空间中已存储的历史数据使用哈希算法(如MD5、SHA-256等),生成对应的哈希指纹值。哈希算法能够将任意长度的数据转换成固定长度的哈希值,且对输入数据的微小改动会产生显著不同的哈希输出。
然后,在生成的哈希指纹值与对应的历史数据之间建立映射关系,这个映射关系可以采用数据结构,例如哈希表或者关联数组,将每个哈希指纹值与其对应的历史数据关联起来,形成多个哈希指纹子库(所有哈希指纹子库可作为当前历史数据对应的一个哈希指纹整合库),从而实现快速的数据检索和验证,为后续哈希指纹值管理提供了基础支持。
在上述实施例的基础上,在所述将各个所述哈希指纹子库分配到对应的目标服务器节点之前,所述方法还包括:
基于各个服务器节点的数据处理能力,从多个所述服务器节点中确定所述目标服务器节点。
在本发明中,收集每个服务器节点的数据处理能力信息,例如CPU、内存和带宽等硬件指标,以及各个节点的负载情况、响应速度等软件指标,这些信息可以通过监控系统或者自定义脚本进行收集。
在排除了节点必须的处理能力后,将剩余处理能力(即数据处理能力)满足预设处理条件的节点确定为目标服务器节点,即需要选取剩余处理能力较高的服务器节点作为目标服务器节点具有高可用性的节点。例如,根据剩余处理能力,为每个服务器节点计算得分,得分越高的节点表示其更适合作为目标服务器节点,具体的得分计算方式可以根据实际情况而定,如可以将各个硬件和软件指标按照不同的权重加权求和,或者采用机器学习模型进行评估,以保证系统的高可用性和性能优化。
在上述实施例的基础上,在所述获取主机端发送的待进行数据写入操作的目标数据之后,所述方法还包括:
基于预设数据块粒度,对所述目标数据进行分割,得到多个分割后的目标数据;
所述计算所述目标数据对应的目标哈希指纹值,包括:
基于哈希算法,分别计算各个所述分割后的目标数据的哈希值,并根据计算得到的哈希值,获取所述目标数据对应的目标哈希指纹值。
在本发明中,基于预设数据块粒度对目标数据进行分割,得到多个分割后的目标数据块,这样的分割方式可以用于数据传输、数据处理、并行计算等场景,使得数据操作更加灵活、高效。
在上述实施例的基础上,在所述目标数据进行重删处理之后,所述方法还包括:
在确定所述重删处理完成之后,生成对应的重删响应信息,并将所述重删响应信息发送至所述主机端。
在本发明中,在确定重删处理完成后,生成对应的重删响应信息,并将其发送至主机端,从而及时通知主机端关于重删处理的结果和状态,以便主机端进行后续处理和监控。
针对现有数据重删过程中存在的问题,本发明提出一种优化存储阵列的重删指纹分布管理的方法,该方法首先依据服务器节点个数及各服务器节点除去必须任务之后的剩余处理能力,按照默认规则依据服务器节点数构建多个较小指纹库(即哈希指纹子库),各个小指纹库只存储一部分哈希指纹值,且操作权限归属于各服务器节点,即所有服务器节点需要操作的重删过程,如果不归属于本服务器节点,则发送消息到相应服务器节点进行操作。其次,记录各哈希指纹值被各服务器节点引用的次数,并通过后台任务,查找哈希指纹值被各服务器节点引用的频率,并将哈希指纹值从默认节点上复制到引用频次高于一定阈值的服务器节点内的指纹库内。
在本发明中,每个服务器节点接收到数据写入请求的时候,首先在本服务器节点的指纹库中查找,若能查找数据对应的哈希指纹值,则重删处理,若未查找到,则按照默认规则通过数据对应的指纹归属节点去查找和操作,若都没有查找到,则保存数据,并将对应的哈希指纹值添加到哈希指纹子库中。而在一个监测周期内,若检测到某个哈希指纹值的引用频率降低到一定阈值时,且该哈希指纹值当前所存储的节点不属于归属节点,则将该哈希指纹值从这个节点的哈希指纹子库中删除。
下面对本发明提供的数据处理系统进行描述,下文描述的数据处理系统与上文描述的数据处理方法可相互对应参照。
图5为本发明提供的数据处理系统的结构示意图,如图5所示,本发明提供了一种数据处理系统,包括数据输入模块501、第一数据处理模块502和第二数据处理模块503,其中,数据输入模块501用于获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;第一数据处理模块502用于判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;第二数据处理模块503用于判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
在本发明中,数据输入模块501从主机端接收待写入的目标数据,并将其存储缓存中,进而对接收到的目标数据进行哈希计算,并生成对应的哈希指纹值,其中,哈希计算可以采用常见的哈希函数,如SHA-1、MD5等,以方便后续进行数据重删管理和存储空间的优化。
进一步地,在本发明中,数据处理系统预先在各个服务器节点上分配对应的哈希指纹子库,使得每个服务器节点在接收到数据写入请求时,第一数据处理模块502首先从本地哈希指纹库(即服务器节点自身的哈希指纹子库)中查询目标哈希指纹值是否已存储于其中。如果目标哈希指纹值已存在于本地哈希指纹库中,则执行相应的重删操作,否则进行下一步,从而继续判断目标数据是否为重复数据。
在本发明中,第一数据处理模块502 根据预设的哈希指纹值存储规则,确定目标哈希指纹值对应的归属哈希指纹库,即通过计算目标数据的哈希指纹值,进而根据预设的哈希指纹值存储规则,确定这个哈希指纹值实际需要存储的哈希指纹子库,其中,预设哈希指纹值存储规则可以基于哈希值的特征信息、数据类型和时间戳等因素进行制定。在一实施例中,在前期构建哈希指纹子库时,基于已存储的哈希指纹值的范围,将所有哈希指纹值按照区段范围进行划分,并将每个区段范围的哈希指纹值与对应的哈希指纹子库建立对应关系,当计算得到目标数据的目标哈希指纹值后,通过查找该目标哈希指纹值所处的区段范围,进而确定目标哈希指纹值的归属哈希指纹库(即该目标哈希指纹值实际需要存储的哈希指纹子库)。本发明将哈希指纹值分散到多个服务器节点上,将哈希指纹操作的压力均衡到所有服务器节点,且无需进行全局所有节点的互斥,提高哈希指纹操作效率,有助于管理大量的哈希指纹值数据,提高数据存储的效率和检索性能。
进一步地,第二数据处理模块503从归属哈希指纹库中查询目标哈希指纹值是否已存储,如果目标哈希指纹值已经存在于归属哈希指纹库中,则执行重删处理操作。具体地,在本发明中,数据输入模块501接收到主机端发送的数据写入请求时,将待写入的数据(即目标数据)对,按照一定粒度(比如8KB)分割为多个小块,并利用加密算法(例如,sha256算法)分别计算各小块的哈希指纹值(Finger Print,简称FP),需要说明的是,本发明中对目标数据采用的分割方式以及加密算法,与哈希指纹库构建时对已存储的历史数据采用的分割方式和加密算法是相同的。
进一步地,每个服务器节点在获取到目标哈希指纹值后,第一数据处理模块502通过目标哈希指纹值,查找各个服务器节点自身的本地哈希指纹库,确认目标哈希指纹值是否存在,若存在,则该数据写入请求被成功重删掉,只需建立该目标哈希指纹值对应数据的LP指针引用,并增加该目标哈希指纹值在本节点的引用次数,之后响应主机端的应用完成数据写入请求;若各个服务器节点确定目标哈希指纹值未存储在自身的本地哈希指纹库,则第二数据处理模块503通过目标哈希指纹值对应的归属节点上的归属哈希指纹库查找指纹是否存在,若存在,则在目标数据重删成功后,在归属节点上增加该目标哈希指纹值的引用次数,并在建立目标哈希指纹值对应数据的LP指针引用之后,响应主机端的应用完成数据写入请求;若目标哈希指纹值在本地哈希指纹库和归属哈希指纹库中都不存在,则将目标数据存储到存储空间中,并在归属节点上的哈希指纹库(即归属哈希指纹库)中建立目标哈希指纹值和保存地址之间的映射关系,同时将目标哈希指纹值添加至归属哈希指纹库,并增加相应服务器节点对该指纹数据的引用计数,同时,在建立目标哈希指纹值对应数据的LP指针引用之后,响应主机端的应用完成数据写入请求。
本发明提供的数据处理系统,通过将哈希指纹子库分配至多个节点,根据各个节点接收到的目标数据对应的哈希指纹值在本地节点的哈希指纹子库中的存储情况,判断是否对目标数据进行重删处理,若本地节点未存储该目标数据对应的哈希指纹值,进而再通过默认归属哈希指纹库中哈希指纹值的存储情况,判断对目标数据进行重删处理还是存储操作,提高了数据重删处理的效率。
本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图6为本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(Processor)601、通信接口(Communications Interface)602、存储器(Memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行数据处理方法,该方法包括:获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据处理方法,该方法包括:获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据处理方法,该方法包括:获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种数据处理方法,其特征在于,包括:
获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;
判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;
判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库;
将各个所述哈希指纹子库分配到对应的目标服务器节点;
所述获取主机端发送的待进行数据写入操作的目标数据,包括:
接收第一输入,所述第一输入包括通过所述主机端对所述目标数据进行数据写入的操作;
响应于所述第一输入,基于各个所述目标服务器节点,获取待进行数据写入操作的所述目标数据。
3.根据权利要求2所述的数据处理方法,其特征在于,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
根据服务器节点数量,确定哈希指纹子库数量;
基于所述哈希指纹子库数量和数据库的存储空间中已存储的历史数据,构建得到多个所述哈希指纹子库。
4.根据权利要求3所述的数据处理方法,其特征在于,所述预设哈希指纹值存储规则通过以下步骤得到:
根据所述哈希指纹子库数量以及各个所述哈希指纹子库中的哈希指纹值的最大值和最小值,确定多个哈希指纹值范围;
基于多个所述哈希指纹值范围,构建各个所述哈希指纹值范围与各个所述哈希指纹子库之间的对应关系,并根据所述对应关系,确定所述预设哈希指纹值存储规则。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库,包括:
基于所述预设哈希指纹值存储规则,根据所述目标哈希指纹值对应的所述哈希指纹范围,从多个所述哈希指纹子库中确定所述目标哈希指纹值的所述归属哈希指纹库。
6.根据权利要求2所述的数据处理方法,其特征在于,所述方法还包括:
在预设监测周期内,获取各个所述哈希指纹子库中各个已存储的哈希指纹值被各个所述目标服务器节点引用的引用次数;
根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库。
7.根据权利要求6所述的数据处理方法,其特征在于,所述根据所述引用次数,对各个所述哈希指纹子库中的哈希指纹值进行调整,得到调整后的哈希指纹子库,包括:
获取所述预设监测周期内被监测哈希指纹值的多个第一引用次数,其中,所述被监测哈希指纹值表示所述哈希指纹子库中各个所述已存储的哈希指纹值;各个所述第一引用次数表示所述被监测哈希指纹值被对应的其它所述目标服务器节点引用的次数;
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对,并根据比对结果,获取目标哈希指纹子库;
将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库复制到所述目标哈希指纹子库;
对所述被监测哈希指纹值当前所存储的所述哈希指纹子库中记录的所述目标哈希指纹子库对应的所述第一引用次数进行清零处理,并对所述目标哈希指纹子库中复制得到的所述被监测哈希指纹值的引用次数进行更新,得到所述调整后的哈希指纹子库。
8.根据权利要求7所述的数据处理方法,其特征在于,所述根据比对结果,获取目标哈希指纹子库,包括:
根据所述比对结果,将所述第一引用次数大于所述第一预设引用次数阈值的所述哈希指纹子库确定为所述目标哈希指纹子库。
9.根据权利要求8所述的数据处理方法,其特征在于,在所述在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库为所述归属哈希指纹库时,将各个所述第一引用次数与第一预设引用次数阈值进行比对之后,所述方法还包括:
在所述预设监测周期内,对引用次数差值小于预设差值的所述第一引用次数对应的所述哈希指纹子库进行持续监测,在确定所述引用次数差值大于所述预设差值时,获取所述目标哈希指纹子库,其中,第一引用次数差值为所述第一引用次数与所述第一预设引用次数阈值之间的差值。
10.根据权利要求8所述的数据处理方法,其特征在于,所述方法还包括:
在确定所述被监测哈希指纹值当前所存储的所述哈希指纹子库不属于所述归属哈希指纹库时,获取所述预设监测周期内所述被监测哈希指纹值的第二引用次数,其中,所述第二引用次数表示所述被监测哈希指纹值被当前所存储的所述哈希指纹子库引用的次数;
判断所述第二引用次数是否小于第二预设引用次数阈值,若小于,将所述被监测哈希指纹值从当前所存储的所述哈希指纹子库中删除,并根据所述第二引用次数对所述被监测哈希指纹值对应的所述归属哈希指纹库中的所述第一引用次数进行更新,得到所述调整后的哈希指纹子库。
11.根据权利要求10所述的数据处理方法,其特征在于,在所述判断所述目标哈希指纹值是否已存储于本地哈希指纹库中之后,所述方法还包括:
若所述目标哈希指纹值存储于所述本地哈希指纹库中,对所述目标数据进行重删处理,并对所述目标哈希指纹值对应的所述第二引用次数进行更新。
12.根据权利要求10所述的数据处理方法,其特征在于,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理之后,包括:
对所述目标哈希指纹值在所述归属哈希指纹库中的引用次数进行更新。
13.根据权利要求6所述的数据处理方法,其特征在于,在所述判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库之后,所述方法还包括:
若所述目标哈希指纹值在所述归属哈希指纹库中未存储,对所述目标数据进行存储操作,并构建所述目标数据的存储地址与所述目标哈希指纹值之间的映射关系,以及在对应的所述归属哈希指纹库中新增所述目标哈希指纹值的引用次数。
14.根据权利要求2所述的数据处理方法,其特征在于,所述基于数据库的存储空间中已存储的历史数据,构建得到多个哈希指纹子库,包括:
基于哈希算法,对所述数据库的存储空间中已存储的历史数据进行哈希计算,生成对应的哈希指纹值;
根据所述哈希指纹值与对应的所述历史数据之间的映射关系,构建得到多个所述哈希指纹子库。
15.根据权利要求2所述的数据处理方法,其特征在于,在所述将各个所述哈希指纹子库分配到对应的目标服务器节点之前,所述方法还包括:
基于各个服务器节点的数据处理能力,从多个所述服务器节点中确定所述目标服务器节点。
16.根据权利要求1所述的数据处理方法,其特征在于,在所述获取主机端发送的待进行数据写入操作的目标数据之后,所述方法还包括:
基于预设数据块粒度,对所述目标数据进行分割,得到多个分割后的目标数据;
所述计算所述目标数据对应的目标哈希指纹值,包括:
基于哈希算法,分别计算各个所述分割后的目标数据的哈希值,并根据计算得到的哈希值,获取所述目标数据对应的目标哈希指纹值。
17.根据权利要求1至16任一项所述的数据处理方法,其特征在于,在所述目标数据进行重删处理之后,所述方法还包括:
在确定所述重删处理完成之后,生成对应的重删响应信息,并将所述重删响应信息发送至所述主机端。
18.一种数据处理系统,其特征在于,包括:
数据输入模块,用于获取主机端发送的待进行数据写入操作的目标数据,并计算所述目标数据对应的目标哈希指纹值;
第一数据处理模块,用于判断所述目标哈希指纹值是否已存储于本地哈希指纹库中,若未存储,根据所述目标哈希指纹值和预设哈希指纹值存储规则,确定所述目标哈希指纹值对应的归属哈希指纹库;
第二数据处理模块,用于判断所述目标哈希指纹值是否已存储于所述归属哈希指纹库,若已存储,对所述目标数据进行重删处理。
19.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至17任一项所述数据处理方法。
20.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述数据处理方法。
CN202311827930.XA 2023-12-28 2023-12-28 数据处理方法、系统、电子设备及存储介质 Active CN117472918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311827930.XA CN117472918B (zh) 2023-12-28 2023-12-28 数据处理方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311827930.XA CN117472918B (zh) 2023-12-28 2023-12-28 数据处理方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117472918A true CN117472918A (zh) 2024-01-30
CN117472918B CN117472918B (zh) 2024-03-22

Family

ID=89624230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311827930.XA Active CN117472918B (zh) 2023-12-28 2023-12-28 数据处理方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117472918B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298614A (zh) * 2014-09-30 2015-01-21 华为技术有限公司 数据块在存储设备中存储方法和存储设备
CN110389706A (zh) * 2018-04-16 2019-10-29 华为技术有限公司 一种指纹回收方法以及存储系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298614A (zh) * 2014-09-30 2015-01-21 华为技术有限公司 数据块在存储设备中存储方法和存储设备
CN110389706A (zh) * 2018-04-16 2019-10-29 华为技术有限公司 一种指纹回收方法以及存储系统

Also Published As

Publication number Publication date
CN117472918B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN108810041B (zh) 一种分布式缓存系统的数据写入及扩容方法、装置
CN109977077B (zh) 模型文件存储方法、装置、可读存储介质和计算机设备
CN108874803B (zh) 数据存储方法、装置及存储介质
CN111247518B (zh) 用于数据库分片的方法和系统
CN102810107B (zh) 重复数据的处理方法
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
US20140222873A1 (en) Information system, management apparatus, method for processing data, data structure, program, and recording medium
US10908834B2 (en) Load balancing for scalable storage system
CN110908589B (zh) 数据文件的处理方法、装置、系统和存储介质
US11314598B2 (en) Method for approximating similarity between objects
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
CN112256698B (zh) 一种基于多哈希函数的表关系自动关联方法
US20210119641A1 (en) Adaptive Delta Compression For Timeseries Data
CN112364209A (zh) 分布式数据存储方法、数据查询方法、设备和存储介质
CN111522502B (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
CN113535670B (zh) 一种虚拟化资源镜像存储系统及其实现方法
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
CN111522811B (zh) 数据库的处理方法及装置、存储介质、终端
CN114817232A (zh) 访问数据的方法及装置
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN114840487A (zh) 分布式文件系统的元数据管理方法和装置
EP3771998B1 (en) Distributed machine learning for cached data validity
CN117472918B (zh) 数据处理方法、系统、电子设备及存储介质
CN111736774A (zh) 冗余数据的处理方法、装置、服务器及存储介质
CN115442439A (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