JP4235620B2 - データオブジェクトのロック方法、ロックメカニズムを有するコンピュータシステムおよびデータオブジェクトをロックするためのプログラム命令を有するコンピュータで読み取り可能な媒体 - Google Patents

データオブジェクトのロック方法、ロックメカニズムを有するコンピュータシステムおよびデータオブジェクトをロックするためのプログラム命令を有するコンピュータで読み取り可能な媒体 Download PDF

Info

Publication number
JP4235620B2
JP4235620B2 JP2005044749A JP2005044749A JP4235620B2 JP 4235620 B2 JP4235620 B2 JP 4235620B2 JP 2005044749 A JP2005044749 A JP 2005044749A JP 2005044749 A JP2005044749 A JP 2005044749A JP 4235620 B2 JP4235620 B2 JP 4235620B2
Authority
JP
Japan
Prior art keywords
lock
key field
key
values
service module
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.)
Active
Application number
JP2005044749A
Other languages
English (en)
Other versions
JP2005235227A (ja
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of JP2005235227A publication Critical patent/JP2005235227A/ja
Application granted granted Critical
Publication of JP4235620B2 publication Critical patent/JP4235620B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Lock And Its Accessories (AREA)
  • Paper (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Filters And Equalizers (AREA)

Description

本発明はコンピュータシステムにおけるデータオブジェクトのロック方法およびデータオブジェクトをロックするロックメカニズムを有するコンピュータシステムならびにコンピュータシステムにおけるデータオブジェクトをロックするためのプログラムを有するコンピュータ読み取り可能な記録媒体に関する。本発明の技術分野は電子データ処理の分野である。詳しくは、本発明はデータロッキングのための方法、コンピュータプログラム製品ならびにシステムに関する。
データベースマネージメントシステムは通常、そのデータベースへのアクセスの同期合わせを行う専用のロックメカニズムを備えている。ロックメカニズムの目的は、2つのトランザクションがデータベース上の同じデータを同時に変更しないようにすることである。
ロックは一般に「ロックオブジェクト」として定義される。ロックエントリはロックオブジェクトのある特定のインスタンスであり、1つの訂正または1つのテーブルエントリまたは1つのファイルまたは1つのテーブル全体というような何らかのデータベースオブジェクトをロックする。一般にロックは、ユーザプログラムがデータオブジェクトにアクセスし再びそれを解放するとき、自動的にセットされ自動的に削除される。対話型のトランザクションをプログラミングするときには、特定のファンクションモジュールを呼び出すことによりロックをセットおよび解放することができる。データレコードがロックエントリによりロックされることになるテーブルは、それらのキーフィールドとともにロックオブジェクトにおいて定義される。複数のテーブルが選択された場合、最初に1つのテーブル(プライマリテーブル)が選択される。他のテーブル(セカンダリテーブル)も外部キー関係を用いて加えることができる。
ロックオブジェクトにおけるテーブルのロック引数は、そのテーブルのキーフィールドによって構成されている。ロックオブジェクトのロック引数フィールドを、ロックオブジェクト定義から生成されるロックをセットおよび除去するためのファンクションモジュールにおける入力パラメータとして使用することができる。それらのファンクションモジュールが呼び出されると、それらのフィールド内に所定の値を定義することによってロックすべきまたはアンロックすべきテーブルエントリが指定される。それらの値を総称またはワイルドカードとすることもできる。これによればロック引数フィールドにより、テーブルエントリのどの集合がロックされるべきかが定義される。ロックオブジェクトの単純なケースはちょうど1つのテーブルから成り、このテーブルのロック引数はそのプライマリキーである。1つのロックオブジェクトに複数のテーブルを含めることもできる。それによればロックエントリは、あるテーブルの1つのレコードだけでなく、論理的な1つのオブジェクト全体をロックすることができる。このような論理的なオブジェクトをたとえば、ヘッダテーブルに1つのエントリをもち、ポジションテーブルにN個のエントリをもつドキュメントとすることができる。さらにロックオブジェクト内のテーブルごとにロックモードを割り当てることができる。このモードによれば、ロックされたテーブルのレコードに対し他のユーザがどのようにアクセスできるかについて定義される。
ロックモードによって、複数のユーザがデータレコードに対して同時にアクセスできるか否かがコントロールされる。ロックオブジェクト内のテーブルごとに、ロックモードを別個に割り当てることができる。ロックがセットされると、対応するロックエントリがテーブルごとにシステムのロックテーブルに格納される。1ユーザよりも多くのユーザによるアクセスを以下のようにして同期合わせすることができる:
排他ロック:ロックされたデータは、ただ1人のユーザによってしか表示または編集できない。さらに別の排他ロックまたは共有ロックに対する要求は拒否される。
共有ロック:ロックされたデータに対し、1人よりも多くのユーザが表示モードで同時にアクセスできる。他のユーザからのものであっても、他の共有ロックに対する要求は許可される。排他ロックは拒否される。排他的であるが累積的ではない:排他ロックは同じトランザクションから複数回にわたって要求することができ、これは連続的に処理される。これとは対照的に、排他的であるが累積的でないロックは、同じトランザクションからただ1度しか呼び出せない。他のすべてのロック要求は拒否される。
2つのメインファンクションをもつ論理的ロックメカニズムによって、同じデータに対する複数のプログラムによるアクセスを同期合わせすることができる:あるプログラムは他のプログラムに対し、どのデータレコードが現在読み出し中または変更中であるのかを伝えることができる。ある1つのプログラムは、他のプログラムによって現在変更中のデータの読み出しを自動的に防止することができる。また、ロックすべきテーブルのデータレコードを論理的条件によって定義することもできる。ロックがセットされるときに、この論理的条件がロックテーブルにエントリされる。このエントリは、プログラムによって取り除かれるまで保持され、あるいはプログラムが終わりに達するまで保持される。したがって、あるプログラムによってセットされているロックすべては、プログラム終了時に取り除かれる。データレコードにアクセスする際、他のプログラムによって編集中のレコードをロックテーブル中のエントリによって識別することができる。ロックに対するこのようなエントリによって、完全に指定された多数のキーフィールドを定義することができる。つまり、ある1つの値がキーフィールドとみなされるかまたは、このフィールドがワイルドカードによって包括的にロックされる。
エンタープライズビジネスソフトウェアおよびコンピュータシステムにおいて該当することの多いマルチユーザシステム環境の場合、1人のユーザにより処理されているデータは、第2のユーザがそれを同時にアクセスすることができないようロックされなければならない。このことはデータの不一致を避けるために重要である。
通常、データは処理されるデータのキー(たとえばドキュメント番号、コストセンタ cost centre id)を介してロックされている。しかしながら、多数のデータを同時に処理するビジネストランザクション(たとえば数千点に及ぶ部品をもつ1台の自動車のコスト計算、あるいは多数のコストセンタとアクティビティとコストオブジェクトとの間のバリュー・フロー・ネットの評価)により、そのキーを介してデータの一点一点をことごとくロックすることはできない。なぜならば、ハードウェアリソースが制約されているためセット可能なロックの個数が制限されているからである。たとえば、トランザクションごとの妥当なロックの個数は、かなり大規模なマルチユーザシステムに対して約50ほどである。それ以上多くなってしまうと、システムパフォーマンスを損なうことになってしまう。このことが殊にあてはまるのは、数百または数千のユーザが同時にシステムにおいてロックのセットを行うときである。このため上述のような大量のトランザクションによって、データ一点一点(たとえばあらゆる製造番号あるいはコストセンタID)をことごとくロックすることはできない。そうではなく1つのロックエントリにワイルドカードを使用して、複数の単独キーおよび多くの点数のデータを1つのエントリを介してロックすることができる。アメリカ合衆国特許6,047,283には、データベースをアクセスする複数のユーザによるロック要求の衝突を管理するためにダイナミックロックテーブルが使用されるロックメカニズムについて開示されている。
しかしワイルドカードは慎重に使用しなければならない。さもないと過度に多くのデータがロックされてしまい、他のユーザは必要なデータにアクセスできなくなって自身のタスクを続けられなくなってしまう。たとえば100個の部分製品をもつ1つの製品の計算中、製品のためのロックエントリに単にワイルドカードをもたせることで、すべての製品をロックすることはできず、さもないと第2のユーザは無関係な製品のコスト計算を実行できない。
これまでの説明は本発明の発明者の知識に基づくものであって、必ずしも従来技術ではない。
US 6,047,283
したがって、上述の問題点の少なくとも一部分のもっと効果的な解決手段を提供する方法、ソフトウェアアプリケーションおよび/またはデータ処理システムが必要とされている。殊に望まれるのは、データロックにおいてワイルドカードをもっと効果的に使用するためのメカニズムをもつソフトウェアアプリケーションを提供することである。
本発明によればこの課題は、ロックサービスモジュールが、ロックすべきn個のデータオブジェクトのm個のキーフィールドの名前と、該m個のキーフィールド各々におけるn個のキーフィールドと、前記n個のデータオブジェクトをロックするためロックの最大数k、前記第1の処理モジュールから受け取るステップと、前記ロックサービスモジュールが、n<=kであるか否かをチェックするステップと、n<=kであれば、m個のキーフィールドm個の名前とn個のキーフィールド値から成るロックオブジェクトを生成するステップが設けられており、n<=kでなければ前記ロックサービスモジュールはワイルドカードを使用するキーフィールドを決定するため、m個のキーフィールドにおけるn個のキーフィールド値についてそれぞれ異なる値の個数を求め、1番目のキーフィールドからi≦mであるi番目のフィールドまで、直前のキーフィールド値における前記それぞれ異なる値の個数と現在のキーフィールド値における前記それぞれ異なる値の個数の積を、前記ロックオブジェクトのロックエントリ数として求め、該ロックエントリ数を前記ロック最大数kと比較するステップを実行し、1番目のキーフィールドについてはロックエントリ数を前記値の個数とし、前記ロックサービスモジュールは該比較ステップを、前記ロックエントリ数がkを超えるまで繰り返し、前記i番目の積であるロックエントリ数がkを超えたとき、1からi−1番目のキーフィールドについてはキーフィールドの名前とキーフィールド値とから成りi番目のキーフィールドについてはキーフィールドの名前と少なくとも1つのワイルドカードを含むキーフィールド値とから成るロックオブジェクトを生成することにより解決される。
この場合、データオブジェクトは生成されたロックオブジェクトに従いロックされる。本発明による方法は、一般的な手法でロックを最適化するために利用することができ、したがって既存のものと置き換えることができ、その結果、いっそう良好なシステム保守性が得られる。
さらに本発明の実施形態として挙げられるのは、上述の方法ならびにその実施形態によるコンピュータシステムにおけるデータセットをロックするためのプログラムコードまたはプログラム命令をそれぞれ有するコンピュータシステム、コンピュータプログラムならびにコンピュータで読み取り可能な媒体である。
また、上述のようなコンピュータプログラムを、それぞれ異なるハードウェアシステム(コンピュータまたはコンピュータシステム)における1つまたは複数のプログラムまたはプログラムモジュールとしてインストールすることができ、各々を別個に独立して実行することができ、全体として本発明による方法およびその実施形態を実行することができる。種々のシステムを、互いに通信し合うようネットワークの形態で接続することができる。
実施例の説明には本発明の種々の実施形態の付加的な目的や利点が述べられており、あるいは本発明を実施することでそれらを理解することができる。本発明の実施形態の目的ならびに利点を、殊に特許請求の範囲に示されている要素やそれらの組み合わせによって実現し達成することができる。詳細な説明および独立請求項ならびに従属請求項には本発明の実施形態が開示されている。適用可能なであれば、様々な実施形態に種々の着想を含めることができ、および/またはそれらを除外することができる。適用可能であれば、これに加えて様々な実施形態を他の実施形態の着想または特徴と組み合わせることができる。
なお、上述の概略的な説明ならびに以下の詳細な説明は例であって、説明のためのものにすぎず、特許請求の範囲に記載された本発明の形態を限定するものではない。また、特定の実施形態についての着想の説明、特徴および/または利点は、他の実施形態や請求項を制限するものと解釈されるものではない。
本明細書のコンセプトにおいて、使用される用語は異なる定義がなされていないかぎり、データ処理の分野というコンテキストにおいて一般的な意味をもつものである。殊にコンピュータシステムとは広い概念で、PCまたはラップトップのようなあらゆるスタンドアローンコンピュータ、またはたとえば社内ネットワークなどのネットワークを介して接続された一連のコンピュータ、あるいはインターネットを介して接続された一連のコンピュータのことを指す。コンピュータシステムとプログラムは密接に関連しているといえる。ここで用いるように「コンピュータが〜をもたらす」および「プログラムが特定のアクションをもたらすまたは実行する」、「ユーザが特定のアクションを実行する」といったフレーズは、プログラムによりコントロール可能なコンピュータシステムによるアクションを表現するために用いられるし、あるいはコンピュータシステムが特定のアクションを実行できるよう、あるいはユーザがコンピュータシステムを用いて特定のアクションを実行できるよう、プログラムまたはプログラムモジュールを設計可能であることを表現するために用いられる。
さらにこのコンテキストにおいて「自動的に」という表現は、プロセスの流れの中でユーザとコンピュータシステムとの対話の除外を意図するものでもない。
発明の概要において説明したように本発明による方法を、コンピュータシステムおよびコンピュータソフトウェアを用いて実装することができ、それによってビジネスソフトウェアアプリケーションを作成することができるし、データベースまたはデータベースアプリケーションおよびインターネットアプリケーションを使用できるようになる。殊にロックオブジェクトを、データベース有利にはリレーショナルデータベースにおける1つまたは複数のテーブルの1つまたは複数の行として実装することができる。オブジェクト指向プログラム言語の場合、ロックオブジェクトをクラスのインスタンスとしてインプリメントすることができる。なお、データオブジェクトという用語は広く一般に、1つのキーにより識別されるデータベースにおける何らかのデータのことを指す。
発明の概要において説明したように本発明による方法の1つの実施形態によればさらに、残りのキーフィールドに対して1つのキーフィールドの種々の値について1つまたは複数の共通の特性が決定され、決定された共通の特性と1つまたは複数のワイルドカードがロックオブジェクトまたはロックオブジェクト各々における残りのキーフィールドに書き込まれる。共通の特性を、値を形成するキャラクタにおける1つまたは複数の連続するキャラクタから成るキャラクタストリングとすることができる。たとえばA1BC123, A2BC234といった値において、"A"と"BC"は共通のキャラクタである。したがってA3BC345をA?BCと置き換えることができる。この事例において"?"は単一キャラクタに対するワイルドカードであり、"*"は何らかの複数のキャラクタに対するワイルドカードである。
あるコンピュータプログラムの実行に適したプロセッサには一例として、汎用マイクロプロセッサと特定用途プロセッサの双方、ならびに何らかの種類のディジタルコンピュータにおける1つまたは複数のプロセッサが含まれる。一般にプロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはそれらの双方から命令とデータを受け取る。コンピュータの基本的な要素は、命令実行用のプロセッサと命令およびデータを格納するための1つまたは複数の記憶装置である。さらにコンピュータには一般に、データを格納するための1つまたは複数の大容量記憶装置(記憶手段)を有しているかまたは、データを受け取ったりデータを送ったりあるいは双方の目的で1つまたは複数の大容量記憶装置と機能的に結合されており、そのような大容量記憶装置はたとえば磁気ディスク、光磁気ディスクまたは光ディスクなどである。コンピュータプログラムの命令およびデータを実現するのに適した情報担体にはあらゆる形式の不揮発性メモリが含まれており、そのような不揮発性メモリとしてたとえばEPROM,EEPROM,フラッシュメモリデバイスなどのような半導体メモリデバイス、内蔵ハードディスクやリムーバルディスクなどのような磁気ディスク、光磁気ディスク、CD−ROMディスク、DVD−ROMディスクが挙げられる。プロセッサおよびメモリをASIC(特定用途向け集積回路)によって補うこともできるし、あるいはそれに組み込むこともできる。
ユーザとの対話を行えるようにする目的で本発明を、ユーザに情報を表示するためのCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ユーザがコンピュータに入力できるようにするためのキーボード、マウスやトラックボールなどのようなポインティングデバイスを備えたコンピュータシステムにおいて実現することができる。他の種類のデバイスも同様にユーザとの対話を行わせるために利用できる。たとえばユーザに対して提供されるフィードバックを視覚によるフィードバック、聴覚によるフィードバックまたは触覚によるフィードバックのような何らかの形態の感覚的フィードバックとすることができるし、ユーザからの入力を音響的入力、音声入力または触覚による入力を含む何らかの形態で受け取ることができる。
次に、本発明の原理ならびにその実施形態について、添付の図面に例示されているデータ処理プロセスに基づき詳しく説明する。
図1を参照しながら説明すると、本発明の有利な実施形態によればコンピュータシステム101は、コンピュータ102と操作手段103,104を有している。当業者にとって自明であるように、本発明による方法および装置をどのようなコンピュータシステムにも同様に適用することができ、そのコンピュータシステムが複雑なマルチユーザコンピューティング機器であろうと、パーソナルコンピュータまたはワークステーションのようなシングルユーザの機器であろうと同様に適用することができる。適切であるのはコンピュータ102がプロセッサ105、メインメモリ108、メモリコントローラ106、補助記憶装置インタフェース112c、汎用入出力インタフェース112bならびに端末インタフェース112aを有することであり、これらすべてはシステムバス114を介して接続されている。ここで留意したいのは、キャッシュメモリを加えたり他の周辺機器を追加したりといった様々な変形や追加または省略を、図1に描かれているコンピュータシステム101に対し本発明の範囲内で行えることである。図1には、コンピュータシステム101の顕著な特徴のいくつかが簡単に描かれている。
プロセッサ105はコンピュータシステム101の計算機能およびコントロール機能を実行し、適切な中央プロセッサユニット(CPU)を有している。プロセッサ105はマイクロプロセッサのようなただ1つの集積回路を有することができるし、あるいはプロセッサの機能を果たすために共働する適切な個数の集積回路デバイスおよび/または共働する回路基板を有することができる。適切であるのは、プロセッサ105がメインメモリ108内の(オブジェクト指向)コンピュータプログラムを実行できることである。補助記憶インタフェース112cを介してコンピュータシステム101は、磁気ディスク(たとえばハードディスクまたはフロッピーディスク)または光学記憶デバイス(たとえばCD−ROM)などのような補助記憶装置に情報を記憶したり、そこから情報を取り出すことができる。1つの適切な記憶装置はダイレクトアクセスストレージデバイス(direct access storage device, DASD)107である。図1に示されているようにDASD 107をハードディスクドライブとすることができ、これによってハードディスクからプログラムとデータを読み出すことができる。なお、これまで本発明について完全に機能的なコンピュータシステムというコンテキストで説明してきたが(これ以降も同様であるが)、当業者であれば自明であるように、本発明のメカニズムを様々な形態のプログラム製品として配布することができるし、あるいはそのようなディストリビューションを実際に実行するために特定のタイプの信号媒体に左右されることなく本発明を等しく適用することができる。
信号媒体の例として、フロッピーディスクやCD−ROMなどのような記録可能な形式の媒体、無線通信リンクを含むディジタルおよびアナログの通信リンクなどのような伝送型媒体が挙げられる。プロセッサを利用したメモリコントローラ106の役割は、要求された情報をメインメモリ108から、および/または補助記憶装置インタフェース112cを介して、プロセッサ105へ移すことである。説明の都合上、メモリコントローラ106は1つの独立した存在として示されている。当業者であれば自明であるように、実装にあたりメモリコントローラ106により提供される機能の一部分を、実際にはプロセッサ105,メインメモリ108および/または補助記憶装置インタフェース112cと組み合わせられた回路中に設けることができる。
端末インタフェース112aによってシステムアドミニストレータおよびコンピュータプログラマはコンピュータシステム101と通信することができ、通常このことはモニタ104、キーボード103、マウス、トラックボール等あるいはプログラマブルワークステーションを介して行うことができる。図1に描かれているシステム101にはただ1つのメインプロセッサ105とただ1つのシステムバス114しか設けられていないけれども、複数のプロセッサと複数のシステムバスを備えたコンピュータシステムにも本発明を同様に適用できることは自明である。同様に、有利な実施形態のシステムバス114は典型的にはハードワイヤードであるマルチドロップバスであるけれども、コンピュータ関連環境において指向性通信をサポートするいかなるコネクション手段であっても使用することができる。入出力インタフェース112bにより、コンピュータシステム101はプロセッサ105を介して汎用入出力手段109と通信を行うことができ、この汎用入出力手段109にはネットワークコネクション手段110が設けられていて、この手段は、たとえば1つまたは複数の別のコンピュータシステム111とのネットワークコネクションのためにデータを送信および/または受信し、あるいは他の加入者からのまたは他の加入者へのデータを送信または受信する。コンピュータシステム101のような複数のコンピュータシステムを、ネットワークの形態をとるネットワークコネクション手段110を介して接続することができる。このようなケースでは複数のネットワークコンピュータ111を、さらに別の記憶場所としての利用を含むさらに別の入出力手段として使用することができる。有利な実施形態によれば、適切な形態ではメモリ108にオペレーティングシステム、プログラムならびにデータが含まれており、殊にロックサービスモジュール113(lock service)、第1の処理モジュール114、第2の処理モジュール115、DASDメモリ107内のデータオブジェクトをロックするためのロックオブジェクト116が含まれている。なお、自明なことながらこのアプリケーションの目的からすれば、メモリ108という用語はかなり広い意味で使用されており、これにはダイナミックランダムアクセスメモリ(DRAM)、スタティックRAM(SRAM)、フラッシュメモリ、キャッシュメモリ等を含めることができる。また、図1には明示的には示されていないけれども、メモリ108をただ1つの形式のメモリ素子としてもよいし、複数の異なる形式のメモリ素子によって構成してもよい。たとえば、メモリ108とCPU105を、集合的にシステム101を有する複数の異なるコンピュータに及ぶかたちで配布することができる。さらに自明であるように、メモリ108内のプログラムにはあらゆる形態のコンピュータプログラムを含めることができ、ソースコード、中間コード、マシンコードおよび他のいかなるコンピュータプログラム表現形態であっても含めることができる。
その際、オペレーティングシステムを、IBMのOS/400, OS2, Microsoft Windows, JAVAならびに様々な仕様のUNIXなどあらゆる適切なオペレーティングシステムとすることができる。データベース117によって、コンピュータシステム101内にオブジェクトデータを持続的に格納するためのメカニズムが提供され、IBM, OracleまたはMicrosoftから市販されているような有利にはリレーショナルであるあらゆる適切なデータベースとすることができる。
当業者であれば明らかであるように、上述のプロセッサのうち2つ以上を1つのコンピュータシステム内で並列動作させることができる。次に図2を参照すると、そこには本発明のさらに別の有利な実施形態が描かれており、図1に示したようなコンピュータシステムのメインメモリ内に配置された第1の処理モジュール201、ロックサービス205およびロックオブジェクト206が示されている。データベース内の1つまたは複数のデータにアクセスする前に処理モジュール201は、ロックすべきn個のデータオブジェクトにおけるm個のキーフィールド名202と、ロックすべきn個のデータのためのキーフィールド値テーブル203と、ロック最大数の数値204(ここではk個)を、ロックサービス205へ渡す。この場合、キーフィールド名は、データベースおよびロックすべきデータオブジェクトの構造に整合する順序にすべきである。ロックサービス205は受け取ったデータを処理した後、n個のデータオブジェクトに対してx<=k個のエントリをもつ1つのロックオブジェクト206を生成する。これらのエントリは、n個のデータオブジェクトをロックするために使用されるx*m個のキーフィールドのための値を有している。nがkよりも小さいかまたは等しければ、n*m個のキーフィールドのn*m個の値から成るテーブル(ロックオブジェクト)が戻される。その理由は、データキーの個数が可能なロック数を超えておらず、すべてのデータオブジェクトをその完全なキーでロックできるからである。そうではなくてnがkよりも大きければ、一度に1つのキーフィールドに対する複数の値をロックするためにワイルドカードが用いられる。ワイルドカードを使用する場所を決定するため、ロックサービス205はロックを最適化するためにヒューリスティックな方法を使用することができる。このようなヒューリスティックな方法によればロックサービス205は、キーフィールドごとに現れるすべての値を最初に収集することができる。これはテーブル1に示されている1つのテーブルを用いて実現することができる:
テーブル1: キーフィールド値の内部テーブル
Figure 0004235620
1列目には、キーフィールド1〜mの名前が含まれている。2列目には、個々のキーフィールド内に含まれているy1〜ym個の種々の値が含まれている。3列目には、キーフィールド1〜mにおける種々の値Val_1.1〜Val_m.ymが含まれている。したがってキーフィールドごとの1つのフィールドが、フィールドmに対する複数のym個のサブフィールドに分割されている。この場合、ロックサービス205は複数のキーフィールドにわたってループし、種々の値の個数yi(i−>1〜m)がkよりも小さいか否かについてチェックすることができる。小さいならばこのキーに対するすべての値をロックすることができ、そうでなければすべてのキーの値はワイルドカードによってロックされる。この方法は、生成されたロックエントリの個数がキーフィールドごとの値の個数の積であり、これがkを超えてはならない(k<=y1*...*ym)ことを考慮しながら次のキーフィールドについて続けられる。1つの有利な実施形態によれば上述のループが実行される前に、テーブル1をyiについて昇順または降順でソートすることができる。
以下のテーブルには、これに限るものではないけれども一例として1つのロックオブジェクトがどのようなものであるのかが表されている。この例は、m=3個のキーフィールド1〜3を定義するテーブル2と、n=18個のロックすべきデータオブジェクトのキーおよびk=10個のロックの最大数を定義するテーブル3によって構成されている。
テーブル2:キーフィールド名
Figure 0004235620
テーブル3:ロックすべきデータオブジェクトのキー
Figure 0004235620
これらのデータは処理モジュール201によってロックサービス205へ渡される。ロックサービス205はこれらを受け取ると、ワイルドカードを含むバランスのとれた個数のロックを定義する目的で内部テーブル(この例におけるテーブル4)を生成する。
テーブル4:キーフィールド値の内部テーブル
Figure 0004235620
ついでロックサービス205は、nがk以下であるか否かをチェックする。k以下というのはこの例では該当しないので、ロックサービス205はフィールド1から始めてテーブル4にわたってループする:そのフィールドに対する値の個数は10よりも小さいので、そのフィールドに対するすべての値をロックすることができる。ついでロックサービス205はフィールド2の処理を続け、フィールド1とフィールド2に対するロックエントリの最大数を計算し、これは2であって、まだ10よりも小さいので、フィールド1とフィールド2に関するすべての値をロックすることができる。さらにフィールド3の処理を続け、同様の計算を行った結果、18個のロックエントリという最大数が得られ、これは10よりも大きいので、フィールド3に関する値をロックすることはできず、ワイルドカードによって置き換えられる。したがってロックサービス205は2つのエントリをもつ1つのロックオブジェクトを生成する。テーブル5にはこのことが示されている:ロックオブジェクトは、キーフィールドごとに1つの列をもつテーブルを有している。キーフィールド1および2の値は個々のフィールドにエントリされる一方、キーフィールド3の値はワイルドカード(**)により置き換えられる。その結果、テーブル3内のキーにより表されるデータベース内の18個のデータオブジェクトが、2つのエントリをもつ1つのロックオブジェクトによってロックされる。それゆえオープン/クローズ・アカウントというアクティビティは、すべてのブランチについてコントロールエリア1000においてロックされることになる。2番目のプロセスが、たとえばブランチB1〜B2内でこのアクティビティとコントロールエリアパートをもつデータオブジェクトにアクセスしようと試みた場合、ワイルドカードがこのブランチも同様にカバーしているため、このアクセスは不可能となる。
テーブル5:2つのエントリをもつロックオブジェクト
Figure 0004235620
本発明による別の実施形態によってこの状況を改善することができ、この実施形態によれば、1つのキーフィールドの種々の値に共通する特性が決定され、決定された共通の特性がワイルドカードとともにキーフィールドにエントリされる。次にこれについて、上述の例を引き続き用いながら詳しく説明する。
キーフィールド3の値に共通する特性をチェックする場合、ロックサービス205は、キャラクタ 'A' がキーフィールド3のすべての値に共通する特性であることを見つけ出す。その場合、このキャラクタをワイルドカードと組み合わせることができ、この組み合わせを単なるワイルドカードの状態でキーフィールド3のフィールドにエントリすることができる。図6にはその結果が示されている。
このようにすれば、2番目のプロセスは、ブランチB1〜B9内におけるこれらのアクティビティに対するアクセス権を同時にもつことができるようになる。
テーブル6:最初の2つのキーフィールドに2つの完全なエントリをもち、残りのキーフィールドにワイルドカードを伴う共通の特性をもつロックオブジェクト
Figure 0004235620
次に図3を参照するとこの図には本発明のさらに別の有利な実施形態が示されており、これによればロックサービスモジュールの1つの例に関する処理ステップを要約したフローチャートが示されている。開始ステップ301の後、ロックサービスはステップ302においてデータ処理モジュール303からデータを受け取る。このデータには、m個のフィールド名と、ロックすべきn個のデータオブジェクトに対するm*n個のキーフィールド値と、k個のロックエントリの最大数が含まれている。この場合、ロックサービスはステップ304において、x<=k個である最適化されたロックエントリ数を求め、これは前述のようにテーブル4のような内部テーブルの生成ならびに評価によって行われる。ついでロックサービスはステップ305において、値またはワイルドカードがステップ306において生成されるロックオブジェクトのx個のエントリのフィールド307にエントリされるか否かを決定する。ついでこのプロセスはステップ302に戻り、新たな要求が来るのを待ち、あるいはステップ308で終了する。
当業者に自明のとおり、これまで説明してきた本発明の仕様や実施形態を考慮して本発明の変形や用途に合わせた整合を行うことができる。本発明の実施形態に関するこれまでの説明は、例示や説明の目的で開示したものであって包括的なものではなく、本発明はここで開示した精密な形態に制約されるものではない。これまでの開示内容に沿って変形や変更が可能であるし、あるいは本発明の実施形態から得ることができる。たとえば上述の実装にはソフトウェアが含まれていたが、本発明によるシステムおよび方法をハードウェアとソフトウェアの組み合わせとして、あるいはハードウェアだけで実装してもよい。また、本発明の着想をメモリへの格納に関して説明してきたけれども、当業者にとって明らかであるように、この着想をコンピュータで読み取り可能な他の形式の媒体に格納することも可能であって、たとえばハードディスク、フロッピーディスクまたはCD−ROMのような補助記憶装置やインターネットまたは他の伝搬媒体に、あるいはさらに別の形態のRAMまたはROMに格納することができる。
既述の説明に基づくコンピュータプログラムおよび本発明のフローチャートは、経験のある開発者の技能の範囲内である。当業者に周知のあらゆる技術を利用して種々のプログラムまたはプログラムモジュールを生成することができ、あるいはそれらを既存のソフトウェアと結び付けて設計することもできる。たとえばプログラムまたはプログラムモジュールをJava, C++, HTML, XMLまたはJava appletの埋め込まれたHTML, SAP R/3またはABAPで設計可能である。1つまたは複数のこの種のモジュールを、既存のEメールソフトウェアまたはブラウザソフトウェアに統合させることができる。
これまで本発明の実施形態について説明してきたけれども、本発明はここで説明してきた種々の有利な実施形態に限定されるものではなく、同等の要素、変形、省略、(たとえば種々の実施形態にまたがる着想の)組み合わせ、用途に合わせた整合および/または本発明の開示に基づく当業者に自明の変更を伴うあらゆるすべての形態が含まれる。特許請求の範囲は、各請求項で採用された言葉をベースとして広く解釈されるべきものであり、本発明の明細書で開示された例あるいは本出願を実施したときの例に限定されるものではなく、それらの例は非排他的なものと解釈されたい。たとえば本発明の開示において、「有利には」という表現は非排他的であって、「有利であるけれども、それには限定されない」ということを意味する。手段+機能またはステップ+機能の限定は、特定の請求項の限定に関してその限定において以下の条件すべてが存在する場合のみ採用されるものである:a)「ための手段」または「ためのステップ」が明示的に挙げられている;b)対応する機能が明示的に挙げられている;c)構造、素材またはその構造を支持する動作が挙げられていない。
ここに開示した本発明の明細書および実施形態を考慮すれば、本発明の他の実施形態は当業者にとって自明である。本明細書ならびに実施例は例証として考慮されるにすぎず、本発明の本質的な範囲ならびに意図は、以下の各請求項によって表される。
コンピュータシステムを用いて本発明による方法を実装する様子を示すブロック図 ブロック図を用いて本発明の1つの実施形態によるプログラムモジュールとデータとの間の相互作用に関する一例を示す図 本発明で説明する原理に従う方法の一例を示すフローチャート
符号の説明
101 コンピュータシステム
102 コンピュータ
103 キーボード
104 ディスプレイ
105 プロセッサ
106 メモリコントローラ
107 DASDメモリ
108 メインメモリ
110 ネットワークコネクション手段
112a 端末インタフェース
112b 汎用入出力インタフェース
112c 補助記憶装置インタフェース
113 ロックサービスモジュール
114,201 第1の処理モジュール
115 第2の処理モジュール
116 ロックオブジェクト
117 データベース
205 ロックサービス
206 ロックオブジェクト

