System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储,特别是涉及一种数据同步方法、装置、计算机设备和存储介质。
技术介绍
1、元数据可以理解为描述数据属性的数据,具有记录存储位置、记录历史数据和数据查找等功能。随着计算机技术的高速发展,各类型的数据呈现爆炸式的增长,管理和存储各类型数据的元数据也面临新的挑战。
2、传统技术中,通常会创建一个新桶用于存储对象数据,该桶被划分为指定数量的分片用来存储对象数据的相关元数据。例如,在对象数据上传时,会使用一致性哈希算法计算该对象数据的相关元数据的目标分片,并利用目标分片存储相关元数据。
3、然而,当桶中分片数过少,会导致并发存储数据能力不足的问题;当分片数过多,会导致列举对象数据时延大的问题;当动态调整分片数时,会导致业务中断的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种数据同步方法、装置、计算机设备和存储介质,能够解决桶中分片数量过多或过少,以及分片数量动态调整带来的问题。
2、第一方面,本申请提供了一种数据同步方法,所述方法包括:
3、获取对象索引池中目标桶的各分片在目标迁移阶段对应的第一元数据;其中,所述目标迁移阶段为第一迁移阶段、第二迁移阶段或第三迁移阶段,所述第一迁移阶段的结束时刻为所述第二迁移阶段的开始时刻,所述第二迁移阶段的结束时刻为所述第三迁移阶段的开始时刻;
4、根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步;其中,所
5、在其中一个实施例中,在所述目标迁移阶段为第一迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻之前存储的元数据;
6、所述根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步,包括:
7、将所述第一元数据,与所述数据库中在第一迁移阶段开始时刻之前存储的元数据进行比对,得到正向比对结果;
8、在所述正向比对结果为所述数据库中不存在所述第一元数据中的第一目标元数据的情况下,将所述第一目标元数据同步至所述数据库;
9、将所述数据库中存储的所有元数据与所述第一元数据进行比对,得到反向比对结果;
10、在所述反向比对结果为所述数据库中存在第二目标元数据,且所述第一元数据中不存在所述第二目标元数据的情况下,将所述第二目标元数据从所述数据库中删除。
11、在其中一个实施例中,在所述目标迁移阶段为第二迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻至第一迁移阶段结束时刻之间存储的元数据;
12、所述根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步,包括:
13、将所述第一元数据,与所述数据库中在第一迁移阶段开始时刻至第一迁移阶段结束时刻之间存储的元数据进行比对,得到正向比对结果;
14、在所述正向比对结果为所述数据库中不存在所述第一元数据中的第三目标元数据的情况下,将所述第三目标元数据同步至所述数据库;
15、将所述数据库中在第一迁移阶段开始时刻至第一迁移阶段结束时刻之间存储的元数据,与所述第一元数据进行比对,得到反向比对结果;
16、在所述反向比对结果为所述数据库中存在第四目标元数据,且所述第一元数据中不存在所述第四目标元数据的情况下,将所述第四目标元数据从所述数据库中删除;
17、在将所述目标桶中进行非读操作的元数据加锁后,将所述目标桶的各分片的头部数据迁移至所述数据库中。
18、在其中一个实施例中,在根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步的过程中,所述方法还包括:
19、在所述第二迁移阶段,对待删元数据添加删除标记;
20、其中,所述待删元数据为数据删除操作所对应的所述数据库中的元数据,且所述待删元数据为所述数据库和所述对象索引池中共有的元数据。
21、在其中一个实施例中,在所述目标迁移阶段为第三迁移阶段的情况下,所述第一元数据为所述对象索引池中截止到第二迁移阶段的结束时刻存储的所有元数据;
22、所述根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步,包括:
23、将所述第一元数据与所述数据库中存储的所有元数据进行比对,得到正向比对结果;
24、在所述正向比对结果为所述数据库中不存在所述第一元数据中的第五目标元数据的情况下,将所述第五目标元数据同步至数据库;其中,所述第五目标元数据的更新时间小于所述第三迁移阶段的开始时刻;
25、将所述数据库中存储的所有元数据与所述第一元数据进行比对,得到反向比对结果;
26、在所述反向比对结果为所述数据库中存在第六目标元数据,且所述第一元数据中不存在所述第六目标元数据的情况下,将所述第六目标元数据删除;其中,所述第六目标元数据的更新时间小于所述第三迁移阶段的开始时刻;
27、将所述数据库中标记删除的待删元数据进行删除。
28、在其中一个实施例中,所述方法还包括:
29、在所述正向比对结果为所述第二元数据中存在所述第一元数据的情况下,将所述第一元数据和所述第二元数据中更新时间最晚的元数据同步至所述数据库。
30、在其中一个实施例中,所述方法还包括:
31、获取用于进行所述第一元数据和所述第二元数据比对的线程数量;
32、根据所述对象索引池中目标桶的分片数量和所述线程数量,确定为各线程分配的用于与第二元数据进行比对的分片;
33、控制各线程执行将对应分片中的第一元数据与所述第二元数据进行正向比对操作,得到正向比对结果;
34、根据所述第二元数据的数量和所述线程数量,确定为各线程分配的用于与第一元数据进行比对的第二元数据;
35、控制各线程执行将对应第二元数据与所述第一元数据进行反向比对操作,得到反向比对结果。
36、第二方面,本申请还提供了一种数据同步装置,所述装置包括:
37、获取模块,用于获取对象索引池中目标桶的各分片在目标迁移阶段对应的第一元数据;其中,所述目标迁移阶段为第一迁移阶段、第二迁移阶段或第三迁移阶段,所述第一迁移阶段的结束时刻为所述第二迁移阶段的开始时刻,所述第二迁移阶段的结束时刻为所述第三迁移阶段的开始时刻;
38、同步模块,用于根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步;其中,所述正向比对结果为比对所述第二元数据中是否存本文档来自技高网...
【技术保护点】
1.一种数据同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述目标迁移阶段为第一迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻之前存储的元数据;
3.根据权利要求1所述的方法,其特征在于,在所述目标迁移阶段为第二迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻至第一迁移阶段结束时刻之间存储的元数据;
4.根据权利要求3所述的方法,其特征在于,在根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步的过程中,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,在所述目标迁移阶段为第三迁移阶段的情况下,所述第一元数据为所述对象索引池中截止到第二迁移阶段的结束时刻存储的所有元数据;
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种数据同步装置,其特征在于,所述装置包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种数据同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述目标迁移阶段为第一迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻之前存储的元数据;
3.根据权利要求1所述的方法,其特征在于,在所述目标迁移阶段为第二迁移阶段的情况下,所述第一元数据为所述对象索引池中在第一迁移阶段开始时刻至第一迁移阶段结束时刻之间存储的元数据;
4.根据权利要求3所述的方法,其特征在于,在根据所述第一元数据和数据库中存储的第二元数据之间的正向比对结果和反向比对结果,对所述数据库进行元数据同步的过程中,所述方法还包括:
5.根据权利要求1所述的方法,其特征在...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。