System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及分布式数据库中处理基表及其全局二级索引的方法及装置。
技术介绍
1、基表是分布式数据库中用来存储数据的对象,基表可以是分布式存储在至少一个数据节点中的多行乘多列数据的集合。其中,同一列的数据属于同一个属性,同一行的数据可以存储在同一个数据节点中。当前,基表可以具有一个或多个全局二级索引,基表的每个全局二级索引可以包含基表中的部分列数据,因此基表的全局二级索引可以用于进行数据查询。与基表数据的存储方式类似,基表的全局二级索引的数据也可以分布式存储在至少一个数据节点中。
2、在基于基表的全局二级索引进行数据查询时,为了保证查询的准确性,需要尽可能维持全局二级索引与基表的数据的一致性,即维持全局二级索引中的各列数据与其在基表中对应列的数据是一致的。而在基表的使用过程中,基表中包含的数据可能会发生变化,对此,当前普遍采用的是通过异步更新的方式对基表和全局二级索引进行更新,以维持全局二级索引与基表的数据的一致性。该方法中,对基表的更新操作可以立即执行,对基表的全局二级索引的更新操作则需要在到达全局二级索引的更新周期后执行。该方法虽然能够实现全局二级索引与基表的数据最终的一致性,但是全局二级索引的更新与基表的更新相比可能存在延迟,因此该方法难以保持全局二级索引与基表数据较强的一致性,会降低基表及其全局二级索引的使用过程的准确度。
技术实现思路
1、本申请提供分布式数据库中处理基表及其全局二级索引的方法及装置,用以提高基表与其全局二级索引的数据的一致性,进
2、第一方面,本申请提供一种分布式数据库中处理基表及其全局二级索引的方法,应用于第一节点,该方法包括:响应于第一指示,指示至少一个第二节点中的目标第二节点执行目标操作,其中,所述第一指示用于指示更新基表,所述基表分布式存储在所述至少一个第二节点中,所述目标操作用于更新所述基表;接收来自所述目标第二节点的目标信息,其中,所述目标信息用于更新所述基表的全局二级索引,所述全局二级索引分布式存储在至少一个第三节点中;据所述目标信息,指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引。
3、在该方法中,基表和基表的全局二级索引均可以分布式存储在多个节点中,且存储基表的节点与存储基表的全局二级索引的节点可以相同也可以不同。第一节点在控制更新基表时,可以根据对基表进行更新操作的节点所返回的目标信息,同步控制对基表的全局二级索引进行相应更新,能够保证基表数据与全局二级索引数据的强一致性,进而提高基表及其全局二级索引的使用过程的准确度。
4、在一种可能的设计中,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
5、在该方法中,基表的全局二级索引中可以包括位置信息,根据位置信息可以确定基表中数据(或元组)对应的存储位置,因此,基表的全局二级索引中不需要必须包含基表的主键、分布键或分区键等,能够适当减少基表的全局二级索引的数据量,减少索引膨胀问题,尤其在基表的主键、分布键涉及的属性列较多时,能够明显减少创建全局二级索引后需要维护的数据量,提高使用全局二级索引的效率。
6、在一种可能的设计中,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
7、在该方法中,根据位置信息中包含的第一位置信息能够在存储基表的多个节点中快速确定数据(或元组)所在的节点,根据位置信息中包含的第二位置信息则能够在节点中进一步确定更为精确的存储位置,因此,基于位置信息中的第一位置信息和第二位置信息,能够快速高效的定位数据。
8、在一种可能的设计中,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;其中,所述第一目标数据为所述变更数据中包含的属于所述至少一个属性的数据,所述变更数据为第一基表数据和第二基表数据之间存在差异的数据,所述第一基表数据为在更新所述基表之前所述基表中所包含的数据,所述第二基表数据为在更新所述基表之后所述基表中所包含的数据;所述目标分布键数据为所述变更数据中包含的用于作为所述基表的分布键的数据,所述目标分布键数据用于确定所述变更数据对应的第一位置信息。
9、在该方法中,变更数据为基表中发生变化的数据,第一目标数据为变更数据中所属属性与基表的全局二级索引的属性相同的数据,则基于第一目标数据可以对基表的全局二级索引中的数据进行更新,以使得基表的全局二级索引中的数据随基表中数据的变化而相应变化,进而维持全局二级索引与基表的数据一致性。目标分布键数据可以用于确定变更数据对应的第一位置信息,因此,根据目标分布键数据、变更数据对应的第二位置信息,或者根据变更数据对应的位置信息,能够对基表中发生变化的数据对应的位置信息进行相应更新,保证全局二级索引中位置信息的准确度。
10、在一种可能的设计中,在接收来自所述目标第二节点的目标信息之前,所述方法还包括:当所述第一指示具体用于指示对所述基表中包含的部分数据进行更新时,确定所述部分数据所属的属性与所述至少一个属性存在交集。
11、在该方法中,当基表中更新的数据所属的属性与基表的全局二级索引中的属性有交集时,说明基表中更新的该数据会影响基表与全局二级索引的数据一致性,因此在基表数据更新情况符合该场景的情况下,触发对基表的全局二级索引进行同步更新,能够保证基表与全局二级索引的数据一致性。
12、在一种可能的设计中,根据所述目标信息,指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引,包括:当所述目标信息包括所述第一目标数据、所述目标分布键数据以及所述变更数据对应的第二位置信息时,根据所述目标分布键数据确定所述变更数据对应的第一位置信息;将更新信息发送至目标第三节点,并指示所述目标第三节点根据所述更新信息更新所述目标第三节点所存储的所述全局二级索引中的数据;其中,所述更新信息包括所述变更数据对应的第一位置信息和所述目标信息中除所述目标分布键数据以外的信息;其中,所述目标第三节点为所述多个第三节点中的每个第三节点;或者,所述目标第三节点为所述至少一个第三节点中用于存储所述第一目标数据的节点。
13、在该方法中,第一节点可以进行根据分布键数据计算得到变更数据对应的第一位置信息的处理,处理后将基表中发生变化的数据及其对应的第一位置信息和第二位置信息发送目标第三节点,则目标第三节点可以直接根据接收到的信息进行全局二级索引的更新,该过程中,仅第一节点进行一次计算处理即可,减少了目标第三节点进行计算处理的计算量,减少对目标第三节点的资源占用,提高目标第三节点的存储性能。
14、在一种可能的设计中,根据所述目标信息,指示所述至少一本文档来自技高网...
【技术保护点】
1.一种分布式数据库中处理基表及其全局二级索引的方法,应用于第一节点,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
3.如权利要求2所述的方法,其特征在于,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
4.如权利要求3所述的方法,其特征在于,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;
5.如权利要求4所述的方法,其特征在于,在接收来自所述目标第二节点的目标信息之前,所述方法还包括:
6.如权利要求4或5所述的方法,其特征在于,根据所述目标信息,指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引,包括:
7.如权利要
8.如权利要求2~7任一所述的方法,其特征在于,所述方法还包括:
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
10.如权利要求9所述的方法,其特征在于,根据所述全局二级索引,确定所述第二目标数据,包括:
11.如权利要求2~10任一所述的方法,其特征在于,所述全局二级索引还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。
12.一种分布式数据库中处理基表及其全局二级索引的方法,应用于第二节点,其特征在于,所述方法包括:
13.如权利要求12所述的方法,其特征在于,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
14.如权利要求13所述的方法,其特征在于,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
15.如权利要求14所述的方法,其特征在于,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;
16.如权利要求12~15任一所述的方法,其特征在于,所述全局二级索引还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。
17.一种数据处理装置,应用于第一节点,其特征在于,所述装置包括收发单元和处理单元;
18.如权利要求17所述的装置,其特征在于,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
19.如权利要求18所述的装置,其特征在于,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
20.如权利要求19所述的装置,其特征在于,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;
21.如权利要求20所述的装置,其特征在于,所述处理单元还用于:
22.如权利要求20或21所述的装置,其特征在于,所述处理单元根据所述目标信息,通过所述收发单元指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引时,具体用于:
23.如权利要求20或21所述的装置,其特征在于,所述处理单元根据所述目标信息,通过所述收发单元指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引时,具体用于:
24.如权利要求18~23任一所述的装置,其特征在于,所述处理单元还用于:
25.如权利要求24所述的装置,其特征在于,所述处理单元还用于:
26.如权利要求25所述的装置,其特征在于,所述处理单元根据所述全局二级索引确定所述第二目标数据时,具体用于:
27.如权利要...
【技术特征摘要】
1.一种分布式数据库中处理基表及其全局二级索引的方法,应用于第一节点,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
3.如权利要求2所述的方法,其特征在于,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
4.如权利要求3所述的方法,其特征在于,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;
5.如权利要求4所述的方法,其特征在于,在接收来自所述目标第二节点的目标信息之前,所述方法还包括:
6.如权利要求4或5所述的方法,其特征在于,根据所述目标信息,指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引,包括:
7.如权利要求4或5所述的方法,其特征在于,根据所述目标信息,指示所述至少一个第三节点中的目标第三节点更新所述全局二级索引,包括:
8.如权利要求2~7任一所述的方法,其特征在于,所述方法还包括:
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
10.如权利要求9所述的方法,其特征在于,根据所述全局二级索引,确定所述第二目标数据,包括:
11.如权利要求2~10任一所述的方法,其特征在于,所述全局二级索引还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。
12.一种分布式数据库中处理基表及其全局二级索引的方法,应用于第二节点,其特征在于,所述方法包括:
13.如权利要求12所述的方法,其特征在于,所述全局二级索引包括:所述基表中的至少一个属性,以及,位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。
14.如权利要求13所述的方法,其特征在于,每个数据对应的位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息用于指示对应数据所属的元组所在的节点,所述第二位置信息用于指示对应数据所属的元组在节点中的存储位置。
15.如权利要求14所述的方法,其特征在于,所述目标信息包括第一目标数据和变更数据对应的位置信息,或者,所述目标信息包括第一目标数据、目标分布键数据以及变更数据对应的第二位置信息;
16.如权利要求12~15任一所述的方法,其特征在于,所述全局二级索引还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。
17.一种数据处理装置,应用于第一节点,其特征在于,所述装置包括收发单元和处理单元;
18.如权利要求17所述的装置,其特征在于,所述全局二级索引包括:所述基表中的至少一个...
【专利技术属性】
技术研发人员:周兆琦,张树杰,刘宗昊,刘宝珠,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。