基于分布式数据库实现数据导入性能优化方法及系统技术方案

技术编号:39252098 阅读:10 留言:0更新日期:2023-10-30 12:03
本发明专利技术公开了基于分布式数据库实现数据导入性能优化方法及系统,属于数据量数据迁移技术领域,本发明专利技术要解决的技术问题为如何避免数据导入时可能会遇到的事务冲突,在保证数据一致性的前提下,极大的提升数据导入性能,技术方案为:在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态;在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点;分布式集群中的各个节点收到用户表状态变更的消息,更新自己本地的用户表状态缓存;网关节点等待分布式集群中所有节点中的用户表状态都变更为离线状态,开始数据导入;判断数据是否导出成功。断数据是否导出成功。断数据是否导出成功。

【技术实现步骤摘要】
基于分布式数据库实现数据导入性能优化方法及系统


[0001]本专利技术涉及数据库数据迁移
,具体地说是一种基于分布式数据库实现数据导入性能优化方法及系统。

技术介绍

[0002]在分布式数据库中,数据导入性能面临着很大挑战,既希望可以保证数据的一致性,又需要达到很高的性能指标。
[0003]目前的分布式数据库主要采取以下策略:
[0004]①
在导入数据时处理事务冲突:对于导入数据中可能遇到的事务冲突持悲观态度,认为在导入数据时,很可能遇到事务冲突,而且需要在导入过程中解决事务冲突。但是该策略可能需要在数据导入中处理大量的事务冲突,不仅仅额外占用了大量的系统资源,而且在事务冲突的处理中,还可能发生事务等待甚至事务死锁的情况,导致整个导入进程被阻塞,极大地降低了导入的性能。
[0005]②
不在导入过程中处理事务冲突:对于导入数据中可能遇到的事务冲突持乐观态度,认为在导入数据时,大概率不会遇到事务冲突,则不再导入过程中处理事务冲突,如遇到事务冲突,则回滚导入数据。虽然认为不会遇到事务冲突,而一旦遇到了事物冲突,就需要回滚大量的已入库数据,造成极大的性能衰减。
[0006]综上所述,现有技术都没办法同时满足导入数据的一致性和数据导入的性能要求。
[0007]在大型的分布式数据库集群需要数据迁移或者升级到不兼容数据版本,数据导入的性能无疑是用户在切换数据库时,衡量数据库好坏的一个重要指标。现有技术中的数据导入方法,都无法同时满足数据的一致性或导入的性能要求,故如何避免数据导入时可能会遇到的事务冲突,在保证数据一致性的前提下,极大的提升数据导入性能是目前亟待解决的技术问题。

技术实现思路

