[发明专利]一种基于数据库的数据更新方法和系统有效
申请号: | 201210237777.0 | 申请日: | 2012-07-10 |
公开(公告)号: | CN103544153A | 公开(公告)日: | 2014-01-29 |
发明(设计)人: | 郑高超 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据库 数据 更新 方法 系统 | ||
技术领域
本申请涉及数据库技术领域,特别涉及一种基于数据库的数据更新方法和系统。
背景技术
数据库是一个共享资源,可以供多个用户使用。为了充分利用数据库资源、发挥数据库共享资源的特点,允许多个用户并行地存取数据库。但是当多个用户并发存取同一数据时,在数据库中就会产生多个事务同时对同一数据进行存取操作的情况,如果对并发操作不加控制就可能会出现读取和存储不正确的数据,破坏数据库的一致性。
以飞机票订票系统中的订票操作为例,假设某航班的机票余量为16张,甲售票点的甲售票员和乙售票点的乙售票员读出该航班剩余机票均为16张,如果甲售票员和乙售票员在同一时刻各卖出一张机票,则甲售票点将修改机票余量为16-1=15张,并写回数据库;同时乙售票点也会修改机票余量为16-1=15张,并写回数据库。这样,尽管订票系统一共卖出两张票时,数据库中机票的余量却仅减少一张,即数据库中的机票余量更新为16-1=15张,从而由于并发操作导致了丢失修改等问题,使得数据库出现的不一致性问题。
为了避免由于用户的并发操作而导致数据库的不一致性,一般通过对数据库进行加设排它锁以实现并发控制,即某一事务对数据库中的某个表或该表的某一记录做锁定,以保证同一时间仅有该事务可以对该表或该条记录进行修改,只有该事务释放了它的锁之后,其他的事务才可以对该表或该条记录进行修改。这样,当较多用户同时访问数据库中某一数据对象(即产生多个事务的并发操作)时,如果某个事务对该数据对象进行封锁,其他事务则必须等待,从而由于锁资源不足而产生大量的锁等待,甚至失败操作。
因此,目前需要本领域的技术人员迫切解决的一个技术问题就是:如何实现对资源有限的数据库系统的并发控制,以减少锁等待的等待时间。
发明内容
本申请提供一种基于数据库的数据更新方法,用以解决现有技术中并发访问过程中所存在的锁等待的等待时间过长的问题。
本申请还提供了一种基于数据库的数据更新系统,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种基于数据库的数据更新方法,包括:
A、接收数据更新请求,所述数据更新请求中包括请求扣除的待扣数据量;
B、判断本地内存中是否存储有预扣数据量,且所述预扣数据量不小于所述待扣数据量,如果是,执行步骤E;如果否,则执行步骤C;
C、获取数据库中记录的所述数据的预算剩余量,并根据所述待扣数据量和所述预算剩余量确定数据库扣除量;
D、从所述数据库记录的预算剩余量中扣除所述数据库扣除量,并将所述数据库扣除量作为本地内存中的预扣数据量进行存储;
E、从所述本地内存中存储的预扣数据量中扣除所述待扣数据量,以更新本地内存中的预扣数据量。
本发明还公开了一种基于数据库的数据更新系统,包括:
请求接收单元,用于接收数据更新请求,所述数据更新请求中包括请求扣除的待扣数据量;
判断单元,用于判断本地内存中是否存储有预扣数据量,且所述预扣数据量不小于所述待扣数据量,并当判断出本地内存中存储有预扣数据量,且所述预扣数据量不小于所述待扣数据量时,触发执行本地数据扣除单元的操作;当判断出本地内存中未存储有预扣数据量或者所述预扣数据量小于所述待扣数据量时,触发执行第一数据读取单元的操作;
第一数据读取单元,用于获取数据库中记录的所述数据的预算剩余量;
扣除量确定单元,用于根据所述待扣数据量和所述预算剩余量确定数据库扣除量,并执行数据更新单元的操作;
数据库更新单元,用于从所述数据库记录的预算剩余量中扣除所述数据库扣除量,并将所述数据库扣除量作为本地内存中的预扣数据量进行存储,并执行所述本地数据更新单元的操作;
本地数据更新单元,用于从所述本地内存中存储的预扣数据量中扣除所述待扣数据量,以更新本地内存中的预扣数据量。
与现有技术相比,本申请包括以下优点:
在本申请中,本申请中当系统接收到数据更新请求时,并不会直接从数据库中获取数据以对数据库进行写操作,只有在本地内存中存储的预扣数据量小于该数据更新请求所请求的待扣数据量时,才会从执行从数据库中获取数据的操作,从而减少了对数据库的访问次数,即减少了对数据库的写操作次数,进而减少了锁等待的等待时间,并提高了系统单位时间内处理数据更新请求的数量,即提高了系统的吞吐量。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210237777.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置