• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 16
    • 下载费用:30 金币  

    重庆时时彩前3走势图: 减少数据库事务期间的锁定.pdf

    关 键 词:
    减少 数据库 事务 期间 锁定
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110257251.4

    申请日:

    2011.08.26

    公开号:

    CN102385611A

    公开日:

    2012.03.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||专利申请权的转移IPC(主分类):G06F 17/30变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150722|||实质审查的生效IPC(主分类):G06F 17/30申请日:20110826|||公开
    IPC分类号: G06F17/30 主分类号: G06F17/30
    申请人: 微软公司
    发明人: J·L·法尔克波; T·赫杰斯伯格
    地址: 美国华盛顿州
    优先权: 2010.08.27 US 12/869,747
    专利代理机构: 上海专利商标事务所有限公司 31100 代理人: 顾嘉运
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110257251.4

    授权公告号:

    |||||||||

    法律状态公告日:

    2017.08.15|||2015.08.12|||2013.09.18|||2012.03.21

    法律状态类型:

    授权|||专利申请权、专利权的转移|||实质审查的生效|||公开

    摘要

    本发明涉及减少数据库事务期间的锁定。此处描述了用于在不使用高速缓存的情况下减少数据库事务期间的锁定的概念和技术。根据此处公开的概念和技术,服务器应用程序响应于接收到用于修改存储在数据库中的基本数据的操作而生成变更集。该变更集被存储为与基本数据一起存储在数据库的表的集合,并且包括反映基本数据中已由这些操作创建和/或修改的记录的第一表。该变更集还可包括反映基本数据中已由这些操作删除的记录的第二表。

    权利要求书

    1.一种用于更新数据库(116)中的基本数据(114)的计算机实现的方法,
    所述计算机实现的方法包括执行计算机实现的操作用于:
    在服务器计算机(102)处从设备(110)接收操作(112),所述操作(112)
    包括用于修改所述数据库(116)中的所述基本数据(114)的信息;
    基于所述操作(112)来生成变更集(120),所述变更集(120)指示将
    对所述数据库(116)中的所述基本数据(114)作出的变更;
    将所述变更集(120)存储在所述数据库(116)中;以及
    响应于确定所述设备(110)和所述服务器计算机(102)之间的事务已经
    结束,根据所述变更集(120)中所指示的变更来更新所述基本数据(114)。
    2.如权利要求1所述的方法,其特征在于,所述变更集包括已变更记录表,
    所述已变更记录表存储指示所述基本数据中由所述操作变更的记录的数据。
    3.如权利要求2所述的方法,其特征在于,所述基本数据中由所述操作变
    更的记录包括由所述操作删除的记录。
    4.如权利要求2所述的方法,其特征在于,更新所述基本数据包括修改所
    述基本数据中由存储在所述已变更记录表中的数据指示的记录。
    5.如权利要求2所述的方法,其特征在于,所述已变更数据表的布局与存
    储所述基本数据的基本数据表的布局相同。
    6.如权利要求1所述的方法,其特征在于,所述变更集包括已变更记录
    表和已删除记录表,所述表存储指示所述基本数据中由所述操作变更的记录或
    所述基本数据中由所述操作删除的记录中的至少一个的数据。
    7.如权利要求6所述的方法,其特征在于,还包括:
    从所述设备接收查询,所述查询包括从所述数据库中读取所述基本数据的
    请求;以及
    生成经修改的查询,所述经修改的查询包括所述查询以及用于读取存储在
    所述已变更记录表或所述已删除记录表中的至少一个里的数据的变更集查询。
    8.如权利要求7所述的方法,其特征在于,还包括执行所述查询以及所述
    变更集查询以获取满足所述查询的结果。
    9.如权利要求8所述的方法,其特征在于,还包括确定所述设备和所述服
    务器计算机之间的事务是否已经结束。
    10.如权利要求9所述的方法,其特征在于,更新所述基本数据包括以
    下操作中的至少一个:
    根据存储在所述已变更记录表中的数据来变更所述基础数据中的记录;或

    根据存储在所述已删除记录表中的数据来删除所述基础数据中的记录。
    11.如权利要求1所述的方法,其特征在于,更新所述基本数据包括:
    锁定所述基本数据以便进行更新;以及
    在锁定所述基本数据以便进行更新的同时根据所述变更集来更新所述基
    本数据。
    12.如权利要求11所述的方法,其特征在于,更新所述基本数据还包
    括:
    在完成对所述基本数据的更新后,解锁所述基本数据;以及
    丢弃所述变更集。
    13.如权利要求1所述的方法,其特征在于,所述操作包括结构化查询
    语言操作。
    14.一种其上存储有计算机可读指令的计算机可读存储介质,所述指令
    在由计算机(102)执行时使所述计算机(102):
    从设备(110)接收操作(112),所述操作(112)包括用于修改所述数
    据库(116)中的基本数据(114)的信息;
    基于所述操作(112)来生成变更集(120),所述变更集(120)指示将
    对所述数据库(116)中的所述基本数据(114)作出的变更;
    将所述变更集(120)存储在所述数据库(116)中;以及
    响应于确定所述设备(110)和所述计算机(102)之间的事务已经结束,
    根据所述变更集(120)中所指示的变更来更新所述基本数据(114)。
    15.如权利要求15所述的计算机可读存储介质,其特征在于,还包括
    在由所述计算机执行时使得所述计算机执行以下操作的指令:
    从所述设备接收查询,所述查询包括从所述数据库中读取所述基本数据的
    请求;
    生成经修改的查询,所述经修改的查询包括所述查询以及用于读取存储在
    所述已变更记录表或所述已删除记录表中的至少一个里的数据的变更集查询;
    执行所述查询以及所述变更集查询以获取满足所述查询的结果;以及
    确定所述设备和所述服务器计算机之间的事务是否已经结束。

    说明书

    减少数据库事务期间的锁定

    技术领域

    本发明一般涉及数据库事务处理,尤其涉及减少数据库事务期间的锁定。

    背景技术

    当设备或应用程序更新数据库中的数据时,该数据库中的数据被锁定直到
    作出对该数据的变更的设备或应用程序释放该数据或终止与数据库的会话。对
    数据库中的数据的锁定可能影响数据库和/或连接到该数据库的设备和应用程
    序的性能。另外,当数据库中的数据被锁定时,其他设备和/或应用程序可能无
    法访问数据或对其作出变更。

    锁定问题在长运行事务期间和/或对于其中多个用户、应用程序或设备被
    授权访问数据的数据库尤其严重。其他长运行事务包括连续作出对同一数据的
    多次查询和/或修改和/或访问数据的设备或应用程序对该数据执行众多和/或
    复杂计算的情况。在这些和其他情况下,修改数据的设备和/或应用程序可以在
    该数据被锁定时对该数据执行各种计算和/或操作,由此阻止其他应用程序和/
    或设备对该数据的访问。

    缓解数据锁定导致的问题的一种尝试涉及使用在访问数据库中的数据的
    设备处保存所有变更的高速缓存。在设备处高速缓存对数据的变更,而不是锁
    定数据。当设备准备好向数据库提交变更时,锁定该数据并且同时提交变更。
    然而,高速缓存变更需要设备处的额外的计算资源,因为设备必须对查询结果
    执行后处理操作以反映高速缓存在设备处的变更。这些后处理步骤可取决于高
    速缓存在设备处的变更数量而变得极度复杂,并且在彼此依赖的众多计算的情
    况下可能使设备性能降级。

    在此呈现对于这些和其他考虑事项做出的本发明。

    发明内容

    此处描述了用于在不在设备处使用设备高速缓存或后处理操作的情况下
    减少数据库事务期间的数据锁定的概念和技术。根据此处公开的概念和技术,
    服务器应用程序响应于执行修改存储在数据库中的基本数据的操作而生成变
    更集。该变更集与基本数据一起作为表的集合存储在数据库中。该表集合可包
    括存储反映基本数据中已由操作创建和/或修改的记录的数据的第一表,以及存
    储反映基本数据中已由操作删除的记录的数据的第二表。

    在提交变更集中反映的对基本数据的变更、添加和/或删除之前,在主存
    服务器应用程序的服务器计算机处接收到的查询被修改成包括用于查询存储
    在变更集中的数据和基本数据的语句。对基本数据和变更集执行经修改的查
    询,并且生成满足经修改的查询的结果并将其返回至作出请求的设备和/或实
    体。变更集和经修改的查询的生成以及经修改的查询的执行可以在不锁定基本
    数据的情况下进行。由此,某些实施方式允许设备和/或应用程序在其他设备和
    /或应用程序修改基本数据的同时访问基本数据。

    当向服务器应用程序提交操作的设备结束与服务器计算机的事务时,服务
    器应用程序锁定基本数据。服务器应用程序连续对基本数据应用存储在变更集
    表中的变更。当存储在变更集表中的变更已被应用于基本数据时,解锁基本数
    据并且丢弃变更集。

    应当明白,上述主题还可被实现成计算机控制的装置、计算机进程、计算
    系统、或诸如计算机可读存储介质等制品。通过阅读以下具体实施方式并查阅
    相关联的附图,这些和各种其他特征将是显而易见的。

    提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描
    述的一些概念。本发明内容并不旨在标识出所要求?;さ闹魈獾墓丶卣骰虮?br />要特征,本发明内容也不旨在用于限定所要求?;さ闹魈獾姆段?。此外,所要
    求?;さ闹魈獠幌抻诮饩鲈诒痉⒚鞯娜魏尾糠种刑峒暗娜魏位蛩腥钡愕氖?br />现。

    附图说明

    图1是示出用于此处所公开的各实施方式的示例性操作环境的系统图。

    图2是示意性地示出根据一示例性实施方式的用于存储基本数据和变更
    集的数据结构的框图。

    图3是示意性地示出根据一示例性实施方式的用于更新存储在数据库中
    的数据的方法的各方面的流程图。

    图4是示出能够实现此处所呈现的各实施方式的各方面的计算系统的示
    例性计算机硬件和软件体系结构的计算机体系结构图。

    具体实施方式

    以下详细描述涉及用于在不在设备处使用设备高速缓存或后处理操作的
    情况下减少数据库事务期间的锁定的概念和技术。根据此处公开的概念和技
    术,服务器应用程序响应于接收到用于修改存储在数据库中的基本数据的操作
    而生成变更集。该变更集被存储为与基本数据一起存储在数据库的表的集合。
    该表集合可包括存储反映基本数据中已由操作创建和/或修改的记录的数据的
    第一表,以及存储反映基本数据中已由操作删除的记录的数据的第二表。

    在提交变更集中反映的对基本数据的变更、添加和/或删除之前,在主存
    服务器应用程序的服务器处接收到的查询被修改成包括用于查询存储在变更
    集中的数据和基本数据的语句。对基本数据和变更集执行经修改的查询,并且
    生成满足经修改的查询的结果并将其返回至作出请求的设备和/或实体。变更集
    和经修改的查询的生成以及经修改的查询的执行可以在不锁定基本数据的情
    况下进行。由此,某些实施方式允许设备和/或应用程序在其他设备和/或应用
    程序修改基本数据的同时访问基本数据。

    尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模
    块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其
    他实现可以结合其他类型的程序??槔粗葱?。一般而言,程序??榘ㄖ葱刑?br />定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的
    结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施此
    处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微
    处理器的或可编程消费电子产品、小型计算机、大型计算机等等。

    在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施方
    式或示例的附图。现在参考附图(全部若干附图中相同的标号表示相同的元
    素),将提出用于减少数据库期间的锁定的计算系统、计算机可读存储介质和
    计算机实现的方法的各方面。

    现在参考图1,将描述用于本文所提出的各实施方式的一个操作环境100
    的各方面。图1所示的操作环境100包括在网络104上操作或与网络104通信
    的服务器计算机102。服务器计算机102的功能可由一个或多个服务器计算机、
    台式计算机、移动电话、膝上型计算机、其他计算系统等来提供。

    服务器计算机102被配置成执行操作系统106以及诸如服务器应用程序
    108等一个或多个应用程序。操作系统106是用于控制服务器计算机102的操
    作的计算机程序。服务器应用程序108是被配置成在操作系统106上执行以提
    供此处描述的用于减少数据库事务期间的锁定的功能的应用程序。

    根据各实施方式,操作环境100还包括与网络104和/或服务器计算机102
    通信操作的一个或多个设备110。在一些实现中,设备110包括一个或多个个
    人计算机(“PC”),诸如台式、平板或膝上型计算机系统。设备110还可包
    括其他类型的计算系统,包括但不限于服务器计算机、手持式计算机、上网本
    计算机、嵌入式计算机系统、个人数字助理、移动电话、智能电话等。

    服务器应用程序108被配置成接收由一个或多个设备110生成的操作
    112,响应于操作112而访问主存在服务器计算机102可访问的一个或多个数
    据库116处的基本数据114,并且基于操作112来对基本数据114采取动作,
    如此处所描述的。根据各实施方式,操作112可包括用于读取基本数据114的
    查询或者用于修改基本数据114的修改。在一些实施方式中,操作112包括由
    设备110生成的一个或多个结构化查询语言(“SQL”)操作。

    更具体而言,在一些实施方式中,操作112包括用于从基本数据114中读
    取满足查询中指定的准则的一个或多个记录的一个或多个查询。服务器应用程
    序108被配置成生成满足查询的一个或多个结果118,并且将结果118提供给
    设备110来作为对查询的响应。在其他实施方式中,操作112包括对基本数据
    114的一个或多个修改。对基本数据114的“修改”不限于变更或修改基本数
    据114,而是改为广泛地用来指代对基本数据114的一个或多个记录的创建或
    添加、对基本数据114的一个或多个记录的修改、和/或对基本数据114的一个
    或多个记录的删除。

    数据库数据的更新通常要求在作出变更之前锁定正被更新的数据。这些锁
    可能对访问存储在数据库中的数据的其他用户或设备造成性能或准确性问题。
    例如,锁定可阻止其他设备和/或用户访问数据直到该数据被释放。尤其对于长
    运行事务而言,这些锁可造成其他问题,诸如冲突、死锁等。

    根据此处描述的各实施方式,服务器应用程序108被配置成在接收到修改
    时生成变更集120,而不是立即对基本数据114应用变更。由此,服务器应用
    程序108在设备110对基本数据114进行修改期间不锁定基本数据114。根据
    一些实现,变更集120包括用于存储与经由操作112请求的修改相对应的数据
    的表。如将在此处更详细地解释的,在各实施方式中,只存在一个基本数据114
    的集合,但可以存在一个或多个变更集120。具体而言,与服务器计算机102
    通信的每一个设备110可生成对该特定设备110而言是私有的和/或不与其他设
    备110共享或不对其可见的变更集120并对其进行操作。服务器应用程序108
    使用变更集120来补充服务器计算机102接收到的其他查询,之后向基本数据
    114提交变更集120中反映的变更。因此,因当理解,多个设备110能够同时
    与服务器102交互并与各个变更集120交互。由此,响应于相同或相似的查询,
    设备110可基于与设备110相关联的各个变更集120的内容而接收到不同的结
    果。

    服务器应用程序108还被配置成修改接收到的查询以访问存储在变更集
    120中的数据。更具体而言,服务器应用程序108被配置成将涉及基本数据114
    的查询修改成包括用于查询变更集120的语句。服务器应用程序108执行经修
    改的查询并向提交原始查询的设备110输出结果118。应当理解,查询可源自
    其他设备、节点或甚至服务器逻辑,而不一定来自设备110。例如,在一些实
    施方式中,服务器计算机102担当对于其自身的客户机并且用服务器逻辑生成
    查询。其他实施方式是可能的并被构想。由此,所示且所述实施方式应被理解
    为是示例性的,并且绝不应被解释为是限制性的。在一些实施方式中,服务器
    应用程序108通过生成与变更集120有关的一个或多个查询并且使用例如
    UNION(并)操作数来联接查询,来修改作为操作112接收到的查询。服务器
    应用程序108的这些和其他特征将参考以下图2-3来进一步理解。

    根据各实施方式,服务器应用程序108还被配置成确定何时已经接收到所
    有查询和修改。例如,服务器应用程序108可以从设备110接收到提交设备110
    所作出的所有变更的命令。另外地或另选地,设备110可终止与服务器计算机
    102的会话,和/或服务器应用程序108可确定已达到时间或操作配额,并且可
    终止源自设备110的事务。

    根据各实施方式,服务器应用程序108被配置成当该服务器应用程序确定
    服务器计算机102和设备110之间的事务已经结束时对基本数据114应用变更
    集120中的所有变更。因为所有查询修改、对基本数据114的更新以及与经修
    改的查询有关的计算都是在服务器计算机102上进行的,所以设备110能够免
    于处理和后处理操作,否则这些处理和后处理操作可能使设备110的性能降级
    和/或延长在更新期间锁定基本数据114的时间。由此,各实施方式允许减少数
    据库事务期间的数据锁定。

    图1示出了一个服务器计算机102、一个网络104、一个设备110以及一
    个数据库116。然而,应当理解,操作环境100的一些实现包括多个服务器计
    算机102、多个网络104、多个设备110和/或多个数据库116。由此,所示实
    施方式应被理解为是示例性的,并且绝不应被解释为是限制性的。

    现在转向图2,将详细描述基本数据114和变更集120的其他方面。更具
    体而言,图2是示意性地示出根据一示例性实施方式的用于基本数据114和变
    更集120的数据结构200的框图。如图2所示,数据结构200包括用于存储基
    本数据114的基本数据表202以及两个表;用于存储指示将对基本数据114作
    出的变更的数据的已变更记录表204和已删除记录表206。

    基本数据表202包括记录208A-D,其中每一个记录都包括用于存储记录
    标识符(“记录ID”)的字段210以用作基本数据表202的主键,以及用于
    存储与记录208相关联的数据的一个或多个字段。在所示实施方式中,每一个
    记录208都包括用于存储第一元素的值的字段212,以及用于存储第二元素的
    值的字段214。应当理解,基本数据表202可包括比所示基本数据表202更少
    或更多列、行和/或字段。由此,所示基本数据表202及其内容应被理解为是说
    明性的,而绝不应被解释为是限制性的。

    根据此处所描述的各实施方式,服务器应用程序108被配置成在接收到用
    于修改存储在数据库116的基本数据114的操作112时生成已变更记录表204
    和已删除记录表206。已变更记录表204和已删除记录表206用于存储对基本
    数据114作出的变更,而不是锁定基本数据114并且在接收到修改后更新基本
    数据114。由此,服务器应用程序108被配置成减少和/或避免与数据库事务相
    关联的数据锁定直到所有事务完成。对于长运行事务和/或事务串,这些实施方
    式能够基本上减少实现对基本数据114的更新所需的锁定的量。

    服务器应用程序108将变更存储在变更集120中直到与操作112相关联的
    用户或设备结束与服务器计算机102的事务,而不是在该用户或设备更新期间
    锁定基本数据114。当用户或设备结束与服务器计算机102的事务时,服务器
    应用程序108锁定基本数据114并且同时提交变更集120中反映的所有变更,
    由此减少或消除对基本数据114的任何非必要锁定。在一些实施方式中,服务
    器应用程序108被配置成在用户或设备与服务器计算机102之间的事务中止的
    情况下丢弃变更集120。此外,在一些实施方式中,变更集120中反映的变更
    以有序方式持久存储以避免死锁。

    在事务期间,服务器应用程序108被配置成不仅基于基本数据114,而且
    基于包括在变更集120中的数据来满足提交给服务器计算机102的查询。如上
    所述,对查询的修改和对查询的执行由服务器应用程序108来执行。由此,服
    务器应用程序108被配置成允许设备110避免为了反映在事务期间作出的变更
    而对结果118进行后处理,如上文中所解释的。该能力可提高设备110、服务
    器计算机102和数据库116的性能,并且能够减少锁定基本数据114以容纳对
    基本数据114的更新的时间量。

    根据一些实施方式,如图2所示,已变更记录表204具有与基本数据表
    202相同的布局。已变更记录表204存储与基本数据表202中已经由操作112
    变更的记录208相对应的数据。在所示示例中,已变更记录表204存储指示对
    基本数据表202中的记录208B作出的变更的记录216。如图2所示,存储在
    基本数据表202中的一个或多个记录208可以基于存储在相应的表202、204
    中的记录ID数据来与存储在已变更数据表204中的一个或多个记录216相关。

    已删除记录表206存储标识基本数据表202中已经由操作112删除的记录
    208的数据。根据各实施方式,已删除记录表206不具有与基本数据表202和/
    或已变更记录表204相同的布局,但不一定是这种情况。在所示实施方式中,
    已删除记录表206包括一个记录218,该记录指示基本数据表202中的记录
    208D已经由操作112删除。

    对基本数据表202、已变更记录表204和已删除记录表206的使用可通过
    考虑一些简要示例来理解。如果服务器应用程序108仅基于基本数据表202执
    行对具有“Value_2(值_2)”作为“Element_1(元素_1)”的值的记录的查
    询,则该查询将返回对应于记录ID“3”的记录。然而,如在已变更数据表204
    中所示出的,对基本数据表202和已变更记录表204执行的对具有“Value_2”
    作为“Element_1”的值的记录的查询将返回对应于记录ID“2”和“3”的记
    录。

    类似地,如果服务器应用程序108仅基于基本数据表202执行对具有
    “Value_3(值_3)”作为“Element_2(元素_2)”的值的记录的查询,则该
    查询将返回对应于记录ID“1”和“4”的记录。然而,如果服务器应用程序
    108基于基本数据表202和已删除记录表206来执行对具有“Value_3”作为
    “Element_2”的值的记录的查询,则该查询将只返回对应于记录ID“1”的记
    录。这些查询是示例性的并且仅仅是为了示出此处公开的概念和技术而提供
    的。由此,这些示例绝不应被解释为是示例性的。

    现在转向图3,将详细描述用于更新数据库的方法300的各方面。应该理
    解,不一定按任何特定次序来呈现此处公开的方法300的操作,并且构想了用
    替换次序来执行部分或全部操作是可能的。为了易于描述和说明,按所示次序
    来呈现各操作??梢栽诓槐忱胨饺ɡ笫榈姆段У那榭鱿绿砑?、省略和/
    或通知执行操作。

    还应当理解,所示方法300可以在任何时候结束并且不必完整地执行。该
    方法300的操作中的部分或全部和/或基本上等价的操作可以通过执行计算机
    存储介质上所包括的计算机可读指令来执行,这在下面予以定义。如在说明书
    和权利要求书中使用的术语“计算机可读指令”及其变型,在此处是用来广泛
    地包括例程、应用程序、应用程序???、程序???、程序、组件、数据结构、
    算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理
    器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处
    理器的可编程消费电子产品、其组合等等。

    因此,应该理解,此处所述的逻辑操作被实现为:(1)一系列计算机实现
    的动作或运行于计算系统上的程序???;和/或(2)计算系统内的互连的机器逻
    辑电路或电路???。取决于计算系统的性能及其他要求,可以选择不同的实现。
    因此,此处描述的逻辑操作被不同地称为状态操作、结构设备、动作或???。
    这些操作、结构设备、动作和??榭捎萌砑?、固件、专用数字逻辑以及其任何
    组合来实现。

    出于说明和描述本公开的概念的目的,在此公开的方法300被描述为由服
    务器计算机102执行的服务器应用程序108来执行。应该理解,该实施例是示
    例性的,并且不应被视为以任何方式构成限制??捎煞衿骷扑慊?02和/或其
    他设备执行另外和/或另选的应用程序以提供此处公开的功能,而不背离所附权
    利要求书的范围。

    方法300开始于操作302,其中服务器计算机102确定是否已经在服务器
    计算机102处接收到操作112。根据一些实施方式,方法300直到服务器计算
    机102确定服务器计算机102已经接收到操作112才在操作302之后继续。如
    果服务器计算机102确定已经接收到操作112,则方法300继续至操作304。

    在操作304,服务器计算机102确定接收到的操作112与对基本数据114
    的修改还是与同基本数据114有关的查询相对应。如果操作与对基本数据114
    的修改相对应,则方法300继续至操作306,其中服务器计算机102存储指示
    该修改的数据。服务器计算机102将指示该修改的数据存储为描述经由操作
    112请求的修改的变更集120。

    如上文中参考图1-2所解释的,存储在变更集120中的数据可被存储在
    与基本数据114相关联的一个或多个表中。在一些实施方式中,变更集120包
    括存储在已变更记录表204和已删除记录表206中的数据。变更集120能够与
    基本数据114一起存储在数据库116处,并且可由服务器计算机102用来满足
    与基本数据114有关的查询。

    如果服务器计算机102在操作304确定在操作302中接收到的操作112
    对应于查询,则方法300继续至操作308,其中服务器计算机102基于接收到
    的查询生成经修改的查询。如上文中参考图1-2所解释的,服务器应用程序
    108被配置成通过用对来自变更集120的数据的查询来补充对基本数据114的
    查询,来生成经修改的查询。

    在一个示例性实施方式中,服务器应用程序108用针对来自变更集120
    的数据的一个或多个语句来补充对来自基本数据114的数据的选择语句。参考
    图2所示的各张表,服务器计算机108将用语句“SELECT*FROM?
    BASE_DATA?WHERE?ELEMENT_1=’VALUE_1’AND(ID?NOT?IN(SELECT?
    ID?FROM?CHANGED_RECORDS))UNION(SELECT*FROM?
    CHANGED?RECORDS?WHERE?ELEMENT_1=’VALUE_1’)”来替换查询语句
    “SELECT*FROM?BASE_DATA?WHERE?ELEMENT_1=’VALUE_1’”。应当
    理解,在该示例中,服务器应用程序108已将原始语句修改成包括已变更记录
    表204中反映的更新。

    服务器应用程序108还可被配置成为已删除记录表206生成单独的查询和
    /或进一步修改经修改的查询以包括用于过滤掉已删除记录的语句。返回到上述
    示例,服务器应用程序108能够用语句“SELECT*FROM?BASE_DATA
    WHERE?ELEMENT_1=’VALUE_1’AND(ID?NOT?IN(SELECT?ID?FROM?
    CHANGED_RECORDS))AND(ID?NOT?IN(SELECT?ID?FROM?
    DELETED_RECORDS))UNION(SELECT*FROM?CHANGED_RECORDS
    WHERE?ELEMENT_1=’VALUE_1’)”来替换经修改的查询。因此,应当理解,
    在该示例中,服务器应用程序108已将查询修改成反映存储在已变更记录表
    204和已删除记录表206中的数据,由此产生反映基本数据114和变更集120
    中的数据的结果118。

    方法300从操作308继续至操作310,其中服务器应用程序108运行经修
    改的查询并且向生成操作112的实体提供使用经修改的查询来获取的结果。方
    法300从操作310和306继续至操作312,其中服务器应用程序108确定设备
    110和服务器计算机102之间的事务是否已经结束。如果服务器应用程序108
    确定设备110和服务器计算机102之间的事务尚未结束,则方法300返回到操
    作302,其中服务器计算机102等待从设备110接收到另一操作112。如果服
    务器应用程序108确定设备110和服务器计算机102之间的事务已经结束,则
    方法300继续至操作314。

    在操作314,服务器应用程序108将变更集120所反映的变更提交给基本
    数据114。由此,基本数据114被更新成反映变更集120中所指示的变更。如
    上所述,服务器应用程序108只在对基本数据114应用变更集120所反映的变
    更时才锁定基本数据114。然而,为了避免死锁,这些锁定的次序必须对所有
    并发操作相同。在一些实施方式中,这由于变更集120包含所有修改并且对修
    改的排序在不管修改的原始次序的情况下完成而实现。服务器应用程序108删
    除在已删除记录表206中被指示为已删除的任何记录216,并且更新与在已变
    更记录表204中被指示为已变更的记录216相对应的任何记录208。服务器应
    用程序108将已更新的数据存储在数据库116,并且丢弃变更集120和/或清除
    已变更记录表204和/或已删除记录表206的内容。方法300在操作316结束。

    如上所述,此处所描述的概念和技术的实施方式允许设备110避免执行高
    速缓存维护和/或对查询结果的后处理,因为计算在服务器计算机102处由服务
    器应用程序108来执行。另外,因为变更是对变更集120而不是基本数据114
    作出的,所以相对于可以在使用设备高速缓存和/或后处理操作的情况下锁定基
    本数据114的持续时间,能够减少锁定基本数据114的持续时间。由此,数据
    库116、设备110和/或服务器计算机102的性能可以提高胜过减少数据锁定的
    其他方法。

    尽管未在上文中描述,但此处所描述的概念和技术的一个实施方式包括取
    决于需求、期望和/或偏好来选择性地使用局部临时表和全局临时表来存储变更
    集120。由此,在一些实施方式中,变更集120被存储在全局临时表中,由此
    允许其他设备和应用程序访问变更集120以允许如由变更集120修改的基本数
    据114的当前视图。

    根据一些实施方式,服务器应用程序108在任何特定时刻只锁定变更集
    120的一个表。由此,在一些实施方式中,在任何时刻只可锁定已更新记录表
    204或已删除记录表206中的一个。由此,基本数据114以及已更新记录表204
    或已删除记录表206中的一个将在任何时刻被解锁,除非变更集中的变更被提
    交给基本数据114。如上所述,在一些实施方式中,服务器应用程序108为每
    一个用户生成变更集120和/或变更集120包括局部临时表而不是全局临时表。
    由此,变更集120的表在更新期间锁定,但因为只有一个用户可访问变更集120
    的表,所以对表的锁定不影响性能或可伸缩性。同样,在一些实施方式中,变
    更集120中的变更集被存储为“Δ(delta)”,由此允许针对同一数据的多个
    操作和/或更新,而不在提交操作和/或更新的多个实体之间生成冲突。

    图4示出了能够执行此处所描述的用于减少数据库事务期间的锁定的软
    件组件的设备的示例性计算机体系结构400。因此,图4中所示的计算机体系
    结构400示出了用于服务器计算机、台式计算机、上网本计算机、平板计算机、
    膝上型计算机、智能电话、和/或其他计算设备的体系结构。计算机体系结构
    400可用于执行此处所呈现的软件组件的任何方面。

    图4所示的计算机体系结构400包括中央处理单元402(“CPU”)、包
    括随机存取存储器404(“RAM”)和只读存储器(“ROM”)406的系统存
    储器408、以及将存储器404耦合至CPU?402的系统总线410?;臼淙?输出
    系统被存储在ROM?408中,该系统包含帮助诸如在启动期间计算机体系结构
    400中的元件之间传递信息的基本例程。计算机体系结构400还包括用于存储
    操作系统106和服务器应用程序108的大容量存储设备412。尽管未在图4中
    示出,但大容量存储设备412还可被配置成在需要时存储基本数据114和/或变
    更集120。

    将大容量存储设备412通过连接到总线410的大容量存储控制器(未示出)
    连接到CPU?402。大容量存储设备412及其相关联的计算机可读介质为计算机
    体系结构400提供非易失性存储。尽管对此处包含的计算机可读介质的描述参
    考了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术
    人员应当理解,计算机可读介质可以是可由计算机体系结构400访问的任何可
    用计算机存储介质。

    作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可
    读指令、数据结构、程序??榛蚱渌莸男畔⒌娜魏畏椒ɑ蚣际跏迪值囊资?br />性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于:
    RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、
    数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、
    磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息并且可
    以由计算机体系结构400访问的任何其他介质。为了本说明书和权利要求书的
    目的,短语“计算机可读存储介质”及其变型不包括波、信号和/或其他瞬态和
    /或无形通信介质。

    根据各实施例,计算机体系结构400可以使用通过诸如网络104之类的网
    络到远程计算机的逻辑连接来在联网环境中操作。计算机体系结构400可以通
    过连接至总线410的网络接口单元414来连接到网络104。应当理解,网络接
    口单元414也可以用于连接至其它类型的网络和远程计算机系统,例如一个或
    多个设备110、数据库116和/或其他节点或设备。计算机体系结构400还可以
    包括用于接收和处理来自多个其他设备的输入的输入/输出控制器416,这些设
    备包括键盘、鼠标或者电子指示笔(未在图4中示出)。类似地,输入/输出控
    制器416可以提供至显示屏、打印机或其他类型的输出设备(也未在图4中示
    出)的输出。

    应当理解,本文所描述的软件组件在被加载到CPU?402中并被执行时可
    以将CPU?402和总体计算机体系结构400从通用计算系统变换成为方便本文所
    提出的功能而定制的专用计算系统。CPU?402可从任何数目的晶体管或其他分
    立电路元件中构造,这些元件可以单独或共同承担任何数目的状态。更具体地,
    CPU?402可以响应于包含在本文所公开的软件??橹械目芍葱兄噶罾醋魑?br />限状态机操作。这些计算机可执行指令可以通过指定CPU?402如何在各状态之
    间转换来变换CPU?402,由此变换了构成CPU?402的晶体管或其它分立硬件元
    件。

    对本文所提出的软件??榈谋嗦胍部杀浠槐疚乃岢龅募扑慊啥两橹?br />的物理结构。在本说明书的不同的实现中,物理结构的具体变换可取决于各种
    因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读介质的
    技术,计算机可读介质被表征为主存储器还是辅存储器等等。例如,如果计算
    机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换
    半导体存储器的物理状态而在计算机可读介质上编码。例如,软件可以变换构
    成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可变换
    这些组件的物理状态以在其上存储数据。

    作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术来实
    现。在这些实现中,本文所提出的软件可以在其中编码了软件时变换磁或光介
    质的物理状态。这些变换可包括更改给定磁性介质内的具体位置的磁性。这些
    变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这
    些位置的光学特性。物理介质的其它变换是可能的,而不脱离本说明书的范围
    和精神,而上述示例仅仅是为了方便这一讨论而提供的。

    鉴于以上内容,应当理解,在计算机体系结构400中发生许多类型的物理
    变换以便存储并执行在此所提出的软件组件?;褂Φ崩斫?,计算机体系结构400
    可包括其它类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数
    字助理、以及本领域技术人员已知的其它类型的计算设备?;箍梢怨瓜氲氖?,
    计算机体系结构400可以不包括图4所示的全部组件,可以包括未在图4中明
    确示出的其它组件,或者可利用完全不同于图4所示的体系结构。

    基于上述内容,应当理解,本文已经公开了用于减少数据库事务期间的锁
    定的技术。尽管用对计算机结构特征、方法和变换动作、特定计算机器和计算
    机可读介质专用的语言描述了本文所提出的主题,但可以理解,所附权利要求
    书中定义的本发明不必限于本文所述的具体特征、动作或介质。相反,这些具
    体特征、动作和介质是作为实现权利要求的示例形式来公开的。

    上述主题仅作为说明提供,并且不应被解释为限制??啥源舜γ枋龅闹魈?br />作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离
    所附权利要求书中所述的本发明的真正精神和范围。

    关于本文
    本文标题:减少数据库事务期间的锁定.pdf
    链接地址://www.4mum.com.cn/p-5817418.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 内蒙古十一选五开奖视频 qka斗地主赢话费 时时彩怎么买才稳赚 养龙猫卖赚钱吗 天津十一选五玩法介绍及奖金 nba怎么投注 为什么骰宝人人都输 keno技巧 赌场职业转盘绝密技巧 北京pk10基本走势图 易到怎么跑才赚钱 江苏十一选五走势图表 11选5任选8稳赚技巧 澳客网北京单场胜平负 双色球开奖走势图坐标连线 AG惊吓鬼屋游戏下载