JP2006012153A - 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) - Google Patents

同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) Download PDF

Info

Publication number
JP2006012153A
JP2006012153A JP2005173885A JP2005173885A JP2006012153A JP 2006012153 A JP2006012153 A JP 2006012153A JP 2005173885 A JP2005173885 A JP 2005173885A JP 2005173885 A JP2005173885 A JP 2005173885A JP 2006012153 A JP2006012153 A JP 2006012153A
Authority
JP
Japan
Prior art keywords
data
page
data page
transaction
copy
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.)
Granted
Application number
JP2005173885A
Other languages
English (en)
Other versions
JP4833590B2 (ja
Inventor
David J Nettleton
ジェイ.ネトルトン デビッド
Steven J Bailey
ジェイ.バイリー スティーブン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006012153A publication Critical patent/JP2006012153A/ja
Application granted granted Critical
Publication of JP4833590B2 publication Critical patent/JP4833590B2/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 複数ユーザによる同時トランザクションを効率的に実行し、変更するオブジェクトの物理レベルの下の論理レベルでデータを追跡するシステムおよび方法を提供すること。
【解決手段】 各トランザクションは、変更するデータセグメントの更新確定されたバージョンをそれぞれの領域にコピーでき、こうしたコピーを変更中に更新できる。検知コンポーネントは、操作するデータセグメントが他のトランザクションが更新確定した結果としての更新を必要とするかどうかを検知し、マージコンポーネントはデータセグメントを更新確定されたバージョンに同期させる。更新確定段階の要素として、検知およびマージ処理を完了する際に様々な最適化機能を導入してもよい。
【選択図】 図1

Description

本発明は一般にデータ管理に関し、より詳細にはページのバージョニングおよびコピーイングの手法を(例えば、データベース管理システムのサブページ程度の階層で)使用してデータの物理セグメントを操作する同時トランザクションを実行するシステムおよび方法に関する。
コンピュータ技術(マイクロプロセッサの速度、メモリ容量、データ転送帯域幅、ソフトウェアの機能など)の更なる進歩により、一般に様々な業界におけるコンピュータアプリケーションが増大してきている。これまでにない強力なサーバシステムとして、多くの場合サーバ配列が用いられ、例えばWorld Wide Webなどの外部ソースから出される要求を処理している。個別のイントラネットシステムの機能が向上し、より大規模なネットワークの負荷と関連するアプリケーションのサービスが必要になってくるにしたがって、内部システムの要求もますます増大してきている。
一般に、コンピュータシステムの問題は、入手可能な情報やデータが増大しつつあり、それらを処理しなければならないこと、および複数のユーザが入力する更新情報を連続的に監視しなければならないことである。データベースとして何らかの形でディスクやその他の媒体に格納される正味の情報の量は、飛躍的に増えつつある。ファイルとディスクは数十年前には1,000バイト単位で計算されていたが、1,000,000バイト(メガバイト)単位の時代になり、さらに1,000,000,000バイト(ギガバイト)単位になり、現在ではメガバイトの1,000,000倍(テラバイト)、場合によってはメガバイトの1,000,000,000倍の規模のデータベースが構築され、日常業務に使用されている。
このように多くのビジネスデータがデータベースに格納され、データベース管理システム(DBMS)の下で管理されている。こうしたDBMSシステムでは、大規模なインストールを行なう際の大量のデータを処理するデータベーストランザクションへの要求が著しく高まりつつある。同時に、リレーショナルデータベース環境によるデータベースアプリケーションは、新しいデータベースアプリケーション全体の大きな部分を占めている。さらに、こうしたリレーショナルデータベースによって、データベースに関する様々な形のクエリをサポートするための理想的な環境が提供される。例えば、こうしたデータベース環境では、臨機応変の(ad hoc)構造化されていない付随的な(concomitant)クエリの使用が増加する傾向が益々高くなることが予想される。したがって、同一のデータベースに対して、大容量の(high volume)トランザクション処理と構造化されていないクエリの両方を同時にサポートする必要がある。このように、大容量のトランザクション処理と複雑なクエリの両方を効果的にサポートし、両者間の衝突(interference)を最小限に抑え、データのコピーを共有することができるシステムおよび方法が求められている。
一般に、企業(business entities)では、複数のトランザクションを同時に実行できるデータベースエンジンの必須の機能を使用し、大容量の比較的単純なトランザクションを処理してデータベースを作成し、保守している。こうした複数のトランザクションの各々は、1つの作業と見なすことができ、さらに、1つの作業はデータベースに対する読み出し、書き込み、更新、および/または削除などの一連の操作により構成することができる。こうしたトランザクションは、一般的な業務操作(例えば、新しい顧客レコードの作成、支払勘定(account payment)や振替勘定(account transfer)の記録など)を表している。企業においては、自社のオンラインデータに対してより臨機応変に対応できる非構造化クエリを実行したいとの要望が高まっている。こうして、データベースの状態が適正であるかどうかの基準、すなわちデータベースの整合性がますます不可欠になっている。
一般に、データベースの整合性とは、ある意味で、同時に2つ以上のトランザクションが実行され、それによりトランザクション同士の衝突が発生しても、データベースが不適切な状態とならないことが保証されるかどうかということである。アプリケーションのプログラマは、通常、個々のトランザクションによって適正な状態が得られること、およびデータベースは適正な状態にあるとき個々のトランザクションを開始することを保証する必要がある。こうしたトランザクション管理は、一般にACID(Atomicity, Consistency, Isolation and Durability)標準に準拠する必要がある。さらに、データページについて複数のコピーが作成される場合、こうした標準への準拠は困難になる。同時に、データベースエンジンが同時トランザクションを効率的にサポートすれば、動作速度が向上し、データベースの増大が抑制されることでエンドユーザの使い心地も向上する。
特に、従来のシャドウページング技術では、通常、データが変更にかけられている段階(commit stage)で効率的な操作ができない。同時トランザクションをまとめる(merging)ための余計なオーバーヘッドが発生する場合がある。さらに、一般的にログレコードの使用によってデータベースの管理と復旧がさらに複雑になる。
したがって、データベース操作と一般に複数のユーザによるデータ入力を許可する任意のデータ管理システムに関連する従来のシステムおよび方法に伴う上述の問題点を克服することが要求される。
本発明の1つまたは複数の態様について基本的な理解が得られるように、本発明の概要について以下に簡単に説明する。以下の説明は、本発明の概要を一般的に示すものではない。本発明の重要な要素または不可欠な要素を特定したり、本発明の範囲を限定したりするものでもない。この項(this summary)は、後述の実施形態に関する説明の準備として、本発明に関するいくつかの概念を簡略化した形で示すことが唯一の目的である。
本発明は、ページのバージョニング/コピーイングの手法を使用して同時トランザクションを実行するシステムおよび方法を提供する。検知コンポーネント(detect component)は処理の対象となるデータセグメントが他のトランザクションを処理する(commit)ために更新する必要があるかどうかを検知し、マージコンポーネントはデータセグメントを更新確定された(committed)バージョンと同期させる。データセグメントは、物理ユニットおよび/またはデータベース内のデータページのような複数のトランザクション間の交換ユニットでもよい。したがって、同時トランザクションはデータページの様々なコピーを処理し、各トランザクションは各々のコピーを変更する。こうして複数のユーザによる操作が可能になる。本発明は、基本的にデータベーストランザクションの文脈で説明するが、本発明はこれに限定されず、変更されるオブジェクトの物理レベルの下にある論理レベルにおけるデータの追跡が必要とされるような任意のデータ管理システムに適用することができることを理解されたい。
本発明の方法によると、データページのページの下位層における変更を必要とするトランザクションTは、まず更新確定されたデータページの最新のバージョンをデータベースから専用の領域にコピーする(「ゴールデンコピー(golden copy)」)。要求されたページの下位層(例えば、行)を変更するための適切に錠をかける権限に基づいて、トランザクションTはコピーされた複製に対して必要な変更を開始する。一方、同じページの他のセグメント(例えば、Tが錠をかけられていない他の行)を変更する他の様々なトランザクションは更新確定(commited)を実行できるので、データページの「ゴールデンコピー」の変更は、Tによって同時に変更される。本発明は、Tが処理する(commit)前にこうした「ゴールデンコピー」の変更を検知し、T自体による変更とマージすることで、処理されている段階(commit stage)でデータベースの整合性が保持されるようにする。したがって、ゴールデンコピーより前のコピーはそれより後の変更において更新および/または同期化される。また、再読み出しの操作では(例えばTが変更しているページの読み出しが必要になった場合に)、このページのゴールデンコピーへの変更があれば、これをトランザクションの領域にマージするので、再読み出しのプロセスではこうしたページの適切な読み取り用の(read−committed)バージョンが使用される。さらに、トランザクションTで更新確定しないという判断が下された場合は、Tで変更されたページのコピーはそのまま廃棄される。
本発明の関連の態様において、ゴールデンコピーへの変更をトランザクションに通知するページ作成コンポーネントを提供することもできる。各トランザクションが処理しているページに関する情報をデータベースエンジンに格納し、トランザクションが処理すると、更新確定されたバージョンに関する情報が、必要に応じて他のトランザクションに提供されるようにしてもよい。したがって、同時トランザクションが別々のページを操作している場合は、一般にマージのステップが不要であり、ページマーキング(page marking)コンポーネントが他のトランザクションに情報を提供して、更新確定されたページの最新のバージョンに合わせる必要はない。同様に、トランザクションがロールバックし、予定の処理が実行されない場合は、他のトランザクションのページマーキングは一般には不要である。
本発明のもう1つの態様によると、マージ処理を効率的に実行するための様々な最適化機能を導入してもよい。例えば、トランザクションの処理段階に先立って(すなわち、トランザクションがデータベースに対して行う変更を「確定」する前に)、一般的に特定のページの領域に空きがあること(すなわち、ページの様々なコピーを操作するトランザクションはそのページの記憶領域全体を使用するわけではないこと)、およびページ全体のデータの再編成が軽減される(トランザクションは、様々なコピーをマージするためにページ全体のデータを移動する必要はない)ことが保証される。こうした枠組みによって、予定の処理の操作を効率的かつ簡単に実行できるので、複数ユーザによる操作が改善され、システムリソースを節約できる。
本発明の関連する態様において、スピンロックの手法(spin lock system)を導入し、一度に1人のユーザのみが処理できるようにしてもよい。通常、このようなミューテックス(mutex)コンポーネントをトランザクションが更新確定の段階に到達したときに利用することでデータベース操作における整合性を提供できる。
上述の結果と関連する結果を実現するために、本発明は以下に詳説する機能を備えている。以下の説明と添付の図面には、説明を目的とした本発明の特定の例示的な態様を詳細に示す。ただし、こうした態様は例を示すものであり、本発明の原理を使用できる様々な方法の一部にすぎない。本発明のその他の態様、利点、新規の機能は、以下の詳細な記述に添付の図面を関連付けて考察することで明らかになるであろう。
本発明について添付の図面に関連付けながら詳細に説明するが、全体にわたって同類の要素には同様の参照番号を使用する。以下の説明において、本発明の理解を深めるために、説明を目的として具体的に特定の番号について詳細に説明する。ただし、本発明は以下に示す個々の詳細な要素がなくても実施できることは明らかである。他の例では、本発明の説明を容易にするために、既知の構造とデバイスがブロック図の形で示されている。
本出願で使用する限り、「コンポーネント」、「ハンドラ」、「モデル」、「システム」などの用語は、コンピュータ関連のエンティティを表すものとし、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェア(software in execution)のいずれでもよい。例えば、コンポーネントは、プロセッサで実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行中のスレッド、プログラム、および/またはコンピュータのいずれでもよいが、これらに限定はされない。例えば、サーバ上で動作するアプリケーションとサーバはいずれもコンポーネントと言える。実行中のプロセスおよび/またはスレッド内に1つまたは複数のコンポーネントが存在してもよい。また、コンポーネントは1台のコンピュータに集中しても、および/または2台またはそれ以上のコンピューに分散してもよい。さらに、こうしたコンポーネントは、様々なデータ構造を格納した様々なコンピュータ読取可能な媒体からも実行できる。コンポーネントは、ローカルプロセスおよび/またはリモートプロセスを介して、例えば1つまたは複数のデータパケット(例えば、ローカルシステム内、分散システム内の別のコンポーネント、および/またはインターネットのようにネットワークを経由した他のシステムと対話するコンポーネントのデータ)を含む信号に従って通信できる。
本発明は、検知コンポーネントとマージコンポーネントを使用して予め定められたデータセグメント(例えば、データベースのページの下位層)に関する同時トランザクションを実行するシステムおよび方法を提供する。個々のトランザクションは、データセグメントを更新確定された最新のバージョンで、データストレージからトランザクション専用の領域にコピーする(「ゴールデンコピー」)。検知コンポーネントは、処理中の任意のデータセグメントが他のトランザクションによって実行されたさらなる変更に基づく更新が必要であるかどうかを検知することができる。本発明は、基本的にデータベーストランザクションの文脈の流れで説明されているが、本発明はこれに限定されず、複数のユーザがデータ記憶領域のデータセグメントの変更を要求する任意のデータ管理システムに適用することができることを理解されたい。
まず図1を参照すると、本発明の1つの実施形態によるデータ管理エンジンの例示的な要素が示されている。検知コンポーネント110とマージコンポーネント120が組み込まれており、ここでトランザクション112〜116が動作している。各トランザクション112〜116は、トランザクションが作成した任意のデータセグメントに加えて、データセグメント(i、m、nおよびzは整数)の更新確定されたバージョン130からコピーされるデータセグメントの各々のコピー(例えば、データベースを構成するデータページのコピー)を操作することができる。こうした操作には、例えばデータベースの各ページに格納されたデータの行の操作を含めてもよい。一般に、本発明のデータ管理エンジンは、さらにデータセグメントで構成されるデータストレージ(図示せず)の操作を複数のユーザが同時に実行できるマルチユーザエンジンでもよい。トランザクションがデータセグメントのデータの変更を要求すると、まずデータセグメントはそのトランザクション用に予約された領域にコピーされる。それ以降、トランザクションはこうしてコピーされたデータセグメントを操作して、要求されたデータを変更することができる。
検知コンポーネント110は、複数の同時トランザクション112〜116のすべてに作用し、共有データセグメントの更新確定されたバージョン(「ゴールデンコピー」)130からコピーされたデータセグメントで更新を必要とするものがあるかどうかを検知することができる。こうした更新は、例えばトランザクションTがその更新確定された最新のバージョン(ゴールデンコピー)からデータセグメントをコピーした後で別のトランザクションがデータセグメントを更新確定した場合(したがってゴールデンコピーを変更した場合)に要求される。データセグメントストレージ領域を整合性のとれた状態に維持するために、トランザクションTはこうした別のトランザクションの更新確定によるゴールデンコピーへの変更を反映するように更新する必要がある。こうした更新は、複数の同時トランザクション112、114、および116(ただし、Nは整数)のすべてに作用できるマージコンポーネントによって提供される。
例えば、指定された任意の時間に複数のトランザクション1〜N(Nは整数)はデータストレージ領域の特定のデータセグメントへの変更を要求することができる。こうした変更には、特定のスロット(slot)でのデータの変更、データフィールドの挿入、データフィールドの削除などを含めることができる。次に、トランザクションは予約された領域にデータセグメントをコピーできる。各トランザクションは、そのデータページの各々のコピーに対して行の挿入や行の削除を行う。これに応じて、検知コンポーネント110は特定のデータセグメントのゴールデンコピーに発生している変更を検知して、マージコンポーネント120と連携してトランザクションの更新確定段階の前に更新確定されたページが適切に更新されるようにすることができる。
図2は、本発明の1つの特定の態様に従ってロックマネージャ230と対話するデータベースエンジンの要素の例示的な態様を示している。ロックマネージャ230は、特定の資源にロックをかけることが許可されているかどうかを判断でき、一般に各トランザクションTからTはデータページの各々のコピーを操作できるので、サブページロック(例えば行に錠をかける)を管理するのに適している。データページの多くのコピーは、指定された任意の時間に存在することができるので、ロックマネージャ230では一般に同時トランザクションが同じデータページの異なる行の情報を変更できることが保証される。例えば、ロックマネージャ230は、トランザクションに対して特定の行に関し排他的に錠(ロック)をかけることを許可することができる。これにより、他のトランザクションが他の行への変更を許可されても、この行への変更は制限される。このように、ロックマネージャ230は標準的な操作の同時並行性(concurrency)に基づいて特定の資源にロックをかけるのを許可したり拒否したりすることができる。
本発明の1つの特定の態様のロックマネージャ230は、データベースエンジンの検知コンポーネント210およびマージコンポーネント220から独立していてもよい。関連の態様において、追加の情報(例えば、特定の場所での排他的ロックの許可、空き領域の有無など)がロックマネージャに格納されており、検知コンポーネント210はこれを利用してどのトランザクション212〜216がデータベースのどのゴールデンコピーを操作しているかを追跡することができる。したがって、データページに関する様々なトランザクションによる変更がデータページの別々のコピー上で生じるので、検知コンポーネント210はマージコンポーネント220と連携してトランザクション212〜216のACIDプロパティを保護することができる。同時に、ロックマネージャ230は、一般にトランザクションが理論上特定のリソースの変更を許可することを保証することができる。したがって、複数ユーザがデータベースを変更すると、ページの下位層(例えば行)による同時トランザクションの操作が可能となる。また、読み出しは、更新確定された状態のデータページから要求できるので、データページの読み出し操作中は(例えば、データページへの変更が要求されていない場合)、一般的に共有のロックを要求する必要はない。さらに、任意のデータページのコピーを所有するトランザクションが読み出し操作を要求する場合も、読み出し操作は共有ロックを必要としない。読み出しは、更新確定されたページおよび/または任意のページのトランザクションのバージョンを使用して実行可能とするためである(通常は、トランザクションのページが更新確定されるページに優先して使用されるが、ただし、この場合このページは他の場所では変更されない)。
図3は、ロックマネージャ230によって許可される例示的なロックの階層を示している。ロックの細分性(granularity)について示すように、データベース2のテーブル2のデータページ2の3行目の変更を要求するトランザクションTに排他的なロックをかけることが許可されている。したがって、データページ2のコピーがトランザクションTの予約された領域(図示せず)にコピーされ、トランザクションTは次にそのコピーの変更を進めることができる。行3に対するこうした排他的なロック許可は他のトランザクションから認識できるので、一般にTがその変更を更新確定(またはロールバック)し、そのロックが解除されるまで、他のトランザクションはデータページ2の各々のコピーのこの行を変更することはできない。
図4は、本発明の1つの態様に従ってデータベースの変更を要求する複数のクライアントを示している。ここで、各クライアント420上で動作するのはクライアントプロセス、例えば、Webブラウザ410でもよい。同様に、サーバ450上で動作するのは対応するサーバプロセス、例えばWebサーバ460でもよい。さらに、Webブラウザ410に埋め込まれているのは、スクリプトまたはアプリケーション430でもよい。クライアントコンピュータ420の実行時環境440内で動作し、フォーマットされたデータパケットのパッケージ用およびアンパック用のプロキシ415が存在してもよい。サーバ450と通信するのは、データベース(図示せず)へのアクセスを管理するデータベース管理システム(DBMS:database management system)480である。DBMS 480とデータベース(図示せず)は、サーバ自体の内部に配置してもよい。あるいはリモートデータベースサーバ(図示せず)上にリモートで配置してもよい。Webサーバ460上で動作しているのは、データベースインターフェースAPI(アプリケーションプログラミングインターフェース:Applications Programming Interface)470である。このAPIにより、DBMS 480へアクセスすることが可能となる。クライアントコンピュータ420とサーバコンピュータ450とは、ネットワーク490を介して互いに通信することができる。他の編成(例えば、クライアントコンピュータとサーバコンピュータが同一のコンピュータである)も可能であることを理解されたい。クライアントプロセス、例えば、Webブラウザ410が、データベースからデータを要求すると、スクリプトまたはアプリケーション430はクエリを発行する。クエリはネットワーク(例えば、インターネット)490を経由してサーバコンピュータ450に送信され、ここでサーバプロセス、例えばWebサーバ460によって解釈される。クライアント420からサーバ450への要求には、複数のコマンドを含めることができ、サーバ450からの応答では複数の一連の結果を返すことができる。
こうした通信、セッション、プレゼンテーション、およびアプリケーションサービスの各エレメントは、TDS(Tabular Data Stream)によって提供される。TDSは特定の転送プロバイダを要求しないので、複数の転送プロトコルとネットワーク490の全域で実装することができる。クライアントコマンドに返される応答は、自己記述型であり、レコード指向であってもよい(例えば、データストリームに返される行の名前、タイプ、オプションの説明を記述してもよい)。
クライアント側420では、データはサーバ側450が理解できる言語である構造化照会言語(SQL:Structured Query Language)コマンドでよい。SQLコマンドの後には、その関連のバイナリデータ(例えば、bulk copy(バルクコピー)コマンドのデータ)、またはアテンション信号(attention signal)が続く。接続が必要な場合は、クライアント420からサーバに接続信号を送信できる。クライアント420がサーバ450への複数の接続を保持できる場合も、それぞれの接続パスは別個に、しかも同じ方法で確立することができる。
サーバ450は、クライアント420からの接続信号を受信すると、接続要求を許可(accepted)したか、拒否(rejected)したかをクライアントに通知する。同様に、SQLコマンドまたはSQLコマンドのバッチを送信するため、ここでSQLコマンド(例えば、ユニコード形式で表した)はバッファのデータセクションにコピーしてからSQLサーバ側450に送信する。さらに、様々なODBC(Open Data Base Connectivity)ルーチンによって、SQLコマンドがクライアントのメッセージバッファに配置されたり、メッセージバッファがサーバに送信されたりしてもよい。変更が要求され、トランザクションの更新確定段階に先立つ場合は、一般に特定のページの領域を利用することができること(例えば、ページの様々なコピーを操作しているトランザクションが、そのページの記憶領域のすべてを消費しないこと)が保証され、そのページの周囲のデータを再編成することから軽減される(例えば、トランザクションは様々なコピーをマージするためにページの周囲のデータを移動する必要がない)。こうした枠組みによって、更新確定操作を効率的かつ簡単に実行することができるので、複数ユーザによる操作は改善され、システムリソースを節約することができる。
図5は、さらにページマーキングコンポーネント530を組み込んだ本発明の1つの態様によるデータベースエンジンの要素の概要を示すブロック図である。一般に、トランザクションTが特定のページを操作している場合に、トランザクションTは、Tがコピーした後でそのページのゴールデンコピーに変更があったかどうかを検知できる必要がある。本発明による態様の1つにおいて、こうした検知は検知コンポーネント510とページマーキングコンポーネント530が連携することで可能になる。ページマーキングコンポーネント530は、ゴールデンコピーへの変更をトランザクションに通知することができる。各トランザクションが操作しているページに関する情報をデータベースエンジンに格納し、トランザクションが更新確定すると、更新確定されたバージョンに関する情報が必要に応じて他のトランザクションに提供されるようにしてもよい。したがって、同時トランザクションが別々のページを操作している場合は、一般にマージのステップが不要であり、ページマーキングコンポーネントが他のトランザクションに情報を提供して更新確定された最新のバージョンに合わせる必要はない。同様に、トランザクションがロールバックし、更新確定が実行されない場合は、他のトランザクションのページマーキングは一般には不要である。
したがって、トランザクションTが更新確定する場合は、他のトランザクションにどんな影響を及ぼし得るかが確認される。例えば、Tが変更したのと同じページの別のコピーを別のトランザクションTが操作することができる。この場合は、Tが動作しているコピーにマークを付けることができる。トランザクション512〜516の各々が処理しているページについての情報は、データベースエンジンに格納してもよい。トランザクション512がその更新を更新確定する前に、マージが必要かどうかが確認される。こうした確認は、ページマーキングコンポーネントが付けた関連のマークを調べることによって、および/または他のトランザクションが同じページを変更したかどうかを調べることによって実行することができる。したがって、同時トランザクション512〜516が異なるページを処理する場合、一般にマージのステップは不要である。同様に、任意のトランザクション512〜516がロールバックを要求される場合は、それぞれのページコピーがそのまま廃棄されるが、こうした(その時点でロールバックされる)トランザクションによりページをマークされた他のトランザクションは、更新確定されたバージョンによるマージを実行してもよい。
図6は、本発明のマージ処理に関連して利用できる最適化機能を示している。同時トランザクションTはデータページ610のコピーを処理することができる。データページ610(ゴールデンページ)には、初めに行Aが含まれている。操作611で、Tは操作612で行BとCを挿入するためにデータページ610のコピーの操作を開始する。操作612でのそのような挿入操作に先立って最適化機能が導入され、2つの条件660、すなわちページ上の領域の利用可能である(ページに空き領域がある)こと、および他のトランザクションがそのページを変更しているためにページは再編成を要求していないことが確認され、かつ/または適用される。このように、挿入操作および/または操作するページの選択に先立って、データページ上の使用済みの領域と空いている領域を確認してもよい(例えば、こうしたページをコピーする前でも、変更を実行するための十分な空き領域があるかどうかを確認してもよい)。このようにして、本発明の最適化機能では、サブページを変更する場合の論理的考慮事項(例えば、特定の場所に行を挿入する論理的許可があるかどうか)に加えて、そのページの物理的なプロパティ(例えば、挿入時に特定のページに空き領域があるかどうか)も考慮することができる。続いて、操作612で行BとCが挿入される。操作620に図示するように、こうした行BとCの挿入により、該当するデータページコピー上の空き領域が占有される。Tの更新確定操作616は、このように効率よく簡単に実行されると同時に、マルチユーザ操作を改善し、システムリソースを節約する。上述の最適化機能は、本発明の他の態様を実施するために必要ではないが、パフォーマンスの向上に有効である。特に、「page not full(ページに空きがある)」以外の状態では、一般にデータベースエンジンに対してデータを格納するための別のページを見つけるように要求することができる。関連する実施形態において、Tがその変更をロールバックしてデータページの領域を解放する場合に、こうした追加の領域の空き状況(availability)はすべてのトランザクションに通知される。ロールバックによって関連して設定されているロック(例えば、排他的な行のロック)も廃棄されるので、ロールバックしたトランザクションが使用するための領域に事前に格納されていた情報は、関連のロックの解除と同時に廃棄される。
図7は、本発明の1つの態様による例示的な方法を示している。方法700は、データ記憶領域に格納されたデータの変更を要求するトランザクションT(例えば、データベースのデータページ「A」のページの下位層での変更)で開始される。特定のデータベース環境の例では、トランザクションTはマルチユーザデータベースエンジンの一部として動作する複数の同時トランザクションの要素でもよい。ステップ710のトランザクションTによるデータ操作の要求には、特定のデータページ上の特定のスロットに格納されたデータの変更、更新された行による行の置換、行の挿入、行の削除などが含まれる。次に、ステップ720でトランザクションTはデータページ「A」を予約された領域にコピーAとしてコピーできる。ステップ730で、データページ「A」のゴールデンコピーが他のトランザクションによって変更されたことが検知される。こうした検知は、例えば検知コンポーネントによって実行でき、ページAはマージ要求に伴い、ページマーキングコンポーネントによってマーク付けされる。続いて、ステップ740でページAは更新確定されたコピーへの新しい変更によってマージされ、更新される。これで、トランザクションTはデータベースの整合性を維持し、データベース内のデータを喪失することなく更新確定することができる。
図8は、本発明の1つの態様による関連する方法を示している。この方法では、トランザクションは本発明の1つの態様により、ステップ810でデータページを再読み出しすることが要求される。こうした再読み出しが実行される可能性があるのは、例えば、トランザクションがトランザクションの存続期間中に、リードコミットアイソレーションレベル(read committed isolation level)で動作しており、同じデータに対して2度以上「SELECT」操作を実行する場合である。ステップ820でスピンロックが取得され、このスピンロックによって、常に一度に1つのトランザクションのみがマージを行なうためのメカニズムが有効になる。こうしたミューテックスコンポーネントを利用することにより、通常はデータベース操作の整合性を保証することができる。ステップ830で、ページが複数の同時トランザクションの間で共有されるデータページの「ゴールデンコピー」に対して実行された新しい変更とのマージを必要とするかどうかについて、この検知手法によって判断される。マージする必要がない場合、ステップ840でスピンロックが解除され、ステップ890で操作が終了する。これに対して、ページのマージの必要があると判断された場合は、本方法ではマージ処理に進み、ページの更新確定されたバージョンは次にステップ860でトランザクションのそれぞれの領域にコピーされる。続いてステップ870では、マージ処理の追加部分として、ページ上で変更が実行されるたびに関連する更新確定されたページが更新される。次にステップ880で、トランザクションのページは、更新確定されたページの更新されたコピーで置き換えられる。
ここで、図9を参照すると、本発明の1つの態様による関連する方法が示されている。ここでは、更新確定手順910の一部として変更の検知とマージが概説されている。ステップ920で、一度に唯一のユーザが更新確定するメカニズムを実現するスピンロックが取得され、データベース操作の整合性が保証される。ステップ925において、トランザクションで変更する次のデータページが検知とマージのプロセスの対象として選択される。続いて、検知プロセスが開始され、ステップ927でそのページが他のトランザクションで使用されているかどうかが判断される。使用されている場合、本方法ではステップ929に進み、他のトランザクションで使用されているページのコピーは、例えば上記で詳説したページマーキングコンポーネントによってマージの対象としてマークされる。使用されていない場合は、ステップ930で、ページが複数の同時トランザクションの間で共有されるデータページの「ゴールデンコピー」に対して実行された新しい変更とのマージを必要とするかどうかを、この検知手法によって判断する。ページのマージの要求がある場合に、本方法はマージ処理に進み、ステップ960でページの更新確定されたバージョンがトランザクションのそれぞれの領域にコピーされる。続いてステップ970では、マージ処理の追加の要素として、ページ上で変更が実行されるたびに関連の更新確定されたページが更新される。次にステップ990でトランザクションのページは更新確定されたページの更新されたコピーで置き換えられ、続いてステップ940でロックが解除される。これに対して、ステップ930でページのマージの要求がないと判断された場合、本方法はステップ940に進み、直ちにページのロックを解除する。続いて、ステップ945で、トランザクションで操作した最後のページに到達しているかどうかが判断される。ステップ925にループバックしない場合は、ステップ947でスピンロックを解除し、ステップ995で終了する。
図10を参照すると、本発明の様々な態様を実装できるクライアントサイドとサーバサイドの適切なコンピューティング環境が簡単かつ一般的に示されている。本発明について、1台および/または複数台のコンピュータで実行するコンピュータプログラムのコンピュータで実行可能な命令の一般的な流れで説明してきたが、本発明を他のプログラムモジュールと組み合わせても実装できることを当業者は理解されたい。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造など、特定のタスクを実行するものおよび/または特定の抽象データ型を実装するものがある。さらに、本発明による方法が、シングルプロセッサまたはマルチプロセッサによるコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースの家電製品またはプログラム可能な家電製品など、他のコンピュータシステム構成でも実施できることを、当業者は理解されたい。上述のように、本発明の図示された態様は、通信ネットワークを介してリンクするリモート処理装置でタスクを実行する分散コンピューティング環境でも実施することができる。ただし、本発明のすべてではないがいくつかの態様は、スタンドアロンコンピュータで実施できる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートのいずれのメモリ記憶装置内に配置してもよい。例示的なコンピュータ1020には、プロセッシングユニット1021、システムメモリ1022、様々なシステムコンポーネント(システムメモリとプロセッシングユニット1021など)を接続するシステムバス1023が含まれる。プロセッシングユニット1021は、市販の様々なプロセッサのいずれでもよい。デュアルマイクロプロセッサやその他のマルチプロセッサアーキテクチャも処理装置1021として利用することができる。
システムバス1023は、市販の様々なバスアーキテクチャの任意の1つを使用したメモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含む各種バス構造のいずれでもよい。システムメモリ1022には、読み取り専用メモリ(ROM:read only memory)1024とランダムアクセスメモリ(RAM:random access memory)1025が含まれる。起動時などにコンピュータ1020内のエレメント間の情報転送を支援する基本ルーチンを含む基本入出力システム(BIOS:basic input/output system)は、ROM 1024に格納される。
コンピュータ1020には、さらにハードディスクドライブ1027、例えば取り外し可能なディスク1029に対する読み出しまたは書き込みを行う磁気ディスクドライブ1028、例えばCD−ROMディスク1031の読み出しまたは書き込み、または他の光媒体に対する読み出しまたは書き込みを行う光ディスクドライブ1030が含まれる。ハードディスクドライブ1027、磁気ディスクドライブ1028、および光ディスクドライブ1030は、それぞれハードディスクドライブインターフェース1032、磁気ディスクドライブインターフェース1033、および光ディスクドライブインターフェース1034を介してシステムバス1023に接続する。ドライブとこれに関連付けられたコンピュータ読取可能な媒体は、データ、データ構造、コンピュータ1020のコンピュータ実行可能命令を格納する不揮発性ストレージとして利用できる。上述のコンピュータ読取可能な媒体の説明は、ハードディスク、取り外し可能な磁気ディスク、およびCDを表しているが、例示的な動作環境では、磁気カセット、フラッシュメモリカード、デジタルビデオディスク(DVD:digital video disk)、Bernoulli(ベルヌーイ)カートリッジなど、その他のコンピュータ読取可能な媒体も利用でき、さらにこうした任意の媒体に本発明の方法を実行するためのコンピュータ実行可能命令を格納できることを当業者は理解されたい。
オペレーティングシステム1035、1つまたは複数のアプリケーションプログラム1036、その他のプログラムモジュール1037、およびプログラムデータ1038を含む多くのプログラムモジュールは、ドライブおよびRAM 1025に格納することができる。図示されたコンピュータで動作するオペレーティングシステム1035は、実質的に市販の任意のオペレーティングシステムでよい。
ユーザは、キーボード1040やポインティングデバイス(例えばマウス1042)を使用してコンピュータ1020にコマンドや情報を入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めてもよい。これらの入力装置および他の入力装置は、多くの場合、システムバスに接続するシリアルポートインターフェース1046を介してプロセッシングユニット1021に接続するが、パラレルポート、ゲームポート、USB(universal serial bus)のような他のインターフェースで接続してもよい。モニタ1047または他のタイプの表示装置も、ビデオアダプタ1048のようなインターフェースを介してシステムバス1023に接続される。コンピュータには、一般にモニタ以外にもスピーカーやプリンタなどの周辺出力装置(図示せず)が接続されている。
コンピュータ1020は、リモートコンピュータ1049のような1台または複数台のリモートコンピュータへの論理接続を使用してネットワーク環境で動作できる。リモートコンピュータ1049は、ワークステーション、サーバコンピュータ、ルータ、ピアデバイス、または他の一般的なネットワークノードのいずれでもよい。通常は、コンピュータ1020に関連して上で説明したエレメントの多くまたはすべてが含まれるが、図10にはメモリ記憶装置1050のみを示す。図10に示す論理接続には、ローカルエリアネットワーク(LAN:local area network)1051とワイドエリアネットワーク(WAN:wide area network)1052を含めてもよい。このようなネットワーキング環境は、職場、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
LANネットワーキング環境で使用する場合、コンピュータ1020はローカルネットワーク1051にネットワークインターフェースまたはアダプタ1053を介して接続してもよい。WANネットワーキング環境で使用する場合、コンピュータ1020は一般にモデム1054を備えることができ、および/またはLAN上の通信サーバに接続し、および/またはインターネットなどのWAN 1052を介して通信を確立するその他の手段を備えている。モデム1054(内蔵または外付け)は、シリアルポートインターフェース1046を介してシステムバス1023に接続してもよい。ネットワーク環境では、コンピュータ1020またはその一部に関連して記述したプログラムモジュールをリモートメモリ記憶装置に格納してもよい。図示されたネットワーク接続が例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは言うまでもない。
本発明について、コンピュータプログラミング業者の実施に従って、他に指定されない限り、コンピュータ1020のようなコンピュータが実行する動作およびオペレーションのシンボリック表現に関して説明してきた。このような動作やオペレーションは、コンピュータで実行すると表現されることもある。動作およびオペレーションのシンボリックな表現には、結果として電子信号表現の変換または還元(reduction)を得るデータビットを表す電子信号のプロセッシングユニット1021による操作、およびコンピュータシステムのオペレーションを再構成または変更するメモリシステム(システムメモリ1022、ハードドライブ1027、フロッピー(登録商標)ディスク1029、CD−ROM 1031を含む)におけるメモリロケーションのデータビットの保守、およびその他の信号処理が含まれる。こうしたデータビットが保持されるメモリは、データビットに対応する特定の電子的、磁気的、光学的な特性を有する物理的な場所に配置される。
ここで図11を参照すると、本発明の1つの態様によるデータ操作方法を利用するクライアントサーバシステムが示されている。1台または複数台のクライアント1120は、ハードウェアおよび/またはソフトウェア(例えばスレッド、プロセス、コンピューティングデバイス)でよい。システム1100には、1台または複数台のサーバ1140も含まれる。サーバ1140は、ハードウェアおよび/またはソフトウェア(例えばスレッド、プロセス、コンピューティングデバイス)でよい。例えば、こうしたサーバ1140には本発明を使用した変換を実行するスレッドを格納することができる。クライアント1120とサーバ1140とは、本発明に従って2つ以上のコンピュータプロセス間で送信されるデータパケットの形で通信してもよい。クライアント/サーバは同じプロセスを共有してもよい。図示されるように、システム1100はクライアント1120とサーバ1140の間の通信を可能にする通信機構(framework)フレームワーク1180を備えている。クライアント1120は、クライアント1120のローカルな情報を格納するための1つまたは複数のデータストレージ1110に接続して機能する。さらに、クライアント1120はサーバプロセスを実行するサーバコンピュータ1140上に配置されたデータベース1160にアクセスでき、これを更新することができる。本発明の1つの態様において、通信機構1180はインターネットでもよい。クライアントプロセスはWebブラウザであり、サーバプロセスはWebサーバであってもよい。同様に、一般的なクライアント1120はこのように、一般的なクライアント1120は、セントラルプロセッシングユニット(CPU)、システムメモリ、パーソナルコンピュータをインターネットに接続するためのモデムまたはネットワークカード、ディスプレイ、およびキーボード、マウスのようなその他のコンポーネントを備える従来のパーソナルコンピュータなどの汎用コンピュータでもよい。同様に、一般的なサーバ1140は大学または企業のメインフレームコンピュータまたは専用ワークステーションなどでもよい。
本発明を図示された特定の態様に関連して提示し、説明してきたが、他の当業者が本明細書および添付の図面を参照し、理解した時点で同等の変更や変形を加えるのは明らかである。特に上述のコンポーネント(アセンブリ、デバイス、回路、システムなど)で実行する様々な機能に関して、こうしたコンポーネントを表す用語(「手段」という表現を含む)は、特に指示のない限り、記述するコンポーネントの特定の機能を実行する(すなわち機能的に同等の)任意のコンポーネントに対応するものとする。ただし、ここに説明する本発明の例示的な実施形態の特定の機能を実行する開示された構造と構造上同等でなくてもよい。この点について、本発明にはシステムおよび本発明の様々な方法の動作および/またはイベントを実行するためのコンピュータ実行可能命令を格納するコンピュータ読取可能な媒体が含まれることも言うまでもない。さらに、特許請求の範囲と発明の実施の形態のいずれかで使用する「含む」、「含まれる」、「有する」という用語およびその変形の範囲は、用語「備える」と同様に包括的な意味を表すものとする。
本発明の1つの態様によるデータ管理エンジンの要素を示すブロック図である。 本発明の1つの態様によるロックマネージャを備えるデータベース環境の要素として動作するデータベースエンジンを示すブロック図である。 本発明の別の態様によるロックマネージャで管理される例示的なロック階層を示す図である。 本発明の1つの態様による同時トランザクションを採用するクライアントサーバネットワークを示すブロック図である。 本発明の1つの態様によるページマーキングコンポーネントを備えるデータベースエンジンの要素を示すブロック図である。 本発明の1つの態様による特定の方法を示す図である。 本発明の別の態様による例示的な方法を示す図である。 本発明の1つの態様による検知とマージの方法を示す流れ図である。 本発明の1つの態様による更新確定段階の要素として検知とマージのプロセスを実行する別の例示的な方法を示す流れ図である。 本発明の様々な態様を利用できる適切なコンピューティング環境の概略を示すブロック図である。 本発明の1つの態様によるデータ変更方法を利用できるクライアントサーバシステムを示す図である。
符号の説明
1020 コンピュータ
1021 プロセッシングユニット
1022 システムメモリ
1027 ハードドライブ
1028 フロッピー(登録商標)ドライブ
1029 ディスク
1030 CD−ROMドライブ
1031 ディスク
1032 インターフェース
1033 インターフェース
1034 インターフェース
1035 オペレーティングシステム
1036 アプリケーション
1037 モジュール
1038 データ
1040 キーボード
1042 マウス
1046 シリアルポートインターフェース
1047 モニタ
1048 ビデオアダプタ
1049 リモートコンピュータ
1050 メモリ記憶装置
1053 ネットワークアダプタ
1054 モデム
1110 クライアントデータストレージ
1120 クライアント
1140 サーバ
1160 サーバデータストレージ
1180 通信機構

Claims (34)

  1. 複数の同時トランザクションのすべてについて動作し、データセグメントのコピーが該データセグメントの更新確定されたバージョンと比較して最新かどうかを検知する検知コンポーネントであって、前記データセグメントは変更を要求する1つまたは複数のトランザクションによってコピーされる検知コンポーネント
    を備えたことを特徴とするデータ管理エンジン。
  2. 前記データセグメントのコピーを前記更新確定されたバージョンに同期させるマージコンポーネントをさらに備えたことを特徴とする請求項1に記載のデータ管理エンジン。
  3. 同時トランザクションのすべてについて前記データセグメントの下位層においてロックをかけることを可能にするロックマネージャをさらに備えたことを特徴とする請求項2に記載のシステム。
  4. 前記同時トランザクションの各々は、前記データセグメントのそれぞれのコピーを変更することを特徴とする請求項2に記載のシステム。
  5. 前記検知コンポーネントは、前記トランザクションの各々が使用するデータセグメントのそれぞれのコピーのすべてについてデータの変更を検知することを特徴とする請求項3に記載のシステム。
  6. 前記マージコンポーネントは、前記それぞれのコピーに付けられたマークに基づいてマージが必要かどうかを判断することを特徴とする請求項4に記載のシステム。
  7. 前記データセグメントはデータベースのデータページであり、前記下位層においてロックをかけること(sub page locking)は前記データページの行においてロックをかけることであることを特徴とする請求項3に記載のシステム。
  8. 前記それぞれのコピーにマークを付けるページマーキングコンポーネントをさらに備えたことを特徴とする請求項2に記載のシステム。
  9. 前記データページを操作するトランザクションに関する一連の条件を適用し、前記トランザクションの更新確定段階に先立って前記データページの少なくとも1つの領域の空きが保証し、マージ処理でのデータの再編成を不要にする最適化機能をさらに備えたことを特徴とする請求項7に記載のシステム。
  10. データページのページの下位層の操作を行う同時トランザクションのすべてについて動作し、前記データページのコピーが更新確定されたバージョンに比較して最新かどうか、および前記データページに関連するページマーキングコンポーネントによって前記データページにマークが付けられていないかを検知する検知コンポーネントと、
    前記データページの前記コピーを前記更新確定されたバージョンで更新するマージコンポーネントと
    を備えたことを特徴とするデータベースエンジン。
  11. 前記同時トランザクションの各々は、前記データページ上の空き領域をすべて消費することなく、前記データページのそれぞれのコピーを変更することを特徴とする請求項10に記載のデータベースエンジン。
  12. 前記同時トランザクションのすべてについて操作の互換性を実現するロックマネージャをさらに備えたことを特徴とする請求項10に記載のデータベースエンジン。
  13. データページの変更を要求するトランザクションの予約領域に前記データページをコピーし、前記データページのそれぞれのコピーを作成するステップと、
    前記それぞれのコピーが前記データページの更新確定されたバージョンと比較して最新の状態にあるかどうかを検知するステップと
    を備えたことを特徴とする同時トランザクションを実行する方法。
  14. 前記それぞれのコピーを前記データページの更新確定されたバージョンで更新するステップをさらに備えたことを特徴とする請求項13に記載の方法。
  15. 他のトランザクションが更新確定した結果として前記データページを変更するステップをさらに備えたことを特徴とする請求項13に記載の方法。
  16. 前記データページのそれぞれのコピーにマークを付けるステップをさらに備えたことを特徴とする請求項13に記載の方法。
  17. 前記データページでリソースにロックを割り当てるステップをさらに備えたことを特徴とする請求項13に記載の方法。
  18. 前記トランザクションの各々を1動作に1つずつ更新確定するステップをさらに備えたことを特徴とする請求項14に記載の方法。
  19. 前記トランザクションがロールバックすると、前記それぞれのコピーを廃棄するステップをさらに備えることを特徴とする請求項13に記載の方法。
  20. トランザクションを更新確定すると、前記ロックを解除するステップをさらに備えることを特徴とする請求項18に記載の方法。
  21. 請求項13に記載の方法を実行するためのコンピュータ実行可能命令を格納するコンピュータ読取可能な媒体。
  22. 同時トランザクションを実行するシステムであって、
    データページ上で更新された情報を検知する手段と、
    前記データページのコピー上で前記更新された情報をマージする手段と
    を備えたことを特徴とするシステム。
  23. 前記データページのコピーにマークを付ける手段をさらに備えたことを特徴とする請求項22に記載のシステム。
  24. 複数の起動中のトランザクションのすべてについて動作し、前記データページのコピーが更新確定されたバージョンと比較して最新かどうかを検知するコンピュータ実行可能コンポーネントを備えたデータ構造を格納し、前記データページはその変更を要求する起動中のトランザクションによってコピーされることを特徴とするコンピュータ読取可能な媒体。
  25. 前記それぞれのコピーを前記データページの更新確定されたバージョンで更新する別のコンピュータ実行可能コンポーネントをさらに備えたことを特徴とする請求項24に記載のコンピュータ読取可能な媒体。
  26. データページのデータを変更する際の論理的な考慮事項を管理するさらに別のコンピュータ実行可能コンポーネントをさらに備えたことを特徴とする請求項24に記載のコンピュータ読取可能な媒体。
  27. 前記さらに別のコンピュータ実行可能コンポーネントは、前記データページのページの下位層にロックをかけることを許可することを特徴とする請求項26に記載のコンピュータ読取可能な媒体。
  28. 前記それぞれのコピーにマークを付けるさらに別のコンピュータ実行可能コンポーネントをさらに備えたことを特徴とする請求項25に記載のコンピュータ読取可能な媒体。
  29. 同時トランザクションの同期化を可能にするシステムであって、
    データページ上で更新された情報を検知する手段と、
    前記データページのコピー上で前記更新された情報をマージする手段と、
    前記同時トランザクションの更新確定段階で前記データページの周囲のデータの再編成を軽減する手段と
    を備えたことを特徴とするシステム。
  30. データページに格納されたデータをトランザクションによって操作する方法であって、
    データページを前記トランザクションの予約領域にコピーするステップと、
    前記データページ上で更新された情報を検知するステップと、
    データページ上でスピンロック(spin lock)を取得するステップと
    を備えたことを特徴とする方法。
  31. 前記データページを操作する複数の同時トランザクションのすべてに対して領域の空き状況を追跡するステップをさらに備えたことを特徴とする請求項30に記載の方法。
  32. 前記データページにマークを付けるステップをさらに備えたことを特徴とする請求項30に記載の方法。
  33. 前記データページの行レベルでリソースにロックをかけるステップをさらに備えたことを特徴とする請求項30に記載の方法。
  34. 請求項30に記載の方法を実行するためのコンピュータ実行可能命令を格納するコンピュータ読取可能な媒体。
JP2005173885A 2004-06-29 2005-06-14 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) Active JP4833590B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/879,665 2004-06-29
US10/879,665 US8762331B2 (en) 2004-06-29 2004-06-29 Concurrent transactions and page synchronization

