JP2007528555A - ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法 - Google Patents

ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法 Download PDF

Info

Publication number
JP2007528555A
JP2007528555A JP2007502784A JP2007502784A JP2007528555A JP 2007528555 A JP2007528555 A JP 2007528555A JP 2007502784 A JP2007502784 A JP 2007502784A JP 2007502784 A JP2007502784 A JP 2007502784A JP 2007528555 A JP2007528555 A JP 2007528555A
Authority
JP
Japan
Prior art keywords
transaction
row
item
statement
read
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.)
Ceased
Application number
JP2007502784A
Other languages
English (en)
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.)
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 JP2007528555A publication Critical patent/JP2007528555A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

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

Abstract

ファイル・システム・オペレーションのための共有モデルが、クエリ言語ステートメントのトランザクション/ロッキング・モデルと統合され、ストレージ・プラットフォームにおけるロッキングとアイソレーションのための全体的なフレームワークを提供する。さらに、ファイル・システム・オペレーションについてトランザクションのサポートが提供され、その結果、ファイル・システム・オペレーションをトランザクションのコンテキストで実行することができる。したがって、単一のトランザクションが、単一のファイル・システム・ステートメント、単一のクエリ言語ステートメント、複数のファイル・システム・ステートメント、複数のクエリ言語ステートメント、およびファイル・システム・ステートメントとクエリ言語ステートメントの組合せを含むことができる。さらに、非トランザクション型ファイル・システム・ステートメントについてサポートが提供され、その結果、ファイル・システム・ステートメントは、必ずしもトランザクションのコンテキストで実行されることを必要としない。

Description

