JPH05257792A - 共通データアクセス方法および装置 - Google Patents

共通データアクセス方法および装置

Info

Publication number
JPH05257792A
JPH05257792A JP4055566A JP5556692A JPH05257792A JP H05257792 A JPH05257792 A JP H05257792A JP 4055566 A JP4055566 A JP 4055566A JP 5556692 A JP5556692 A JP 5556692A JP H05257792 A JPH05257792 A JP H05257792A
Authority
JP
Japan
Prior art keywords
update
processing
common data
data
counter
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.)
Pending
Application number
JP4055566A
Other languages
English (en)
Inventor
Naoki Miwa
直樹 三和
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4055566A priority Critical patent/JPH05257792A/ja
Publication of JPH05257792A publication Critical patent/JPH05257792A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 デットロックの危険性を回避し処理の信頼性
を保つとともに、処理の並列度を向上させてアクセスを
効率良く行なう。 【構成】 共通データ管理情報4には各キー毎の情報と
して更新中フラグ4Aと更新カウンタ4Bとが設けら
れ、また更新タスク2にはデータを更新する手順を実行
するデータ更新手順実行部3と、参照タスク6A,6B
にはデータを参照する手順を実行するデータ参照手順実
行部7A,7Bとが設けられている。更新処理時には更
新中フラグ4Aをセットし更新終了時に更新カウンタ4
Bをインクリメントする。そして、参照処理時には更新
中フラグ4Aと更新カウンタ4Bを参照して、更新中フ
ラグ4Aがセットされているか又は更新カウンタ4Bが
インクリメントされていれば、参照処理中に更新処理が
行なわれていたと判定し、更新処理終了後に参照処理を
リトライさせる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機上で動作する複
数のタスクから共通してアクセスするデータのアクセス
方法および装置に関する。
【0002】
【従来の技術】従来、複数のタスクから共通してアクセ
スするデータアクセスは、排他制御によるアクセス方式
が広く使われている。この方式は共通データ(資源)に
対応するキーを予め決めておき、このキーに対してリザ
ーブ(資源の確保)とフリー(資源の解放)を行ない、
共通データにアクセスする順序を複数タスク間でシーケ
ンシャルとなるようにする事でデータアクセス時のデー
タ不整合等の矛盾を解消する方法である。
【0003】
【発明が解決しようとしする課題】しかしながら、上記
従来技術では、リザーブの順序によってはデットロック
と称する資源の相互争奪によるタスクのスクラム状態が
発生したり、また資源に対して細かくリザーブやフリー
を行なう事による排他処理それ自体の負荷の増大とデッ
トロックの危険性の増大が発生したり、逆に資源に対し
て大まかにリザーブとフリーを行なう事により処理がシ
ーケンシャルにしか実行されなくなり、処理効率が上が
らなくなると言った問題がある。特に最近の高トラフィ
ックなトランザクション処理を行なう計算機ではマルチ
プロセッサで処理する場合が多く、並列度の低下とデッ
トロックの危険は深刻な問題である。
【0004】また、リザーブに共通データの参照と更新
の種別を持たせ更新処理の同時多重リザーブを許すもの
もあるが、参照のリザーブ中に更新のリザーブを行なお
うとすると参照のフリーが行なわれまで更新処理が待た
されている。これもまた高トラフィックのトランザクシ
ョン処理を行なう場合、処理時間の長い参照のリザーブ
により更新処理が遅延するといった問題がある。
【0005】本発明の目的は、デットロックの危険性を
回避し処理の信頼性を保つとともに、処理の並列度を向
上させてアクセスを効率良く行なうことが可能な共通デ
ータアクセス方法および装置を提供することである。
【0006】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明の共通データアクセス方法は、計算機上で
複数のタスクがアクセスする共通データに対して、更新
処理と参照処理とを随時行なわせ、更新処理と参照処理
とが競合した場合には、更新処理終了後に参照処理をリ
トライさせることである。
【0007】また、本発明の共通データアクセス方法
は、計算機上で複数のタスクがアクセスする共通データ
に対して、更新処理を行う場合には、データの更新とと
もにその更新状態の情報を記憶手段に記憶させ、参照処
理を行う場合には、データの参照とともに前記記憶手段
内の更新状態の情報を参照して、参照処理中に更新処理
が行われていたか否かを判定し、更新処理が発生してい
たときには更新処理終了後に参照処理をリトライさせる
ことである。
【0008】更に、本発明の共通データアクセス装置
は、計算機上で複数のタスクがアクセスする共通データ
を更新処理する場合に、データの更新とともにその更新
状態の情報を記憶する第1の手段と、前記共通データを
参照処理する場合に、データの参照とともに前記第1の
手段が記憶した更新状態の情報を参照して、参照処理中
に更新処理が行われていたか否かを判定する第2の手段
と、更新処理が行われていたときには更新処理終了後に
参照処理をリトライさせる第3の手段と、を備えたもの
である。
【0009】
【作用】複数のタスク間で共通して使用する共通データ
についてはアクセスしたデータの整合性を保証する為に
何らかの手順が必要となる。本発明では、共通データ更
新時に共通データの更新状態を記憶手段に記憶し、共通
データ参照時には記憶手段内に記憶した共通データの更
新状態を参照する手順が予め設定されいる。そして、参
照処理終了時に前記記憶手段内の共通データの更新状態
を参照することによって、参照処理中に更新処理が行な
われた否かを判定し、もし更新処理が行なわれていた場
合には更新処理終了後に参照処理をリトライする。これ
によって、共通データと参照データの整合性を保証する
ことができる。
【0010】
【実施例】以下に、本発明の一実施例を図面を参照して
詳細に説明する。図1は本発明の共通データアクセス装
置の一例を示している。図において、1つの更新タスク
2は複数の更新トランザクション待ち行列1A,1B等
より更新トランザクションを取出し、共有データ5の内
容を更新する処理を行なう。また複数の参照タスク6
A,6B等は複数の参照トランザクション待ち行列8
A,8B等より参照トランザクションを取出し、共通デ
ータを参照する処理を行なうものとする。
【0011】このとき、更新処理と参照処理が競合して
も、参照処理で参照したデータの整合性が取れていない
恐れを回避する為に、共通データ管理情報4に各キー毎
の情報として更新中フラグ4Aと更新カウンタ4Bとを
備え、また更新タスク2にはデータを更新する手順を実
行するデータ更新手順実行部3と、参照タスク6A,6
Bにはデータを参照する手順を実行するデータ参照手順
実行部7A,7Bとを備えている。なお、図1におい
て、9は計算機を、10はネットワーク入出力部を、1
1はネットワークをそれぞれ示している。
【0012】次に、共通データにアクセスする更新タス
クと参照タスクの手順についてフローチャートで説明す
る。図2は更新タスクの共有データのアクセス手順を示
したものである。ステップ201において、更新タスク
は更新トランザクション待ち行列の1つより処理すべき
トランザクションを取出した後、ステップ202におい
て、これからアクセスしようとするデータに対応するキ
ーの更新フラグをセットする。次にステップ203にお
いて、キーに対応するデータの更新処理を行なう。この
更新処理が終了したらステップ204において、キーに
対応する更新フラグをクリアし、更新カウンタをインク
リメントする等の変化分の設定を行ない更新処理を終了
する。このように更新側は参照側の状態にまったく独立
に更新処理が可能であり、参照側の状態で更新処理を待
たされたりすることはない。
【0013】図3は参照タスクの共通データのアクセス
手順を示したものである。ステップ302において、参
照タスクは参照トランザクション待ち行列の1つより処
理すべきトランザクションを取出した後、ステップ30
2で参照処理のリトライカウンタのクリアを行なう。次
にステップ303において、これからアクセスしようと
するデータに対応するキーの更新フラグと更新カウンタ
を取込む。そして、ステップ304において更新フラグ
を判定し、もしセットされていればステップ309へ進
みリトライ処理し、クリアされていればステップ305
において先に取込んだ更新カウンタの内容を退避してお
く。次にステップ306において、キーに対応するデー
タの参照処理を行なう。この参照処理が終了したらステ
ップ307において、キーに対応する更新フラグと更新
カウンタを再度取込み、ステップ308において、この
更新カウンタと退避していた更新カウンタで変化が無い
かを判定し、もし変化が有ればステップ309へ進みリ
トライ処理し、変化が無ければ参照処理を終了する。
【0014】また、ステップ309におけるリトライ処
理でそのキーに対するリトライカウンタをインクリメン
トする。そして、ステップ310において、このインク
リメントされたカウンタを判定し、リトライアウトなら
処理を異常終了させ、リトライアウトではなく処理を継
続させるのであれば、ステップ311で処理を一時停止
させ、これが解除された後にステップ303に戻り、最
初のリトライカウンタのクリア以降の処理を再度実行さ
せる。
【0015】このように処理することで参照側も自律的
に参照処理が成功したかどうか、つまりリトライ処理が
必要無いかどうかを判別できることになる。
【0016】図4は本発明を適用し得るシステム例で、
共通データ5として日本株式情報5C、北米株式情報5
D、欧州株式情報5Eが数千〜数万件格納されているも
のとする。この共通データ5は時々刻々と変化する株式
の価格に対応して各株式の変化トランザクションを受
け、待ち行列1C,1D,1Eよりこの更新トランザク
ションを取出し、共通データを更新する処理や各株式の
問合トランザクションを受け、待ち行列8C,8D,8
Eよりこの問合トランザクションを取出し、共通データ
の参照処理を行なうものである。このようなシステムで
は更新トランザクションは1秒あたり数百件程度とな
り、また参照処理は1秒あたり数件となることが多い。
このようなシステムにおいて、従来のようにリザーブ
(資源の確保)やフリー(資源の解放)を行なうことは
CPU負荷の面からも損失が大きく、また実際に処理が
競合する確率は共通データ数が非常に多く、しかもトラ
ンザクションが更新に片寄っていることなどからかなり
小さいと考察され、本発明の共通テーブルアクセス方法
の適用の効果は大きい。
【0017】以下、図4で示したシステム例について、
更新処理と参照処理の方法を更に詳細に説明する。な
お、このシステム例では共通データを一意に識別するキ
ーを各株式情報5C,5D,5Eに且つ各社毎に設ける
ものとする。
【0018】表1は更新処理の詳細で、日本株式情報の
日立に対する更新トランザクションを処理する場合の共
通データ管理情報のアクセスを示したものである。共通
データの更新処理の手順は図2に示した通りで、このフ
ローチャートのステップ番号の処理が完結した時点の状
態を示している。更新処理が始る前の状態を更新ステッ
プ0とし、この時の更新フラグが0、更新カウンタが4
08であったとする。更新タスクは待ち行列から更新ト
ランザクションを取り出し(更新ステップ201)、更
新フラグをセットする(更新ステップ202)、すなわ
ち共通データ管理情報の日本株式情報の日立に対する更
新フラグをセット(1)とする。この後、日本株式情報
の日立の共通データの更新処理を行ない(更新ステップ
203)、更新フラグをクリア(0)し、更新カウンタ
をインクリメントする(更新ステップ204)。すなわ
ち、更新フラグを0とし更新カウンタを409として更
新処理を終了する。
【0019】
【表1】
【0020】表2は参照処理の詳細で、日本株式情報の
日立に対する参照トランザクションを処理する場合の、
共通データ管理情報と日本株式情報参照タスクのデータ
参照手順実行部の更新カウンタ退避とリトライカウンタ
のアクセスを示したものである。
【0021】共通データの参照処理の手順は図3に示し
た通りで、このフローチャートのステップ番号の処理が
完結した時点の状態を示している。参照処理が始る前の
状態を参照ステップ0とし、この時の更新フラグが0、
更新カウンタが409、更新カウンタ退避が不定値、リ
トライカウンタが不定値であったとする。参照タスクは
待ち行列から参照トランザクションを取り出し(参照ス
テップ301)、リトライカウンタをクリア(0)する
(参照ステップ302)。その後、更新フラグと更新カ
ウンタを取り込み(参照ステップ303)、更新フラグ
の状態を判定する(参照ステップ304)とクリア状態
(0)なので更新カウンタの値を退避する(参照ステッ
プ305)。すなわち、更新カウンタ退避を409に設
定する。さらに、日本株式情報の日立の共通データの参
照処理を行ない(参照ステップ306)、再度更新フラ
グと更新カウンタを取り込む(参照ステップ307)。
そして、更新フラグがクリア(0)、更新カウンタが更
新カウンタ退避と変化が無いかを判定する(参照ステッ
プ308)と、更新フラグはクリア(0)状態であり且
つ更新カウンタは409で更新カウンタ退避と同じで変
化が無いので、この参照処理を終了する。もし参照処理
が更新処理と並列に動作していれば、参照ステップ30
4または参照ステップ308でこの動作を検出でき、こ
の場合には図3で示した共通データの参照手順に従い参
照処理そのものがリトライされる。
【0022】
【表2】
【0023】
【発明の効果】以上説明したように、本発明によれば、
複数のタスクから同時にアクセスする可能性のある共通
テーブルを排他制御なしにアクセスすることが可能であ
り、排他制御を用いた場合のようなタスクのデットロッ
クの危険を回避することができる。また、参照処理と更
新処理がそれぞれ自律的にアクセスできるため、処理の
並列化が容易である。そして、テーブルアクセスの手順
そのものが非常にシンプルであるため計算機の負荷も小
さく必要な資源も少なくすることができる。その結果、
共通データに対するアクセスの信頼性と効率を向上させ
ることができる。
【0024】また、更新側は更新処理を行なう際に待た
されたりリトライしたりすることがないため、特に更新
トランザクションの発生件数が多く、処理を迅速に行な
う必要があるシステムに適用するのに好都合である。
【図面の簡単な説明】
【図1】本発明の共通データアクセス装置の概略構成図
である。
【図2】共通データの更新手順を示したフローチャート
である。
【図3】共通データの参照手順を示したフローチャート
である。
【図4】本発明を共通データアクセス装置を適用したシ
ステム構成図である。
【符合の説明】
1A,1B 更新トランザクション待ち行列 2 更新タスク 3 データ更新手順実行部 4 共通データ管理情報 4A 更新中フラグ 4B 更新カウンタ 5 共通データ 6A,6B 参照タスク 7A,7B データ参照手順実行部 8A,8B 参照トランザクション待ち行列 9 計算機 10 ネットワーク入出力部 11 ネットワーク

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 計算機上で複数のタスクがアクセスする
    共通データに対して、更新処理と参照処理とを随時行な
    わせ、更新処理と参照処理とが競合した場合には、更新
    処理終了後に参照処理をリトライさせる共通データアク
    セス方法。
  2. 【請求項2】 計算機上で複数のタスクがアクセスする
    共通データに対して、更新処理を行う場合には、データ
    の更新とともにその更新状態の情報を記憶手段に記憶さ
    せ、参照処理を行う場合には、データの参照とともに前
    記記憶手段内の更新状態の情報を参照して、参照処理中
    に更新処理が行われていたか否かを判定し、更新処理が
    発生していたときには更新処理終了後に参照処理をリト
    ライさせる共通データアクセス方法。
  3. 【請求項3】 請求項1記載の共通データアクセス方法
    において、前記記憶手段には、共通データを識別するキ
    ー毎の更新状態の情報が記憶されることを特徴とする共
    通データアクセス方法。
  4. 【請求項4】 計算機上で複数のタスクがアクセスする
    共通データを更新処理する場合に、データの更新ととも
    にその更新状態の情報を記憶する第1の手段と、前記共
    通データを参照処理する場合に、データの参照とともに
    前記第1の手段が記憶した更新状態の情報を参照し、参
    照処理中に更新処理が行われていたか否かを判定する第
    2の手段と、更新処理が行われていたときには更新処理
    終了後に参照処理をリトライさせる第3の手段と、を備
    えた共通データアクセス装置。