Claims (5)

  1. コンピュータシステムにロックサービスモジュール(113,205)設けられており、該ロックサービスモジュール(113,205)は前記コンピュータシステムの第1の処理モジュール(114,201)から要求を受け取って、キーフィールドの名前とキーフィールド値から成る1つまたは複数のデータオブジェクトのためにキーフィールドの名前とキーフィールド値から成る1つまたは複数のロックオブジェクト(116,206)を生成することにより、前記コンピュータシステムの第2の処理モジュール(115)に対し前記1つまたは複数のデータオブジェクトのアクセスをロックする、
    コンピュータシステム(101)におけるデータオブジェクトのロック方法において、
    前記ロックサービスモジュール(113,205)が、ロックすべきn個のデータオブジェクトのm個のキーフィールドの名前(20と、該m個のキーフィールド各々におけるn個のキーフィールド値(203)と、前記n個のデータオブジェクトをロックするためロックの最大数k(204)を、前記第1の処理モジュール(114,201)から受け取るステップと、
    前記ロックサービスモジュール(113,205)が、n<=kであるか否かをチェックするステップと
    n<=kであれば、m個のキーフィールドm個の名前とn個のキーフィールド値から成るロックオブジェクト(116,206)を生成するステップが設けられており
    n<=kでなければ前記ロックサービスモジュール(113,205)はワイルドカードを使用するキーフィールドを決定するため、m個のキーフィールドにおけるn個のキーフィールド値についてそれぞれ異なる値(Val 1.1〜Val m.ym)の個数(y1,...,;ym)を求め
    1番目のキーフィールドからi≦mであるi番目のフィールドまで、直前のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)と現在のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)の積を、前記ロックオブジェクトのロックエントリ数(x)として求め、該ロックエントリ数(x)を前記ロック最大数kと比較するステップを実行し、1番目のキーフィールドについてはロックエントリ数(x)を前記値の個数(y1)とし、
    前記ロックサービスモジュール(113,205)は該比較ステップを、前記ロックエントリ数(x)がkを超えるまで繰り返し、
    前記i番目の積であるロックエントリ数(x)がkを超えたとき、1からi−1番目のキーフィールドについてはキーフィールドの名前とキーフィールド値とから成りi番目のキーフィールドについてはキーフィールドの名前と少なくとも1つのワイルドカードを含むキーフィールド値とから成るロックオブジェクト(116,206)を生成することを特徴とする、
    データオブジェクトのロック方法。
  2. 請求項1記載の方法において、
    前記i番目のキーフィールドについて1つのキーフィールドの前記それぞれ異なるを形成するキャラクタのうち共通する1つまたは複数のキャラクタを決定し、該決定された共通のキャラクタおよび1つまたは複数のワイルドカードを、1つのロックオブジェクトまたは各ロックオブジェクト(116,206)における残りのキーフィールドに書き込むことを特徴とする方法。
  3. データオブジェクトをロックするロックメカニズムを有するコンピュータシステム(101)において、
    該ロックメカニズムはロックサービスモジュール(113)を有しており、該ロックモジュール(113)は、第1の処理モジュール(114)からロック要求を受け取り可能であり、キーフィールドの名前とキーフィールド値から成る1つまたは複数のデータオブジェクトに対して、キーフィールドの名前とキーフィールド値から成る1つまたは複数のロックオブジェクト(116)を生成することにより、第2の処理モジュール(115)に対し前記1つまたは複数のデータオブジェクトのアクセスをロックし、
    前記コンピュータシステムに、プログラムを格納するためのメモリ(108)と、データを受信してエントリするための入力手段(109,103)と、データを送信して表示するための出力手段(109,104)と、データを格納するための記憶手段(107)と、前記プログラムに応答するプロセッサ(105)が設けられており、
    前記ロックサービスモジュール(113,205)は、ロックすべきn個のデータオブジェクトのm個のキーフィールドの名前(202)と、該m個のキーフィールド各々におけるn個のキーフィールド値(203)と、前記n個のデータオブジェクトをロックするためロックの最大数k(204)を、前記第1の処理モジュール(114,201)から受け取り、
    前記ロックサービスモジュール(113,205)は、n<=kであるか否かをチェックし、
    前記ロックサービスモジュール(113,205)は、n<=kであれば、m個のキーフィールドのm個の名前とn個のキーフィールド値から成るロックオブジェクト(116,206)を生成し、
    n<=kでなければ前記ロックサービスモジュール(113,205)はワイルドカードを使用するキーフィールドを決定するため、m個のキーフィールドにおけるn個のキーフィールド値についてそれぞれ異なる値(Val 1.1〜Val m.ym)の個数(y1,...,;ym)を求め、
    前記ロックサービスモジュール(113,205)は、1番目のキーフィールドからi≦mであるi番目のフィールドまで、直前のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)と現在のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)の積を、前記ロックオブジェクトのロックエントリ数(x)として求め、該ロックエントリ数(x)を前記ロック最大数kと比較するステップを実行し、1番目のキーフィールドについてはロックエントリ数(x)を前記値の個数(y1)とし、
    前記ロックサービスモジュール(113,205)は該比較ステップを、前記ロックエントリ数(x)がkを超えるまで繰り返し、
    前記ロックサービスモジュール(113,205)は、前記i番目の積であるロックエントリ数(x)がkを超えたとき、1からi−1番目のキーフィールドについてはキーフィールドの名前とキーフィールド値とから成りi番目のキーフィールドについてはキーフィールドの名前と少なくとも1つのワイルドカードを含むキーフィールド値とから成るロックオブジェクト(116,206)を生成することを特徴とする、
    コンピュータシステム。
  4. コンピュータシステムにおけるデータオブジェクトをロックするためのプログラムを有するコンピュータ読み取り可能な記録媒体において、
    前記コンピュータシステムにロックサービスモジュール(113,205)が設けられており、
    該ロックサービスモジュール(113,205)が前記コンピュータシステムの第1の処理モジュール(114,201)から要求を受け取って、キーフィールドの名前とキーフィールド値から成る1つまたは複数のデータオブジェクトのためにキーフィールドの名前とキーフィールド値から成る1つまたは複数のロックオブジェクト(116,206)を生成することにより、前記コンピュータシステムの第2の処理モジュール(115)に対し前記1つまたは複数のデータオブジェクトのアクセスをロックする手順と、
    前記ロックサービスモジュール(113,205)が、ロックすべきn個のデータオブジェクトのm個のキーフィールドの名前(202)と、該m個のキーフィールド各々におけるn個のキーフィールド値(203)と、前記n個のデータオブジェクトをロックするためロックの最大数k(204)を、前記第1の処理モジュール(114,201)から受け取る手順と、
    前記ロックサービスモジュール(113,205)が、n<=kであるか否かをチェックする手順と、
    n<=kであれば、m個のキーフィールドのm個の名前とn個のキーフィールド値から成るロックオブジェクト(116,206)を生成する手順と、
    n<=kでなければ前記ロックサービスモジュール(113,205)はワイルドカードを使用するキーフィールドを決定するため、m個のキーフィールドにおけるn個のキーフィールド値についてそれぞれ異なる値(Val 1.1〜Val m.ym)の個数(y1,...,;ym)を求める手順と、
    1番目のキーフィールドからi≦mであるi番目のフィールドまで、直前のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)と現在のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)の積を、前記ロックオブジェクトのロックエントリ数(x)として求め、該ロックエントリ数(x)を前記ロック最大数kと比較し、1番目のキーフィールドについてはロックエントリ数(x)を前記値の個数(y1)とする手順と、
    前記ロックサービスモジュール(113,205)が前記比較する手順を、前記ロックエントリ数(x)がkを超えるまで繰り返す手順と、
    前記i番目の積であるロックエントリ数(x)がkを超えたとき、1からi−1番目のキーフィールドについてはキーフィールドの名前とキーフィールド値とから成りi番目のキーフィールドについてはキーフィールドの名前と少なくとも1つのワイルドカードを含むキーフィールド値とから成るロックオブジェクト(116,206)を生成する手順を、
    前記コンピュータシステムに実施させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  5. コンピュータシステムのロックサービスモジュール(113,205)が前記コンピュータシステムの第1の処理モジュール(114,201)から要求を受け取って、キーフィールドの名前とキーフィールド値から成る1つまたは複数のデータオブジェクトのためにキーフィールドの名前とキーフィールド値から成る1つまたは複数のロックオブジェクト(116,206)を生成することにより、前記コンピュータシステムの第2の処理モジュール(115)に対し前記1つまたは複数のデータオブジェクトのアクセスをロックする手順と、
    前記ロックサービスモジュール(113,205)が、ロックすべきn個のデータオブジェクトのm個のキーフィールドの名前(202)と、該m個のキーフィールド各々におけるn個のキーフィールド値(203)と、前記n個のデータオブジェクトをロックするためロックの最大数k(204)を、前記第1の処理モジュール(114,201)から受け取る手順と、
    前記ロックサービスモジュール(113,205)が、n<=kであるか否かをチェックする手順と、
    n<=kであれば、m個のキーフィールドのm個の名前とn個のキーフィールド値から成るロックオブジェクト(116,206)を生成する手順と、
    n<=kでなければ前記ロックサービスモジュール(113,205)はワイルドカードを使用するキーフィールドを決定するため、m個のキーフィールドにおけるn個のキーフィールド値についてそれぞれ異なる値(Val 1.1〜Val m.ym)の個数(y1,...,;ym)を求める手順と、
    1番目のキーフィールドからi≦mであるi番目のフィールドまで、直前のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)と現在のキーフィールド値における前記それぞれ異なる値の個数(y1,...,;ym)の積を、前記ロックオブジェクトのロックエントリ数(x)として求め、該ロックエントリ数(x)を前記ロック最大数kと比較し、1番目のキーフィールドについてはロックエントリ数(x)を前記値の個数(y1)とする手順と、
    前記ロックサービスモジュール(113,205)が前記比較する手順を、前記ロックエントリ数(x)がkを超えるまで繰り返す手順と、
    前記i番目の積であるロックエントリ数(x)がkを超えたとき、1からi−1番目のキーフィールドについてはキーフィールドの名前とキーフィールド値とから成りi番目のキーフィールドについてはキーフィールドの名前と少なくとも1つのワイルドカードを含むキーフィールド値とから成るロックオブジェクト(116,206)を生成する手順を、
    コンピュータに実行させるためのプログラム。
