[发明专利]数据迁移方法及系统有效
申请号: | 201210201198.0 | 申请日: | 2012-06-15 |
公开(公告)号: | CN103514164A | 公开(公告)日: | 2014-01-15 |
发明(设计)人: | 李铮 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 迁移 方法 系统 | ||
技术领域
本申请涉及计算机数据处理技术领域,特别是涉及一种数据迁移方法及系统。
背景技术
随着网络技术的发展,网络中存储的数据通常因为网络操作需要进行数据迁移。例如,从一个数据库迁移到另一数据库。在某些情况下,进行数据迁移时,迁移双方的记录需要对应修改,例如,某个数据从数据库迁出后,该数据库需要删除该数据,或者修改该数据,而接收该数据的数据库,则需要增加该数据或者修改该数据对应的原数据。为了避免出现错误,当某条记录中的数据正在被使用时,需要对该记录进行锁定,只有当本次使用完成后,该记录的数据才能被再次使用。
在某些网络操作中,在短时间内某一记录可能出现大量等待对其中数据进行迁移的操作,目前,业界常见的数据迁移管理主要是通过数据库的数据库锁来实现。每次数据迁移进行之前,首先需要获取数据库连接,再通过锁定语句锁住数据迁移双方的记录中的数据。如果单条记录在短时间内需要进行大量次数的数据迁移时,该记录因为正在被使用而被锁定,那么该记录后续等待的数据迁移请求则会占用大量的数据库连接,只有按照顺序逐一完成该记录所有的数据迁移请求后,才能释放被占用的数据库连接。因为单个记录数据迁移次数过大,可能出现等待数据迁移的队列越来越长,占用的数据库的连接数也会不断增加,如果整个过程持续时间较长,则可能出现可以使用的数据库连接数越来越少,导致数据库压力过大而出现不稳定,最终出现系统崩溃等情况。
发明内容
本申请提供一种数据迁移方法及系统,能够解决占用数据库连接过多导致数据库不稳定以及系统崩溃的问题。
为了解决上述问题,本申请公开了一种数据迁移方法,包括以下步骤:
拦截应用服务器所接收的数据迁移请求,并获取所述数据迁移请求中所包含的数据迁移双方的识别号;
判断应用服务器内存中是否包含所述数据迁移双方识别号的内存锁,若有,则分别为所述两个识别号申请各自的内存锁,反之,则创建所述两个识别号的内存锁;
利用申请到的内存锁锁定对应识别号,将所述数据迁移请求发送给数据库,等待数据库处理本次数据迁移请求;
获取数据库对本次数据迁移请求处理完成的指令,解除内存锁对所述数据迁移双方识别号的锁定,释放内存锁。
进一步地,所述分别为所述两个识别号申请各自的内存锁包括:
获取所述识别号对应的内存锁的当前使用状态,若正在被使用,则等待,若未被使用,则申请获取该内存锁。
进一步地,所述分别为所述两个识别号申请各自的内存锁还包括:
统计所述识别号申请对应的内存锁的等待时间,若超过等待时间阈值,则拒绝本次数据迁移请求。
进一步地,所述数据库处理本次数据迁移请求包括:
获取本次数据迁移请求中数据迁移双方识别号的数据库锁;
采用数据库锁对所述数据迁移双方识别号进行锁定;
根据迁移数值对双方识别号中的数据进行更改并保存;
解除数据库锁对数据迁移双方识别号的锁定。
进一步地,所述识别号与对应的内存锁采用映射表的形式存储在应用服务器内存中。
进一步地,所述分别为所述两个识别号申请各自的内存锁之后还包括:
判断申请所述识别号对应的内存锁并处于等待状态的数据迁移请求数量是否超过申请阈值,若是,则拒绝本次数据迁移请求反之,则继续等待直到获取内存锁。
为了解决上述问题,本申请还公开了一种数据迁移系统,包括:
拦截模块,用于拦截应用服务器所接收的数据迁移请求,并获取所述数据迁移请求中所包含的数据迁移双方的识别号;
内存锁获取模块,用于判断应用服务器内存中是否包含所述数据迁移双方识别号的内存锁,若有,则分别为所述两个识别号申请各自的内存锁,反之,则创建所述两个识别号的内存锁;
锁定模块,用于利用申请到的内存锁锁定对应识别号,将所述数据迁移请求发送给数据库,等待数据库处理本次数据迁移请求;
释放模块,用于获取数据库对本次数据迁移请求处理完成的指令,解除内存锁对所述数据迁移双方识别号的锁定,释放内存锁。
进一步地,所述内存锁获取模块包括:
内存锁使用状态获取单元,用于获取所述识别号对应的内存锁的当前使用状态,若正在被使用,则等待,若未被使用,则申请获取该内存锁。
进一步地,所述内存锁获取模块还包括:
等待时间统计单元,用于统计所述识别号申请对应的内存锁的等待时间,若超过等待时间阈值,则拒绝本次数据迁移请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210201198.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置