JP4055566A 1992-03-13 1992-03-13 共通データアクセス方法および装置 Pending JPH05257792A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4055566A JPH05257792A (ja) 1992-03-13 1992-03-13 共通データアクセス方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4055566A JPH05257792A (ja) 1992-03-13 1992-03-13 共通データアクセス方法および装置

Publications (1)

Publication Number Publication Date
JPH05257792A true JPH05257792A (ja) 1993-10-08

Family

ID=13002263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4055566A Pending JPH05257792A (ja) 1992-03-13 1992-03-13 共通データアクセス方法および装置

Country Status (1)

Country Link
JP (1) JPH05257792A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908597B2 (en) 2004-12-28 2011-03-15 Hitachi, Ltd. Method for executing plural programs, method for converting source programs and compiler program using these methods
JP2011128975A (ja) * 2009-12-18 2011-06-30 Internatl Business Mach Corp <Ibm> システム、方法、プログラムおよびコード生成装置
US10303676B2 (en) 2014-11-13 2019-05-28 Nec Corporation Transaction processing apparatus, transaction processing method, and computer-readable recording medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908597B2 (en) 2004-12-28 2011-03-15 Hitachi, Ltd. Method for executing plural programs, method for converting source programs and compiler program using these methods
JP2011128975A (ja) * 2009-12-18 2011-06-30 Internatl Business Mach Corp <Ibm> システム、方法、プログラムおよびコード生成装置
US9250980B2 (en) 2009-12-18 2016-02-02 International Business Machines Corporation System, method, program, and code generation unit
US9904581B2 (en) 2009-12-18 2018-02-27 International Business Machines Corporation System, method, program, and code generation unit
US10169092B2 (en) 2009-12-18 2019-01-01 International Business Machines Corporation System, method, program, and code generation unit
US10303676B2 (en) 2014-11-13 2019-05-28 Nec Corporation Transaction processing apparatus, transaction processing method, and computer-readable recording medium