本発明は、データ取出しおよび操作の分野に関し、より詳細には、ストレージ・プラットフォームにおけるロッキングとアイソレーションに関する。
本願は、2004年3月10日に出願された米国特許出願第10/797,238号明細書の利益を主張し、その開示は、その全体を参照により本明細書に組み込む。
コンピューティング分野における最近の進展は、コンピュータ・オペレーティング・システムを、リレーショナル・エンジン上で構築されるストレージ・プラットフォームで使用することができることである。そのようなストレージ・プラットフォームは、たとえば、ワシントン州レドモンドのMicrosoft Corp.からのMICROSOFT WINDOWS(登録商標) FILE SYSTEM(商標)(WinFS)とすることができる。WinFSは、前述のMicrosoft Corp.からのSQL SERVER(商標)上で構築される。
WinFSプラットフォームのデータ・モデルは、アイテム、アイテム拡張(item extensions)、および関係(relationship)で表して、データ・ストレージの諸単位を定義する。アイテムは、ストレージ情報の基本単位である。データ・モデルは、アイテムおよびアイテム拡張を宣言するための、また、アイテム間の関係を確立するための機構を提供する。アイテムは、コピー、削除、移動、オープンなどの各オペレーションを使用して記憶し、取り出すことができる単位である。アイテムは、連絡先(Contact)、人々(People)、サービス(Service)、場所(Location)、(あらゆる様々な種類の)ドキュメント(Document)などの、実世界の容易に理解可能な単位を表すことが意図されている。アイテム拡張は、既存のアイテムの定義を拡張するための方法であり、関係は、アイテム間の定義されたリンクである。
WinFSでは、情報を記憶するために様々なアイテムタイプが定義される。たとえば、アイテムタイプは、Contact、People、Location、Documentなどについて定義される。各アイテムタイプは、所与のアイテムのプロパティや特性を定義するスキーマによって説明される。たとえば、「Location」アイテム(Item)は、EAddresses、MetropolitanRegion、Neighborhood、PostalAddressesなど、プロパティを有するものとして定義することができる。所与のアイテムタイプについてスキーマが定義されると、対応するユーザ定義タイプ(UDT)が、データ・ストア内で作成される。データ・ストア内に記憶されたItemタイプの各インスタンスは、それに関連付けられた一意の識別子(たとえば、Item_ID)を有する。すなわち、一実施形態では、各アイテム識別子が、グローバルに一意の識別子(GUID)である。SQL SERVER内のUDTの任意のインスタンスの場合と同様に、WinFSアイテムのインスタンスは、最終的に、別個のUDTカラム内でデータベース・ストアのテーブル内に格納される。
WinFSの構成ブロックの1つは、それがSQLサーバからのファイルストリーム(filestream)技術を組み込むことである。ファイルストリームは、リレーショナル・データ・テーブルのカラムであり、そのカラムの各セルごとのデータが、そのテーブルの他のカラムを格納するファイルと別個のファイル内に格納される。WinFSの重要な特徴は、WinFSアイテムの各フィールドを、ファイルストリーム・フィールドとして指定することができることである。ファイルストリーム技術は、大量のデータを有するフィールドを含むアイテムについて特に有利である。たとえば、Personアイテムは、対応する人のデジタル写真を含む「写真」フィールドを有することができる。写真フィールドは、データ・テーブル内での格納に適していない大量のデータを含むことができる。
WinFSの他の重要な特徴は、ファイルストリーム・フィールドへの「帯域外(out of band)」アクセスを可能にし、それにより、データベース・ストアの基礎となるクエリ言語を使用することなしに、従来のファイル・システム呼出し(open、 read/write、 close など)を介してファイルストリーム・フィールドにアクセスすることができることである。従来のファイル・システム呼出しをサブミットするためのファイル・システム・アプリケーション・プログラム・インターフェース(API)は、たとえば、前述のMicrosoft CorpからのWin32(商標)とすることができ、一方、データベース・ストアの基礎となるクエリ言語は、たとえば、T−SQL(transact structured query language)とすることができる。WinFSは、ファイルストリーム・フィールドへの帯域外アクセス(out of band access)を可能にするため、そのようなファイルストリーム・フィールドを含むアイテムは、2つの異なるチャネル、すなわちT−SQLとWin32を介して操作することができる。
T−SQLとWin32に関する1つの違いは、T−SQLは明確なトランザクション/ロッキング・モデルを有し、一方、Win32は有していないことである。本明細書では、「トランザクション」という用語は、 を指す。T−SQLのトランザクション・モデルは、ステートメントの概念の周りで構築される。T−SQLステートメントは、「SELECT」または「UPDATE」ステートメントなど、データ・ストアに対するオペレーションを表す。T−SQLステートメントは、単一ステートメント・トランザクションまたはマルチ・ステートメント・トランザクションの一部として含まれる可能性がある。単一ステートメント・トランザクションでは、単一のT−SQLステートメントが実行されると、そのステートメントが実行に成功した場合にコミットするデータ・ストアに関してトランザクションが作成される。トランザクション寿命は、ステートメントによって調べられる。マルチ・ステートメント・トランザクションでは、データ・ストアに関してトランザクションを明示的に開始しコミットする(またはアボートする)ために、アプリケーションが、「Begin Transaction」および「Commit Transaction」T−SQLステートメントを発行する。beginおよびcommitの括弧内のステートメントのすべてが、そのデータ・ストアに関する同じマルチ・ステートメント・トランザクションの一部として実行される。
T−SQLは、トランザクション・ロッキングのための明確なセマンティクスを有する。一般に、「SELECT」ステートメントは、行(row)に関する読取りロックを獲得することになり、一方、「UPDATE」ステートメントは、行に関する書込みロックを獲得することになる。書込みロックは、トランザクションがコミットする、またはアボートするまで保持され、一方、読み取りロックは、より早く解放することができる。トランザクションが、ある行に関する書込みロックを有する場合には、他のトランザクションは、その行に対する読取りアクセスおよび/または書込みアクセスを得ることを阻止される。トランザクションが、別のトランザクションがすでに書込みロックを獲得している行に対して読取りアクセスおよび/または書込みアクセスを得ようと試みた場合には、コンフリクト(conflict)が生じる。そのコンフリクトを解決するために、標準的なコンフリクト解決方法を使用することができる。
Win32は、ステートメントの概念を使用するのでなく、従来のファイル・システム共有モードを使用し、オペレーション(open、 read/write、 close)間のアイソレーションを定義する。ファイル共有読取りフラグは、読取り共有を可能にし、これは、ファイルのオープンが、同じファイルに対する別のオープンと読取りを共有することができることを意味する。ファイル共有書込みフラグは、書込み共有を可能にするが、これは、ファイルのオープンが、同じファイルに対する別のオープンと書込みを共有することができることを意味する。さらに、ファイル共有読取りフラグとファイル共有書込みフラグは共に、読取り共有と書込み共有の両方を可能にするように設定することができる。さらに、どちらのファイル共有フラグも、共有を否定するように設定することができない。重要なことに、従来のWin32 APIや他の従来のファイル・システムAPIは、トランザクションのコンテキストでオペレーションを実行することを可能にしない。
したがって、当技術分野では、クエリ言語トランザクションおよびロッキング・モデルをファイル・システム共有モデルと統合する、ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法に対するニーズが存在する。トランザクション・モデルの統合は、WinFSなどストレージ・プラットフォームにおいて、ファイルストリーム・フィールドを含むアイテムを操作するための全体的なトランザクション・モデルが提供することになる。全体的なフレームワークが、ファイル・システム・オペレーションをトランザクションのコンテキストにおいて実行することを可能にすることは、さらに望ましい。
本発明は、ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法を対象とする。本発明によれば、ファイル・システム・オペレーションのための共有モデルが、クエリ言語ステートメントのためのトランザクション/ロッキング・モデルと統合され、ストレージ・プラットフォームにおけるファイルストリームのロッキングとアイソレーションのための全体的なフレームワークを提供する。さらに、ファイル・システム・オペレーションについてトランザクションのサポート(transactional support)が提供され、その結果、ファイル・システム・オペレーションをトランザクションのコンテキストで実行することができる。したがって、単一のトランザクションが、単一のファイル・システム・ステートメント、単一のクエリ言語ステートメント、複数のファイル・システム・ステートメント、複数のクエリ言語ステートメント、およびファイル・システム・ステートメントとクエリ言語ステートメントの組合せを含むことができる。さらに、非トランザクション型ファイル・システムについてサポートが提供され、その結果、ファイル・システム・オペレーションは、必ずしもトランザクションのコンテキストで実行されることを必要としない。
本発明の一態様によれば、ファイル・システム・ステートメントは、アイテムを開くための呼出しと、読取りまたは書込みオペレーションと、アイテムを閉じるための呼出しとを含むことができる。ファイル・システム・ステートメントは、そのアイテムに対応するユーザ定義タイプ(UDT)を含むデータ・テーブルの行に関してアイソレーションを獲得することができる。トランザクション型書込みステートメントは、トランザクションの寿命(lifetime)の間、行に関して排他的なロックを獲得する。トランザクション型読取りステートメントは、行の読取りコミットされたビューを獲得する。ファイル・システム共有モードを使用し、各トランザクション間、およびトランザクション内のステートメント間、でアイソレーションを定義することができる。さらに、非トランザクション型ステートメントもまた、共有モードに基づいてアイソレーションを獲得することができる。
本発明の他の態様によれば、いくつかのクエリ言語ステートメントおよび/またはファイル・システム・ステートメントを、ストレージ・プラットフォーム部で受け取ることができる。ステートメントは、トランザクションに関連付けることができる。トランザクションを開始するとコンフリクトが生じるかどうか判定することができる。生じる場合には、たとえば、ブロッキングなど、標準的なコンフリクト解決技法に従ってコンフリクトを解決することができる。コンフリクトが生じない場合には、トランザクション内のクエリ言語ステートメントおよび/またはファイル・システム・ステートメントに対して適切な読取りロックおよび/または書込みロックを獲得することによって、トランザクションを開始することができる。
本発明の追加の特徴および利点は、添付の図面を参照しながら進む以下の例示的な諸実施形態についての詳細な説明から、明らかになる。
例示的な諸実施形態は、添付の図面を参照しながら以下の詳細な説明を読んだ後で、よりよく理解されることになる。
本発明の主題は、法定要件を満たすために特定性(specificity)をもって記載している。しかし、この説明それ自体は、この特許の範囲を限定することを意図していない。そうではなく、発明者等は、特許請求の範囲に記載された主題はまた他の方法で実施することができ、他の現行の、または将来の技術と関連して、本書で述べられているものと異なる様々なステップまたは類似の要素を含むことを企図している。
上述のように、本発明は、前述のWinFSなどの、ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法を対象とする。本発明は、前述のWin32など、ファイル・システム・オペレーションをトランザクションのコンテキストで実行することを可能にする。さらに、本発明は、ファイル・システム・オペレーションのための共有モデルを、前述のT−SQLなど、クエリ言語のためのトランザクションおよびロッキング・モデルと統合し、それによって、ストレージ・プラットフォームにおいてファイルストリーム・フィールドを含むアイテムを操作するための全体的なモデルを提供する。
次に図1を参照すると、ストレージ・プラットフォーム・アイテムのインスタンスは、例示的なテーブル200など、リレーショナル・データベース・テーブル内に格納することができる。テーブル200は、2つのカラム、すなわちIDカラム202aとユーザ定義タイプ(UDT)カラム202b、を含む。列202a内の各IDは、対応するUDTに対する一意の識別子を提供する。列202b内の各UDTは、アイテムタイプのインスタンスに対応する。たとえば、列202b内の各UDTは、Personアイテムタイプに関連付けられた特定の人に対応することができる。UDT1〜3のフィールド204a〜cは、それぞれファイルストリーム・フィールドとして指定され、これは、そのフィールド用のデータが、テーブル200と別個のファイル内に格納されることを意味する。ファイルストリーム・フィールド204a〜cは、デジタル写真など、大量のデータを含むフィールドを格納するために有利である。たとえば、Personアイテムは、その人のデジタル写真を含むファイルストリーム・フィールドである、対応する「写真」フィールドを有することができる。本発明は、下記で詳しく論じるように、表200の行1〜3のそれぞれなど、各行のロッキングとアイソレーションを可能にする。
例示的なストレージ・プラットフォーム環境が、図2に示されている。上記で述べたように、クライアント・アプリケーション300は、ストレージ・プラットフォーム308を通して、またはファイル・システムAPI302を通した「帯域外」アクセスを介して、データ・ストア310内のアイテムを直接操作することができる。クライアント・アプリケーション300がストレージ・プラットフォーム308を通してアイテムを直接操作する場合、そのような操作は、T−SQLなどクエリ言語を使用して実行することができる。一方、クライアント・アプリケーション300がファイル・システムAPI302を通して「帯域外」アクセスを介してアイテムを操作する場合、そのような操作は、Win32などファイル・システムAPIを使用して実行することができる。「帯域外」アクセスは、ファイルストリーム・フィールドを含むアイテムについてだけ使用可能である。
クライアント・アプリケーション300は、データ・ストア310に関するクエリを開始させるために、ストレージ・プラットフォーム・メソッドを使用してストレージ・プラットフォーム308に直接アクセスして、ことができる。Personアイテムタイプの例を続けると、クライアント・アプリケーション300は、そのタイプの「誕生日(Birthday)」フィールド内の値が特定の日付(たとえば、1999年12月31日)より大きいPersonタイプのインスタンスすべてについてクエリを開始させるために、ストレージ・プラットフォーム308の「FindAll」メソッドを使用することができる。次いで、ストレージ・プラットフォーム308は、「FindAll」オペレーションを、T−SQLまたは別のクエリ言語でのクエリに変換し、それを、基礎となるデータ・ストア310にサブミットする。次いで、データ・ストア310は、Person UDTの対応するインスタンスに対してクエリを実行し、Person UDTの各合致するインスタンスについて、格納された値を返す。次いで、ストレージ・プラットフォーム308は、Person UDTオブジェクトをラップし、それらをPersonタイプのアイテムとしてアプリケーションに返す。
上述のようにアイテムに対する直接アクセスを可能にすることに加えて、ストレージ・プラットフォーム308は、ファイル・システムAPI302を介して、アイテム内のファイルストリーム(Filestream)フィールドに対する「帯域外」アクセスを可能にする。図2の例示的な環境では、クライアント・アプリケーション300は、たとえば、ストレージ・プラットフォーム308のCreateFileインターフェースを呼び出し、永続(persisted)アイテム(UDT)のインスタンス内の対応するフィールドの識別に基づいて要求されたデータを識別するストレージ・プラットフォーム308へのパス名を渡す、ことによって帯域外アクセスを開始する。ファイル・システム(File System)API302が、ストレージ・プラットフォーム・パス名を含むCreateFileコマンドをクライアント・アプリケーション300から受け取ると、ファイル・システム(File System)API302はそのようなものとして認識し、それをFS Agent306に転送する。次いで、FS Agent306は、「OPEN」呼出しをストレージ・プラットフォーム308に発行し、アイテム・フィールドのストレージ・プラットフォーム・パス名を渡す。次いで、ストレージ・プラットフォーム308は、ストレージ・プラットフォーム・パス名からそのアイテムとフィールドを識別し、次いで、この情報をデータベース・エンジン310に渡す。ストレージ・プラットフォーム308は、上述のような形で、データベース・ストアと別々に格納されているUDTオブジェクトのファイルストリーム・フィールド用のファイル・システム・パス名を返すデータベース・エンジン関数を渡すことができる。
データベース・エンジン310は、要求の対象であるUDTオブジェクトが格納されているテーブル200内でテーブルルックアップを実行することによって、要求に応答する。データベース・エンジン310は、テーブル200の正しい行に、次いでその行内のUDTオブジェクトの、シリアル化された断片に位置決めする。該当するファイルストリーム・フィールドについて、データベース・エンジン310は、その対応する断片から、そのフィールド用のデータが格納されているファイルへの実ファイル・システム・パスを抽出する。データベース・エンジン310は、この実パスをストレージ・プラットフォーム308に返送する。次いで、ストレージ・プラットフォーム308は、そのファイル・システム・パスをFS Agent306に渡し、FS Agentは、ファイルを開くためにファイル・システム(File System)API302を呼び出し、その要求内で実ファイル・システム・パスを渡す。次いで、ファイル・システム(File System)API302は、ファイル・システム(File System)API302に対してCreateFile呼出しが行われたとき通常行うように、そのファイルへのハンドルを得て、それをクライアント・アプリケーション300に渡す。
この時点で、クライアント・アプリケーション300は、通常のファイル・システム(File System)API呼出し(たとえば、Win32 API File I/O呼出し)を介して、ファイルに対して読取りおよび書込みをすることができる。クライアント・アプリケーション300は、ファイルを使い終えたとき、ファイル・システム(File System)APIに対してCLOSE呼出しを発行する。この呼出しは、FS Agent306によって再びインターセプトされる。FS Agent306は、ストレージ・プラットフォーム308に対して「CLOSE」呼出しを発行し、そのファイルを閉じることを要求する。ストレージ・プラットフォーム308は、このオペレーションを永続アイテムに対する更新としてモデル化し、任意の関連する変更追跡やその更新に関連付けられた他の機能を実行する。次いで、データベース・エンジン310は、永続UDTオブジェクトに関してそれ自体の更新処理を行う。この処理が完了した後で、制御はFS Agent306に戻り、FS Agent306は、ファイル・システム(File System)API302を呼び出し、クライアント・アプリケーション300に代わって通常のファイル・クローズ・オペレーションを実行する。
したがって、上述の環境では、ストレージ・プラットフォーム308は、T−SQLなどクエリ言語を使用して、ファイルストリーム・フィールドに対する直接アクセスを、あるいは、Win32などファイル・システムAPIを使用して「帯域外」アクセスを、可能にする。上述のように、クエリ言語トランザクション/ロッキング・モデルとファイル・システム共有モデルの間にいくつかの違いがある。そのような違いの1つは、ファイル・システムが、クエリ言語の場合のようにステートメントの考えを有していないことである。そうではなく、ファイル・システムは、たとえば、open、read、write、closeなど、各オペレーションを生成する。本発明は、オープンがトランザクションのコンテキストで行われることを可能にする。開かれたファイルは、そのオープン中に提供されるトランザクション・コンテキストに関連付けられることができる。後続の読取りおよび/または書込みは、トランザクションのコンテキストで行われる。クエリ言語でのトランザクションの場合と同様に、任意の所与の瞬間において、ファイルに対して1つのトランザクション型ライタ(transacted writer)だけが存在することができる。さらに、トランザクション型リーダ(transacted reader)は、ファイルの読取りコミットされたビューを取得し、これは、トランザクション型リーダが、オープンのときに、そのコミットされた状態でファイルを見ることを意味する。
非トランザクション型リーダ/ライタは、指定された共有モデルに基づいてアイソレーションを得ることができる。ファイルが開かれる(オープンされる)際、そのオープンの意図を指定することができる。ファイルは、3つの意図、すなわち読取りの意図のためのオープン、書込みの意図のためのオープン、読取りの意図と書込みの意図両方のためのオープン、のうち1つのために開くことができる。さらに、ファイル共有読取り、ファイル共有書込み、ファイル共有読取りとファイル共有書込みの両方、ファイル共有読取りでもファイル共有書込みでもない、という共有モデルを使用して、所望のアイソレーション・モデルを指定することができる。ファイル・システム・オペレーションについては、オープンは、共有コンフリクトに基づいてファイルに対するアクセスが否認された場合、ブロックされるのでなく、見捨てられる。そのオープンは、共有コンフリクトが再発しないことを期待して、後で再試行することができる。
共有モデルは、2つのレベル、すなわち各トランザクション間、およびトランザクション内の各オープン間でアイソレーションを提供することができる。非トランザクション型オープンは、常にアクティブである、また、あらゆる非トランザクション型書込みについてオートコミットする単一のグローバル・トランザクション内にすべてあるかのように動作することができる。非トランザクション型読取りは、対応するファイルの読取りコミットされたビューを取得せず、共有モードで要求されたアイソレーションだけが提供される。
ストレージ・プラットフォーム308では、アイソレーションの単位は、そのアイテム、そのアイテムに関連付けられた拡張、またはそのアイテムに関連付けられた関係とすることができる。これら3つの場合のそれぞれにおいて、基礎となる表現は、適切なテーブル内のUDTのインスタンスであり、アイソレーションの単位は、テーブル内の行に対応する。これは、クエリ言語ロッキング・モデルにマップし、その中で、適切なロックが行ごとに得られる。したがって、ストレージ・プラットフォーム308内のロッキングの粒度は、クエリ言語内の行の粒度に直接マップする。
上述のように、ファイル・システム・オペレーションのためのトランザクションのサポート(transactional support)を提供することに加えて、本発明は、ファイル・システム・オペレーションのためのモデルとクエリ言語ステートメントを統合することを対象とする。ファイルストリーム・アイテムに対する帯域外アクセスのためだけに処理されるファイル・システム・ステートメントと異なり、クエリ言語ステートメントは、ファイルストリーム・アイテムに関しても非ファイルストリーム・アイテムに関しても実行することができる。クエリ言語のトランザクション・モデルをファイル・システムの共有モデルと統合するために、ファイル・システム・ステートメントの概念を定義することが必要である。そのようなファイル・システム・ステートメントは、オープン・オペレーションと、読取りまたは書込みオペレーションと、クローズ・オペレーションとを含むことができる。したがって、オープン・オペレーション、読取りオペレーション、クローズ・オペレーションを含むファイル・システム・ステートメントは、クエリ言語におけるSELECTファイルストリーム・ステートメントと意味論的に等価であり、一方、オープン・オペレーション、書込みオペレーション、クローズ・オペレーション作を含むファイル・システム・ステートメントは、クエリ言語におけるUPDATEファイルストリーム・ステートメントと意味論的に等価である。
クエリ言語ステートメントの場合と同様に、ファイル・システム・ステートメントは、マルチ・ステートメント・トランザクションまたは単一ステートメント・トランザクションのコンテキストで発生することができ、そこにおいて、トランザクションはステートメントの処理中に存在する。したがって、本発明によるトランザクションは、単一のクエリ言語ステートメント、単一のファイル・システム・ステートメント、複数のクエリ言語ステートメント、複数のファイル・システム・ステートメント、またはクエリ言語ステートメントとファイル・システム・ステートメントの組合せを含むことができる。
単一のクエリ言語ステートメントの場合には、アイテム内のフィールドが更新され、updategramがサーバに送信される。アイテム内の値はすべて、Filestream値を含めて、インラインすることができる。updategramを実行することの一部として、トランザクションが、サーバ上で即座に作成されることが、およびコミットされることが可能になる。単一のファイル・システム・ステートメントの場合には、トランザクションは、オープンの一部として作成される。次いで、読取りまたは書込みが、トランザクションのコンテキスト内で行われる。次いで、トランザクションは、クローズの一部としてコミットされる。ストレージ・プラットフォーム308は、<open, write, close>境界を跨いでトランザクションの寿命を作成および管理することができる。
複数のクエリ言語ステートメントの場合には、トランザクションは、そのサーバ上に関して開始され、アイテム・フィールドが更新され、1つまたは複数のupdategramがサーバに送信される。次いで、トランザクションがそのサーバに関してコミットされる。
複数のファイル・システム・ステートメントの場合には、トランザクションは、そのサーバに関して開始され、ファイル・システム・ステートメントがそのトランザクションのコンテキストで実行される。次いで、トランザクションがサーバに関してコミットされる。
クエリ言語ステートメントとファイル・システム・ステートメントの組合せの場合には、トランザクションは、そのサーバに関して開始され、次いで、アイテム内の非ファイルストリーム・フィールドを修正するupdategramを発行することができる。次いで、ファイル・システム・ステートメントをトランザクションのコンテキストで実行することができる。次いで、トランザクションをそのサーバに関してコミットすることができる。
対応する行に関して適切なロックを得るために、トランザクション・コンテキストをファイル・システム・オペレーションのために指定することができる。オープンが読取りのためのものである場合には、トランザクションは、Filestreamを含む行上の読取りロックを得ることになる。オープンが書込みのためのものである場合には、トランザクションは、Filestreamを含む行上の書込みロックを得ることになる。FsAgent 306は、トランザクションのために代わって行ロックを得ることができ、ロックは、トランザクション・アイソレーションレベルに基づいて解放することができ、またトランザクション寿命に結び付けることができる。
クエリ言語アイソレーション・モデルをエミュレートするために、排他的オープンをライタ(writers)のために得ることができ、一方、共有オープンをリーダ(readers)のために得ることができる。排他的オープンと共有オープンは、クエリ言語モデル内で、それぞれ排他的行レベル・ロックと共有行レベル・ロックに対応する。したがって、ある種の共有モード・フラグは、このモデルと矛盾する可能性があり、尊重されない可能性がある。
たとえば、ファイル共有書込みフラグは、2つのオープンが同じファイルに書き込むことを共有することを可能にするため、このモデルと矛盾する。したがって、ファイル共有書込みフラグは、許可されず、尊重されないことになる。たとえば、ファイル共有書込みは、静かに(ユーザーへの通知もなく)再マップされるか、または適切なエラーコードで拒絶されるかする可能性がある。したがって、トランザクションが複数のファイル・システム書込みステートメントを含む場合には、書込みオペレーションをシリアル化することができる。トランザクション内のシリアル化は、複数の並行更新が、同じトランザクションのコンテキストで許されないというクエリ言語セマンティクスに適合する。さらに、2つの非トランザクション型ファイル・システム・ステートメントが同時に実行しようと試みた場合には、それらもまたシリアル化することができる。非トランザクション型ステートメントのシリアル化は、2つのUPDATEステートメントを同時に実行することができないクエリ言語ステートメント・セマンティクスに適合する。さらに、トランザクションのコンテキストでの書込みのためのオープンは、ファイル共有読取りを指定しなければならない。指定しない場合、無効なオペレーション・エラーコードでオープンが見捨てられる可能性がある。これにより、同じトランザクションのコンテキストでUPDATEがSELECTを妨げないクエリ言語セマンティクスが実施される。
本発明による、ファイル・システム・ステートメントをトランザクションのコンテキストで実行するための例示的な方法の流れ図が、図3に示されている。動作(act)410で、ストレージ・プラットフォーム308は、クライアント・アプリケーション300から、データ・ストア310内に格納されたアイテムに関して実行されるステートメントを受け取る。そのようなステートメントは、クライアント・アプリケーション300から受け取られるクエリ言語ステートメントとすることも、ファイル・システムAPI802およびFSAgent804を介してクライアント・アプリケーション300から受け取られる帯域外ファイル・システム・ステートメントとすることもできる。クエリ言語ステートメントは、ファイルストリーム・アイテムに関しても非ファイルストリーム・アイテムに関しても実行することができ、一方、ファイル・システム・ステートメントは、ファイルストリーム・アイテムに関して実行することができるだけである。
上述のように、クエリ言語ステートメントは、たとえば、SELECTステートメントまたはUPDATEステートメントを含むことができる。クエリ言語ステートメントは、単一ステートメント・トランザクションまたはマルチ・ステートメント・トランザクションの一部とすることができる。クエリ言語ステートメントがマルチ・ステートメント・トランザクションの一部である場合には、開始(begin)トランザクション・コマンドとコミット(commit)トランザクション・コマンドによって括られる。
ファイル・システム・ステートメントは、オープン・オペレーションと、読取りオペレーションまたは書込みオペレーションと、クローズ・オペレーションとを含むことができる。各ファイル・システム・ステートメントは、トランザクションのコンテキストでサブミットすることができる。動作412では、動作410で受け取られた各ステートメントがトランザクションに関連付けられる。
理解されるはずであるが、ファイル・システム・ステートメントは、必ずしもトランザクションのコンテキストでサブミットすることを必要としない。そのような非トランザクション型ファイル・システム・ステートメントのためのロッキングとアイソレーションについては、図4および図5を参照しながら下記で詳しく論じる。
動作414で、トランザクションを開始するとコンフリクトが生じるかどうか判定される。たとえば、トランザクション内の任意のステートメントが、すでに別のトランザクションが書込みロックを獲得している行に対応する場合には、コンフリクトが生じることになる。
動作414でコンフリクトが生じると決定された場合には、動作416で、そのコンフリクトが解決される。コンフリクトは、標準的なコンフリクト解決慣行に従って解決することができる。一般に、コンフリクトが1つだけ検出された場合でも、トランザクション全体をロールバックすることができる。
動作418で、トランザクションが開始される。トランザクションは、適切な行に関して読取りロックおよび書込みロックを獲得することによって開始される。前述のように、読取りロックは、読取りオペレーションに、またSELECTステートメントに対応する行に関して獲得される。読取りオペレーションに対応する読取りロックは、その行の読取りコミットされたビューを獲得する。読取りロックは、共有型行ロック(shared row lock)である。
書込みロックは、書込みオペレーションに、およびUPDATEステートメントに対応する行に関して獲得される。書込みロックは、そのトランザクションの寿命の間獲得される排他的ロックである。書込みロックは、そのトランザクションが処理されている間、別のトランザクションが(読取りアクセスまたは書込みアクセスを介して)対応する行にアクセスするのを妨げることになる。書込みロックはまた、そのトランザクションが処理されている間、非トランザクション型ファイル・システム・ステートメントが(読取りアクセスまたは書込みアクセスを介して)対応する行にアクセスするのを妨げることになる。しかし、書込みロックは、そのトランザクション内の他のステートメントが、対応する行を読み取るのを妨げない。
本発明による、非トランザクション型ファイル・システム読取りステートメントのロッキングとアイソレーションのための例示的な方法の流れ図が、図4に示されている。動作420で、ストレージ・プラットフォーム308は、クライアント・アプリケーション300から、データ・ストア310内に格納されたアイテムに関して実行される非トランザクション型ファイル・システム読取りステートメントを受け取る。上述のように、ファイル・システム読取りステートメントは、オープン動作と、読取り動作と、クローズ動作とを含む。
動作422で、そのアイテムに対応するデータ・テーブルの行について読取りアクセスが使用可能であるかどうか判定される。その行は、そのアイテムに対応するユーザ定義タイプを含むことができる。
動作422で読取りアクセスが使用可能であると決定された場合には、動作424で、読取りロックがその行に関して獲得される。読取りロックは、その行の読取りコミットされたビューを提供することができる。動作422で読取りアクセスが使用可能でないと決定された場合には、動作426で、そのオープンは見捨てられる。
本発明による、非トランザクション型ファイル・システム書込みステートメントのロッキングとアイソレーションのための例示的な方法の流れ図が、図5に示されている。動作520で、ストレージ・プラットフォーム308は、クライアント・アプリケーション300から、データ・ストア310内に格納されたアイテムに関して実行される非トランザクション型ファイル・システム書込みステートメントを受け取る。上述のように、ファイル・システム書込みステートメントは、オープン動作と、書込み動作と、クローズ動作とを含む。
動作522で、そのアイテムに対応するデータ・テーブルの行について書込みアクセスが使用可能であるかどうか判定される。その行は、そのアイテムに対応するユーザ定義タイプを含むことができる。書込みアクセスは、たとえば、あるトランザクション、または別の非トランザクション型ステートメントがその行に関してすでに書込みロックを有する場合、否認されることになる。
動作522で書込みアクセスが使用可能であると決定された場合には、動作524で、書込みロックがその行に関して獲得される。書込みロックは、そのステートメントが処理されている間、トランザクションまたは別の非トランザクション型ステートメントがその行上の書込みロックを獲得するのを妨げることができる。動作522で書込みアクセスが使用可能でないと決定された場合には、動作526で、そのオープンは、見捨てられる。
上記から明らかであるように、本発明の様々なシステム、方法、態様のすべてまたは一部分は、ハードウェア、ソフトウェア、または両者の組合せで実施することができる。ソフトウェアで実施されたとき、本発明の方法および装置、あるいはそのある種の態様または一部分を、プログラム・コード(すなわち、命令)の形態で実施することができる。このプログラム・コードは、限定しないが、フロッピー(登録商標)ディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、磁気テープ、フラッシュ・メモリ、ハードディスク・ドライブ、または任意の他の機械可読記憶媒体を含めて、磁気、電気、または光記憶媒体などコンピュータ可読媒体に記憶することができ、そのプログラム・コードが、コンピュータまたはサーバなど、機械内にロードされ、機械によって実行されたとき、その機械は、本発明を実施するための装置となる。そのプログラム・コードが実行されるコンピュータは、一般に、プロセッサと、そのプロセッサによって可読の(揮発性/不揮発性メモリおよび/または記憶要素を含む)記憶媒体と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むことになる。プログラム・コードは、高級手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装することができる。別法として、プログラム・コードは、アセンブリ言語または機械語で実装することができる。どのような場合でも、言語は、コンパイラ言語またはインタープリタ言語とすることができる。
また、本発明は、電気配線またはケーブルを介して、または光ファイバを介して、または、ローカル・エリア・ネットワーク、広域ネットワーク、インターネット、もしくはイントラネットを含むネットワークを介して、または任意の他の伝送形態を介してなど、何らかの伝送媒体を介して伝送されるプログラム・コードの形態で実施することができ、そのプログラム・コードが、コンピュータなど、機械内にロードされ、機械によって実行されたとき、その機械は、本発明を実施するための装置となる。
このプログラム・コードは、汎用プロセッサ上で実施されたとき、プロセッサと結合し、特定の論理回路と同様に動作する独自の装置を提供する。
さらに、本発明は、コンピュータ・ネットワークの一部として、または分散コンピューティング環境内で展開することができる任意のコンピュータまたは他のクライアントもしくはサーバ・デバイスに実装することができる。これに関して、本発明は、任意の数のメモリまたは記憶装置と、任意の数のアプリケーション、ならびに任意の数の記憶装置またはボリュームを跨いで発生するプロセスとを有する任意のコンピュータ・システムまたは環境に関係し、これらは、本発明による、データベース・ストア内の持続オブジェクトのためのプロセスに使用することができる。本発明は、ネットワーク環境または分散コンピューティング環境内で展開される、遠隔ストレージまたはローカル・ストレージを有するサーバ・コンピュータおよびクライアント・コンピュータを有する環境に適用することができる。また、本発明は、遠隔デバイスまたはローカル・デバイスに情報を生成し、受信し、送信するために、プログラミング言語機能、解釈および実行機能を有する独立型コンピューティング・デバイスに適用することができる。
分散コンピューティングは、コンピューティング・デバイス群とシステム群の間で交換することによって、コンピュータ・リソースおよびサービスの共用を容易にする。これらのリソースおよびサービスには、それだけには限らないが、情報の交換、キャッシュストレージ、ファイルのためのディスク・ストレージが含まれる。分散コンピューティングは、ネットワーク接続を利用し、クライアントがその総力を利用して企業全体に利益を与えることを可能にする。これに関して、本発明のオブジェクト永続方法に関連して実行される処理を関係させることができるアプリケーション、オブジェクト、または資源を、様々なデバイスが有することができる。
図6は、例示的なネットワーク化された、または分散されたコンピューティング環境の概略図である。分散コンピューティング環境は、コンピューティング・オブジェクト10a、10bなど、また、コンピューティング・オブジェクトまたはデバイス110a、110b、110cなどを含む。これらのオブジェクトは、プログラム、メソッド、データ・ストア、プログラム可能な論理などを含む。オブジェクトは、PDA、テレビジョン、MP3プレイヤ、パーソナル・コンピュータなど、同じまたは異なるデバイスの一部分を含むことができる。各オブジェクトは、通信ネットワーク14によって別のオブジェクトと通信することができる。このネットワークはそれ自体、図6のシステムにサービスを提供する他のコンピューティング・オブジェクトおよびコンピューティング・デバイスを含むことができ、それ自体、複数の相互接続されたネットワークを表すことができる。本発明の一態様によれば、各オブジェクト10a、10bなど、または110a、110b、110cなどは、API、あるいは他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用し、本発明のオブジェクト持続方法を実装するために使用されるプロセスの使用を要求することができる。
また、110cなど、オブジェクトは、別のコンピューティング・デバイス10a、10bなど、または110a、110bなどにおいてホスティングを受けることができることも理解することができる。したがって、図の物理環境は、接続されたデバイスをコンピュータとして示す可能性があるが、そのような例示は例示的なものにすぎず、物理環境については、別法として、PDA、テレビジョン、MP3プレイヤなど様々なデジタル・デバイス、インターフェースなどソフトウェア・オブジェクト、COMオブジェクトなどを含めて示す、または述べることができる。
分散コンピューティング環境をサポートする様々なシステム、コンポーネント、ネットワーク構成がある。たとえば、コンピューティング・システムは、有線システムまたは無線システムによって、またローカル・ネットワークまたは広く分散されたネットワークによって共に接続することができる。現在、ネットワークの多くはインターネットに結合されており、インターネットは、広く分散されたコンピューティングのためのインフラストラクチャを提供し、多数の異なるネットワークを包含する。どのインフラストラクチャも、本発明に付随して行われる例示的な通信のために使用することができる。
インターネットは、コンピューティング・ネットワーキングの技術分野で周知である、プロトコルのTCP/IPスイートを使用するネットワークおよびゲートウェイの集まりを指す。TCP/IPは、「伝送制御プロトコル/インターネット・プロトコル」の頭字語である。インターネットは、ユーザがネットワーク(群)を介して情報と対話する、また情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータ群によって相互接続された、地理的に分散された遠隔コンピュータ・ネットワーク群のシステムとして説明することができる。そのように広範囲に及ぶ情報共有のため、インターネットなど遠隔ネットワーク群は今まで、概して、開発者が、専門の動作またはサービスを実行するためのソフトウェア・アプリケーションを、本質的に制約なしに設計することができるオープンシステムの形に発展してきた。
したがって、ネットワーク・インフラストラクチャは、クライアント/サーバ、ピア・ツー・ピア、またはハイブリッド・アーキテクチャなど、多数のネットワーク・トポロジを可能にする。「クライアント」は、それが関連しない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち、大雑把に言えば、1組の命令またはタスクである。クライアント・プロセスは、他のプログラムまたはサービスそれ自体についてどんな作業詳細を「知っている」ことをも必要とせずに、要求されたサービスを使用する。クライアント/サーバ・アーキテクチャ、特にネットワーク化されたシステムでは、クライアントは通常、別のコンピュータ、たとえばサーバによって提供された共用ネットワーク・リソースにアクセスするコンピュータである。図6の例では、コンピュータ110a、110bなどをクライアント・コンピュータと考えることができ、コンピュータ10a、10bなどをサーバと考えることができるが、状況に応じて、任意のコンピュータをクライアント、サーバ、または両方とみなすことができる。これらのコンピューティング・デバイスのどれもが、本発明のオブジェクト持続技法を関係させる形でデータを処理している可能性がある。
一般にサーバは、インターネットなど、遠隔またはローカル・ネットワークを介してアクセス可能な遠隔コンピュータ・システムである。クライアント・プロセスは第1のコンピュータ・システム内でアクティブとすることができ、サーバ・プロセスは第2のコンピュータ・システム内でアクティブとすることができ、通信媒体を介して互いに通信し、したがって分散機能を提供し、複数のクライアントがサーバの情報収集機能を利用することを可能にする。本発明の持続機構に応じて使用される任意のソフトウェア・オブジェクトは、複数のコンピューティング・デバイスを跨いで分散させることができる。
クライアントおよびサーバは、プロトコル・レイヤによって提供された機能を使用して互いに通信することができる。たとえば、ハイパー・テキスト転送プロトコル(HTTP)は、ワールド・ワイド・ウェブ(WWW)すなわち「ウェブ」に使用される共通プロトコルである。一般に、インターネット・プロトコル(IP)アドレスなどコンピュータ・ネットワーク・アドレス、または、ユニバーサル・リソース・ロケータ(URL)など他の参照を使用し、サーバ・コンピュータまたはクライアント・コンピュータを互いに識別することができる。ネットワーク・アドレスは、URLアドレスと称することができる。通信は、任意の使用可能な通信媒体を介して提供することができる。
したがって、図6は、本発明を使用することができる、ネットワーク/バスを介してサーバがクライアント・コンピュータと通信する例示的なネットワーク環境または分散環境を示す。ネットワーク/バス14は、LAN、WAN、イントラネット、インターネット、または何らかの他のネットワーク媒体とすることができ、本発明に従って、可搬型コンピュータ、ハンドヘルド・コンピュータ、シン・クライアント、ネットワーク家電、またはVCR、TV、オーブン、照明、ヒータなど他のデバイスなど、いくつかのクライアントまたは遠隔コンピューティング・デバイス110a、110b、110c、110d、110eなどを有する。したがって、本発明は、それに持続オブジェクトを維持することが望ましい任意のコンピューティング・デバイスに適用されることがあり得ることが企図されている。
通信ネットワーク/バス14がインターネットであるネットワーク環境では、たとえば、サーバ10a、10bなどは、HTTPなどいくつかの周知のプロトコルのどれかを介してクライアント110a、110b、110c、110d、110eなどが通信するサーバとすることができる。サーバ10a、10bなどはまた、分散コンピューティング環境に特徴的なものとすることができるように、クライアント110a、110b、110c、110d、110eなどとして働くことができる。
通信は、適切な場合、有線または無線とすることができる。クライアント・デバイス110a、110b、110c、110d、110eなどは、通信ネットワーク/バス14を介して通信してもしなくてもよく、独立した通信が関連付けられている可能性がある。たとえば、TVまたはVCRの場合には、その制御に対してネットワーク化された側面があることも、ないこともある。各クライアント・コンピュータ110a、110b、110c、110d、110eなど、およびサーバ・コンピュータ10a、10bなどは、様々なアプリケーション・プログラム・モジュールまたはオブジェクト135を備えることができ、ファイルまたはデータ・ストリームを記憶することができる、あるいはファイルまたはデータ・ストリームの一部分をダウンロード、伝送、または移動させることができる様々なタイプのストレージ要素またはオブジェクトに対する接続またはアクセスを備えることができる。任意のコンピュータ10a、10b、110a、110bなどは、本発明に従って処理されたデータを記憶するために、データベース、メモリ、または他のストレージ要素20の維持および更新について責任を負うことがあり得る。したがって、本発明は、コンピュータ・ネットワーク/バス14にアクセスし、それと対話することができるクライアント・コンピュータ110a、110bなどと、クライアント・コンピュータ110a、110bなどや他の同様のデバイス、およびデータベース20と対話することができるサーバ・コンピュータ10a、10bなどとを有するコンピュータ・ネットワーク環境内で使用することができる。
図6と以下の考察は、本発明をそれに実装することができる好適なコンピューティング・デバイスについて簡潔に一般的に述べることが意図されている。たとえば、図6に示されているクライアント/サーバ・コンピュータまたはデバイスのどれもがこの形態を取ることができる。しかし、あらゆる種類のハンドヘルド型、可搬型その他のコンピューティング・デバイスおよびコンピューティング・オブジェクトを、すなわちコンピューティング環境内でデータを生成、処理、受信および/または送信することができるどれをも、本発明に使用することが企図されていることを理解されたい。汎用コンピュータについて以下で述べるが、これは一例にすぎず、本発明は、ネットワーク/バス相互運用性および対話を有するシン・クライアントに実装することができる。したがって、本発明は、ごくわずかの、または最小限のクライアント・リソースが関係するネットワーク・ホスト・サービスの環境、たとえば、クライアント・デバイスが、家電内に配置されたオブジェクトなどネットワーク/バスに対するインターフェースとして働くにすぎないネットワーク環境内で実装することができる。本質的には、データを記憶することができる、またはそこからデータを取り出す、または別のコンピュータに送信することができるどこでも、本発明のオブジェクト持続方法の動作にとって望ましい、あるいは好適な環境である。
必要とされてはいないが、本発明は、デバイスまたはオブジェクト用のサービスの開発者によって使用されるように、オペレーティング・システムを介して実装することができ、かつ/または、本発明に従って動作するアプリケーションまたはサーバ・ソフトウェア内に含むことができる。ソフトウェアについて、クライアント・ワークステーション、サーバ、または他のデバイスなど、1つまたは複数のコンピュータによって実行される、プログラム・モジュールなどコンピュータ実行可能命令の一般的な状況で述べることができる。一般に、プログラム・モジュールは、特定のタスクを実行する、あるいは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。一般に、プログラム・モジュールの機能は、望むように様々な実施形態で組み合わせる、または分散させることができる。さらに、本発明は、他のコンピュータ・システム構成およびプロトコルに実施することができる。本発明に使用するのに適している可能性がある他の周知のコンピューティング・システム、環境、および/または構成には、それだけには限らないが、パーソナル・コンピュータ(PC)、現金自動預け払い機、サーバ・コンピュータ、ハンドヘルドまたはラップトップ・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサをベースとするシステム、プログラム可能な家庭用電化製品、ネットワークPC、家電、照明、環境制御要素、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれる。
したがって、図7は、本発明を実装することができる好適なコンピューティング・システム環境100の一例を示すが、上記で明らかにしたように、コンピューティング・システム環境100は好適なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどのような限定も示唆しないものとする。また、コンピューティング環境100は、例示的な動作環境100に示されている構成要素のいずれか1つまたは組合せに関してどのような依存性も要件も有すると解釈すべきでない。
図7を参照すると、本発明を実装するための例示的なシステムが、コンピュータ110の形態で汎用コンピューティング・デバイスを含んでいる。コンピュータ110の構成要素には、それだけには限らないが、処理装置120、システム・メモリ130、およびシステム・メモリを含む様々なシステム構成要素を処理装置120に結合するシステム・バス121が含まれる。システム・バス121は、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、および様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含むいくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例を挙げると、そのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、および(メザニン・バスとしても知られる)PCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ110は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取外し式媒体と非取外し式媒体を共に含む。限定ではなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性と不揮発性、取外し式と非取外し式の媒体が共に含まれる。コンピュータ記憶媒体には、それだけには限らないが、RAM、ROM、EEPROM、フラッシュ・メモリもしくは他のメモリ技術、CDROM、デジタル多用途ディスク(DVD)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用することができ、コンピュータ110によってアクセスすることができる任意の他の媒体が含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合し、任意の情報送達媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の1つまたは複数が設定された、または変化した信号を意味する。限定ではなく例を挙げると、通信媒体には、有線ネットワークまたは直接配線接続など有線媒体と、音響、RF、赤外線および他の無線媒体など無線媒体とが含まれる。上記のいずれかの組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
システム・メモリ130は、読出し専用メモリ(ROM)131およびランダム・アクセス・メモリ(RAM)132など揮発性および/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)133は、一般にROM131内に記憶されている。一般にRAM132は、処理装置120によって直ちにアクセス可能な、および/または現在働きかけられているデータおよび/またはプログラム・モジュールを含む。限定ではなく例を挙げると、図7は、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、プログラム・データ137を示す。
コンピュータ110はまた、他の取外し式/非取外し式、揮発性/不揮発性コンピュータ記憶媒体を含むことができる。例示にすぎないが、図8は、非取外し式の不揮発性磁気媒体との間で読出しまたは書込みをするハードディスク・ドライブ141、取外し式の不揮発性磁気ディスク152との間で読出しまたは書込みをする磁気ディスク・ドライブ151、CD−RW、DVD−RW、または他の光媒体など取外し式の不揮発性光ディスク156との間で読出しまたは書込みをする光ディスク・ドライブ155を示す。例示的な動作環境内で使用することができる他の取外し式/非取外し式、揮発性/不揮発性コンピュータ記憶媒体には、それだけには限らないが、磁気テープ・カセット、フラッシュメモリカード、デジタル多用途ディスク、デジタル・ビデオ・テープ、固体RAM、固体ROMなどが含まれる。一般にハードディスク・ドライブ141は、インターフェース140など非取外し式メモリ・インターフェースを介してシステム・バス121に接続され、磁気ディスク・ドライブ151および光ディスク・ドライブ155は、一般に、インターフェース150など取外し式メモリ・インターフェースによってシステム・バス121に接続される。
上記で論じ、図7に示されているドライブとその関連コンピュータ記憶媒体は、コンピュータ110のためのコンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータを記憶する。たとえば、図7では、ハードディスク・ドライブ141が、オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、プログラム・データ147を記憶するものとして示されている。これらの構成要素は、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、プログラム・データ137と同じとすることも異なるものとすることもできることに留意されたい。ここでは、オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、プログラム・データ147は、これらが最低でも異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード162や、マウス、トラックボール、またはタッチ・パッドなどポインティング・デバイス161など、入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラ・アンテナ、スキャナなどが含まれる。これらの、また他の入力デバイスは、システム・バス121に結合されているユーザ入力インターフェース160を介して処理装置120に接続されることがしばしばであるが、パラレル・ポート、ゲームポート、またはユニバーサル・シリアル・バス(USB)など、他のインターフェースおよびバス構造によって接続することができる。グラフィクス・インターフェース182もまた、システム・バス121に接続することができる。1つまたは複数のグラフィクス処理装置(GPU)184は、グラフィクス・インターフェース182と通信することができる。また、モニタ191または他のタイプのディスプレイ・デバイスを、ビデオ・インターフェース190などのインターフェースを介してシステム・バス121に接続することができ、ビデオ・インターフェース190は、ビデオ・メモリ186と通信することができる。コンピュータはまた、モニタ191に加えて、スピーカ197やプリンタ196など他の周辺出力デバイスをも含むことができ、これらは、出力周辺機器インターフェース195などを介して接続することができる。
コンピュータ110は、遠隔コンピュータ180など、1つまたは複数の遠隔コンピュータに対する論理接続を使用してネットワーク環境または分散環境内で動作することができる。遠隔コンピュータ180は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイスまたは他の共通ネットワーク・ノードとすることができ、図7には、メモリ記憶デバイス181だけが示されているが、一般に、コンピュータ110に関して上述した要素の多数または全部を含む。図7に示されている論理接続は、ローカル・エリア・ネットワーク(LAN)171と広域ネットワーク(WAN)173を含むが、他のネットワーク/バスを含むこともできる。そのようなネットワーク環境は、家庭、事務所、全社コンピュータ・ネットワーク、イントラネット、インターネットで普通である。
コンピュータ110は、LANネットワーク環境内で使用されるとき、ネットワーク・インターフェースまたはアダプタ170を介してLAN171に接続される。コンピュータ110は一般に、WANネットワーク環境内で使用されるとき、インターネットなどWAN173を介して通信を確立するためのモデム172または他の手段を含む。モデム172は、内部にあっても外部にあってもよく、ユーザ入力インターフェース160または他の適切な機構を介してシステム・バス121に接続することができる。ネットワーク環境では、コンピュータ110に関して示されたプログラム・モジュール、またはその一部分を、遠隔メモリ記憶装置内に記憶することができる。限定ではなく例を挙げると、図7は、メモリデバイス181に常駐するものとして遠隔アプリケーション・プログラム185を示す。図のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することができることを理解されたい。
結論
ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法について開示した。ファイル・システム・オペレーションのための共有モデルが、クエリ言語ステートメントのためのトランザクション/ロッキング・モデルと統合され、ストレージ・プラットフォームにおけるロッキングとアイソレーションのための全体的なフレームワークを提供する。さらに、ファイル・システム・オペレーションについてトランザクションのサポートが提供され、その結果、ファイル・システム・オペレーションをトランザクションのコンテキストで実行することができる。したがって、単一のトランザクションが、単一のファイル・システム・ステートメント、単一のクエリ言語ステートメント、複数のファイル・システム・ステートメント、複数のクエリ言語ステートメント、およびファイル・システム・ステートメントとクエリ言語ステートメントの組合せを含むことができる。さらに、非トランザクション型ファイル・システム・ステートメントについてサポートが提供され、その結果、ファイル・システム・ステートメントは、必ずしもトランザクションのコンテキストで実行されることを必要としない。
本発明について、様々な図の好ましい実施形態に関連して述べたが、本発明の同じ機能を実行するために、そこから逸脱することなしに他の同様な実施形態を使用し、または、修正および追加を上述の実施形態に加えることができることを理解されたい。したがって、本発明は、どの単一の実施形態にも限定すべきでなく、添付の特許請求の範囲による広さと範囲内で解釈すべきである。
本発明による、アイテム・インスタンスについてデータを含む例示的なデータベース・テーブルの図である。 本発明による例示的なストレージ・プラットフォーム環境のブロック図である。 本発明による、ファイル・システム・ステートメントをトランザクションのコンテキストで実行するための例示的な方法の流れ図である。 本発明による、非トランザクション型読取りファイル・システム・ステートメントのロッキングとアイソレーションのための例示的な方法の流れ図である。 本発明による、非トランザクション型書込みファイル・システム・ステートメントのロッキングとアイソレーションのための例示的な方法の流れ図である。 本発明を実装することができる様々なコンピューティング・デバイスを有する例示的なネットワーク環境を表すブロック図である。 本発明を実装することができる例示的なコンピューティング・デバイスを表すブロック図である。