JP2005044749A 2004-02-19 2005-02-21 データオブジェクトのロック方法、ロックメカニズムを有するコンピュータシステムおよびデータオブジェクトをロックするためのプログラム命令を有するコンピュータで読み取り可能な媒体 Active JP4235620B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04003697A EP1566744A1 (en) 2004-02-19 2004-02-19 Optimising lock granularity using range locking

Publications (2)

Publication Number Publication Date
JP2005235227A JP2005235227A (ja) 2005-09-02
JP4235620B2 true JP4235620B2 (ja) 2009-03-11

Family

ID=34707317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005044749A Active JP4235620B2 (ja) 2004-02-19 2005-02-21 データオブジェクトのロック方法、ロックメカニズムを有するコンピュータシステムおよびデータオブジェクトをロックするためのプログラム命令を有するコンピュータで読み取り可能な媒体

Country Status (6)

Country Link
US (2) US7529749B2 (ja)
EP (2) EP1566744A1 (ja)
JP (1) JP4235620B2 (ja)
AT (1) ATE371218T1 (ja)
AU (1) AU2005200742B2 (ja)
DE (1) DE602005002062T2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1566744A1 (en) 2004-02-19 2005-08-24 Sap Ag Optimising lock granularity using range locking
EP1684194A1 (en) * 2005-01-25 2006-07-26 Sap Ag A central lock service for database applications
EP1684193A1 (en) * 2005-01-25 2006-07-26 Sap Ag Central lock service for database applications
US20090006402A1 (en) * 2007-06-28 2009-01-01 Holger Bohle Methods and systems for the dynamic selection of a locking strategy
US8224799B2 (en) * 2009-04-22 2012-07-17 Microsoft Corporation Providing lock-based access to nodes in a concurrent linked list
US9529872B2 (en) * 2010-12-22 2016-12-27 Sap Se Asynchronous data processing
US9836549B2 (en) 2013-05-12 2017-12-05 Sap Se Collaboration adapter to exploit single-user web applications for collaborative work
US9466159B1 (en) 2015-04-10 2016-10-11 J. J. Keller & Associates, Inc. Methods and systems for automatically identifying a data source for an on-board recorder
US9875270B1 (en) * 2015-09-18 2018-01-23 Amazon Technologies, Inc. Locking item ranges for creating a secondary index from an online table
US10489386B2 (en) 2016-12-14 2019-11-26 Google Llc Managing transactions requesting non-existing index keys in database systems
CN111782669B (zh) * 2020-06-28 2023-12-12 百度在线网络技术(北京)有限公司 一种分布式锁的实现方法、装置及电子设备
CN113760884A (zh) * 2020-08-06 2021-12-07 北京沃东天骏信息技术有限公司 一种数据比对方法和装置

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4716528A (en) * 1986-02-03 1987-12-29 International Business Machines Corporation Method for managing lock escalation in a multiprocessing, multiprogramming environment
JPS63191226A (ja) * 1987-02-03 1988-08-08 Ricoh Co Ltd B↑+tree上における同時実行制御方式
JPH0827755B2 (ja) * 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
JP2533266B2 (ja) * 1991-06-14 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
US5440732A (en) * 1993-02-05 1995-08-08 Digital Equipment Corp., Pat. Law Gr. Key-range locking with index trees
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
US5721943A (en) * 1993-10-14 1998-02-24 International Business Machines Corporation Negotiable locks for concurrent access of control data by multiple programs
US7480653B2 (en) * 1996-10-22 2009-01-20 International Business Machines Corporation System and method for selective partition locking
US5893157A (en) * 1997-05-28 1999-04-06 International Business Machines Corporation Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
US6216207B1 (en) * 1997-12-31 2001-04-10 Alcatel Usa Sourcing, L.P. Performance monitoring storage module for storing performance management data
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6047283A (en) * 1998-02-26 2000-04-04 Sap Aktiengesellschaft Fast string searching and indexing using a search tree having a plurality of linked nodes
US6144983A (en) * 1998-06-09 2000-11-07 Oracle Corporation Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system
US6631366B1 (en) * 1998-10-20 2003-10-07 Sybase, Inc. Database system providing methodology for optimizing latching/copying costs in index scans on data-only locked tables
US6418438B1 (en) * 1998-12-16 2002-07-09 Microsoft Corporation Dynamic scalable lock mechanism
US6405274B1 (en) * 1998-12-30 2002-06-11 Oracle Corporation Anticipatory lock mode conversions in a lock management system
CA2279051C (en) * 1999-07-29 2004-12-28 Ibm Canada Limited-Ibm Canada Limitee Method and system for improving concurrency through early release of unnecessary locks
US7487152B1 (en) * 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US6826570B1 (en) * 2000-07-18 2004-11-30 International Business Machines Corporation Dynamically switching between different types of concurrency control techniques to provide an adaptive access strategy for a parallel file system
KR100379949B1 (ko) * 2000-11-30 2003-04-16 한국과학기술원 상승불가능 로크 개념에 기반한 적응형 로크 상승방법
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
US6772155B1 (en) * 2001-04-04 2004-08-03 Ncr Corporation Looking data in a database system
US6944615B2 (en) * 2001-06-28 2005-09-13 International Business Machines Corporation System and method for avoiding deadlock situations due to pseudo-deleted entries
US7028300B2 (en) * 2001-11-13 2006-04-11 Microsoft Corporation Method and system for managing resources in a distributed environment that has an associated object
US6748470B2 (en) * 2001-11-13 2004-06-08 Microsoft Corporation Method and system for locking multiple resources in a distributed environment
EP1540527B1 (en) 2002-09-09 2007-08-29 Sap Ag Method and system for moving data objects using locks
US7225302B2 (en) * 2002-11-27 2007-05-29 Sap Ag Method and software application for avoiding data loss
US7254578B2 (en) * 2002-12-10 2007-08-07 International Business Machines Corporation Concurrency classes for shared file systems
US7730046B2 (en) * 2002-12-23 2010-06-01 Sap Ag Nomination locking system and method
US8577908B2 (en) * 2003-03-20 2013-11-05 International Business Machines Corporation Automatic lock management in an abstract database
EP1566744A1 (en) 2004-02-19 2005-08-24 Sap Ag Optimising lock granularity using range locking
EP1684194A1 (en) * 2005-01-25 2006-07-26 Sap Ag A central lock service for database applications
EP1684193A1 (en) * 2005-01-25 2006-07-26 Sap Ag Central lock service for database applications
US7599908B2 (en) * 2005-11-18 2009-10-06 Sap Ag Logical locking for Java Data Objects
US7552121B2 (en) * 2006-06-22 2009-06-23 International Business Machines Corporation Autonomic lock escalation in an SQL environment
US7571165B2 (en) * 2006-09-28 2009-08-04 Sap Ag Method and system for providing locking behavior
US20080189240A1 (en) * 2007-02-05 2008-08-07 Mullins Ward R System, method and software for creating or maintaining local or distributed mapping and transparent persistence of complex data objects and their data relationships

