CN116991949B - 数据同步方法、装置、设备、服务器及可读存储介质 - Google Patents
数据同步方法、装置、设备、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN116991949B CN116991949B CN202311246745.1A CN202311246745A CN116991949B CN 116991949 B CN116991949 B CN 116991949B CN 202311246745 A CN202311246745 A CN 202311246745A CN 116991949 B CN116991949 B CN 116991949B
- Authority
- CN
- China
- Prior art keywords
- bucket
- task
- barrel
- synchronization
- source
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 230000001360 synchronised effect Effects 0.000 claims abstract description 209
- 238000013507 mapping Methods 0.000 claims abstract description 84
- 239000012634 fragment Substances 0.000 claims description 235
- 230000006870 function Effects 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 34
- 230000011218 segmentation Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、装置、设备、服务器及可读存储介质,属于对象存储领域,用于在跨区域同步模式下对分布式对象存储系统的多站点环境中的历史数据进行同步,解决了分布式对象存储系统的多站点环境中缺少历史数据同步功能的问题。可以基于源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务,然后通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便完成从源站点到目标站点之间的以桶分片为粒度的历史数据同步,可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验。
Description
技术领域
本发明涉及对象存储领域,特别是涉及一种数据同步方法,本发明还涉及一种数据同步装置、设备、服务器及可读存储介质。
背景技术
分布式对象存储系统的多站点数据同步指的是在不同站点的分布式对象存储系统之间进行数据同步,通常包括镜像同步以及跨区域同步两种同步模式,且两种模式不可同时设置,镜像同步指的是将一个站点上的所有数据全部备份到其他站点上,最终实现不同站点上的数据完全一致;而跨区域同步指的是通过设置跨区域同步规则,实现不同站点间的不同桶之间的数据同步。
当一个多站点环境处于镜像同步模式,且站点之间的数据已经完全一致时,若将镜像同步模式转换为跨区域同步模式,那么此后新上传的数据就会按照设置的跨区域同步规则同步到目标站点上的目标桶,但是设置跨区域同步规则之前(在镜像同步模式下)已经同步过的数据(简称历史数据),却无法按照跨区域同步规则同步到目标站点的目标桶,然而用户在实际使用过程中存在对历史数据进行同步的需求,然而目前缺少一种针对分布式对象存储系统的多站点环境的历史数据同步方法,导致无法在跨区域同步模式下对历史数据进行同步,用户体验较差。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种数据同步方法,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验;本发明的另一目的是提供一种数据同步装置、设备、服务器及计算机可读存储介质,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验。
为解决上述技术问题,本发明提供了一种数据同步方法,应用于分布式对象存储系统的多站点环境中的任一站点,包括:
接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量;
基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务;
通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶;
其中,所述映射关系为源站点的源桶与目标站点的目标桶之间的映射关系。
另一方面,所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务包括:
确定出所述映射关系中源桶的每个桶分片上的末位对象的对象名;
建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系;
根据所述映射关系、所述桶分片对应关系以及每个桶分片上末位对象的对象名,为所述源桶的每个桶分片构建一个桶分片同步任务,以便通过其将源桶的桶分片上的所有数据同步至目标桶的对应桶分片;
其中,所述桶分片同步任务包括源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系,还包括所述源桶分片号的桶分片上的末位对象的对象名。
另一方面,所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务之后,所述通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶之前,该数据同步方法还包括:
将所述源桶的各个所述桶分片同步任务均匀分配至预先构建的多个任务队列;
所述通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶包括:
每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理;
其中,所述同步任务处理线程为多个。
另一方面,所述将所述源桶的各个所述桶分片同步任务均匀分配至预先构建的多个任务队列包括:
确定出所述源桶的各个所述桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系的哈希值;
将所述源桶的所述桶分片同步任务对应的所述哈希值对任务队列总数进行取余得到的取余结果,作为该桶分片同步任务所归属的任务队列的序号;
按照源桶的所述桶分片同步任务与任务队列序号之间的对应关系,将所述源桶的各个所述桶分片同步任务划分至对应序号的任务队列。
另一方面,所述每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理包括:
每隔预设周期,为每个所述同步任务处理线程随机选定初始任务队列;
控制每个所述同步任务处理线程从对应的所述初始任务队列开始,循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理。
另一方面,所述控制每个所述同步任务处理线程从对应的所述初始任务队列开始,循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理包括:
对于任一所述同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列;
控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务;
判断本周期内是否遍历所有的所述任务队列;
若未遍历所有的所述任务队列,将当前任务队列的下一次序的任务队列作为当前任务队列,并执行所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务的步骤;
若已遍历所有的所述任务队列,则结束该同步任务处理线程本周期的工作;
所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务包括:
将当前任务队列中的最小次序的所述桶分片同步任务作为当前同步任务;
控制所述同步任务处理线程,从所述当前同步任务中所述源桶的次序最小的待同步对象开始,将所述当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片;
判断所述当前同步任务本次最后同步对象的对象名,是否为所述当前同步任务对应源桶分片的末位对象的对象名;
若为所述末位对象的对象名,删除所述当前同步任务;
若不为所述末位对象的对象名,更新所述当前同步任务中所述源桶的次序最小的待同步对象,以便下一次执行所述当前同步任务时确定出同步开始的对象;
判断是否遍历完成所述当前任务队列中的桶分片同步任务;
若未遍历完成,将当前同步任务的下一次序的桶分片同步任务作为当前同步任务,并执行所述控制所述同步任务处理线程,从所述当前同步任务中所述源桶的次序最小的待同步对象开始,将所述当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片的步骤;
若遍历完成,结束对所述当前任务队列的执行。
另一方面,所述对于任一所述同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列之后,所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务之前,该数据同步方法还包括:
对所述当前任务队列进行加锁,以便禁止其他线程对所述当前任务队列进行处理;
所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务之后,该数据同步方法还包括:
解除对所述当前任务队列的加锁。
另一方面,每个所述桶分片同步任务均记录为键值对;
其中,所述桶分片同步任务中的源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系作为键值对的键名,所述桶分片同步任务中的所述源桶分片号的桶分片上的末位对象的对象名以及所述源桶的次序最小的待同步对象作为键值对的键值。
另一方面,所述任务队列中的各个所述桶分片同步任务的次序包括加入所述任务队列的时间先后次序。
另一方面,所述接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量之后,所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务之前,该数据同步方法还包括:
判断当前站点是否启用历史数据同步功能;
若启用,则执行所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务的步骤。
另一方面,该数据同步方法还包括:
响应于接收到的对于所述历史数据同步功能的开启指令,开启当前站点的所述历史数据同步功能;
响应于接收到的对于所述历史数据同步功能的关闭指令,关闭当前站点的所述历史数据同步功能。
另一方面,该数据同步方法还包括:
判断当前未处理的所述桶分片同步任务的总数量是否大于预设阈值;
若大于,则生成所述历史数据同步功能的关闭指令。
另一方面,所述判断当前站点是否启用历史数据同步功能之后,该数据同步方法还包括:
若未启用,则控制提示器提示当前站点的所述历史数据同步功能未启用。
另一方面,所述建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系包括:
基于对应的两个桶分片的分片号相等的规则,建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系。
另一方面,所述每隔预设周期,为每个所述同步任务处理线程随机选定初始任务队列包括:
每隔预设周期,判断是否存在包含所述桶分片同步任务的所述任务队列;
若存在,为每个所述同步任务处理线程随机选定初始任务队列;
若不存在,则结束本周期。
另一方面,该数据同步方法还包括:
为每个所述任务队列生成备份队列;
判断各个所述任务队列是否受损;
若受损,则将受损的所述任务队列对应的备份队列作为新的任务队列。
另一方面,所述同步任务处理线程一一对应的来源于当前站点中的各个存储节点。
另一方面,该数据同步方法还包括:
响应于历史数据同步任务的调取指令,将当前所有的所述桶分片同步任务进行图形化处理;
将图形化处理后的所述桶分片同步任务进行推送。
为解决上述技术问题,本发明还提供了一种数据同步装置,应用于分布式对象存储系统的多站点环境中的任一站点,包括:
接收模块,用于接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量;
构建模块,用于基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务;
同步模块,用于通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶;
其中,所述映射关系为源站点的源桶与目标站点的目标桶之间的映射关系。
为解决上述技术问题,本发明还提供了一种数据同步设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述数据同步方法的步骤。
为解决上述技术问题,本发明还提供了一种服务器,包括如上所述的数据同步设备。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据同步方法的步骤。
有益效果:本发明提供了一种数据同步方法,考虑到存储桶中的数据量大且通常以桶分片的形式进行对象存储,因此本发明可以基于源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务,然后通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便完成从源站点到目标站点之间的以桶分片为粒度的历史数据同步,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验。
本发明还提供了一种数据同步装置、设备、服务器及计算机可读存储介质,具有如上数据同步方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对相关技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种数据同步方法的流程示意图;
图2为一种分布式对象存储系统的多站点环境的结构示意图;
图3为本发明提供的另一种数据同步方法的流程示意图;
图4为本发明提供的一种数据同步装置的结构示意图;
图5为本发明提供的一种数据同步设备的结构示意图;
图6为本发明提供的一种计算机可读存储介质的结构示意图。
具体实施方式
本发明的核心是提供一种数据同步方法,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验;本发明的另一核心是提供一种数据同步装置、设备、服务器及计算机可读存储介质,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明提供的一种数据同步方法的流程示意图,该数据同步方法应用于分布式对象存储系统的多站点环境中的任一站点,包括:
S101:接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量;
为了更好地对本发明实施例进行说明,请参考图2,图2为一种分布式对象存储系统的多站点环境的结构示意图,多站点环境中应至少包含两个站点,也即两个分布式对象存储系统,图2提供的多站点环境中包含3个站点,跨区域同步模式可以在任意两个站点之间展开,而本发明实施例中的数据同步方法则可以应用于其中任一个站点。
具体的,考虑到如上背景技术中的技术问题,又结合考虑到存储桶中的数据量大且通常以桶分片的形式进行对象存储,因此本发明实施例中欲以桶分片为粒度构建关于源桶的各个桶分片同步任务,然后通过多线程并行的方式对桶分片同步任务进行处理,从而在跨区域同步模式下对历史数据进行同步,不但实现了历史数据的同步功能,而且高效稳定,因此本步骤中首先可以接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量,并将其作为后续步骤的数据基础。
其中,在跨区域同步模式下,可以针对站点中的存储桶进行跨区域同步规则的设定,跨区域同步规则中包含的核心数据为源站点的源桶与目标站点的目标桶之间的映射关系,源桶所在站点即为源站点,目标桶所在站点即为目标桶,“源”和“目标”指代的即为同步过程中的待同步数据的来源以及目的地。
S102:基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务;
具体的,在分布式对象存储系统的各个站点中,每个存储桶都可以以桶分片的形式在存储桶中进行数据存储,因此针对于源桶中的各个桶分片,本发明实施例中可以基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务,这里构建得到的桶分片同步任务的数量即为桶分片数量。
S103:通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便将桶分片同步任务指定的源桶的桶分片上的所有数据同步至对应的目标桶;
其中,映射关系为源站点的源桶与目标站点的目标桶之间的映射关系。
具体的,为了提升历史数据同步效率,同时也为了充分的利用当前站点的物力资源能力,本发明实施例中可以通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便将桶分片同步任务指定的源桶的桶分片上的所有数据同步至对应的目标桶。
其中,同步任务处理线程的具体数量可以进行自主设定,本发明实施例在此不做限定。
另外,值得一提的是,可以针对多站点环境中任意站点的任意桶进行跨区域同步规则的设定,也即每个站点的每个桶都可以作为源桶,对于源站点(源桶所在的站点)来说,可以响应于对于指定存储桶(源桶)的规则设定指令,设定指定存储桶的跨区域同步规则,然后便可以确定出指定存储桶的桶分片数量,将源桶的桶分片数量以及跨区域同步规则中的映射关系发送至映射关系中的目标站点。
本发明提供了一种数据同步方法,考虑到存储桶中的数据量大且通常以桶分片的形式进行对象存储,因此本发明可以基于源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务,然后通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便完成从源站点到目标站点之间的以桶分片为粒度的历史数据同步,以桶分片为粒度可以使得同步工作有序进行,从而提升了同步工作的稳定性,而通过多个线程并行处理可以提升同步工作的效率,因此本发明可以在跨区域同步模式下高效稳定的对历史数据进行同步,提升了用户体验。
在上述实施例的基础上:
作为一种实施例,基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务包括:
确定出映射关系中源桶的每个桶分片上的末位对象的对象名;
建立映射关系中源桶的桶分片与映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系;
根据映射关系、桶分片对应关系以及每个桶分片上末位对象的对象名,为源桶的每个桶分片构建一个桶分片同步任务,以便通过其将源桶的桶分片上的所有数据同步至目标桶的对应桶分片;
其中,桶分片同步任务包括源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系,还包括源桶分片号的桶分片上的末位对象的对象名。
具体的,考虑到在桶分片在存储桶中有序排列,因此为了准确地将源桶中的数据同步至目标桶,本发明实施例中可以确定出映射关系中源桶的每个桶分片上的末位对象的对象名,那么在构建源桶的每个桶分片对应的桶分片同步任务时便可以包含该桶分片对应的末位对象的对象名,以便通过其验证是否已经同步至该桶分片的最后一位对象,从而确保将源桶的桶分片上的所有数据同步至目标桶的对应桶分片。
其中,为了使得同步过程更加具有条理,本发明实施例中可以根据建立的映射关系中源桶的桶分片与映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系,进行桶分片同步任务的构建,从而确保源桶与目标桶之间的桶分片可以一一对应。
当然,除了该具体方式外,基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务还可以为其他具体形式,本发明实施例在此不做限定。
作为一种实施例,基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务之后,通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便将桶分片同步任务指定的源桶的桶分片上的所有数据同步至对应的目标桶之前,该数据同步方法还包括:
将源桶的各个桶分片同步任务均匀分配至预先构建的多个任务队列;
通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便将桶分片同步任务指定的源桶的桶分片上的所有数据同步至对应的目标桶包括:
每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理;
其中,同步任务处理线程为多个。
具体的,为了使得多个同步任务处理线程能够更加有条理的执行桶分片同步任务,本发明实施例中可以将源桶的各个桶分片同步任务均匀分配至预先构建的多个任务队列,如此一来,多个同步任务处理线程便可以针对不同的任务队列展开同步任务。
其中,为了进一步提升工作效率,本发明实施例中可以将源桶的各个桶分片同步任务均匀分配至预先构建的多个任务队列,从而使得各个任务队列包含的桶分片同步任务的数量均匀,然后每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理,可以提升多线程的并行处理效率。
其中,任务队列的数量可以进行自主设定,例如可以为32个等,本发明实施例在此不做限定。
具体的,预设周期也可以进行自主设定,本发明实施例在此不做限定。
其中,值得一提的是,各个同步任务处理线程对应的预设周期可以是互相独立的,也即每个同步任务处理线程对应的预设周期可以不同,从而进一步降低线程冲突的可能性。
作为一种实施例,将源桶的各个桶分片同步任务均匀分配至预先构建的多个任务队列包括:
确定出源桶的各个桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系的哈希值;
将源桶的桶分片同步任务对应的哈希值对任务队列总数进行取余得到的取余结果,作为该桶分片同步任务所归属的任务队列的序号;
按照源桶的桶分片同步任务与任务队列序号之间的对应关系,将源桶的各个桶分片同步任务划分至对应序号的任务队列。
具体的,考虑通过(映射关系的)哈希值取余的方式可以均匀地将各个桶分片同步任务分配至各个任务队列,因此本发明实施例中可以确定出源桶的各个桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系的哈希值,然后将源桶的桶分片同步任务对应的哈希值对任务队列总数进行取余得到的取余结果,作为该桶分片同步任务所归属的任务队列的序号,从而均匀地将各个桶分片同步任务分配至各个任务队列,均匀度较高。
其中,值得一提的是,哈希值也可以是基于分片号一致的规则确定出的源桶的各个桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系的哈希值。
当然,除了该具体方式外,将源桶的各个桶分片同步任务均匀分配至预先构建的多个任务队列还可以为其他方式,本发明实施例在此不做限定。
作为一种实施例,每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理包括:
每隔预设周期,为每个同步任务处理线程随机选定初始任务队列;
控制每个同步任务处理线程从对应的初始任务队列开始,循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理。
具体的,为了降低各个同步任务处理线程处理同一任务队列的概率,本发明实施例中可以每隔预设周期,为每个同步任务处理线程随机选定初始任务队列,然后控制每个同步任务处理线程从对应的初始任务队列开始,循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理,能够有效降低线程冲突的概率,提升历史数据同步工作的稳定性。
当然,除了该具体方式外,通过每个同步任务处理线程循环处理一遍所有的任务队列还可以为其他具体方式,本发明实施例在此不做限定。
作为一种实施例,控制每个同步任务处理线程从对应的初始任务队列开始,循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理包括:
对于任一同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列;
控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务;
判断本周期内是否遍历所有的任务队列;
若未遍历所有的任务队列,将当前任务队列的下一次序的任务队列作为当前任务队列,并执行控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务的步骤;
若已遍历所有的任务队列,则结束该同步任务处理线程本周期的工作;
控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务包括:
将当前任务队列中的最小次序的桶分片同步任务作为当前同步任务;
控制同步任务处理线程,从当前同步任务中源桶的次序最小的待同步对象开始,将当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片;
判断当前同步任务本次最后同步对象的对象名,是否为当前同步任务对应源桶分片的末位对象的对象名;
若为末位对象的对象名,删除当前同步任务;
若不为末位对象的对象名,更新当前同步任务中源桶的次序最小的待同步对象,以便下一次执行当前同步任务时确定出同步开始的对象;
判断是否遍历完成当前任务队列中的桶分片同步任务;
若未遍历完成,将当前同步任务的下一次序的桶分片同步任务作为当前同步任务,并执行控制同步任务处理线程,从当前同步任务中源桶的次序最小的待同步对象开始,将当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片的步骤;
若遍历完成,结束对当前任务队列的执行。
具体的,通过上述的执行方式,可以高效稳定地控制每个同步任务处理线程从对应的初始任务队列开始,循环处理一遍所有的任务队列,以便通过同步任务处理线程对所有任务队列中的所有桶分片同步任务进行处理。
其中,考虑到单个桶分片的对象数量本身也较大,因此为了进一步的防止线程之间的冲突,本发明实施例在执行每个桶分片同步任务时,可以同步预设数量个对象,而不是将该源桶分片的所有对象进行同步,这种情况下就可以更新当前同步任务中源桶的次序最小的待同步对象,以便下一次执行当前同步任务时确定出同步开始的对象。
其中,桶分片的末尾对象的对象名则用于在对桶分片同步任务执行完一周的同步工作后,判断是否已经将源桶分片的所有对象进行同步,也即判断是否同步至桶分片的末尾对象的对象名对应的对象,如果已经同步到末尾对象的对象名对应的对象,表示该桶分片同步任务已经执行完毕,便可以将其删除。
其中,预设数量可以进行自主设定,例如可以为1000个等,本发明实施例在此不做限定。
作为一种实施例,对于任一同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列之后,控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务之前,该数据同步方法还包括:
对当前任务队列进行加锁,以便禁止其他线程对当前任务队列进行处理;
控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务之后,该数据同步方法还包括:
解除对当前任务队列的加锁。
具体的,为了进一步降低线程同时对同一任务队列的处理概率,本发明实施例中可以在控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务之前,对当前任务队列进行加锁,从而避免了线程冲突的可能性,提升了同步任务的稳定性,当然,在控制同步任务处理线程依次执行当前任务队列中的每一个桶分片同步任务之后,可以解除对当前任务队列的加锁,以便其他线程可以对其进行处理。
作为一种实施例,每个桶分片同步任务均记录为键值对;
其中,桶分片同步任务中的源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系作为键值对的键名,桶分片同步任务中的源桶分片号的桶分片上的末位对象的对象名以及源桶的次序最小的待同步对象作为键值对的键值。
具体的,键值对的形式能够稳定且清晰的对各个桶分片同步任务进行记录。
当然,除了键值对外,还可以通过其他形式对各个桶分片同步任务进行记录,本发明实施例在此不做限定。
为了更好地对本发明实施例进行说明,请参考图3,图3为本发明提供的另一种数据同步方法的流程示意图。
具体的,在图3中,同步网关进程可以为当前站点的任一节点,同步网关进程属于主线程,其与同步任务处理线程相独立,互不影响,可以认为同步网关进程主要负责执行本发明实施例中的数据同步方法中的各个步骤,因此首先启动当前站点的同步网关进程,图3左侧一列首先为同步网关进程解析从主站点接收到的数据并构建桶分片同步任务的过程,包括接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量;向源站点批量发送获取桶分片上最后一个对象的请求(也即为了确定出映射关系中源桶的每个桶分片上的末位对象的对象名);针对源桶的每个桶分片生成一个桶分片同步任务;通过对键名哈希(也即对“桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系”的哈希),将桶分片同步任务写入集群对应的任务队列中(也即将源桶的桶分片同步任务对应的哈希值对任务队列总数进行取余得到的取余结果,作为该桶分片同步任务所归属的任务队列的序号;按照源桶的桶分片同步任务与任务队列序号之间的对应关系,将源桶的各个桶分片同步任务划分至对应序号的任务队列)。
其中,图3中右侧一列为控制单个的同步任务处理线程对任务队列进行一次循环处理的过程,包括启动同步任务处理线程、选择当前任务队列(首次选择时,随机选定初始任务队列作为当前任务队列,后续将当前任务队列的下一次序的任务队列作为当前任务队列)、对该任务队列加锁、遍历该任务队列上的所有桶分片同步任务、判断本次最后同步对象的对象名,是否为当前同步任务对应源桶分片的末位对象的对象名,若是则将该桶分片同步任务删除、对该任务队列解锁并依次处理其余任务队列,否则更新该桶分片同步任务位置(也即更新当前次序最小的待处理对象)。
作为一种实施例,任务队列中的各个桶分片同步任务的次序包括加入任务队列的时间先后次序。
具体的,按照加入任务队列的时间先后次序对任务队列中的桶分片同步任务进行执行,可以优先处理较早产生的历史数据同步需求,能够进一步提升用户体验。
当然,除了该具体形式外,任务队列中的各个桶分片同步任务的次序还可以为其他类型,本发明实施例在此不做限定。
作为一种实施例,接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量之后,基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务之前,该数据同步方法还包括:
判断当前站点是否启用历史数据同步功能;
若启用,则执行基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务的步骤。
具体的,考虑到用户可能存在/不存在对于历史数据的同步功能,因此为了贴合用户需求,也为了避免不必要的数据同步动作,本发明实施例中的历史数据同步功能可以进行开关,在接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量之后,基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务之前,可以判断当前站点是否启用历史数据同步功能,在启用的情况下可以执行基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务的步骤,能够提升系统安全性。
作为一种实施例,该数据同步方法还包括:
响应于接收到的对于历史数据同步功能的开启指令,开启当前站点的历史数据同步功能;
响应于接收到的对于历史数据同步功能的关闭指令,关闭当前站点的历史数据同步功能。
具体的,本发明实施例中可以提供历史数据同步功能的开关接口,也即可以响应于接收到的对于历史数据同步功能的开启指令,开启当前站点的历史数据同步功能;响应于接收到的对于历史数据同步功能的关闭指令,关闭当前站点的历史数据同步功能,提升了用户体验。
作为一种实施例,该数据同步方法还包括:
判断当前未处理的桶分片同步任务的总数量是否大于预设阈值;
若大于,则生成历史数据同步功能的关闭指令。
具体的,考虑到站点中桶分片同步任务的数量因为各种原因可能失控,较多的未处理的桶分片同步任务不但降低了用户体验,而且不利于系统健康,因此本发明实施例中可以判断当前未处理的桶分片同步任务的总数量是否大于预设阈值;若大于,则生成历史数据同步功能的关闭指令,以便关闭历史数据同步功能。
作为一种实施例,判断当前站点是否启用历史数据同步功能之后,该数据同步方法还包括:
若未启用,则控制提示器提示当前站点的历史数据同步功能未启用。
具体的,为了便于用户得知历史数据同步失败的原因以及功能状态,本发明实施例中空恶意在未启用的情况下,控制提示器提示当前站点的历史数据同步功能未启用。
其中,提示器可以为多种类型,例如显示器等,本发明实施例在此不做限定。
作为一种实施例,建立映射关系中源桶的桶分片与映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系包括:
基于对应的两个桶分片的分片号相等的规则,建立映射关系中源桶的桶分片与映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系。
具体的,为了进一步提升规律性,本发明实施例中可以基于对应的两个桶分片的分片号相等的规则,建立映射关系中源桶的桶分片与映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系,便于管理。
其中,桶分片号的范围可以为0至n-1,n为源桶的桶分片总数。
作为一种实施例,每隔预设周期,为每个同步任务处理线程随机选定初始任务队列包括:
每隔预设周期,判断是否存在包含桶分片同步任务的任务队列;
若存在,为每个同步任务处理线程随机选定初始任务队列;
若不存在,则结束本周期。
具体的,考虑到所有任务队列中可能都不存在桶分片同步任务,因此本发明实施例在同步任务处理线程工作之前,可以判断是否存在包含桶分片同步任务的任务队列,存在的情况下可以为每个同步任务处理线程随机选定初始任务队列,不存在时则可以结束同步任务处理线程本周期的执行,提升了工作效率。
作为一种实施例,该数据同步方法还包括:
为每个任务队列生成备份队列;
判断各个任务队列是否受损;
若受损,则将受损的任务队列对应的备份队列作为新的任务队列。
具体的,考虑到任务队列本身也存在受损的可能性,因此本发明实施例中可以为每个任务队列生成备份队列,并判断各个任务队列是否受损;若受损,则将受损的任务队列对应的备份队列作为新的任务队列,进一步提升了历史数据同步工作的稳定性以及用户体验。
其中,值得一提的是,每个任务队列可以为一个分布式对象存储系统中的一个对象,其命名方式可以有多种,例如可以为history.sync.x(历史数据.sync.任务队列序号),其中的x为任务队列序号,例如当有32个任务队列时,x可以为0-31,本发明实施例在此不做限定。
作为一种实施例,同步任务处理线程一一对应的来源于当前站点中的各个存储节点。
具体的,为了充分利用站点中各个存储节点的硬件资源,本发明实施例中的同步任务处理线程可以一一对应的来源于当前站点中的各个存储节点。
作为一种实施例,该数据同步方法还包括:
响应于历史数据同步任务的调取指令,将当前所有的桶分片同步任务进行图形化处理;
将图形化处理后的桶分片同步任务进行推送。
具体的,考虑到用户存在对于站点中的桶分片同步任务的管理需求,因此本发明实施例中可以响应于历史数据同步任务的调取指令,将当前所有的桶分片同步任务进行图形化处理;将图形化处理后的桶分片同步任务进行推送,进一步提升了用户体验。
其中,图形化处理的形式可以为多种类型,例如可以柱状图或饼状图等,本发明实施例在此不做限定。
请参考图4,图4为本发明提供的一种数据同步装置的结构示意图,该数据同步装置应用于分布式对象存储系统的多站点环境中的任一站点,包括:
接收模块41,用于接收源站点的源桶的跨区域同步规则中的映射关系以及源桶的桶分片数量;
构建模块42,用于基于映射关系以及源桶的桶分片数量,为源桶的每个桶分片构建一个桶分片同步任务;
同步模块43,用于通过多个同步任务处理线程,并行地对各个桶分片同步任务进行处理,以便将桶分片同步任务指定的源桶的桶分片上的所有数据同步至对应的目标桶;
其中,映射关系为源站点的源桶与目标站点的目标桶之间的映射关系。
对于本发明实施例提供的数据同步装置的介绍请参照前述的数据同步方法的实施例,本发明实施例在此不再赘述。
请参考图5,图5为本发明提供的一种数据同步设备的结构示意图,该数据同步设备包括:
存储器51,用于存储计算机程序;
处理器52,用于执行计算机程序时实现如前述实施例中数据同步方法的步骤。
对于本发明实施例提供的数据同步设备的介绍请参照前述的数据同步方法的实施例,本发明实施例在此不再赘述。
本发明还提供了一种服务器,包括如前述实施例中的数据同步设备。
对于本发明实施例提供的服务器的介绍请参照前述的数据同步方法的实施例,本发明实施例在此不再赘述。
请参考图6,图6为本发明提供的一种计算机可读存储介质的结构示意图,该计算机可读存储介质60上存储有计算机程序61,计算机程序61被处理器52执行时实现如前述实施例中的数据同步方法的步骤。
对于本发明实施例提供的计算机可读存储介质的介绍请参照前述的数据同步方法的实施例,本发明实施例在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种数据同步方法,其特征在于,应用于分布式对象存储系统的多站点环境中的任一站点,包括:
接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量;
基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务;
通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶;
其中,所述映射关系为源站点的源桶与目标站点的目标桶之间的映射关系;
该数据同步方法还包括:
响应于历史数据同步任务的调取指令,将当前所有的所述桶分片同步任务进行图形化处理;
将图形化处理后的所述桶分片同步任务进行推送;
所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务包括:
确定出所述映射关系中源桶的每个桶分片上的末位对象的对象名;
建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系;
根据所述映射关系、所述桶分片对应关系以及每个桶分片上末位对象的对象名,为所述源桶的每个桶分片构建一个桶分片同步任务,以便通过其将源桶的桶分片上的所有数据同步至目标桶的对应桶分片;
其中,所述桶分片同步任务包括源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系,还包括所述源桶分片号的桶分片上的末位对象的对象名。
2.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务之后,所述通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶之前,该数据同步方法还包括:
将所述源桶的各个所述桶分片同步任务均匀分配至预先构建的多个任务队列;
所述通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶包括:
每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理;
其中,所述同步任务处理线程为多个。
3.根据权利要求2所述的数据同步方法,其特征在于,所述将所述源桶的各个所述桶分片同步任务均匀分配至预先构建的多个任务队列包括:
确定出所述源桶的各个所述桶分片同步任务中的源桶分片号与目标桶分片号之间的对应关系的哈希值;
将所述源桶的所述桶分片同步任务对应的所述哈希值对任务队列总数进行取余得到的取余结果,作为该桶分片同步任务所归属的任务队列的序号;
按照源桶的所述桶分片同步任务与任务队列序号之间的对应关系,将所述源桶的各个所述桶分片同步任务划分至对应序号的任务队列。
4.根据权利要求2所述的数据同步方法,其特征在于,所述每隔预设周期,通过每个同步任务处理线程循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理包括:
每隔预设周期,为每个所述同步任务处理线程随机选定初始任务队列;
控制每个所述同步任务处理线程从对应的所述初始任务队列开始,循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理。
5.根据权利要求4所述的数据同步方法,其特征在于,所述控制每个所述同步任务处理线程从对应的所述初始任务队列开始,循环处理一遍所有的所述任务队列,以便通过所述同步任务处理线程对所有所述任务队列中的所有桶分片同步任务进行处理包括:
对于任一所述同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列;
控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务;
判断本周期内是否遍历所有的所述任务队列;
若未遍历所有的所述任务队列,将当前任务队列的下一次序的任务队列作为当前任务队列,并执行所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务的步骤;
若已遍历所有的所述任务队列,则结束该同步任务处理线程本周期的工作;
所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务包括:
将当前任务队列中的最小次序的所述桶分片同步任务作为当前同步任务;
控制所述同步任务处理线程,从所述当前同步任务中所述源桶的次序最小的待同步对象开始,将所述当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片;
判断所述当前同步任务本次最后同步对象的对象名,是否为所述当前同步任务对应源桶分片的末位对象的对象名;
若为所述末位对象的对象名,删除所述当前同步任务;
若不为所述末位对象的对象名,更新所述当前同步任务中所述源桶的次序最小的待同步对象,以便下一次执行所述当前同步任务时确定出同步开始的对象;
判断是否遍历完成所述当前任务队列中的桶分片同步任务;
若未遍历完成,将当前同步任务的下一次序的桶分片同步任务作为当前同步任务,并执行所述控制所述同步任务处理线程,从所述当前同步任务中所述源桶的次序最小的待同步对象开始,将所述当前同步任务中的源桶分片号对应桶分片的预设数量个对象同步至目标桶分片号对应的桶分片的步骤;
若遍历完成,结束对所述当前任务队列的执行。
6.根据权利要求5所述数据同步方法,其特征在于,所述对于任一所述同步任务处理线程,将该同步任务处理线程的初始任务队列作为当前任务队列之后,所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务之前,该数据同步方法还包括:
对所述当前任务队列进行加锁,以便禁止其他线程对所述当前任务队列进行处理;
所述控制所述同步任务处理线程依次执行当前任务队列中的每一个所述桶分片同步任务之后,该数据同步方法还包括:
解除对所述当前任务队列的加锁。
7.根据权利要求5所述的数据同步方法,其特征在于,每个所述桶分片同步任务均记录为键值对;
其中,所述桶分片同步任务中的源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系作为键值对的键名,所述桶分片同步任务中的所述源桶分片号的桶分片上的末位对象的对象名以及所述源桶的次序最小的待同步对象作为键值对的键值。
8.根据权利要求5所述的数据同步方法,其特征在于,所述任务队列中的各个所述桶分片同步任务的次序包括加入所述任务队列的时间先后次序。
9.根据权利要求1所述的数据同步方法,其特征在于,所述接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量之后,所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务之前,该数据同步方法还包括:
判断当前站点是否启用历史数据同步功能;
若启用,则执行所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务的步骤。
10.根据权利要求9所述的数据同步方法,其特征在于,该数据同步方法还包括:
响应于接收到的对于所述历史数据同步功能的开启指令,开启当前站点的所述历史数据同步功能;
响应于接收到的对于所述历史数据同步功能的关闭指令,关闭当前站点的所述历史数据同步功能。
11.根据权利要求10所述的数据同步方法,其特征在于,该数据同步方法还包括:
判断当前未处理的所述桶分片同步任务的总数量是否大于预设阈值;
若大于,则生成所述历史数据同步功能的关闭指令。
12.根据权利要求9所述的数据同步方法,其特征在于,所述判断当前站点是否启用历史数据同步功能之后,该数据同步方法还包括:
若未启用,则控制提示器提示当前站点的所述历史数据同步功能未启用。
13.根据权利要求1所述的数据同步方法,其特征在于,所述建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系包括:
基于对应的两个桶分片的分片号相等的规则,建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系。
14.根据权利要求4所述的数据同步方法,其特征在于,所述每隔预设周期,为每个所述同步任务处理线程随机选定初始任务队列包括:
每隔预设周期,判断是否存在包含所述桶分片同步任务的所述任务队列;
若存在,为每个所述同步任务处理线程随机选定初始任务队列;
若不存在,则结束本周期。
15.根据权利要求3所述的数据同步方法,其特征在于,该数据同步方法还包括:
为每个所述任务队列生成备份队列;
判断各个所述任务队列是否受损;
若受损,则将受损的所述任务队列对应的备份队列作为新的任务队列。
16.根据权利要求1所述的数据同步方法,其特征在于,所述同步任务处理线程一一对应的来源于当前站点中的各个存储节点。
17.一种数据同步装置,其特征在于,应用于分布式对象存储系统的多站点环境中的任一站点,包括:
接收模块,用于接收源站点的源桶的跨区域同步规则中的映射关系以及所述源桶的桶分片数量;
构建模块,用于基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务;
同步模块,用于通过多个同步任务处理线程,并行地对各个所述桶分片同步任务进行处理,以便将所述桶分片同步任务指定的所述源桶的桶分片上的所有数据同步至对应的目标桶;
其中,所述映射关系为源站点的源桶与目标站点的目标桶之间的映射关系;
该数据同步装置还包括:
响应于历史数据同步任务的调取指令,将当前所有的所述桶分片同步任务进行图形化处理;
将图形化处理后的所述桶分片同步任务进行推送;
所述基于所述映射关系以及所述源桶的桶分片数量,为所述源桶的每个桶分片构建一个桶分片同步任务包括:
确定出所述映射关系中源桶的每个桶分片上的末位对象的对象名;
建立所述映射关系中源桶的桶分片与所述映射关系中目标桶的桶分片之间的一一对应的桶分片对应关系;
根据所述映射关系、所述桶分片对应关系以及每个桶分片上末位对象的对象名,为所述源桶的每个桶分片构建一个桶分片同步任务,以便通过其将源桶的桶分片上的所有数据同步至目标桶的对应桶分片;
其中,所述桶分片同步任务包括源站点的源桶的源桶分片号与目标站点的目标桶的目标分片号之间的对应关系,还包括所述源桶分片号的桶分片上的末位对象的对象名。
18.一种数据同步设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至16任一项所述数据同步方法的步骤。
19.一种服务器,其特征在于,包括如权利要求18所述的数据同步设备。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16任一项所述数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311246745.1A CN116991949B (zh) | 2023-09-26 | 2023-09-26 | 数据同步方法、装置、设备、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311246745.1A CN116991949B (zh) | 2023-09-26 | 2023-09-26 | 数据同步方法、装置、设备、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991949A CN116991949A (zh) | 2023-11-03 |
CN116991949B true CN116991949B (zh) | 2024-01-23 |
Family
ID=88532498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311246745.1A Active CN116991949B (zh) | 2023-09-26 | 2023-09-26 | 数据同步方法、装置、设备、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991949B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117596256B (zh) * | 2024-01-19 | 2024-03-22 | 济南浪潮数据技术有限公司 | 数据同步方法、装置、系统、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
CN113553325A (zh) * | 2021-06-18 | 2021-10-26 | 济南浪潮数据技术有限公司 | 一种对象存储系统中聚合对象的同步方法和系统 |
CN114237519A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种对象存储数据迁移的方法、装置、设备及介质 |
CN114995759A (zh) * | 2022-05-31 | 2022-09-02 | 济南浪潮数据技术有限公司 | 桶分片处理方法、装置、设备及介质 |
-
2023
- 2023-09-26 CN CN202311246745.1A patent/CN116991949B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
CN113553325A (zh) * | 2021-06-18 | 2021-10-26 | 济南浪潮数据技术有限公司 | 一种对象存储系统中聚合对象的同步方法和系统 |
CN114237519A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种对象存储数据迁移的方法、装置、设备及介质 |
CN114995759A (zh) * | 2022-05-31 | 2022-09-02 | 济南浪潮数据技术有限公司 | 桶分片处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116991949A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116991949B (zh) | 数据同步方法、装置、设备、服务器及可读存储介质 | |
CN112099958B (zh) | 分布式多任务管理方法、装置、计算机设备及存储介质 | |
CN109862101B (zh) | 跨平台应用启动方法、装置、计算机设备和存储介质 | |
RU2749339C1 (ru) | Способ управления оборудованием, кластерная система, электронное устройство и читаемый носитель данных | |
EP3312723A1 (en) | Command processing method and server | |
CN106815080B (zh) | 分布式图数据处理方法和装置 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN112799596A (zh) | 一种存储资源的扩容控制方法、装置及电子设备 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN109426554B (zh) | 一种服务器的定时实现方法及装置 | |
CN109284190A (zh) | 一种任务处理方法及装置 | |
CN115829064B (zh) | 一种联邦学习加速方法、装置、设备及存储介质 | |
CN111858012A (zh) | 一种任务调度方法、装置、设备及介质 | |
CN103761106A (zh) | 流程的控制方法及流程引擎 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN112783613B (zh) | 一种单元调度的方法和装置 | |
CN111309467A (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN114780217B (zh) | 任务调度方法、装置、计算机设备以及介质 | |
CN116627474B (zh) | 基于强化学习的智能设备智能安全管理方法、装置及设备 | |
CN116578380B (zh) | 一种数据采集工具的集群任务调度方法、设备及介质 | |
CN105791160B (zh) | 软件定义网络中事务的处理方法、设备及系统 | |
CN112654092B (zh) | 资源调度方法、装置及系统 | |
CN116701049B (zh) | 一种有归属卷配置方法、装置、设备及存储介质 | |
CN116166300B (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 |