Claims (35)

  1. アイテムを開くための呼出しと、前記アイテムから読み取るための呼出しと前記アイテムに書き込むための呼出しのうちの1つと、前記アイテムを閉じるための呼出しとを含むファイル・システム・ステートメントをトランザクションのコンテキストで実行するための方法であって、
    前記ファイル・システム・ステートメントを前記トランザクションに関連付けること、および、
    前記アイテムに対応するデータ・テーブル行に関して読取りロックおよび書込みロックのうち1つを獲得することによって、前記トランザクションを開始すること
    を備えることを特徴とする方法。
  2. 前記アイテムに対応するユーザ定義タイプを含むデータ・テーブル行に関して読取りロックおよび書込みロックのうち1つを獲得することによって、前記トランザクションを開始することを備えることを特徴とする請求項1に記載の方法。
  3. 第2のステートメントを前記トランザクションに関連付けることをさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記第2のステートメントを前記トランザクションに関連付けることを備え、前記第2のステートメントは、別のファイル・システム・ステートメントであることを特徴とする請求項3に記載の方法。
  5. 前記第2のステートメントを前記トランザクションに関連付けることを含み、前記第2のステートメントは、トランザクションのクエリ言語ステートメントであることを特徴とする請求項3に記載の方法。
  6. 前記トランザクションを開始することは、
    前記トランザクションを開始するとコンフリクトが生じるかどうか判定すること、
    生じる場合には、コンフリクト解決スキームに従って前記コンフリクトを解決すること、および、
    生じない場合には、前記トランザクションを開始すること
    を備えることを特徴とする請求項1に記載の方法。
  7. 前記行に関して前記読取りロックを獲得することは、前記行の読取りコミットされたビューを獲得することを備えることを特徴とする請求項1に記載の方法。
  8. 前記行に関して前記書込みロックを獲得することは、前記トランザクションが処理されている間、別のトランザクションが前記行にアクセスするのを妨げることになる書込みロックを獲得することを備えることを特徴とする請求項1に記載の方法。
  9. 前記行に関して前記書込みロックを獲得することは、前記トランザクションが処理されている間、非ファイル・システム・ステートメントが前記行にアクセスするのを妨げることになる書込みロックを獲得することを備えることを特徴とする請求項1に記載の方法。
  10. 前記行に関して前記書込みロックを獲得することは、前記トランザクション内の別のステートメントが前記行に書き込むのを妨げることになる書込みロックを獲得することを備えることを特徴とする請求項1に記載の方法。
  11. 前記行に関して前記書込みロックを獲得することは、前記トランザクション内の別のステートメントが前記行から読み取ることを可能にすることになる書込みロックを獲得することを含むことを特徴とする請求項1に記載の方法。
  12. 前記行のファイルストリーム・フィールドに関して読取りロックおよび書込みロックのうち1つを獲得することによって、前記トランザクションを開始することをさらに備えることを特徴とする請求項1に記載の方法。
  13. 請求項1に記載の諸ステップを実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  14. アイテムを開くための呼出しと、前記アイテムから読み取るための呼出しと、前記アイテムを閉じるための呼出しとを含むファイル・システム・ステートメントのロッキングとアイソレーションのための方法であって、
    前記アイテムに対応するデータ・テーブルの行について読取りアクセスが使用可能であるかどうか判定すること、
    使用可能でない場合には、前記オープンを見捨てること、および、
    使用可能である場合には、前記行に関して読取りロックを獲得すること
    を備えることを特徴とする方法。
  15. 前記アイテムに対応するユーザ定義タイプを含むデータ・テーブルの行について読取りアクセスが使用可能であるかどうか判定することをさらに備えることを特徴とする請求項14に記載の方法。
  16. 前記行に関して読取りロックを獲得することは、前記行の読取りコミットされたビューを獲得することを備えることを特徴とする請求項14に記載の方法。
  17. 前記行のファイルストリーム・フィールドに関して読取りロックを獲得することをさらに備えることを特徴とする請求項14に記載の方法。
  18. 請求項14に記載の諸ステップを実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  19. アイテムを開くための呼出しと、前記アイテムに書き込むための呼出しと、前記アイテムを閉じるための呼出しとを含むファイル・システム・ステートメントのロッキングとアイソレーションのための方法であって、
    前記アイテムに対応するデータ・テーブルの行について書込みアクセスが使用可能であるかどうか判定すること、
    使用可能でない場合には、前記オープンを見捨てること、および、
    使用可能である場合には、前記行に関して書込みロックを獲得すること
    を備えることを特徴とする方法。
  20. 前記アイテムに対応するユーザ定義タイプを含むデータ・テーブルの行について書込みアクセスが使用可能であるかどうか判定することをさらに備えることを特徴とする請求項19に記載の方法。
  21. 前記行に関して前記書込みロックを獲得することは、前記ステートメントが処理されている間、別のステートメントが前記行にアクセスするのを妨げることになる書込みロックを獲得することを備えることを特徴とする請求項19に記載の方法。
  22. 前記行のファイルストリーム・フィールドに関して書込みロックを獲得することによって、前記トランザクションを開始することをさらに備えることを特徴とする請求項19に記載の方法。
  23. 請求項19に記載の諸ステップを実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  24. アイテムを開くための呼出しと、前記アイテムから読み取るための呼出し、および前記アイテムに書き込むための呼出しのうちの1つと、前記アイテムを閉じるための呼出しとを含むファイル・システム・ステートメントをトランザクションのコンテキストで実行するためのシステムであって、
    前記アイテムに対応する行を有するデータ・テーブルを備えるリレーショナル・データ・エンジンと、
    前記リレーショナル・データ・エンジン上で構築されるストレージ・プラットフォームであって、前記ファイル・システム・ステートメントを前記トランザクションに関連付けるための手段と、前記行に関して読取りロックおよび書込みロックのうち1つを獲得することによって前記トランザクションを開始するための手段とを備えるストレージ・プラットフォームと
    を備えることを特徴とするシステム。
  25. 前記アイテムに対応する前記行は、前記アイテムに対応するユーザ定義タイプを含むことを特徴とする請求項24に記載のシステム。
  26. 前記ストレージ・プラットフォームは、第2のステートメントを前記トランザクションに関連付けるための手段をさらに備えることを特徴とする請求項24に記載のシステム。
  27. 前記第2のステートメントは、別のファイル・システム・ステートメントであることを特徴とする請求項26に記載のシステム。
  28. 前記第2のステートメントは、トランザクションのクエリ言語ステートメントであることを特徴とする請求項26に記載のシステム。
  29. 前記トランザクションを開始するための前記手段は、
    前記トランザクションを開始するとコンフリクトが生じるかどうか判定するステップと、
    生じる場合には、コンフリクト解決スキームに従って前記コンフリクトを解決するステップと、
    生じない場合には、前記トランザクションを開始するステップと
    を実行するための手段を備える
    ことを特徴とする請求項24に記載のシステム。
  30. 前記読取りロックは、前記行の読取りコミットされたビューを提供することを特徴とする請求項24に記載のシステム。
  31. 前記書込みロックは、前記トランザクションが処理されている間、別のトランザクションが前記行にアクセスするのを妨げることを特徴とする請求項24に記載のシステム。
  32. 前記書込みロックは、前記トランザクションが処理されている間、非トランザクション型ファイル・システム・ステートメントが前記行にアクセスするのを妨げることを特徴とする請求項24に記載のシステム。
  33. 前記書込みロックは、前記トランザクション内の別のステートメントが前記行に書き込むのを妨げることを特徴とする請求項24に記載のシステム。
  34. 前記書込みロックは、前記トランザクション内の別のステートメントが前記行から読み取ることを可能にすることを特徴とする請求項24に記載のシステム。
  35. 前記行は、ファイルストリーム・フィールドを備えることを特徴とする請求項24に記載のシステム。