[0008]本专利技术的技术任务是提供一种基于分布式数据库实现数据导入性能优化方法及系统,来解决如何避免数据导入时可能会遇到的事务冲突,在保证数据一致性的前提下,极大的提升数据导入性能的问题。
[0009]本专利技术的技术任务是按以下方式实现的,一种基于分布式数据库实现数据导入性能优化方法,该方法具体如下:
[0010]在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态;
[0011]在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点;
[0012]分布式集群中的各个节点收到用户表状态变更的消息,更新自己本地的用户表状
态缓存;
[0013]网关节点等待分布式集群中所有节点中的用户表状态都变更为离线状态,开始数据导入;
[0014]判断数据是否导出成功:
[0015]若数据导入成功,则将用户表的状态设置为公开状态,继续对业务层提供服务;
[0016]若数据导入失败,则进行数据回滚数据,等待数据回滚完毕后,将用户表的状态设置为公开状态,继续对业务层提供服务。
[0017]作为优选,在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态具体如下:
[0018]开启一个分布式事务,分布式事务用于进行用户表状态的变更;
[0019]在开启的分布式事务中,根据导入命令传入的用户表的数据库名、模式名及表名查询到用户表的描述符;
[0020]将用户表描述符中的用户表状态设置为离线状态;
[0021]使用开启的分布式事务将用户表状态为离线状态的用户表描述符写入分布式数据库中。
[0022]更优地,在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点具体如下:
[0023]在分布式事务提交时,生成一条用户表状态变更的消息;
[0024]将用户表状态变更的消息,以广播的形式发送到集群中的各个节点。
[0025]更优地,分布式集群中的各个节点收到用户表状态变更的消息,更新自己本地的用户表状态缓存具体如下:
[0026]分布式集群中的节点接收到网关节点发来的消息;
[0027]分布式集群中的节点解析接收到的网关节点发来的消息;
[0028]根据解析后的网关节点发来的消息,更新本地的用户表状态的缓存。
[0029]更优地,网关节点等待集群中所有节点中的用户表状态都变更为离线状态,开始数据导入具体如下:
[0030]网关节点向分布式集群中的各个节点发起查询用户表状态的请求;
[0031]分布式集群中的各个节点收到请求后,将本地的用户表状态发回网关节点;
[0032]网关节点接收到分布式集群中所有节点的响应,并且用户表的状态都为离线状态;
[0033]记录当前网关节点的物理时间,用于后续的数据回滚。
[0034]更优地,数据回滚是根据记录的物理时间回滚数据实现。
[0035]一种基于分布式数据库实现数据导入性能优化系统,该系统包括设置模块、消息发送模块、更新模块、数据导入模块及判断模块
[0036]设置模块用于在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态;
[0037]消息发送模块用于在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点;
[0038]更新模块用于在分布式集群中的各个节点收到用户表状态变更的消息时,更新自
己本地的用户表状态缓存;
[0039]数据导入模块用于网关节点等待分布式集群中所有节点中的用户表状态都变更为离线状态,开始数据导入;
[0040]判断模块用于判断数据是否导出成功:
[0041]若数据导入成功,则将用户表的状态设置为公开状态,继续对业务层提供服务;
[0042]若数据导入失败,则进行数据回滚数据,等待数据回滚完毕后,将用户表的状态设置为公开状态,继续对业务层提供服务。
[0043]作为优选,所述设置模块的工作过程具体如下:
[0044](1)开启一个分布式事务,分布式事务用于进行用户表状态的变更;
[0045](2)在开启的分布式事务中,根据导入命令传入的用户表的数据库名、模式名及表名查询到用户表的描述符;
[0046](3)将用户表描述符中的用户表状态设置为离线状态;
[0047](4)使用开启的分布式事务将用户表状态为离线状态的用户表描述符写入分布式数据库中;
[0048]所述消息发送模块工作过程具体如下:
[0049](1)在分布式事务提交时,生成一条用户表状态变更的消息;
[0050](2)将用户表状态变更的消息,以广播的形式发送到集群中的各个节点;
[0051]所述更新模块的工作过程具体如下:
[0052](1)分布式集群中的节点接收到网关节点发来的消息;
[0053](2)分布式集群中的节点解析接收到的网关节点发来的消本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式数据库实现数据导入性能优化方法,其特征在于,该方法具体如下:在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态;在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点;分布式集群中的各个节点收到用户表状态变更的消息,更新自己本地的用户表状态缓存;网关节点等待分布式集群中所有节点中的用户表状态都变更为离线状态,开始数据导入;判断数据是否导出成功:若数据导入成功,则将用户表的状态设置为公开状态,继续对业务层提供服务;若数据导入失败,则进行数据回滚数据,等待数据回滚完毕后,将用户表的状态设置为公开状态,继续对业务层提供服务。2.根据权利要求1所述的基于分布式数据库实现数据导入性能优化方法,其特征在于,在分布式数据库进行数据导入前,在网关节点开启一个分布式事务,在分布式事务中,将即将导入数据的用户表的状态设置为离线状态具体如下:开启一个分布式事务,分布式事务用于进行用户表状态的变更;在开启的分布式事务中,根据导入命令传入的用户表的数据库名、模式名及表名查询到用户表的描述符;将用户表描述符中的用户表状态设置为离线状态;使用开启的分布式事务将用户表状态为离线状态的用户表描述符写入分布式数据库中。3.根据权利要求1或2所述的基于分布式数据库实现数据导入性能优化方法,其特征在于,在分布式事务提交时,将用户表的状态设置为离线作为一条消息,发送到分布式集群中的各个节点具体如下:在分布式事务提交时,生成一条用户表状态变更的消息;将用户表状态变更的消息,以广播的形式发送到集群中的各个节点。4.根据权利要求3所述的基于分布式数据库实现数据导入性能优化方法,其特征在于,分布式集群中的各个节点收到用户表状态变更的消息,更新自己本地的用户表状态缓存具体如下:分布式集群中的节点接收到网关节点发来的消息;分布式集群中的节点解析接收到的网关节点发来的消息;根据解析后的网关节点发来的消息,更新本地的用户表状态的缓存。5.根据权利要求4所述的基于分布式数据库实现数据导入性能优化方法,其特征在于,网关节点等待集群中所有节点中的用户表状态都变更为离线状态,开始数据导入具体如下:网关节点向分布式集群中的各个节点发起查询用户表状态的请求;分布式集群中的各个节点收到请求后,将本地的用户表状态发回网关节点;网关节点接收到分布式集群中所有节点的响应,并且用户表的状态都为离线状态;
记录当前网关节点的物理时间,用于后续的数据回滚。6.根据权利要求5所述的基于分布式数据库实现数据导入性能优化方法,其特征在于,数据回滚是根据记录的物理时间回滚数据实现。7.一种基于分布...

【专利技术属性】
技术研发人员:鲍之骁
申请(专利权)人:上海沄熹科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1