Publications (2)

Publication Number Publication Date
JP2006012153A true JP2006012153A (ja) 2006-01-12
JP4833590B2 JP4833590B2 (ja) 2011-12-07

Family

ID=35063233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005173885A Active JP4833590B2 (ja) 2004-06-29 2005-06-14 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)

Country Status (5)

Country Link
US (1) US8762331B2 (ja)
EP (1) EP1612700B1 (ja)
JP (1) JP4833590B2 (ja)
KR (1) KR101137053B1 (ja)
CN (1) CN1716248B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009069436A1 (ja) * 2007-11-28 2009-06-04 Kyoto Software Research, Inc. データ格納システムおよびデータ格納プログラム
JP2010538354A (ja) * 2007-08-29 2010-12-09 テレフオンアクチーボラゲット エル エム エリクソン(パブル) データベースシステムにおける方法および装置
JP2012511197A (ja) * 2008-12-05 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数世代データベース内のデータに対するアクセス
JP2012155498A (ja) * 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
JP2013077063A (ja) * 2011-09-29 2013-04-25 Fujitsu Ltd データ管理プログラム、ノード、および分散データベースシステム
JP2015127924A (ja) * 2013-12-27 2015-07-09 富士通株式会社 アクセス制御プログラム、制御装置およびアクセス制御方法
JP2015203985A (ja) * 2014-04-14 2015-11-16 株式会社Tkc データ一致化のための方法およびシステム
JP2022503497A (ja) * 2019-09-27 2022-01-12 セールスフォース ドット コム インコーポレイティッド バージョンベースのテーブルロック

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688662B2 (en) * 2004-09-28 2014-04-01 International Business Machines Corporation Copy on access to locked objects
US8195659B2 (en) * 2005-08-23 2012-06-05 Ricoh Co. Ltd. Integration and use of mixed media documents
US8086580B2 (en) * 2005-01-11 2011-12-27 International Business Machines Corporation Handling access requests to a page while copying an updated page of data to storage
US8600960B2 (en) * 2005-11-22 2013-12-03 Sap Ag Processing proposed changes to data
KR101168774B1 (ko) 2006-02-03 2012-07-25 주식회사 엘지씨엔에스 보안장비의 룰 최적화 장치 및 방법
US20080027996A1 (en) * 2006-07-31 2008-01-31 Morris Robert P Method and system for synchronizing data using a presence service
US7788243B2 (en) * 2006-09-08 2010-08-31 Sybase, Inc. System and methods for optimizing data transfer among various resources in a distributed environment
US7822792B2 (en) * 2006-12-15 2010-10-26 Sap Ag Administration of planning file entries in planning systems with concurrent transactions
US8650155B2 (en) * 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
US8738573B2 (en) * 2008-05-23 2014-05-27 Microsoft Corporation Optimistic versioning concurrency scheme for database streams
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
CN102236542B (zh) * 2010-05-05 2014-06-11 中兴通讯股份有限公司 一种基于任务进程表的硬件控制实现方法和装置
US8490207B2 (en) * 2011-05-31 2013-07-16 Red Hat, Inc. Performing zero-copy sends in a networked file system with cryptographic signing
US10348821B2 (en) * 2012-12-21 2019-07-09 Dropbox, Inc. Prioritizing structural operations and distributing changes in a synced online content management system
US9898501B2 (en) * 2013-09-12 2018-02-20 Neustar, Inc. Method and system for performing transactional updates in a key-value store
CN103530324A (zh) * 2013-09-24 2014-01-22 金蝶软件(中国)有限公司 应用于多页签的数据更新方法和相关装置
CN106649307B (zh) * 2015-10-28 2019-09-20 北京国双科技有限公司 在数据集合中添加元素的方法和装置
CN106708521B (zh) * 2016-12-21 2020-07-17 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
CA3071965C (en) * 2017-08-10 2024-01-16 Shardsecure, Inc. Method for securing data utilizing microshard fragmentation
US11288251B2 (en) * 2018-05-25 2022-03-29 Microsoft Technology Licensing, Llc Supporting concurrent updates to a database page
US11314771B2 (en) 2019-06-12 2022-04-26 International Business Machines Corporation Splitting and merging of storages
US11457066B2 (en) * 2019-06-12 2022-09-27 International Business Machines Corporation Splitting and merging of storages

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290147A (ja) * 1993-03-31 1994-10-18 Hitachi Ltd オンラインシステムの端末制御データ変更方法
JP2003263350A (ja) * 2002-03-07 2003-09-19 Ricoh Co Ltd データベースシステム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5355477A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
US5544345A (en) * 1993-11-08 1996-08-06 International Business Machines Corporation Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
US5675797A (en) * 1994-05-24 1997-10-07 International Business Machines Corporation Goal-oriented resource allocation manager and performance index technique for servers
US5852715A (en) 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US6301616B1 (en) * 1997-04-11 2001-10-09 Microsoft Corporation Pledge-based resource allocation system
US5864851A (en) * 1997-04-14 1999-01-26 Lucent Technologies Inc. Method and system for managing replicated data with enhanced consistency and concurrency
US6219675B1 (en) * 1997-06-05 2001-04-17 Microsoft Corporation Distribution of a centralized database
US5963945A (en) * 1997-06-05 1999-10-05 Microsoft Corporation Synchronization of a client and a server in a prefetching resource allocation system
GB2326492B (en) * 1997-06-20 2002-03-20 Ibm Apparatus, method and computer program for providing arbitrary locking modes for controlling concurrent access to server resources
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6418438B1 (en) * 1998-12-16 2002-07-09 Microsoft Corporation Dynamic scalable lock mechanism
US6546443B1 (en) * 1999-12-15 2003-04-08 Microsoft Corporation Concurrency-safe reader-writer lock with time out support
CA2302981C (en) * 2000-03-29 2004-06-01 Ibm Canada Limited-Ibm Canada Limitee Online database table reorganization
US6622189B2 (en) * 2000-11-30 2003-09-16 International Business Machines Corporation Method and system for low overhead spin lock instrumentation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290147A (ja) * 1993-03-31 1994-10-18 Hitachi Ltd オンラインシステムの端末制御データ変更方法
JP2003263350A (ja) * 2002-03-07 2003-09-19 Ricoh Co Ltd データベースシステム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010538354A (ja) * 2007-08-29 2010-12-09 テレフオンアクチーボラゲット エル エム エリクソン(パブル) データベースシステムにおける方法および装置
WO2009069436A1 (ja) * 2007-11-28 2009-06-04 Kyoto Software Research, Inc. データ格納システムおよびデータ格納プログラム
KR100921876B1 (ko) 2007-11-28 2009-10-13 가부시키가이샤 교토 소프트웨어 리서치 데이터 격납 시스템 및 데이터 격납 프로그램
CN101981547A (zh) * 2007-11-28 2011-02-23 株式会社京都 资料储存系统及资料储存程序
US8055853B2 (en) 2007-11-28 2011-11-08 Kyoto Software Research, Inc. Data storage system and data storage program for atomic transactions
CN104063185A (zh) * 2007-11-28 2014-09-24 株式会社京都 资料储存系统及资料储存方法
JP2012511197A (ja) * 2008-12-05 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数世代データベース内のデータに対するアクセス
JP2012155498A (ja) * 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
JP2013077063A (ja) * 2011-09-29 2013-04-25 Fujitsu Ltd データ管理プログラム、ノード、および分散データベースシステム
JP2015127924A (ja) * 2013-12-27 2015-07-09 富士通株式会社 アクセス制御プログラム、制御装置およびアクセス制御方法
JP2015203985A (ja) * 2014-04-14 2015-11-16 株式会社Tkc データ一致化のための方法およびシステム
JP2022503497A (ja) * 2019-09-27 2022-01-12 セールスフォース ドット コム インコーポレイティッド バージョンベースのテーブルロック