JP2007502784A 2004-03-10 2004-07-29 ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法 Ceased JP2007528555A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/797,238 US20050203903A1 (en) 2004-03-10 2004-03-10 System and method for locking and isolation in a storage platform
PCT/US2004/024435 WO2005094206A2 (en) 2004-03-10 2004-07-29 System and method for locking and isolation in a storage platform

Publications (1)

Publication Number Publication Date
JP2007528555A true JP2007528555A (ja) 2007-10-11

Family

ID=34920003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502784A Ceased JP2007528555A (ja) 2004-03-10 2004-07-29 ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20050203903A1 (ja)
EP (1) EP1723552A4 (ja)
JP (1) JP2007528555A (ja)
KR (1) KR20060116140A (ja)
CN (2) CN101266617A (ja)
WO (1) WO2005094206A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7548918B2 (en) * 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
CN100437495C (zh) * 2004-12-21 2008-11-26 鸿富锦精密工业(深圳)有限公司 解决资源重复锁定冲突系统及方法
US8224837B2 (en) * 2005-06-29 2012-07-17 Oracle International Corporation Method and mechanism for supporting virtual content in performing file operations at a RDBMS
US7809675B2 (en) * 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US8166059B2 (en) * 2005-07-08 2012-04-24 Oracle International Corporation Optimization of queries on a repository based on constraints on how the data is stored in the repository
CA2512385C (en) * 2005-07-08 2008-11-04 Marathon Marine Manufacturing (1996) Ltd. Cargo deck for a truck box
US20070118559A1 (en) * 2005-11-18 2007-05-24 Microsoft Corporation File system filters and transactions
US7610304B2 (en) * 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
US8250094B2 (en) * 2006-07-19 2012-08-21 Microsoft Corporation Relational lockdown for an item store
CN102006179B (zh) * 2009-08-28 2014-08-13 中兴通讯股份有限公司 一种备份数据及回退数据的方法和装置
CN102214247B (zh) * 2011-07-21 2013-06-12 山东地纬计算机软件有限公司 一种支持并发的文件事务方法
CN104933196B (zh) * 2015-07-13 2019-06-21 上海斐讯数据通信技术有限公司 一种嵌入式系统中数据库管理方法及系统
CN105550270B (zh) * 2015-12-09 2019-07-12 百度在线网络技术(北京)有限公司 数据库查询方法和装置
CN105653610A (zh) * 2015-12-25 2016-06-08 数源科技股份有限公司 一种快速显示大容量数据信息的方法
CN105550366B (zh) * 2016-01-20 2019-10-18 百度在线网络技术(北京)有限公司 库存信息处理方法和装置
CN109598077A (zh) * 2018-12-11 2019-04-09 中国航空工业集团公司西安航空计算技术研究所 一种基于gpu芯片的图形管线装置及建模方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197598A (ja) * 1991-06-18 1993-08-06 Digital Equip Corp <Dec> トランザクション処理方法及び装置
JPH06318164A (ja) * 1992-04-30 1994-11-15 Oracle Corp 分布トランザクションを実行する方法および装置
JPH1063561A (ja) * 1996-02-09 1998-03-06 Sun Microsyst Inc データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029160A (en) * 1995-05-24 2000-02-22 International Business Machines Corporation Method and means for linking a database system with a system for filing data
US6067542A (en) * 1995-10-20 2000-05-23 Ncr Corporation Pragma facility and SQL3 extension for optimal parallel UDF execution
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
FR2762418B1 (fr) * 1997-04-17 1999-06-11 Alsthom Cge Alcatel Procede de gestion d'une memoire partagee
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6606626B1 (en) * 1998-10-20 2003-08-12 Sybase, Inc. Database system with lock manager enhancement for improving concurrency
GB9827415D0 (en) * 1998-12-11 1999-02-03 Wild Andrew M Surgical apparatus and method for occluding a body passageway
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
US6339772B1 (en) * 1999-07-06 2002-01-15 Compaq Computer Corporation System and method for performing database operations on a continuous stream of tuples
US6453313B1 (en) * 1999-07-06 2002-09-17 Compaq Information Technologies Group, L.P. Database management system and method for dequeuing rows published to a database table
JP5113967B2 (ja) * 1999-08-05 2013-01-09 オラクル・インターナショナル・コーポレイション インターネットファイルシステム
US6393435B1 (en) * 1999-09-22 2002-05-21 International Business Machines, Corporation Method and means for evaluating the performance of a database system referencing files external to the database system
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
JP3992263B2 (ja) * 2000-03-30 2007-10-17 株式会社日立製作所 データベース−ファイル連携方法
US6571252B1 (en) * 2000-04-12 2003-05-27 International Business Machines Corporation System and method for managing persistent objects using a database system
US6772155B1 (en) * 2001-04-04 2004-08-03 Ncr Corporation Looking data in a database system
US6874001B2 (en) * 2001-10-05 2005-03-29 International Business Machines Corporation Method of maintaining data consistency in a loose transaction model
US7035874B1 (en) * 2002-03-29 2006-04-25 Ncr Corp. Media streaming in a database
US7146366B2 (en) * 2002-09-13 2006-12-05 Netezza Corporation Distributed concurrency control using serialization ordering
US20040117372A1 (en) * 2002-12-17 2004-06-17 Bulent Kasman System and method for controlling access to system resources
CA2425033A1 (en) * 2003-04-08 2004-10-08 Ibm Canada Limited - Ibm Canada Limitee Multi-level locking hierarchy in a database with multi-dimensional clustering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197598A (ja) * 1991-06-18 1993-08-06 Digital Equip Corp <Dec> トランザクション処理方法及び装置
JPH06318164A (ja) * 1992-04-30 1994-11-15 Oracle Corp 分布トランザクションを実行する方法および装置
JPH1063561A (ja) * 1996-02-09 1998-03-06 Sun Microsyst Inc データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Also Published As