Similar Documents

Publication Publication Date Title
US5845117A (en) Deadlock detecting device
US6665814B2 (en) Method and apparatus for providing serialization support for a computer system
US7035852B2 (en) Implementing a message queuing interface (MQI) indexed queue support that adds a key to the index on put commit
US20070143299A1 (en) Commitment of transactions in a distributed system
US8499298B2 (en) Multiprocessing transaction recovery manager
JPH10283243A (ja) データベース管理システム
JPH06243072A (ja) 分散処理システムの分散トランザクションコミット制御方式
JPH05257792A (ja) 共通データアクセス方法および装置
CN112559496A (zh) 一种分布式数据库事务原子性实现方法及装置
JP2654612B2 (ja) 排他ウエイト削減制御方法
US20090064141A1 (en) Efficient utilization of transactions in computing tasks
JPS63307553A (ja) ファイル制御方式
US20030196015A1 (en) Adaptive spin latches
JPH0588954A (ja) データベースの更新方法
AU2022202804B2 (en) Managing shared resources in a distributed computing system
KR19980049353A (ko) 분산 트랜잭션의 회복방법
JP2001306380A (ja) 二相コミット回避方式およびそのプログラム記録媒体
JP2629330B2 (ja) データ更新コミット処理方式
JP2926873B2 (ja) 計算機システム
JP2000047986A (ja) トランザクション処理システム
JPH04190434A (ja) データベース管理装置及びデータベース管理方法
Goel et al. An adaptable constrained locking protocol for high data contention environments: correctness and performance
JPH0926907A (ja) ロック制御器
JP2000082005A (ja) システム間データベース共用システムのデータ処理方式
CN110865874A (zh) 事务提交的方法和装置