Also Published As

Publication number Publication date
EP1612700A2 (en) 2006-01-04
EP1612700A3 (en) 2006-07-26
EP1612700B1 (en) 2020-07-22
JP4833590B2 (ja) 2011-12-07
KR20060046029A (ko) 2006-05-17
KR101137053B1 (ko) 2012-04-19
US8762331B2 (en) 2014-06-24
CN1716248A (zh) 2006-01-04
US20050289189A1 (en) 2005-12-29
CN1716248B (zh) 2010-06-23

Similar Documents

Publication Publication Date Title
JP4833590B2 (ja) 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
Shamis et al. Fast general distributed transactions with opacity
US10116766B2 (en) Asynchronous and idempotent distributed lock interfaces
US8635193B2 (en) Cluster-wide read-copy update system and method
US20050289188A1 (en) Allocation locks and their use
US7783601B2 (en) Replicating and sharing data between heterogeneous data systems
CN104793988B (zh) 跨数据库分布式事务的实现方法和装置
US7403945B2 (en) Distributed database system providing data and space management methodology
US8266122B1 (en) System and method for versioning data in a distributed data store
US8170997B2 (en) Unbundled storage transaction services
EP2378420B1 (en) Ownership reassignment in a shared-nothing database system
CN101807169B (zh) 事务型存储器访问的混合硬件软件实现
US7912821B2 (en) Apparatus and method for data management
US20240028598A1 (en) Transaction Processing Method, Distributed Database System, Cluster, and Medium
US7631010B2 (en) Systems and methods in support of data base page synchronization
US20190196918A1 (en) Methods and systems of operating a database management system dmbs in a strong consistency mode
US20040230621A1 (en) Method and system for altering a sequence number assignment pattern while preserving integrity and high concurrency in a multi-system shared disk environment
Ragunathan et al. Improving the performance of Read-only Transactions through Speculation
Guo Scalable Transaction Processing in Cloud-Native OLTP Database Systems
Depoutovitch et al. Taurus MM: Bringing Multi-Master to the Cloud
Xia Logical timestamps in distributed transaction processing systems
Kirby et al. Ibm websphere extreme scale v7: Solutions architecture
Gropengießer et al. Cloudy transactions: Cooperative xml authoring on amazon s3
SE Cloudy Transactions: Cooperative XML Authoring on Amazon S3.
PLATTNER Ganymed: A Platform for Database Replication (Online Version)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110809

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: 20110916

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: 20110922

R150 Certificate of patent or registration of utility model

Ref document number: 4833590

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: 20140930

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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