Publication number Publication date
WO2005094206A3 (en) 2006-02-23
CN101266617A (zh) 2008-09-17
KR20060116140A (ko) 2006-11-14
CN1856784A (zh) 2006-11-01
EP1723552A2 (en) 2006-11-22
US20050203903A1 (en) 2005-09-15
WO2005094206A2 (en) 2005-10-13
EP1723552A4 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
JP5043175B2 (ja) 型が定義されているデータベースストアの外側でのユーザ定義型フィールドの格納および取得のためのシステムと方法
JP2007528555A (ja) ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法
JP4842279B2 (ja) データベースサーバによるファイル操作を実行するためのインフラストラクチャ
EP2453373B1 (en) Method and system for transacted file operations over a network
US7483915B2 (en) Systems and method for representing relationships between units of information manageable by a hardware/software interface system
US7555497B2 (en) Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
KR100959473B1 (ko) 저장 플랫폼과 애플리케이션 프로그램 사이의 애플리케이션프로그래밍 인터페이스
US7428546B2 (en) Systems and methods for data modeling in an item-based storage platform
JP4890811B2 (ja) データストアに対して動的に生成されるオペレーションを検証すること
KR101024730B1 (ko) 항목 기반 저장 플랫폼 내에서 데이터 모델링하기 위한시스템 및 방법
US20050044089A1 (en) Systems and methods for interfacing application programs with an item-based storage platform
EP1622046A2 (en) System and method for delayed fetching of designated members of a user defined type
US20050055354A1 (en) Systems and methods for representing units of information manageable by a hardware/software interface system but independent of physical representation
US20040148308A1 (en) Filestream data storage attribute
US7472133B2 (en) System and method for improved prefetching
US7478115B2 (en) System and method for database and filesystem coordinated transactions
US7412456B2 (en) System and method for improved exposure of database schema information
RU2412461C2 (ru) Системы и способы сопряжения прикладных программ с платформой хранения на основе статей
US20040148272A1 (en) Logical pathname as a reference mechanism for data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100825

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100914

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20110121

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20131015