CN102667733B - 数据访问装置、数据访问方法以及数据访问程序 - Google Patents

数据访问装置、数据访问方法以及数据访问程序 Download PDF

Info

Publication number
CN102667733B
CN102667733B CN201080039992.9A CN201080039992A CN102667733B CN 102667733 B CN102667733 B CN 102667733B CN 201080039992 A CN201080039992 A CN 201080039992A CN 102667733 B CN102667733 B CN 102667733B
Authority
CN
China
Prior art keywords
data access
access request
data
unit
account
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201080039992.9A
Other languages
English (en)
Other versions
CN102667733A (zh
Inventor
广濑纯一郎
川岛彻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Group Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Publication of CN102667733A publication Critical patent/CN102667733A/zh
Application granted granted Critical
Publication of CN102667733B publication Critical patent/CN102667733B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据访问装置,其具备顺序存储单元,针对多个存储在数据存储单元中的每一个数据单位,可以预先存储对该数据单位中所有数据的访问顺序。同时,该装置可以受理并存储对数据存储单元中所存储的多个数据单位中任意一个数据单位的多次数据访问请求,可以根据存储在顺序存储单元中前面所提及的数据访问顺序来判定所存储的多个数据访问请求的执行顺序,而且可以锁定作为由数据访问请求决定的访问对象的数据单位,根据所判定的执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,并且对所有存储的数据访问请求在进行数据访问请求处理之后,解除全部锁定。

Description

数据访问装置、数据访问方法以及数据访问程序
技术领域
本发明涉及一种避免死锁(dead lock)并且高效地进行数据访问的技术。
本申请基于2009年10月30日在日本申请的特愿2009-250513号来要求优先权,并在此引用其内容。
背景技术
在计算机处理中,有时会由于进行并行处理的过程(process)或者线程(thread)等的多个处理单位等待彼此的处理结束而导致所有的处理均未结束而发生死锁。例如,在多个处理单位对同一数据文件、数据库表格中所包含的数据进行更新时,为了保持数据的一致性有时以不被其它处理单位更新的方式锁定数据来进行排他控制。在这样的情况下,有时多个处理单位由于彼此等待锁定的数据的释放而成为停止状态。
为了避免这样的死锁,例如在专利文献1中出示了如下这样的技术:在对多个文件进行数据更新有可能发生死锁的情况下,预先锁定作为更新对象的全部数据,然后进行更新。在专利文献2中出示了如下这样的技术:将作为更新对象的数据读入到虚拟区域中,在虚拟区域中进行运算处理之后锁定数据,仅将运算结果反映在数据中。
现有技术文献
专利文献
专利文献1:日本特开2002-7148号公报;
专利文献2:日本特开2008-165272号公报。
发明概要
本发明要解决的问题
可是,在专利文献1记载的技术中,由于预先锁定作为访问对象的多个数据的全部,并在访问处理结束之后解除锁定,所以对被锁定的数据进行访问处理的全部其它处理单位均处在等待状态,损害了处理并行性,造成吞吐量(throughput)恶化。在专利文献2记载的技术中,在将作为更新对象的数据读入到虚拟区域中之后直到反映在真实数据中为止的期间内进行其它访问处理等情况下,会因为排他错误而进行回滚(roll back)等的处理。这在数据访问处理集中的情况下排他错误会频发,造成处理性能恶化。
本发明是鉴于这样的状况而做出的。本发明提供一种可以避免死锁并且保持高效的处理性能而进行数据访问的数据访问装置、数据访问方法以及数据访问程序。
用于解决问题的方案
为了解决上述的问题,本发明是一种数据访问装置,对多个数据单位中的每一个进行存储数据的数据存储单元进行访问,其中,具备:顺序存储单元,预先存储对数据单位中包含的数据进行访问的顺序;数据访问请求存储单元,存储对数据存储单元中存储的多个数据单位中任一个数据单位的数据访问请求;数据访问请求注册单元,受理多个数据访问请求,并使数据访问请求存储单元存储该受理的多个数据访问请求;执行顺序排序单元,根据存储在顺序存储单元中的顺序,判定存储在数据访问请求存储单元中的多个数据访问请求的执行顺序;以及数据访问请求执行单元,锁定作为由数据访问请求决定的访问对象的数据单位,根据由执行顺序排序单元所判定的执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,并且在数据访问请求存储单元中的所有存储的数据访问请求在进行数据访问请求执行处理之后,解除对数据单位所进行的全部锁定。
在本发明的数据访问装置中,数据访问请求注册单元受理对多个数据单位的多个数据访问请求进行预先对应的业务处理请求,也可以使数据访问请求存储单元存储与输入的该业务处理请求相对应的数据访问请求。
再者,在本发明的数据访问装置中,可以在顺序存储单元中,以多个数据单位中的访问频度相对高的数据单位被确定为相对靠后的顺序、访问频度相对低的数据单位被确定为相对靠前的顺序的方式进行存储。
此外,本发明是一种数据访问装置的数据访问方法,其中该数据访问装置具备:对多个数据单位中的每一个进行存储数据的数据存储单元、预先存储对数据单位中包含的数据进行访问的顺序的顺序存储单元、以及存储对数据存储单元中存储的多个数据单位中任一个数据单位的数据访问请求的数据访问请求存储单元。该数据访问方法包含:受理多个数据访问请求,并使数据访问请求存储单元存储该受理的多个数据访问请求的步骤;根据存储在顺序存储单元中的顺序,判定存储在数据访问请求存储单元中的多个数据访问请求的执行顺序的步骤;以及锁定作为由数据访问请求决定的访问对象的数据单位,根据判定的执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,并且在数据访问请求存储单元中的所有存储的数据访问请求在进行数据访问请求执行处理之后,解除对数据单位所进行的全部锁定的步骤。
此外,本发明是一种数据访问程序,该程序使具备:对多个数据单位的每一个进行存储数据的数据存储单元、预先存储对数据单位中包含的数据进行访问的顺序的顺序存储单元、以及存储对数据存储单元中存储的多个数据单位中任一个数据单位的数据访问请求的数据访问请求存储单元的数据访问装置的计算机,执行如下步骤:受理多个数据访问请求,并使数据访问请求存储单元存储该受理的多个数据访问请求的步骤;根据存储在顺序存储单元中的顺序,判定存储在数据访问请求存储单元中的多个数据访问请求的执行顺序的步骤;以及锁定作为由数据访问请求决定的访问对象的数据单位,根据判定的执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,并且在数据访问请求存储单元中的所有存储的数据访问请求在进行数据访问请求执行处理之后,解除对数据单位所进行的全部锁定的步骤。
发明效果
根据本发明,在数据访问装置中,既可以避免死锁并且保持高效的处理性能,又可以进行数据访问。
附图说明
图1是表示本发明的一个实施方式的数据访问装置的结构例的框图。
图2是表示本发明的一个实施方式的业务处理的例子的图。
图3是表示本发明的一个实施方式的存储在存储单元中的表格关系的ER图。
图4是表示本发明的一个实施方式的存储在账户表格中的信息的数据例的图。
图5是表示本发明的一个实施方式的存储在账户更新明细表格中的信息的数据例的图。
图6是表示本发明的一个实施方式的存储在保有商品表格中的信息的数据例的图。
图7是表示本发明的一个实施方式的存储在库存更新明细表格中的信息的数据例的图。
图8是表示本发明的一个实施方式的业务处理描述机构的例子的类(class)图。
图9是表示通过本发明的一个实施方式进行实例化的业务处理单元和DB访问单元的例子的图。
图10是表示本发明的一个实施方式的存储在DB访问规则存储单元中的信息的数据例的图。
图11是表示本发明的一个实施方式的数据访问装置的工作例的流程图。
图12是表示本发明的一个实施方式的数据访问装置的工作例的顺序(sequence)图。
图13是表示本发明的一个实施方式的数据访问装置的工作例的顺序图。
图14A是表示利用现有技术的数据访问处理的业务处理图像(image)的图。
图14B是表示本发明的一个实施方式的数据访问处理的业务处理图像的图。
图15是表示利用现有技术而发生死锁的示例图。
图16是表示利用本实施方式来进行基于多个事务处理(transaction)的数据访问的示例图。
图17是表示利用本实施方式来进行基于多个事务处理的数据访问的示例图。
具体实施方式
以下,针对本发明的一个实施方式,参照附图进行说明。图1是表示本实施方式的数据访问装置10的结构例的框图。数据访问装置10是计算机装置,其具备:业务处理描述机构a、数据库(DB)访问控制机构b、以及数据库(DB)11。业务处理描述机构a具备多个业务处理单元13-1、13-2、…以及多个DB访问单元14-1、14-2、14-3、14-4、…。DB访问控制机构b为了控制利用这样的业务处理单元和DB访问单元的数据访问而具备:业务处理注册单元15、DB访问规则存储单元17、DB访问排序单元18和DB访问执行单元19。
在本实施方式中,对数据访问装置10进行如图2所示那样的所谓的复合交易的业务处理的例子进行说明。复合交易是指同时进行商品的交货和等价支付的业务。在此,例如参与者X将保有的商品P对参与者Y交货n个(步骤S1),与此相对地,参与者Y对参与者X实施商品P的n个的量的金额的支付(步骤S2)。
回到图1,DB11是对多个数据单位的每一个来存储数据的数据存储单元。在本实施方式中,在DB11中,将对应每列数据的表格作为数据单位,存储有多个表格(账户表格12-1、账户更新明细表格12-2、保有商品表格12-3、库存更新明细表格12-4、…)。在此,虽然以这样的4个表格为例进行了说明,但在DB11中也可以存储对应于业务要件的任意的多个表格。图3是表示存储在DB11中的表格的关系的ER(Entity Relationship:实体关系)图。
图4是表示存储在账户表格12-1中的信息的数据例的图。在账户表格12-1中,对每个账户号码对应地存储表示该账户的余额信息。在此,将对应于参与者X的账户设为“00x”,将对应于参与者Y的账户设为“00y”来进行说明。
图5是表示账户更新明细表格12-2的数据例的图。在账户更新明细表格12-2中对应地存储了账户号码、交易类别、交易金额、交易后余额以及更新日期。账户号码是与存储在账户表格12-1中的账户号码相对应的信息。交易类别是表示进款和支款的任意一种的信息。交易金额是表示在对应的账户中交易金额的信息。交易后余额是表示在进行了对应的交易之后的账户余额的信息。更新日期是表示进行对应的交易并在账户更新明细表格12-2中存储信息时的日期信息。
图6是表示保有商品表格12-3的数据例的图。在保有商品表格12-3中对应地存储了所有人、商品码以及库存的信息。所有人是识别保有对应的商品的所有人(参与者)的信息。商品码是识别对应的所有人所保有的商品的信息。库存是表示对应的商品码所出示的商品的库存数量的信息。
图7是表示库存更新明细表格12-4的数据例的图。在库存更新明细表格12-4中对应地存储了所有人、商品码、库存更新类别、更新后库存数量以及更新日期的信息。所有人是与存储在保有商品表格12-3中的所有人相对应的信息。商品码是与存储在保有商品表格12-3中的商品码相对应的信息。库存更新类别是表出示库和入库的任意一个的信息。更新后库存数量是表示在进行了对应的更新之后的库存数量的信息。更新日期是表示进行了对应的更新并在库存更新明细表格12-4中存储信息时的日期信息。
图8是表示本实施方式的业务处理描述机构a所具备的各单元的实施例的类图。
例如,将业务处理单元13-0定义为业务处理单元13-1、13-2的父类(super class)。在业务处理单元13-0中对取得预先对应的DB访问单元14-1~14-4的方法(method)进行定义。此外,定义作为继承业务处理单元13-0的子类的业务处理单元13-1(账户更新业务处理单元)和业务处理单元13-2(商品库存更新业务单元)。例如,业务处理单元13-1实施从对应于所有人Y的账户00y向对应于所有人X的账户00x进行资金转移的业务处理。另一方面,业务处理单元13-2进行向所有人Y交付所有人X所持有的商品码P的库存的业务处理。将多个DB访问单元14-1~14-4与各个业务处理单元13-1、13-2对应起来,该多个DB访问单元14-1~14-4伴随着商品的交付进行账户表格、保有商品表格等中的一系列业务处理所需要的数据访问请求。
DB访问单元14-1~14-4对存储在DB11中的多个表格12-1~12-4中的任意一个表格进行数据访问请求。在此,数据访问是指例如数据的创建(Create)、读出(Read)、更新(Update)、删除(Delete)等的处理。将DB访问单元14-0定义为DB访问单元14-1~14-4的父类。此外,作为继承DB访问单元14-0的子类,定义:对账户表格12-1进行数据访问的DB访问单元14-1(账户DB访问单元);对账户更新明细表格12-2进行数据访问的业务处理单元14-2(账户更新明细DB访问单元);对保有商品表格12-3进行数据访问的DB访问单元14-3(商品DB访问单元);以及对库存更新明细表格12-4进行数据访问的DB访问单元14-4(库存更新明细DB访问单元)。
图9是表示基于图8中出示的类结构而在本实施方式中被实例化的业务处理单元13-1a以及13-2a和DB访问单元14-1a、14-1b、14-2a、14-2b、14-3a、14-3b、14-4a以及14-4b的示例图。业务处理单元13-1a是进行从账户“00y”向账户“00x”转移100日元的业务处理的实例。业务处理单元13-1a生成预先对应的4个DB访问单元的实例,即,DB访问单元14-1a、DB访问单元14-1b、DB访问单元14-2a和DB访问单元14-2b的实例。在此,DB访问单元14-1a和DB访问单元14-1b是指进行对账户表格12-1的数据访问的处理单元。DB访问单元14-1a从账户“00y”的余额中减去100日元,DB访问单元14-1b在账户“00x”的余额中加上100日元。DB访问单元14-2a和DB访问单元14-2b是指进行对账户更新明细表格12-2的数据访问的处理单元。DB访问单元14-2a对账户“00y”的支款明细进行更新,DB访问单元14-2b对账户“00x”的进款明细进行更新。
业务处理单元13-2a是进行从参与者X向参与者Y转移1个商品P的业务处理的实例。业务处理单元13-2a生成预先对应的4个DB访问单元的实例,即,DB访问单元14-3a、DB访问单元14-3b、DB访问单元14-4a和DB访问单元14-4b的实例。在此,DB访问单元14-3a和DB访问单元14-3b是指进行对保有商品表格12-3的数据访问的处理单元。DB访问单元14-3a将X的商品P的库存数量减去1个,DB访问单元14-3b将Y的商品P的库存数量加上1个。DB访问单元14-4a和DB访问单元14-4b是指对库存更新明细表格12-4进行数据访问的处理单元。DB访问单元14-4a对X的库存的明细更新出库明细进行更新,DB访问单元14-4b对Y的库存更新明细的入库明细进行更新。
回到图1,业务处理注册单元15是根据存储在DB11中的数据单位的每一个来受理数据访问请求并使自身的存储区域所具备的业务处理存储单元16存储该受理的数据访问请求的数据访问请求注册单元。业务处理注册单元15受理多个DB访问单元14-1~14-4中的任意一个DB访问单元的注册,并可以将其存储在业务处理存储单元16中,但在本实施方式中出示如下例子:业务处理注册单元15受理预先对应于对多个数据单位的多个DB访问单元的业务处理单元,使业务处理存储单元16存储所输入的业务处理单元。具体而言,业务处理注册单元15使业务处理存储单元16存储实例化后的业务处理单元13-1和业务处理单元13-2。即,业务处理注册单元15受理预先对应于对多个数据单位的多个数据访问请求(DB访问单元14-1~14-4)的业务处理请求(业务处理单元13-1以及13-2),并将其存储在业务处理存储单元16中。
业务处理存储单元16是对在DB11中存储的多个数据单位中的任意一个数据单位的数据访问请求进行存储的数据访问请求存储单位。在本实施方式中,具体而言,存储实例化后的业务处理单元13-1以及业务处理单元13-2。如上所述,将进行数据访问请求的多个DB访问单元14-1~14-4与这些业务处理单元13-1和业务处理单元13-2对应起来。
DB访问规则存储单元17是针对存储在DB11中的数据的数据单位的每一个而预先存储对该数据单位中所包含的数据进行访问的顺序的顺序存储单元。图10是表示在DB访问规则存储单元17中所存储的DB访问规则的数据例的图。在此,每个DB表格名称对应于该DB表格的顺序(DB表格更新顺序)。例如,账户表格,对应了顺序“3”,账户更新明细表格,对应了顺序“4”,保有商品表格,对应了顺序“1”,库存更新明细表格,对应了顺序“2”。在此,以多个数据单位(表格)中的访问频度相对高的数据单位被确定为相对靠后的顺序、访问频度低的数据单位被确定为相对靠前的顺序的方式进行存储。由此,如果更新的顺序靠后,则表格被锁定的时间将变短相应的量,因此能提高与其它处理单位的处理并行性。即,例如,在账户的访问频度多于商品的访问频度为特征的情况下,使账户的访问的顺序靠后于商品。接着,由于明细类不在实施账户、商品的操作之后就无法得到更新后的信息,所以根据业务上的含义顺序,使明细类的次序靠后于账户类。像这样,作为用于使访问顺序独一无二的想法,结合作为业务要件的访问顺序和作为伴随着访问集中的性能对策的访问顺序来决定访问顺序的规则。除了像这样对应于每个表格的访问频度来确定顺序之外,例如,也可以按照记录顺序(账户号码顺序)来确定访问顺序、或对应于每个记录的访问频度来确定访问顺序。
DB访问排序单元18是根据存储在DB访问规则存储单元17中的顺序,判定在业务处理注册单元15的业务处理存储单元16中存储的多个数据访问请求的执行顺序的执行顺序排序单元。具体而言,DB访问排序单元18提取出对应于存储在业务处理存储单元16中的多个业务处理单元13-1、13-2的实例的多个DB访问单元14-1~14-4的实例,基于以提取出的DB访问单元的实例为更新对象的表格和存储在DB访问规则存储单元17中的顺序,判定DB访问单元14-1~14-4的实例的执行顺序。
DB访问执行单元19是如下这样的数据访问请求执行单元:锁定存储在业务处理存储单元16中的作为由数据访问请求决定的访问对象的数据单位,根据DB访问排序单元18所判定的执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,并且在对业务处理存储单元16中的存储的所有的数据访问请求在进行数据访问请求执行处理之后,解除对数据单位所进行的全部锁定。具体而言,DB访问执行单元19根据由DB访问排序单元18判定的执行顺序,使DB访问单元14-1~14-4的实例执行数据访问。此时,DB访问执行单元19针对成为由DB访问单元14-1~14-4的实例决定的更新对象的表格的每一个,来锁定更新对象表格。DB访问执行单元19在利用全部的DB访问单元14-1~14-4的实例的访问处理完成之后,解除全部的锁定。
接着,对本实施方式的数据访问装置10的工作例进行说明。图11是表示本实施方式中的数据访问装置10的工作例的流程图。数据访问装置10首先生成对应于业务处理要件的业务处理单元13-1、13-2的实例。此外,生成的业务处理单元13-1、13-2生成与自身对应的多个DB访问单元14-1~14-4的实例(步骤S10)。接着,业务处理注册单元15将生成的业务处理单元13-1、13-2的实例注册在业务处理存储单元16中(步骤S11)。数据访问装置10在进行其它业务处理单元13的注册的情况下(步骤S12:有业务处理单元),回到步骤S10。
在步骤S12中未进行其它业务处理单元的注册的情况下(步骤S12:业务处理单元注册完成),DB访问执行单元19从存储在业务处理存储单元16中的业务处理单元中取出与该业务处理单元对应的DB访问单元14-1~14-4(步骤S13)。DB访问排序单元18基于存储在DB访问规则存储单元17中的顺序判定执行顺序,对DB访问单元14-1~14-4进行排序(步骤S14)。DB访问执行单元19根据由DB访问排序单元18判定的顺序,执行利用DB访问单元14-1~14-4的数据访问处理(步骤S15)。
如果在步骤S15中执行的数据访问处理异常结束,则DB访问执行单元19对更新后的数据进行回滚,执行已确定的例外处理(步骤S17),然后结束处理。在步骤S15中执行的数据访问处理正常结束之后,如果存在未执行的其它DB访问单元,则DB访问执行单元19回到步骤S15(步骤S18:有DB访问单元)。如果与存储在业务处理存储单元16中的业务处理单元13对应的全部DB访问单元14-1~14-4的数据访问处理结束(步骤S18:全部执行结束),则结束处理。
在此,在数据访问装置10生成了业务处理单元13-1、13-2的实例时,业务处理单元13-1、13-2生成与自身对应的多个DB访问单元14-1~14-4的实例,虽然以此为例进行了说明,但是在业务处理单元13-1、13-2的注册后、执行前(例如,步骤S13之前)也可以生成DB访问单元14-1~14-4的实例。
图12以及图13是更具体地出示了参照图11已说明的数据访问装置10的工作例的顺序图。数据访问装置10生成作为从参与者X向参与者Y转移1个商品P的业务处理单元13-2的实例的业务处理单元13-2a(步骤S21)。数据访问装置10将生成的业务处理单元13-2a注册在业务处理注册单元15中。业务处理注册单元15受理业务处理单元13-2a的注册(步骤S22)。
接着,数据访问装置10生成作为从对应于参与者Y的账户00y向对应于参与者X的账户00x转移100日元的业务处理单元13-1的实例的业务处理单元13-1a(步骤S23)。数据访问装置10将生成的业务处理单元13-1a注册在业务处理注册单元15中。业务处理注册单元15受理生成的业务处理单元13-1a的注册(步骤S24)。
数据访问装置10对业务处理注册单元15进行数据访问的执行请求(步骤S25)。一旦DB访问执行单元19读出存储在业务处理注册单元15中的多个业务处理单元13的实例(步骤S26、S27),业务处理单元13-2a生成与自身对应的DB访问单元14-3a、DB访问单元14-4a、DB访问单元14-3b以及DB访问单元14-4b的实例(步骤S28~S31)。
进入到图13中,业务处理单元13-1a生成与自身对应的DB访问单元14-1a、DB访问单元14-2a、DB访问单元14-1b以及DB访问单元14-2b的实例(步骤S32~S36)。DB访问排序单元18基于由业务处理单元13-2a生成的并存储在业务处理注册单元15中的多个DB访问单元14的实例以及由业务处理单元13-1a生成的并存储在业务处理注册单元15中的多个DB访问单元14的实例,判定数据访问的执行顺序(步骤S37)。
DB访问执行单元19基于由DB访问排序单元18判定出的执行顺序,首先锁定保有商品表格12-3,执行对保有商品表格12-3进行数据访问的DB访问单元14-3a和DB访问单元14-3b(步骤S38、S39)。接着,锁定库存更新明细表格12-4,执行对库存更新明细表格12-4进行数据访问的DB访问单元14-4a和DB访问单元14-4b(步骤S40、S41)。接着,锁定账户表格12-1,执行对账户表格12-1进行数据访问的DB访问单元14-1b和DB访问单元14-1a(步骤S42、S43)。接着,锁定账户更新明细表格12-2,执行对账户更新明细表格12-2进行数据访问的DB访问单元14-2b和DB访问单元14-2a(步骤S44、S45)。
像这样,既能避免在并行地进行处理的多个处理单位之间的死锁且保持高效的处理性能的同时,又能进行数据访问。
接着,为了更加明确地说明本发明的实施方式,针对现有技术以及本实施方式的数据访问处理进行说明。在该处理中,针对如下的“X交易”的处理进行例示:核对输入信息和记录的信息a以及b,进行规定的计算,更新数据库,对信息c进行累加计数(count up)。
图14A是表示利用现有技术的数据访问处理的业务处理图像,图14B是表示利用本实施方式的数据访问处理的业务处理图像。在现有技术中,在对A表格、B表格、C表格进行访问的情况下,锁定A表格读入信息a,之后,锁定B表格读入信息b,锁定C表格读入信息c。在全部的计算处理、访问处理完成之后,解除锁定。
与此相对地,如图14B所示,在本实施方式中,在进行了业务处理的注册之后,对与业务处理对应的DB访问单元进行排序,按照每个表格依次进行锁定和数据访问的处理。由此,与以往相比能使各个数据单位的锁定时间变短。进而,通过在对访问频度相对低的其它数据单位的更新之后进行对访问频度相对高的数据单位的更新,从而能进一步缩短访问频度高的数据单位的锁定时间。
图15是表示在利用余额的削减和增加来进行钱的转移的业务处理的逻辑(logic)构成情况下以现有技术利用多个处理单位(事务处理)来进行数据访问的例子的顺序图。例如,事务处理1(Tr1)锁定A账户进行余额的削减(步骤S51),事务处理2(Tr2)锁定B账户进行余额的削减(步骤S52)。接着,在Tr1欲进行对B账户的余额增加的情况下(步骤S53),由于B账户因Tr2而被锁定,所以余额增加的处理变为等待。同样地,在Tr2欲进行对A账户的余额增加的情况下(步骤S54),由于A账户因Tr1而被锁定,所以发生了死锁,不能访问数据。
与此相对地,图16是表示应用本实施方式的数据访问装置10,利用多个事务处理Tr1以及Tr2来进行数据访问的例子的顺序图。DB访问规则的定义为从B账户到A账户的顺序。
在事务处理Tr1中注册了业务处理单元之后,当判定DB访问单元的执行顺序时(步骤S61),根据DB访问规则以B账户、A账户的顺序进行数据访问。即,针对B账户进行100日元余额的增加(步骤S63),之后针对A账户进行100日元余额的削减(步骤S64)。另一方面,在事务处理Tr2中注册了业务处理单元之后,在判定了DB访问单元的执行顺序的情况下(步骤S62),也以B账户、A账户的顺序进行数据访问。即,针对B账户进行50日元余额的削减(步骤S63),之后针对A账户进行50日元余额的增加(步骤S66)。像这样,在任意一个事务处理中均从对B账户的数据访问开始进行处理,之后处理对A账户的数据访问。因此,能避免死锁。
图17是一边避免死锁一边缩短访问频度高的A账户的锁定时间并提高了同时处理并行性的例子。
在该例子中,应用本实施方式的数据访问装置10,对A~D账户利用多个事务处理Tr1、Tr2、Tr3以及Tr4来进行数据访问。DB访问规则的定义为B账户、C账户、D账户、A账户的顺序。A账户是访问频度最高的账户。
进而,如果应用在本实施方式中所示那样的类结构,构成图1中出示的各部分,则使用这些功能单元来创建业务处理程序的程序员能不用考虑避免死锁用的处理顺序等来进行实施作业,因此能期待提高程序的创建效率。
再有,在本实施方式中,虽然数据访问装置10访问的存储单元是以表格为数据单位的数据库,但是例如以文件为数据单位的存储区域也可。此外,虽然说明了DB访问单元14-1~14-4对作为本实施方式中的数据单位的数据库的每一个表格进行更新的例子,但是例如对表格中的记录单位也可以构成不同的DB访问单元。
再有,也可以将本发明中的用于实现处理单元功能的程序记录在计算机可读取的记录介质中,将记录在该记录介质中的程序读入到计算机系统中进行执行,由此进行数据访问。另外,假设在此所说的“计算机系统”包含OS、外围设备等的硬件。
此外,假设“计算机系统”还包含具备主页提供环境(或显示环境)的WWW系统。此外,“计算机可读取的记录介质”指的是软磁盘、光磁盘、ROM、CD-ROM等的移动介质、内置在计算机系统中的硬盘等的存储装置。进而,“计算机可读取的记录介质”还包含如经由因特网等的网络、电话线路等的通信线路来发送程序的情况下的成为服务器、客户端的计算机系统内部的易失性存储器(RAM)那样,在一定时间保持程序的设备。
此外,上述程序也可以从在存储装置等中储存该程序的计算机系统经由传输介质或利用传输介质中的传输波向其它的计算机系统进行传输。在此,传输程序的“传输介质”指的是如因特网等的网络(通信网络)、电话线路等的通信线路(通信线路)那样具有传输信息功能的介质。此外,上述程序还可以是用于实现上述功能的一部分的程序。进而,还可以是通过与已经记录上述功能的计算机系统中的程序的组合来实现的程序,即所谓的差分文件(差分程序)。
产业上的可利用性
本发明能应用于进行并行处理的计算机中的数据访问装置,并能避免数据访问装置中的死锁,能保持高效的处理性能。
附图标记的说明
10 数据访问装置;
11 DB;
12 表格;
13 业务处理单元;
14 DB访问单元;
15 业务处理注册单元;
16 业务处理存储单元;
17 DB访问规则存储单元;
18 DB访问排序单元;
19 DB访问执行单元。

Claims (10)

1.一种数据访问装置,对按照多个数据单位的每一个存储数据的数据存储单元进行访问,其中,具备:
顺序存储单元,预先存储对所述数据单位中包含的数据进行访问的顺序;
数据访问请求存储单元,存储对所述数据存储单元中存储的多个所述数据单位中任意一个数据单位的数据访问请求;
数据访问请求注册单元,受理多个所述数据访问请求,并使所述数据访问请求存储单元存储该受理的多个所述数据访问请求;
执行顺序排序单元,根据存储在所述顺序存储单元中的所述顺序,判定存储在所述数据访问请求存储单元中的所述多个数据访问请求的执行顺序;以及
数据访问请求执行单元,锁定作为由所述数据访问请求决定的访问对象的所述数据单位,根据由所述执行顺序排序单元判定的所述执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,在对所述数据访问请求存储单元中存储的全部所述数据访问请求进行所述数据访问请求执行处理之后,解除对所述数据单位所进行的全部锁定,
在所述顺序存储单元中,访问频度相对高的数据单位以相对靠后的顺序被存储,访问频度相对低的数据单位以相对靠前的顺序被存储。
2.根据权利要求1所述的数据访问装置,其中,
所述数据访问请求注册单元受理预先与对多个所述数据单位的多个所述数据访问请求相对应的业务处理请求,使所述数据访问请求存储单元存储与输入的该业务处理请求相对应的所述数据访问请求。
3.一种数据访问装置的数据访问方法,该数据访问装置具备:按照多个数据单位的每一个存储数据的数据存储单元、预先存储对所述数据单位中包含的数据进行访问的顺序的顺序存储单元、以及存储对所述数据存储单元中存储的多个所述数据单位中任意一个数据单位的数据访问请求的数据访问请求存储单元,其中,具备:
受理多个所述数据访问请求,并使所述数据访问请求存储单元存储该受理的多个所述数据访问请求的步骤;
根据存储在所述顺序存储单元中的所述顺序,判定存储在所述数据访问请求存储单元中的所述多个数据访问请求的执行顺序的步骤;以及
锁定作为由所述数据访问请求决定的访问对象的所述数据单位,根据判定的所述执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,在对所述数据访问请求存储单元中存储的全部所述数据访问请求进行所述数据访问请求执行处理之后,解除对所述数据单位所进行的全部锁定的步骤,
在所述顺序存储单元中,访问频度相对高的数据单位以相对靠后的顺序被存储,访问频度相对低的数据单位以相对靠前的顺序被存储。
4.根据权利要求1所述的数据访问装置,其中,
所述数据访问装置执行进行商品的交货和等价支付的复合交易的业务处理,所述多个数据单位包含关于账户的表格和关于商品的表格,在所述顺序存储单元中,关于所述商品的表格被确定为比关于所述账户的表格更靠前的访问顺序。
5.根据权利要求1所述的数据访问装置,其中,
所述数据单位包含表格或记录,在所述顺序存储单元中,访问频度相对高的所述表格或记录以相对靠后的顺序被存储,访问频度相对低的所述表格或记录以相对靠前的顺序被存储。
6.根据权利要求1所述的数据访问装置,其中,
所述数据访问装置执行进行商品的交货和等价支付的复合交易的业务处理,所述多个数据单位包含关于账户的表格和关于商品的表格,在所述顺序存储单元中,根据每一个记录的访问频度来确定在关于所述商品的表格和关于所述账户的表格中存储的记录的访问顺序。
7.根据权利要求3所述的数据访问方法,其中,
所述数据访问装置执行进行商品的交货和等价支付的复合交易的业务处理,所述多个数据单位包含关于账户的表格和关于商品的表格,在所述顺序存储单元中,关于所述商品的表格被确定为比关于所述账户的表格更靠前的访问顺序。
8.根据权利要求3所述的数据访问方法,其中,
所述数据单位包含表格或记录,在所述顺序存储单元中,访问频度相对高的所述表格或记录以相对靠后的顺序被存储,访问频度相对低的所述表格或记录以相对靠前的顺序被存储。
9.根据权利要求3所述的数据访问方法,其中,
所述数据访问装置执行进行商品的交货和等价支付的复合交易的业务处理,所述多个数据单位包含关于账户的表格和关于商品的表格,在所述顺序存储单元中,根据每一个记录的访问频度来确定在关于所述商品的表格和关于所述账户的表格中存储的记录的访问顺序。
10.一种数据访问装置,其中,具备:
数据库,具有:按每个账户号码存储有表示余额的信息的账户表格、按每个所述账户号码对应地存储有交易类别和交易金额的账户更新明细表格、对应地存储有商品的所有人和所述商品的商品码以及所述商品的库存数量的保有商品表格、以及对应地存储有所述商品的所有人、所述商品的商品码和所述商品的库存更新类别以及更新后库存数量的库存更新明细表格;
访问规则存储单元,将进行访问的顺序按所述保有商品表格、所述库存更新明细表格、所述账户表格以及所述账户更新明细表格的顺序预先进行存储;
业务处理存储单元,将向所述数据库中的所述保有商品表格、所述库存更新明细表格、所述账户表格以及所述账户更新明细表格中的任意一个请求访问的多个数据访问请求进行存储;
业务处理注册单元,受理多个所述数据访问请求并使所述业务处理存储单元存储该受理的多个所述数据访问请求;
访问排序单元,根据存储在所述访问规则存储单元中的所述顺序,将在所述业务处理存储单元中存储的所述多个数据访问请求的执行顺序进行排序;以及
访问执行单元,锁定作为由所述数据访问请求决定的访问对象的所述保有商品表格、所述库存更新明细表格、所述账户表格以及所述账户更新明细表格中的任意一个,根据由所述访问排序单元所判定的所述执行顺序,依次进行执行该数据访问请求的数据访问请求执行处理,在对所述业务处理存储单元中存储的全部所述数据访问请求进行所述数据访问请求执行处理之后,解除对所述保有商品表格、所述库存更新明细表格、所述账户表格以及所述账户更新明细表格所进行的全部锁定。
CN201080039992.9A 2009-10-30 2010-10-21 数据访问装置、数据访问方法以及数据访问程序 Expired - Fee Related CN102667733B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009250513A JP5352421B2 (ja) 2009-10-30 2009-10-30 データアクセス装置、データアクセス方法およびデータアクセスプログラム
JP2009-250513 2009-10-30
PCT/JP2010/068568 WO2011052467A1 (ja) 2009-10-30 2010-10-21 データアクセス装置、データアクセス方法およびデータアクセスプログラム

Publications (2)

Publication Number Publication Date
CN102667733A CN102667733A (zh) 2012-09-12
CN102667733B true CN102667733B (zh) 2015-06-03

Family

ID=43921890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080039992.9A Expired - Fee Related CN102667733B (zh) 2009-10-30 2010-10-21 数据访问装置、数据访问方法以及数据访问程序

Country Status (6)

Country Link
US (1) US8666959B2 (zh)
EP (1) EP2495661A1 (zh)
JP (1) JP5352421B2 (zh)
CN (1) CN102667733B (zh)
IN (1) IN2012DN02054A (zh)
WO (1) WO2011052467A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462127B (zh) * 2013-09-22 2018-07-20 阿里巴巴集团控股有限公司 一种记录数据更新方法及装置
JP6724039B2 (ja) * 2015-04-01 2020-07-15 アビニシオ テクノロジー エルエルシー 分散型コンピューティングシステムにおけるデータベーストランザクションの処理
US10810662B1 (en) * 2016-11-10 2020-10-20 Amazon Technologies, Inc. Utilizing time-series tables for tracking accumulating values
KR102094031B1 (ko) * 2018-10-04 2020-03-26 현대트랜시스 주식회사 수동변속기 윤활구조
CN111984677B (zh) * 2020-07-30 2023-06-02 招联消费金融有限公司 资源数据核对方法、装置、计算机设备和存储介质
CN113761241A (zh) * 2021-07-23 2021-12-07 北京旷视科技有限公司 图像搜索方法及装置、计算机可读存储介质及电子设备
CN116594570B (zh) * 2023-07-03 2024-03-01 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116820344B (zh) * 2023-07-03 2024-04-26 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0679284B2 (ja) * 1986-04-02 1994-10-05 株式会社日立製作所 分散デ−タベ−スシステムのデツドロツク防止方式
JPH0546415A (ja) * 1991-08-14 1993-02-26 Nec Software Ltd 排他管理制御方式
JP3621433B2 (ja) * 1993-05-24 2005-02-16 日本電信電話株式会社 データベース排他制御方法
JP2002007148A (ja) 2000-06-21 2002-01-11 Mitsubishi Electric Corp 共有資源の排他制御システム及び資源ロック方法並びに記録媒体
JP4432087B2 (ja) * 2006-12-26 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース更新管理システム、プログラムおよび方法
JP5088735B2 (ja) * 2007-12-07 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースへのアクセスを制御する技術
JP5169760B2 (ja) * 2008-01-28 2013-03-27 富士通株式会社 通信装置、受信データサイズチェック方法、倍数判定回路および倍数判定方法
JP5142794B2 (ja) 2008-04-04 2013-02-13 三菱電機株式会社 傘除水機

Also Published As

Publication number Publication date
WO2011052467A1 (ja) 2011-05-05
JP5352421B2 (ja) 2013-11-27
US8666959B2 (en) 2014-03-04
US20120271804A1 (en) 2012-10-25
IN2012DN02054A (zh) 2015-08-21
JP2011096065A (ja) 2011-05-12
CN102667733A (zh) 2012-09-12
EP2495661A1 (en) 2012-09-05

Similar Documents

Publication Publication Date Title
CN102667733B (zh) 数据访问装置、数据访问方法以及数据访问程序
CN101390055B (zh) 对锁管理资源的先期改变
KR101203297B1 (ko) 직접 업데이트 소프트웨어 트랜잭션 메모리
CN101446885B (zh) 存储系统以及存储系统的访问控制方法
US7962386B2 (en) Enterprise service architecture platform architecture for multi-application computer system
KR101959153B1 (ko) 데이터베이스에서의 계좌와 관련된 거래 요청의 효율적인 처리를 위한 시스템
US7461065B2 (en) Method and system for utilizing shared numeric locks
CN101826186A (zh) 综合支付集中器系统中管理支付处理的系统、方法和程序
US20100250431A1 (en) Systems, methods, and machine-readable mediums for providing real-time data of commercial and financial activity of a business to a financial institution to guide credit operations and risk management
US20070156546A1 (en) Reconciliation method and apparatus
CN103677771A (zh) 一种并发事务的处理方法和装置
US6718349B2 (en) Intelligent, optimistic concurrency database access scheme
US8285612B2 (en) Systems and methods for data processing
CN1904838A (zh) 在分布式系统中实施资源利用的系统、方法和服务
CN101504756A (zh) 基于网络实现资金调动调拨的系统和方法
US20070239736A1 (en) Commit tree optimization based on recovery topology information
CN112990823A (zh) 一种实现库存管理的方法、系统及存储介质
CN112035503B (zh) 交易数据更新方法及装置
US20150088729A1 (en) Online property reservation service provider for reserving properties for lease
JP4279346B2 (ja) データベース管理装置及びプログラム
CN101034411A (zh) 一种计算机数据处理系统及其处理方法和应用
CN113836548B (zh) 智能合约的数据一致性保障方法、系统、设备及存储介质
JP2002163454A (ja) 保険料支払方法及び保険料支払システム
JP4173147B2 (ja) データベース管理装置及びプログラム
CN114219642A (zh) 额度资源的批处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173796

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150603