Also Published As

Publication number Publication date
EP1566751B1 (en) 2007-08-22
ATE371218T1 (de) 2007-09-15
AU2005200742B2 (en) 2006-12-21
EP1566744A1 (en) 2005-08-24
EP1566751A1 (en) 2005-08-24
JP2005235227A (ja) 2005-09-02
US7529749B2 (en) 2009-05-05
DE602005002062D1 (de) 2007-10-04
DE602005002062T2 (de) 2008-05-21
US20090210420A1 (en) 2009-08-20
US20050187933A1 (en) 2005-08-25
US8078591B2 (en) 2011-12-13
AU2005200742A1 (en) 2005-09-08

Similar Documents

Publication Publication Date Title
JP4235620B2 (ja) データオブジェクトのロック方法、ロックメカニズムを有するコンピュータシステムおよびデータオブジェクトをロックするためのプログラム命令を有するコンピュータで読み取り可能な媒体
US7644084B2 (en) Methods, computer systems and software applications for providing a central lock service
US7206794B2 (en) Methods, computer systems and software applications for providing a lock service
US7587435B2 (en) Replication system with methodology for replicating database sequences
US9495545B2 (en) Automatically generate attributes and access policies for securely processing outsourced audit data using attribute-based encryption
US20070150836A1 (en) Methods, systems, and software applications including tab panel elements
US20120166442A1 (en) Categorizing data to perform access control
EP1669904A1 (en) Verifying Dynamically Generated Operations on a Data Store
US20070294224A1 (en) Tracking discrete elements of distributed transactions
US20090157737A1 (en) Database Trigger Modification System and Method
JP2006331425A (ja) ニューラルネットワークを介してグリッドエグゼキュータを選択する方法およびプログラム
AU2022293332A1 (en) Data governance systems and methods
US8359658B2 (en) Secure authoring and execution of user-entered database programming
JP5043913B2 (ja) データウェアハウスリフレッシュ時のデータ損失を防止する方法
CA2497243C (en) Method, system and software application for real time data processing
WO2004111895A1 (en) Computer system and computer-implemended method for travel management

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080715

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080723

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081114

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4235620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250