CN117596256B - 数据同步方法、装置、系统、电子设备及可读存储介质 - Google Patents
数据同步方法、装置、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117596256B CN117596256B CN202410078564.0A CN202410078564A CN117596256B CN 117596256 B CN117596256 B CN 117596256B CN 202410078564 A CN202410078564 A CN 202410078564A CN 117596256 B CN117596256 B CN 117596256B
- Authority
- CN
- China
- Prior art keywords
- barrel
- source
- data
- new
- synchronization
- 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 93
- 239000012634 fragment Substances 0.000 claims abstract description 224
- 238000013467 fragmentation Methods 0.000 claims abstract description 122
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 122
- 230000001360 synchronised effect Effects 0.000 claims abstract description 72
- 230000011218 segmentation Effects 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、装置、系统、电子设备及可读存储介质,应用于分布式存储技术领域。其中,方法包括开启千亿桶功能的源站点主动向目标站点发送桶分片分裂完成通知请求,以将新分裂桶分片数据存储为同步进度对象数据。当检测到桶分片处于全量同步状态,向源站点发送源桶分片的分裂状态查询请求,并从存储池中获取源桶分片的同步进度对象数据;根据源桶分片的分裂状态和同步进度对象数据确定满足新桶分片全量同步触发条件,对源桶分片的新桶分片进行全量同步。本发明可以解决相关技术千亿桶的全量同步出现少对象的问题,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
Description
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种数据同步方法、装置、系统、电子设备及可读存储介质。
背景技术
存储桶为对象存储针对用户可用的逻辑上的存放对象的容器,每个桶在创建的时候都会创建出固定数量的桶分片。目前分布式对象存储系统支持存储规模为千亿的存储桶,也即分布式对象存储系统支持千亿桶功能。该功能需要在创建桶之前开启千亿桶特性开关,这样创建的桶称为千亿桶,理论上可以支持千亿对象的存储。
相关技术的目标站点对分布式对象存储系统的桶分片进行全量同步时,首先向源站点发送列举对象索引请求,根据列举到的对象索引,再向源站点发送获取对象请求,从而将对象同步到目标站点。而由于千亿桶在创建时,其桶分片数量较少,当桶分片上的对象索引增加至预设阈值时,桶分片会自动分裂。当目标站点的桶分片在执行全量同步时,若源站点上的对应桶分片发生了自动分裂,相关技术中的目标站点就无法列举到已经迁移到新桶分片上的对象索引,从而导致千亿桶的全量同步出现少对象的情况。
鉴于此,实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致,是所属领域技术人员需要解决的技术问题。
发明内容
本发明提供了一种数据同步方法、装置、系统、电子设备及可读存储介质,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
为解决上述技术问题,本发明提供以下技术方案:
本发明第一方面提供了一种数据同步方法,应用于同步源站点的千亿桶数据的目标站点,包括:
当检测到千亿桶的桶分片处于全量同步状态,向所述源站点发送源桶分片的分裂状态查询请求,并从存储池中获取所述源桶分片的同步进度对象数据;
根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件;
当满足新桶分片全量同步触发条件,对所述源桶分片的新桶分片进行全量同步;
其中,所述新桶分片为所述源桶分片自动分裂的桶分片,所述同步进度对象数据为解析所述源站点实时主动发送的桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至所述存储池所得;所述新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂。
在第一种示例性的实施方式中,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件,包括:
当所述源桶分片为分裂完成状态,判断所述同步进度对象数据是否存在新桶分片;
若所述同步进度对象数据存在新桶分片,则满足新桶分片全量同步触发条件;
若所述同步进度对象数据不存在新桶分片,则不满足新桶分片全量同步触发条件。
在第二种示例性的实施方式中,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件,包括:
当所述源桶分片的分裂状态处于未分裂状态和正在分裂状态,则不满足新桶分片全量同步触发条件。
在第三种示例性的实施方式中,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件之后,还包括:
若所述源桶分片处于正在分裂状态,则退出当前全量同步流程;
若所述源桶分片未处于正在分裂状态,且不满足新桶分片全量同步触发条件,则向所述源站点的源桶分片发送列举对象索引请求,并根据列举到的对象索引同步相应对象。
在第四种示例性的实施方式中,所述检测到千亿桶的桶分片处于全量同步状态,包括:
向源站点的源桶分片发送列举对象索引请求;
若所述源站点的源桶分片没有对象索引,则所述源桶分片处于增量同步状态;
若所述源站点的源桶分片有对象索引,则所述源桶分片处于全量同步状态。
在第五种示例性的实施方式中,还包括:
预先在开始从源站点同步数据的启动时刻,为所述源站点当前各初始源桶分片在存储池中创建对应的对象;
当接收到所述源站点主动发送的桶分片分裂完成通知请求,通过解析所述桶分片分裂完成通知请求得到新分裂桶分片数据;
将所述新分裂桶分片数据,存储至所述新分裂桶分片所属初始桶分片对应的对象中。
在第六种示例性的实施方式中,所述通过解析所述桶分片分裂完成通知请求得到新分裂桶分片数据,包括:
根据预先设置的待存储标识信息,从所述桶分片分裂完成通知请求中读取所述待存储标识信息对应的待存储数据;
按照预设对象存储格式,从所述待存储数据中读取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,并将所述新桶分片标识作为新分裂桶分片数据。在第七种示例性的实施方式中,所述将所述新分裂桶分片数据,存储至所述新分裂桶分片所属初始桶分片对应的对象中,包括:
判断所述源桶分片标识对应的对象是否存在;
若所述源桶分片标识对应的对象存在,则按照所述初始源桶标识:所述源桶分片标识:所述新桶分片标识的格式,将所述新桶分片标识以数据的形式写入至所述源桶分片标识对应的对象中。
本发明第二方面提供了一种数据同步方法,应用于支持千亿桶功能的源站点,包括:
预先在创建桶之前,开启千亿桶功能;
每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使所述目标站点通过解析所述桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池;
其中,所述目标站点通过执行如前所述数据同步方法的步骤从所述源站点同步数据。
在第一种示例性的实施方式下,所述每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,包括:
当检测到源桶分片上的对象索引数量达到预设索引阈值,则为所述源桶分片设置分裂标识,并确定自动分裂的新桶分片号;所述分裂标识用于记录当前桶分片的分裂状态;
根据所述新桶分片号创建新桶分片,将所述源桶分片的至少一个对象索引迁移至所述新桶分片,并将所述源桶分片的分裂标识修改为已完成;
当检测到所述源桶分片的分裂标识为已完成,则根据所述源桶分片和对应自动分裂的新桶分片生成桶分片分裂完成通知请求。
在第二种示例性的实施方式下,所述每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,包括:
获取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识;
将所述源站点标识、所述初始源桶标识、所述源桶分片标识及所述新桶分片标识,按照预设对象存储格式拼接为字符串;
基于预先设置的待存储标识信息,根据所述字符串生成桶分片分裂完成通知请求。
本发明第三方面提供了一种数据同步装置,应用于同步源站点的千亿桶数据的目标站点,包括:
数据获取模块,用于当检测到千亿桶的桶分片处于全量同步状态,向所述源站点发送源桶分片的分裂状态查询请求,并从存储池中获取所述源桶分片的同步进度对象数据;其中,所述同步进度对象数据为解析所述源站点实时主动发送的桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至所述存储池所得;
触发检测模块,用于根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件;其中,所述新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂;
数据同步模块,用于当满足新桶分片全量同步触发条件,对所述源桶分片的新桶分片进行全量同步;其中,所述新桶分片为所述源桶分片自动分裂的桶分片。
本发明第四方面提供了一种数据同步装置,应用于支持千亿桶功能的源站点,包括:
功能开启模块,用于预先在创建桶之前,开启千亿桶功能;
请求自动发送模块,用于每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使所述目标站点通过解析所述桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池;其中,所述目标站点通过执行如前所述数据同步方法的步骤从所述源站点同步数据。
本发明第五方面提供了一种电子设备,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如前任一项所述数据同步方法的步骤。
本发明第六方面还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述数据同步方法的步骤。
本发明第七方面提供了一种数据同步系统,包括源站点和目标站点;
所述源站点和所述目标站点为分布式存储对象系统中的存储系统,所述源站点包括源存储网关,所述目标站点包括目标存储网关,所述目标站点通过所述目标存储网关与所述源站点的源存储网关进行数据交互;
所述源站点执行存储器中存储的计算机程序时实现如前任一项所述数据同步方法的步骤;所述目标站点执行存储器中存储的计算机程序时实现如前任一项所述数据同步方法的步骤。
本发明提供的技术方案的优点在于,源站点发生自动分裂的桶分片在分裂完成后主动将分裂信息通知到目标站点,目标站点接收到通知请求后,将解析后的信息存储在存储池中供同步线程全量同步桶分片时查看,以决定是否触发针对分裂后新的桶分片的全量同步,这样当目标站点在执行桶分片的全量同步时,即使源桶分片发生了自动分裂,依然能保证迁移到新桶分片上的对象能正确被同步到目标站点,从而有效解决当前阶段千亿桶全量同步导致的少对象问题,实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致,有效增强千亿桶数据同步的健壮性和稳定性,有利于提高千亿桶和多站点数据同步的兼容性,提升用户使用体验,提升分布式对象存储系统的存储性能。
此外,本发明还针对数据同步方法提供了相应的实现装置、系统、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、系统、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚的说明本发明或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种数据同步方法的流程示意图;
图2为本发明提供的另一种数据同步方法的流程示意图;
图3为本发明提供的目标站点对桶分片分裂完成通知请求的一种解析流程示意图;
图4为本发明提供的再一种数据同步方法的流程示意图;
图5为本发明提供的源站点向目标站点发送桶分片分裂完成通知请求在一示例性应用场景的流程示意图;
图6为本发明提供的数据同步装置的一种具体实施方式结构框架示意图;
图7为本发明提供的数据同步装置的另一种具体实施方式结构框架示意图;
图8为本发明提供的电子设备的一种实施方式结构框架示意图;
图9为本发明提供的数据同步系统的一种实施方式结构框架示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。其中,说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及二者的任何变形,意图在于覆盖不排他的包含。术语“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
下面详细的说明本发明的各种非限制性实施方式。为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于所属领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
首先请参见图1,图1为本实施例提供的一种数据同步方法的流程示意图,本实施例应用至多站点的分布式对象存储系统中的目标站点同步源站点的千亿桶数据,分布式对象存储系统为针对非结构化数据对象的分布式存储系统,分布式对象存储系统的每一个站点为一套存储系统,具有自己的存储网关和存储池。每个站点可以有多个对象存储网关实例,其可独立对外提供业务访问。分布式对象存储系统中的两个站点通常可以组成一主一从的一套多站点数据同步环境,站点之间的数据会互相同步,直到主从站点的数据完全一致。本实施例的源站点可为主站点,也可不为主站点,同样的,目标站点可为从站点,也可不为从站点。分布式对象存储系统支持存储规模为千亿的存储桶,分布式对象存储系统的源站点和目标站点也均支持千亿桶功能,源站点在创建桶时,开启千亿桶特性开关,这样创建的桶即为千亿桶,可以支持千亿对象的存储。相应的,目标站点在同步源站点的数据时,即为同步千亿桶数据。目标站点同步源站点的千亿桶数据的过程可包括以下内容:
S101:当检测到千亿桶的桶分片处于全量同步状态,向源站点发送源桶分片的分裂状态查询请求,并从存储池中获取源桶分片的同步进度对象数据。
在本实施例中,桶分片处于全量同步状态是指桶分片可以进行全量同步但还没有进行全量同步操作,桶创建时会创建固定数量的默认分片,用于记录对象索引信息的载体。千亿桶在创建时,其桶分片数量较少,默认只生成256个不带目录的桶分片,当桶分片上的对象索引数量达到索引阈值时,会触发该桶分片的分裂,每个桶分片具有分裂状态,包括未分裂、已分裂和正在分裂。源站点与目标站点建立数据同步关系之后,源站点将发生自动分裂的桶分片在分裂完成后主动将分裂信息通知到目标站点的目的同步网关,也即源站点实时主动发送桶分片分裂完成通知请求至目标站点,目标站点接收到通知请求后,解析桶分片分裂完成通知请求得到的新分裂桶分片数据,并将新分裂桶分片数据存储至目标站点的存储池中,存储池在创建桶时可预先为每个桶设置相应的对象,用于存储该桶及该桶分裂出来的桶分片的相关数据,将新分裂桶分片数据存储至所属桶的对象中,作为同步进度对象数据,便于桶分片全量同步时查询。
S102:根据源桶分片的分裂状态和同步进度对象数据确定是否满足新桶分片全量同步触发条件。
其中,新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂,也即在对源桶分片进行全量同步时,源桶分片并未发生分裂,而是在对源桶分片数据同步过程中,源桶分片发生了自动分裂,并产生了新桶分片,也即新桶分片为源桶分片自动分裂的桶分片。目标站点上处于全量同步的桶分片在往源桶分片上列举对象索引前,首先检测源桶分片的分裂状态,与此同时,查询桶分片同步进度对象的数据,判断老分片是否在全量同步期间执行了自动分裂,若有,则触发针对新桶分片的同步。
S103:当满足新桶分片全量同步触发条件,对源桶分片的新桶分片进行全量同步。
当目标站点上的一个桶分片在执行全量同步时,通过上个步骤可以判断源站点上的对应桶分片是否发生了自动分裂,若发生了自动分裂,也即满足新桶分片全量同步触发条件,对源桶分片的新桶分片进行全量同步,这样目标站点就可以列举到已经迁移到新桶分片上的对象索引,依然能保证迁移到新桶分片上的对象能正确被同步到目标站点,从而避免千亿桶的全量同步出现少对象的情况。而若没有发生自动分裂,也即不满足新桶分片全量同步触发条件,可直接向源站点的源桶分片发送列举对象索引请求,根据列举到的对象索引,再向源站点发送获取对象请求,从而将对象同步到目标站点。
在本实施例提供的技术方案中,源站点发生自动分裂的桶分片在分裂完成后主动将分裂信息通知到目标站点,目标站点接收到通知请求后,将解析后的信息存储在存储池中供同步线程全量同步桶分片时查看,以决定是否触发针对分裂后新的桶分片的全量同步,这样当目标站点在执行桶分片的全量同步时,即使源桶分片发生了自动分裂,依然能保证迁移到新桶分片上的对象能正确被同步到目标站点,从而有效解决当前阶段千亿桶全量同步导致的少对象问题,实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致,有效增强千亿桶数据同步的健壮性和稳定性,有利于提高千亿桶和多站点数据同步的兼容性,提升用户使用体验,提升分布式对象存储系统的存储性能。
在上述实施例中,对于如何判断是否满足新桶分片全量同步触发条件并不做任何限定,本实施例还给出新桶分片全量同步触发条件的一种示例性的判断方式,如图2所示,包括如下步骤:
当检测到千亿桶的桶分片处于全量同步状态,向源站点发送源桶分片的分裂状态查询请求,当源桶分片的分裂状态处于未分裂状态,则不满足新桶分片全量同步触发条件,则列举对象索引并同步对象,也即目标站点可先向源站点的源桶分片发送列举对象索引请求,根据列举到的对象索引,再向源站点发送获取对象请求,从而将对象同步到目标站点。当源桶分片的分裂状态处于正在分裂状态,则不满足新桶分片全量同步触发条件,同时推出当前全量同步过程。也即若源桶分片处于正在分裂状态,则退出当前全量同步流程;若源桶分片未处于正在分裂状态,且不满足新桶分片全量同步触发条件,则向源站点的源桶分片发送列举对象索引请求,并根据列举到的对象索引同步相应对象。当源桶分片为分裂完成状态,判断同步进度对象数据是否存在新桶分片;若同步进度对象数据存在新桶分片,则满足新桶分片全量同步触发条件;若同步进度对象数据不存在新桶分片,则不满足新桶分片全量同步触发条件。
在本实施例中,目标站点处于全量同步的桶分片在往源桶分片上列举对象索引前,首先向源站点查询源桶分片的分裂状态,若其正在分裂,则不再列举对象而直接返回,并当到达下一个全量同步周期在发送同样的请求。若检测到该源桶分片已分裂完成,则开始列举对象索引,进行正常的数据同步。桶分片进入全量同步状态后,首先向源站点的源桶分片发送查询分裂状态请求,若返回的查询结果为正在分裂中,主动中断针对当前桶分片的全量同步;当到达下一个全量同步的周期,继续向源站点的源桶分片发送分裂状态查询请求,若为未分裂状态,则进行正常的全量同步流程;若为已分裂完成状态,则开始向源站点的源桶分片发送列举对象索引请求,根据列举到的对象索引进行数据同步;与此同时,读取其自身的存储池中记录源桶分片的同步进度的对象的数据也即同步进度对象数据,若同步进度对象数据不为空,则根据同步进度对象数据的存储格式解析是否存在新分片号,还可通过判断源桶标识与源桶分片标识与当前正在执行同步的桶分片是否一致来判断,若不一致,则不再执行后续流程;若一致,则直接触发针对新分片号对应的桶分片的同步。其中,新桶分片的同步过程可为:在目标站点的存储池中创建记录该新桶分片对应的同步进度和同步状态的对象,然后进入全量同步状态,然后按照上述S101-S103执行相应的步骤。
由上可知,本实施例针对源桶分片处于不同的分裂状态,结合源桶分片在全量同步过程中是否进行分裂,能够实现目标站点对千亿桶全量同步过程中不少对象。
上述实施例对如何检测桶分片是否处于全量同步状态并不做任何限定,基于上述实施例,本发明还提供了一种简单且高效的同步状态识别方式,可包括下述内容:
向源站点的源桶分片发送列举对象索引请求;若源站点的源桶分片没有对象索引,则源桶分片处于增量同步状态;若源站点的源桶分片有对象索引,则源桶分片处于全量同步状态。
在本实施例中,桶分片的同步是从全量同步开始的,此时目标站点会从源站点的源桶分片上列举对象索引,若没有对象索引,则目标站点上针对该桶分片的同步直接进入增量同步状态,否则目标站点会将源站点上源桶分片上的对象索引全部列举并同步完成后,才会进入增量同步状态。换言之,分布式对象存储系统的站点之间的数据通过同步日志以主动拉取的方式自动进行备份,最终达到不同站点之间数据的完全一致,此种数据同步方式称为增量同步;而全量同步则不通过同步日志,而是直接去源站点的源桶对应桶分片上列举对象索引,根据列举到的对象索引,将对应的对象数据同步至目标站点的目标桶,全量同步结束后会自动进入增量同步状态。
上述实施例对如何解析桶分片分裂完成通知请求并不做任何限定,本实施例还给出桶分片分裂完成通知请求的一种示例性的解析方式,可包括下述内容:
当接收到源站点主动发送的桶分片分裂完成通知请求,通过解析桶分片分裂完成通知请求得到新分裂桶分片数据;将新分裂桶分片数据,存储至新分裂桶分片所属初始桶分片对应的对象中。
在本实施例中,目标站点在开始从源站点同步数据的启动时刻,便会为源站点当前各初始源桶分片在存储池中创建对应的对象。初始源桶是指目标站点和源站点建立数据同步关系时刻时,源站点所包含的桶分片。每一个初始源桶分片均有一个对象,后续该初始源桶分片自动分裂出来的新桶分片均会存储至该初始源桶分片对应的对象中。目标站点接收到桶分片分裂完成通知请求,对桶分片分裂完成通知请求对应的信息进行存储时,不再往存储池中创建新的对象,而是直接以数据的形式存储在目标站点存储池中用于记录桶分片同步进度的对象中。多站点的数据同步是以桶分片为单位进行的,因此每个桶分片的同步都会在目标站点的存储池中记录该桶分片的相对于源站点对应桶分片的同步状态和同步进度。同步状态和同步进度等信息可以元数据的形式存储在存储池预先构建的对象中,对象的命名例如为源站点id(也即标识号)+初始源桶id+初始源桶分片号+源桶分片号+新桶分片号的对象上的。该对象是在目标站点的目标存储网关开始同步桶分片时创建的,一经创建则一直存在。
进一步的,源站点可预先设置的待存储标识信息,待存储标识信息用于标识是否存在待存储数据的标识信息,也即是否存在分裂的桶分片号和分裂后新的桶分片的标识信息,目标站点接收到桶分片分裂完成通知请求后,可根据预先设置的待存储标识信息,从桶分片分裂完成通知请求中读取待存储标识信息对应的待存储数据;待存储数据即为需要存储至目标站点的存储池的对象中的需要进行同步进度的数据。源站点可预先设置预设对象存储格式,也即桶分片分裂完成通知请求用于存储分裂的桶分片号、分裂后新的桶分片及源桶分片相关数据的格式,目标站点按照预设对象存储格式,从待存储数据中读取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,并将新桶分片标识作为新分裂桶分片数据。判断源桶分片标识对应的对象是否存在;若源桶分片标识对应的对象存在,则按照初始源桶标识:源桶分片标识:新桶分片标识的格式,将新桶分片标识以数据的形式写入至源桶分片标识对应的对象中。若源桶分片标识对应的对象不存在,则说明该桶分片还没开始同步,所以源站点的源桶分片是否分裂都不会影响其全量同步。
以待存储标识信息为存储分裂的桶分片号、分裂后新的桶分片及源桶分片相关数据是以请求字符串的形式附加在桶分片分裂完成通知请求,且请求字符串的键名为source-reshard-sync-info(即为一串字符串名称)。预设对象存储格式为源站点id:源桶id:源桶分片号:新桶分片号。如图3所示,目标站点的目标存储网关接收到请求时,判断source-reshard-sync-info参数是否存在,如果不存在,则不作任何处理。如果存在,则为桶分片分裂完成通知请求,根据请求字符串的键名source-reshard-sync-info获取到键值,也即获取请求字符串值,按照源站点id:源桶id:源桶分片号:新桶分片号解析桶分片分裂完成通知请求中的关键信息,分别获取到源站点的id、源桶id、进行自动分裂的桶分片号也即源桶分片、分裂成的桶分片号也即新桶分片号。判断目标站点的存储池也即集群中是否有源桶分片的同步进度对象,若存在,则按照字符串“源桶id:源桶分片号:新桶分片号”以数据的形式写入集群存储池中命名为源站点id+源桶id+源桶分片号的对象中;若不存在此命名的对象,则说明当前集群还没针对此桶分片进行同步,则无需记录任何信息。
由上可知,本实施例的源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点,目标站点收到请求后将分裂前后的信息存储在老分片的同步进度对象的数据中,从而实现源站点和目标站点的全量数据同步一致性。
基于上述实施例,本发明还提供了另外一种数据同步方法,如图4所示,图4为本发明提供的另一种数据同步方法的流程示意图,本发明例如可应用于支持千亿桶功能的源站点,可包括以下内容:
S401:预先在创建桶之前,开启千亿桶功能。
S402:每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使目标站点通过解析桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池。
其中,目标站点按照上述任何一个实施例所记载的数据同步方法的步骤从源站点同步千亿桶的数据。
源站点在桶分片在分裂过程中,通过加锁的方式来阻断前端业务读写,但是对于列举请求不做限制,这就导致桶分片在全量同步列举桶分片上对象索引时,无法感知到桶分片是否正在分裂。本实施例的桶分片在分裂之前,可在老的桶分片的头部中记录正在分裂的状态标记,等分裂结束会将分裂状态置为分裂完成。桶分片在分裂过程中,首先会确定当前桶分片要分裂的新桶分片号,然后会创建新桶分片,最后才将老分片上的部分对象索引迁移到目标桶分片上,源站点在桶分片分裂完成后,将当前的源桶分片、新桶分片等信息发送到所有目标站点的同步网关也即目标存储网络,这样目标站点就能继续同步老的桶分片上由于分裂转移而无法列举并同步的对象。
由上可知,本实施例的源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点,以使目标站点进行全量同步时不会出现少对象的问题,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
上述实施例对生成桶分片分裂完成通知请求并不做任何限定,本发明还给出桶分片分裂完成通知请求的一种简单高效的生成方式,可包括下述内容:
当检测到源桶分片上的对象索引数量达到预设索引阈值,则为源桶分片设置分裂标识,并确定自动分裂的新桶分片号;分裂标识用于记录当前桶分片的分裂状态;根据新桶分片号创建新桶分片,将源桶分片的至少一个对象索引迁移至新桶分片,并将源桶分片的分裂标识修改为已完成;当检测到源桶分片的分裂标识为已完成,则根据源桶分片和对应自动分裂的新桶分片生成桶分片分裂完成通知请求。示例性的,桶分片分裂完成通知请求的生成过程可包括:获取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识;将源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,按照预设对象存储格式拼接为字符串;基于预先设置的待存储标识信息,根据字符串生成桶分片分裂完成通知请求。
如图5所示,桶分片上对象索引数量达到索引阈值触发自动分裂,可修改桶分片状态为正在分裂,如可将桶分片header(也即头部)中的分裂状态置为正在分裂,获取当前桶也即源桶的桶分片总数n,由于桶分片号是从0开始,所以新桶分片号为n,也即根据所有桶分片总数按照分片数连续原则计算新桶分片的分片号,如当前桶分片总数为899,则新桶分片号为899。创建新的桶分片也即新桶分片,将老分片也即源桶分片上的对象索引迁移一部分到新的桶分片上,标记老的桶分片的分裂状态为已完成;尽管老分片上的一部分对象索引迁移到新创建的桶分片上,但是对象的同步日志不会随着对象迁移到新分片上,存储池中的对象数据也保持在原先的位置上。同步日志用于桶分片的增量同步,只要目标站点能列举到源桶分片上的同步日志,就能根据同步日志中的信息将对象操作同步至从站点,即使对象的同步日志与对象索引存放在不同桶分片上。源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点的过程包括:先组装要发送的信息,示例性的,可将源站点的id、桶id、老的桶分片号也即源桶分片号以及分裂成的新桶分片号等信息,以字符串的形式进行拼接,按照格式源站点id:桶id:源桶分片号:新桶分片号将其拼接成一个总的字符串;获取所有目标站点的同步网关,也即目标存储网关,将拼接后的信息以请求字符串的形式附加在HTTP(Hypertext Transfer Protocol,超文本传输协议)请求的url(uniform resource locator,统一资源定位系统)中,其中,请求字符串的键名可为source-reshard-sync-info,最后将此信息发送给所有目标站点的同步网关;若请求发送失败,则重复发送一次。
需要说明的是,本发明中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1和图4只是一种示意方式,并不代表只能是这样的执行顺序。
本发明还针对数据同步方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明提供的数据同步装置进行介绍,该装置用以实现本发明提供的数据同步方法,在本实施例中,数据同步装置可以包括或被分割成一个或多个程序模块,该一个或多个程序模块被存储在存储介质中,并由一个或多个处理器所执行,已完成实施例一公开的数据同步方法。本实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据同步装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。
基于功能模块的角度,参见图6,图6为本实施例提供的数据同步装置在一种具体实施方式下的结构图,应用于同步源站点的千亿桶数据的目标站点,该装置可包括:
数据获取模块601,用于当检测到千亿桶的桶分片处于全量同步状态,向源站点发送源桶分片的分裂状态查询请求,并从存储池中获取源桶分片的同步进度对象数据;其中,同步进度对象数据为解析源站点实时主动发送的桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池所得;
触发检测模块602,用于根据源桶分片的分裂状态和同步进度对象数据确定是否满足新桶分片全量同步触发条件;其中,新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂;
数据同步模块603,用于当满足新桶分片全量同步触发条件,对源桶分片的新桶分片进行全量同步;其中,新桶分片为源桶分片自动分裂的桶分片。
示例性的,在本实施例的一些实施方式中,上述触发检测模块602可进一步用于:
当源桶分片为分裂完成状态,判断同步进度对象数据是否存在新桶分片;
若同步进度对象数据存在新桶分片,则满足新桶分片全量同步触发条件;
若同步进度对象数据不存在新桶分片,则不满足新桶分片全量同步触发条件。
示例性的,在本实施例的另一些实施方式中,上述触发检测模块602可进一步用于:
当源桶分片的分裂状态处于未分裂状态和正在分裂状态,则不满足新桶分片全量同步触发条件。
示例性的,在本实施例的再一些实施方式中,上述数据同步模块603可进一步用于:
若源桶分片处于正在分裂状态,则退出当前全量同步流程;
若源桶分片未处于正在分裂状态,且不满足新桶分片全量同步触发条件,则向源站点的源桶分片发送列举对象索引请求,并根据列举到的对象索引同步相应对象。
示例性的,在本实施例的再一些实施方式中,上述数据获取模块601可进一步用于:
向源站点的源桶分片发送列举对象索引请求;
若源站点的源桶分片没有对象索引,则源桶分片处于增量同步状态;
若源站点的源桶分片有对象索引,则源桶分片处于全量同步状态。
示例性的,在本实施例的再一些实施方式中,上述数据获取模块601可进一步用于:
预先在开始从源站点同步数据的启动时刻,为源站点当前各初始源桶分片在存储池中创建对应的对象;
当接收到源站点主动发送的桶分片分裂完成通知请求,通过解析桶分片分裂完成通知请求得到新分裂桶分片数据;
将新分裂桶分片数据,存储至新分裂桶分片所属初始桶分片对应的对象中。
作为上述实施例的一种示例性的实施方式,上述数据获取模块601还可进一步用于:
根据预先设置的待存储标识信息,从桶分片分裂完成通知请求中读取待存储标识信息对应的待存储数据;
按照预设对象存储格式,从待存储数据中读取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,并将新桶分片标识作为新分裂桶分片数据。作为上述实施例的另一种示例性的实施方式,上述数据获取模块601还可进一步用于:
判断源桶分片标识对应的对象是否存在;
若源桶分片标识对应的对象存在,则按照初始源桶标识:源桶分片标识:新桶分片标识的格式,将新桶分片标识以数据的形式写入至源桶分片标识对应的对象中。
基于功能模块的角度,参见图7,图7为本实施例提供的数据同步装置在一种具体实施方式下的结构图,应用于支持千亿桶功能的源站点,该装置可包括:
功能开启模块701,用于预先在创建桶之前,开启千亿桶功能;
请求自动发送模块702,用于每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使目标站点通过解析桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池;其中,目标站点通过执行如上任一个实施例所记载的数据同步方法的步骤从源站点同步数据。
示例性的,在本实施例的一些实施方式中,上述请求自动发送模块702还可用于:
每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,包括:
当检测到源桶分片上的对象索引数量达到预设索引阈值,则为源桶分片设置分裂标识,并确定自动分裂的新桶分片号;分裂标识用于记录当前桶分片的分裂状态;
根据新桶分片号创建新桶分片,将源桶分片的至少一个对象索引迁移至新桶分片,并将源桶分片的分裂标识修改为已完成;
当检测到源桶分片的分裂标识为已完成,则根据源桶分片和对应自动分裂的新桶分片生成桶分片分裂完成通知请求。
示例性的,在本实施例的一些实施方式中,上述请求自动发送模块702还可进一步用于:
获取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识;
将源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,按照预设对象存储格式拼接为字符串;
基于预先设置的待存储标识信息,根据字符串生成桶分片分裂完成通知请求。
本实施例数据同步装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例的源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点,以使目标站点进行全量同步时不会出现少对象的问题,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
上文中提到的数据同步装置是从功能模块的角度描述,进一步的,本发明还提供一种电子设备,是从硬件角度描述。图8为本发明实施例提供的电子设备在一种实施方式下的结构示意图。如图8所示,该电子设备包括存储器80,用于存储计算机程序;处理器81,用于执行计算机程序时实现如上述任一实施例提到的数据同步方法的步骤。
其中,处理器81可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器81还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器81可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器81也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器81可以集成有GPU(Graphics Processing Unit,图形处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器81还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器80可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器80还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器80在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器80在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器80还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器80不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行数据同步方法过程中的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器80至少用于存储以下计算机程序801,其中,该计算机程序被处理器81加载并执行之后,能够实现前述任一实施例公开的数据同步方法的相关步骤。另外,存储器80所存储的资源还可以包括操作系统802和数据803等,存储方式可以是短暂存储或者永久存储。其中,操作系统802可以包括Windows、Unix、Linux等。数据803可以包括但不限于数据同步结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏82、输入输出接口83、通信接口84或者称为网络接口、电源85以及通信总线86。其中,显示屏82、输入输出接口83比如键盘(Keyboard)属于用户接口,示例性的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口84示例性的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线86可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图8中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器87。
本实施例电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例的源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点,以使目标站点进行全量同步时不会出现少对象的问题,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
可以理解的是,如果上述实施例中的数据同步方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明还提供了一种可读存储介质,存储有计算机程序,计算机程序被处理器执行时如上任意一实施例数据同步方法的步骤。
最后,本发明还提供了一种数据同步系统,请参见图9,可包括:
数据同步系统可包括源站点901和目标站点902,源站点901和目标站点902均为分布式存储对象系统中的存储系统,源站点901包括源存储网关,目标站点902包括目标存储网关,目标站点902通过目标存储网关与源站点901的源存储网关进行数据交互。
源站点901执行存储器中存储的计算机程序时实现如上相应实施例所记载的数据同步方法的步骤;目标站点902执行存储器中存储的计算机程序时实现如上相应实施例所记载的数据同步方法的步骤。
本发明实施例数据同步系统的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例的源站点的桶分片自动分裂完成后将分裂的桶分片号和分裂后新的桶分片后主动通知所有目标站点,以使目标站点进行全量同步时不会出现少对象的问题,能够实现目标站点在对分布式对象存储系统的千亿桶全量同步时与源站点的数据完全一致。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种数据同步方法、装置、系统、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,基于本发明中的实施例,对于本技术领域的普通技术人员来说,在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (16)
1.一种数据同步方法,其特征在于,应用于同步源站点的千亿桶数据的目标站点,包括:
当检测到千亿桶的桶分片处于全量同步状态,向所述源站点发送源桶分片的分裂状态查询请求,并从存储池中获取所述源桶分片的同步进度对象数据;
根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件;
当满足新桶分片全量同步触发条件,对所述源桶分片的新桶分片进行全量同步;
其中,所述新桶分片为所述源桶分片自动分裂的桶分片,所述同步进度对象数据为解析所述源站点实时主动发送的桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至所述存储池所得;所述新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂。
2.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件,包括:
当所述源桶分片为分裂完成状态,判断所述同步进度对象数据是否存在新桶分片;
若所述同步进度对象数据存在新桶分片,则满足新桶分片全量同步触发条件;
若所述同步进度对象数据不存在新桶分片,则不满足新桶分片全量同步触发条件。
3.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件,包括:
当所述源桶分片的分裂状态处于未分裂状态和正在分裂状态,则不满足新桶分片全量同步触发条件。
4.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件之后,还包括:
若所述源桶分片处于正在分裂状态,则退出当前全量同步流程;
若所述源桶分片未处于正在分裂状态,且不满足新桶分片全量同步触发条件,则向所述源站点的源桶分片发送列举对象索引请求,并根据列举到的对象索引同步相应对象。
5.根据权利要求1所述的数据同步方法,其特征在于,所述检测到千亿桶的桶分片处于全量同步状态,包括:
向源站点的源桶分片发送列举对象索引请求;
若所述源站点的源桶分片没有对象索引,则所述源桶分片处于增量同步状态;
若所述源站点的源桶分片有对象索引,则所述源桶分片处于全量同步状态。
6.根据权利要求1至5任意一项所述的数据同步方法,其特征在于,还包括:
预先在开始从源站点同步数据的启动时刻,为所述源站点当前各初始源桶分片在存储池中创建对应的对象;
当接收到所述源站点主动发送的桶分片分裂完成通知请求,通过解析所述桶分片分裂完成通知请求得到新分裂桶分片数据;
将所述新分裂桶分片数据,存储至新分裂桶分片所属初始桶分片对应的对象中。
7.根据权利要求6所述的数据同步方法,其特征在于,所述通过解析所述桶分片分裂完成通知请求得到新分裂桶分片数据,包括:
根据预先设置的待存储标识信息,从所述桶分片分裂完成通知请求中读取所述待存储标识信息对应的待存储数据;
按照预设对象存储格式,从所述待存储数据中读取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识,并将所述新桶分片标识作为新分裂桶分片数据。
8.根据权利要求7所述的数据同步方法,其特征在于,所述将所述新分裂桶分片数据,存储至新分裂桶分片所属初始桶分片对应的对象中,包括:
判断所述源桶分片标识对应的对象是否存在;
若所述源桶分片标识对应的对象存在,则按照所述初始源桶标识:所述源桶分片标识:所述新桶分片标识的格式,将所述新桶分片标识以数据的形式写入至所述源桶分片标识对应的对象中。
9.一种数据同步方法,其特征在于,应用于支持千亿桶功能的源站点,包括:
预先在创建桶之前,开启千亿桶功能;
每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使所述目标站点通过解析所述桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池;
其中,所述目标站点通过执行如权利要求1所述数据同步方法的步骤从所述源站点同步数据。
10.根据权利要求9所述的数据同步方法,其特征在于,所述每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,包括:
当检测到源桶分片上的对象索引数量达到预设索引阈值,则为所述源桶分片设置分裂标识,并确定自动分裂的新桶分片号;所述分裂标识用于记录当前桶分片的分裂状态;
根据所述新桶分片号创建新桶分片,将所述源桶分片的至少一个对象索引迁移至所述新桶分片,并将所述源桶分片的分裂标识修改为已完成;
当检测到所述源桶分片的分裂标识为已完成,则根据所述源桶分片和对应自动分裂的新桶分片生成桶分片分裂完成通知请求。
11.根据权利要求9所述的数据同步方法,其特征在于,所述每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,包括:
获取源站点标识、初始源桶标识、源桶分片标识及新桶分片标识;
将所述源站点标识、所述初始源桶标识、所述源桶分片标识及所述新桶分片标识,按照预设对象存储格式拼接为字符串;
基于预先设置的待存储标识信息,根据所述字符串生成桶分片分裂完成通知请求。
12.一种数据同步装置,其特征在于,应用于同步源站点的千亿桶数据的目标站点,包括:
数据获取模块,用于当检测到千亿桶的桶分片处于全量同步状态,向所述源站点发送源桶分片的分裂状态查询请求,并从存储池中获取所述源桶分片的同步进度对象数据;其中,所述同步进度对象数据为解析所述源站点实时主动发送的桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至所述存储池所得;
触发检测模块,用于根据所述源桶分片的分裂状态和所述同步进度对象数据确定是否满足新桶分片全量同步触发条件;其中,所述新桶分片全量同步触发条件用于表示源桶分片在全量同步过程中发生自动分裂;
数据同步模块,用于当满足新桶分片全量同步触发条件,对所述源桶分片的新桶分片进行全量同步;其中,所述新桶分片为所述源桶分片自动分裂的桶分片。
13.一种数据同步装置,其特征在于,应用于支持千亿桶功能的源站点,包括:
功能开启模块,用于预先在创建桶之前,开启千亿桶功能;
请求自动发送模块,用于每当检测到桶分片自动分裂完成,则主动向目标站点发送桶分片分裂完成通知请求,以使所述目标站点通过解析所述桶分片分裂完成通知请求,并将解析得到的新分裂桶分片数据存储至存储池;
其中,所述目标站点通过执行如权利要求1所述数据同步方法的步骤从所述源站点同步数据。
14.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至11任一项所述数据同步方法的步骤。
15.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述数据同步方法的步骤。
16.一种数据同步系统,其特征在于,包括源站点和目标站点;
所述源站点和所述目标站点为分布式存储对象系统中的存储系统,所述源站点包括源存储网关,所述目标站点包括目标存储网关,所述目标站点通过所述目标存储网关与所述源站点的源存储网关进行数据交互;
所述源站点执行存储器中存储的计算机程序时实现如权利要求1至8任一项所述数据同步方法的步骤;所述目标站点执行存储器中存储的计算机程序时实现如权利要求9至11任一项所述数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410078564.0A CN117596256B (zh) | 2024-01-19 | 2024-01-19 | 数据同步方法、装置、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410078564.0A CN117596256B (zh) | 2024-01-19 | 2024-01-19 | 数据同步方法、装置、系统、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117596256A CN117596256A (zh) | 2024-02-23 |
CN117596256B true CN117596256B (zh) | 2024-03-22 |
Family
ID=89920575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410078564.0A Active CN117596256B (zh) | 2024-01-19 | 2024-01-19 | 数据同步方法、装置、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117596256B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088476A1 (zh) * | 2015-11-27 | 2017-06-01 | 华为技术有限公司 | 同步续传方法、从端设备及系统 |
CN112036510A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 模型生成方法、装置、电子设备及存储介质 |
CN114237519A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种对象存储数据迁移的方法、装置、设备及介质 |
CN115185951A (zh) * | 2022-07-29 | 2022-10-14 | 济南浪潮数据技术有限公司 | 一种存储系统的对象上传方法、系统、设备及存储介质 |
CN115470189A (zh) * | 2022-10-21 | 2022-12-13 | 济南浪潮数据技术有限公司 | 一种数据查询方法、装置及可读存储介质 |
CN116400855A (zh) * | 2023-03-03 | 2023-07-07 | 阿里巴巴(中国)有限公司 | 一种数据处理方法和数据存储系统 |
CN116991949A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 数据同步方法、装置、设备、服务器及可读存储介质 |
-
2024
- 2024-01-19 CN CN202410078564.0A patent/CN117596256B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088476A1 (zh) * | 2015-11-27 | 2017-06-01 | 华为技术有限公司 | 同步续传方法、从端设备及系统 |
CN112036510A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 模型生成方法、装置、电子设备及存储介质 |
CN114237519A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种对象存储数据迁移的方法、装置、设备及介质 |
CN115185951A (zh) * | 2022-07-29 | 2022-10-14 | 济南浪潮数据技术有限公司 | 一种存储系统的对象上传方法、系统、设备及存储介质 |
CN115470189A (zh) * | 2022-10-21 | 2022-12-13 | 济南浪潮数据技术有限公司 | 一种数据查询方法、装置及可读存储介质 |
CN116400855A (zh) * | 2023-03-03 | 2023-07-07 | 阿里巴巴(中国)有限公司 | 一种数据处理方法和数据存储系统 |
CN116991949A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 数据同步方法、装置、设备、服务器及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
探讨集群环境下分布式索引的实现;张家叶子;;中国新通信;20181020(第20期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117596256A (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086962B2 (en) | Webpage loading method, client and server | |
CN110086658B (zh) | 接口切换方法、装置及计算机可读存储介质 | |
CN109634718B (zh) | 云平台创建镜像的方法及系统 | |
CN104778057A (zh) | 终端系统升级方法、装置及服务器 | |
CN103593613A (zh) | 用于计算机病毒检测的方法、终端、服务器和系统 | |
CN114866424B (zh) | 服务器管理方法、装置、系统、电子设备及可读存储介质 | |
CN112433812B (zh) | 一种虚拟机跨集群迁移方法、系统、设备及计算机介质 | |
CN104268229A (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
CN109787884B (zh) | 一种消息推送方法和装置 | |
CN103440295A (zh) | 一种多媒体文件上传方法及电子终端 | |
CN107888434B (zh) | 网络设备配置同步方法和装置 | |
CN113434467A (zh) | 网络文件传输方法、装置及计算机可读存储介质 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN109902269A (zh) | 一种文档显示方法、装置、电子设备和可读存储介质 | |
CN113360379B (zh) | 程序测试环境创建方法和程序测试环境创建装置 | |
CN117596256B (zh) | 数据同步方法、装置、系统、电子设备及可读存储介质 | |
CN113687779A (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
EP2835737A1 (en) | Data terminal running mode switching method, device, and data terminal | |
CN105610596B (zh) | 一种资源目录管理方法和网络终端 | |
CN116302250A (zh) | 界面复用方法、装置、电子设备和存储介质 | |
CN103491057A (zh) | 一种共享会话数据的方法、系统及装置 | |
CN115470189A (zh) | 一种数据查询方法、装置及可读存储介质 | |
CN106033364A (zh) | 一种Web应用程序的升级方法及系统 | |
CN112487218B (zh) | 内容处理方法、系统、装置、计算设备和存储介质 | |
CN105188154B (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 |