JP4842279B2 - データベースサーバによるファイル操作を実行するためのインフラストラクチャ - Google Patents
データベースサーバによるファイル操作を実行するためのインフラストラクチャ Download PDFInfo
- Publication number
- JP4842279B2 JP4842279B2 JP2007546744A JP2007546744A JP4842279B2 JP 4842279 B2 JP4842279 B2 JP 4842279B2 JP 2007546744 A JP2007546744 A JP 2007546744A JP 2007546744 A JP2007546744 A JP 2007546744A JP 4842279 B2 JP4842279 B2 JP 4842279B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- request
- requester
- resource
- state
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Description
この発明は、データベース管理システムにおけるファイル操作の実行に関する。
データは、データベースおよびファイルサーバなどの多くのタイプの格納機構に格納され得る。各々の格納機構は典型的にはその独自のアクセス手段を有する。たとえば、データベース上で操作を実行するためにSQLプロトコルが典型的に使用され、ファイルシステム上で操作を実行するためにNFSプロトコルが典型的に使用される。SQLプロトコルは、データベースに格納されたデータにアクセスし、そのデータを操作するためのANSI規格である。NFSプロトコルは、ネットワーク全体にわたってファイル上でのファイル操作の実行をサポートする分散型ファイルシステムプロトコルである。NFSは、UNIX(登録商標)ホスト間でファイルを共有するための周知の規格である。NFSプロトコルでは、ファイルシステム操作は、特定のファイルを識別する識別子であるファイルハンドルを使用してファイル上で実行される。RFC3010に指定されるNFSの現行バージョン、すなわちバージョン4は、バージョン3以上に、セキュリティの向上および状態保持操作の実行などのさらなる機能性をサポートする。
中、同様の参照数字は同様の要素を指す。
以下の説明では、説明の目的で、この発明の実施例の完全な理解をもたらすために多数の具体的な詳細について説明する。しかしながら、この発明の実施例はこれらの具体的な詳細がない状態で実施され得ることは明白である。他の例では、本明細書に記載されるこの発明の実施例を不必要に曖昧にすることを回避するために、周知の構造および装置はブロック図の形態で示される。
データベースに格納されたデータ上で、状態保持ファイルシステム操作などの状態保持操作を実行するための要求をデータベースサーバが処理できるフレームワークが提示される。「状態保持操作(stateful operation)」とは、(1)セッション内で要求される操作、および(2)そのセッションにおいて以前に実行された動作であったことを何らかの態様で考慮に入れる操作である。ある特定の操作の実行は、状態保持操作の実行に影響を及ぼす可能性がある。たとえば、データベース操作を実行した結果が、状態保持操作をうまく実行するために必要であるかもしれない。NFSを使用して実行された大半のファイルシステム操作は、状態保持操作である。状態保持ファイルシステム操作は、データベースサーバによって実行されると、1つ以上のデータベーストランザクションに及ぶ可能性がある。
図1は、この発明の実施例に従ってファイルシステム操作を実行するための要求を処理
できるシステム100のブロック図である。システム100は、クライアント110と、データベース管理システム(database management system)(DBMS)120と、通信リンク130とを含む。クライアント110のユーザは、1つ以上のファイルシステム操作の実行を指定する要求をDBMS120に発行できる。説明の目的で、要求がバージョン4などのNFSのバージョンに一致する例が与えられるものとする。
図2は、この発明の実施例に従うデータベースサーバ122の機能コンポーネントのブロック図である。上で説明したように、データベースサーバ122は、データベース124に維持されるファイル上で状態保持要求をデータベースサーバ122が処理できるよう
にするフレームワーク200を使用して実現される。さらに、同一のフレームワーク200によって、データベースサーバ122はデータベース124に維持されるデータ上で、HTTPまたはFTPプロトコルで実現される要求などの状態不保持要求を処理することが可能であろう。さらに、以下で説明するように、フレームワーク200は、新しい状態不保持プロトコルまたは状態保持プロトコルをサポートするためまたはフレームワーク200によってサポートされる既存のプロトコルに新しい機能性を追加するために、さらなるコンポーネントを含むように構成されてもよい。
プロトコルインタープリタ210は、通信リンク130によってDBMS120に送られたパケットを受取る。プロトコルインタープリタ210は、以下に記載するように、通信リンク130によってクライアント110からパケットを受取ることができ、そのパケットを処理できる任意のソフトウェアまたはハードウェアコンポーネントを使用して実現されてもよい。プロトコルインタープリタ210は、パケットを受取ると、そのパケットに関連付けられるパケットタイプを識別し、そのパケットタイプのパケットを読取るように構成されるコンポーネントにパケットを送る。たとえば、パケットのヘッダを調べることによって、パケットがNFS要求を含むことをプロトコルインタープリタ210が判断する場合、プロトコルインタープリタ210はパケットをNFSパケットリーダ224に送る。NFS要求を含むパケットがNFSパケットリーダ224によって読取られた後、NFSパケットリーダ224は、パケット内に指定される個々のファイルシステム操作についての情報をプロトコルインタープリタ210に送り返し、さらに処理する。
ある。
エクスポータ220は、エクスポート操作を実行できる任意のソフトウェアまたはハードウェアコンポーネントを使用して実現されてもよい。エクスポートによって、まるでディレクトリツリーがサーバにある代わりにディレクトリツリーがリクエスタにあるかのようにリクエスタがディレクトリツリーの一部を見ることが可能である。
リソースロッカー222は、リソースをロックできる任意のソフトウェアまたはハードウェアコンポーネントを使用して実現されてもよい。実施例では、リソースロッカー222は、データベース124に格納されたファイル上でバイト範囲ロッキングを実行するように構成される。
フレームワーク200はいくつかのパケットリーダを含む。各パケットリーダは、特定のプロトコルに一致するパケットから情報を読取るように設計される。たとえば、フレームワーク200は、NFSパケットリーダ224と、FTPパケットリーダ226と、H
TTPパケットリーダ228とを含む。
特権ベリファイヤ230は、特定のリクエスタが特定のファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかを検証できる任意のソフトウェアまたはハードウェアコンポーネントを使用して実現されてもよい。プロトコルインタープリタ210は、プロトコルインタープリタ210がファイルシステム操作を実行するたびに特定のリクエスタが特定のファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかを判断するように特権ベリファイヤ230に指示できる。特定のユーザが特定のファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかの判断について、図3のステップ318を参照して以下でさらに詳細に説明する。
オーソライザ232は、プロトコルインタープリタ210によって受取られた特定の要求を発行したリクエスタが実際に特定の要求において識別される同一のリクエスタであるかどうかを判断できる任意のソフトウェアまたはハードウェアコンポーネントを使用して実現されてもよい。このように、リクエスタの識別は、要求に指定された任意の操作を実行する前にオーソライザ232によって検証され得る。プロトコルインタープリタ210は、プロトコルインタープリタ210が要求を受取るたびに、プロトコルインタープリタ210によって受取られた特定の要求を発行したリクエスタが実際に特定の要求において識別される同一のリクエスタであるかどうかを判断するようにオーソライザ232に指示できる。特定の要求が特定のクライアント110によって発行されたかどうかの判断につ
いて、ステップ316を参照して以下でさらに詳細に説明する。
NFSプロトコルでは、ファイルシステム操作は、「開かれた」がまだ「閉じられていない」ファイル上で実行される。リクエスタは、リクエスタがファイル上で他のファイルシステム操作を実行し得る前に、OPENファイルシステム操作の実行を要求して、ファイルを開く。リクエスタがファイル上ですべての所望のファイルシステム操作を実行した後、リクエスタはCLOSEファイルシステム操作の実行を要求して、ファイルを閉じる。
状態識別データは、通信の際に参照されるファイルの現在の状態を参照するために、クライアント110とデータベースサーバ122との間で交換される通信に付随し得る。リクエスタがファイルを開くとき、状態識別データがフレームワーク200によって作成される。状態識別データは、リクエスタが開いた特定のファイルに関して特定のリクエスタに関連付けられる状態情報を識別する。
れる状態情報を記述する状態識別データを生成し、この状態識別データをリクエスタXYZに戻す。
一実施例によれば、状態情報はルックアップ機構212を使用して維持される。一実施例では、ルックアップ機構212は複数のB−ツリーを使用して実現される。複数のB−ツリーは、状態保持ファイルシステム操作の要求を処理する際に使用される状態情報を格納する。たとえば、複数のB−ツリーはリクエスタデータ、ファイルデータおよびロックデータを格納してもよい。リクエスタデータとは、ファイルシステム操作を発行するために登録されるリクエスタを識別するデータである。ファイルデータとは、どのファイルがどのリクエスタによって開かれたかを識別するデータである。ロックデータとは、どのファイル上のどのロックがどのリクエスタに付与されたかを識別するデータである。
client B−ツリーとは、クライアントについての情報を維持するB−ツリーである。フレームワーク200に登録した各クライアント110は、client B−ツリー内での検索項目に反映されることになる。以下でさらに詳細に説明するように、クライアント110はクライアント識別子を確立するための要求を発行することによってフレームワーク200に登録する。client B−ツリーのキーは、データベースサーバによってクライアントに以前に割当てられたクライアント識別子である。クライアント識別子は、フレームワーク200に登録された特定のクライアント110を一意に識別する。client B−ツリーの各ノードは、クライアント識別子およびクライアントのネットワークアドレスなどのクライアントによって与えられる識別子を含む特定のクライアントについての情報を格納する。
client B−ツリーと同様に、client_exists B−ツリーはクライアントについての情報を維持する。client B−ツリーおよびclient_exists B−ツリーは両方、クライアントについての情報を維持するが、client−exists B−ツリーのキーはクライアントによって与えられる識別子である。クライアントによって与えられる識別子はたとえばクライアントのネットワークアドレスであってもよい。
requestor B−ツリーとは、リクエスタについての情報を維持するB−ツリーである。requestor B−ツリーのキーは、リクエスタに関連付けられるクライアント識別子、およびリクエスタを一意に識別するリクエスタ識別子の両方を反映する。requestor B−ツリーは、特定のクライアント110に関連付けられるすべてのリクエスタを判断するために使用されることができ、OPENファイルシステム操作の処理中または操作不能になったクライアントを回復させるときに必要とされるかもしれない。
ファイルをリクエスタが開いたか、およびどのような状態情報がリクエスタに関連付けられるかについての情報を格納してもよい。
open_files B−ツリーとは、開かれたファイルについての情報を維持するB−ツリーである。open_files B−ツリーのキーはファイルのファイルハンドルである。open_files B−ツリーは、特定のファイル上でファイルシステム操作を実行することが可能であるかどうかを判断するために使用され得る。open_files B−ツリーの各検索項目は開いたファイルについての情報を格納できる。このような情報はたとえば、開いたファイル上のファイルベースのロックの数、開いたファイル上のファイルベースのロックのタイプ、どのような状態識別データが、開いたファイルに関連付けられる状態情報を識別するか、開いたファイルについてのオブジェクト識別子を含んでもよい。
opens B−ツリーとは、開かれたファイルについての情報を維持するB−ツリーである。opens B−ツリーのキーは状態識別データである。opens B−ツリーを横断することによって、opens B−ツリーへのキーとして使用される状態識別データによって識別された状態情報に関連付けられる、開いたファイルについての情報を位置付けることができる。
locks_requestor B−ツリーとは、ロックリクエスタについての情報を維持するB−ツリーである。locks_requestors B−ツリーへのキーは状態識別データである。locks B−ツリーの各検索項目は、クライアント識別子、リクエスタ識別子およびロックオーナー識別子などのロックのリクエスタについての情報を含む。ロックオーナー識別子は、ロックを付与される特定のリクエスタを一意に識別する。クライアント識別子およびリクエスタ識別子はフレームワーク200によって割当てられ、ロックオーナー識別子はリクエスタによって供給される。
granted_locks B−ツリーとは、付与されたロックについての情報を維持するB−ツリーである。granted_locks B−ツリーへのキーはファイルハンドルである。granted_locks B−ツリーは、どのファイルベースのロックが、もしあれば、特定のファイル上に付与されたかをすばやく判断するために使用され得る。
図3は、この発明の実施例に従うファイルシステム操作を処理するためのステップを示すフローチャートである。図3のステップを実行することによって、状態保持NFS操作などの状態保持操作がDBMS120によって実行されることができる。
図3を参照して、最初にステップ310において、リクエスタのためのクライアント識別子を確立するための第1の要求がデータベースサーバにおいて受取られる。ステップ310は、通信リンク130によってクライアント110によって送られた、第1の要求を含むパケットを受取るプロトコルインタープリタ210によって実行され得る。
ステップ314では、ファイルシステム操作を実行するための第2の要求が受取られる。ステップ314は、通信リンク130によってクライアント110によって送られた、第2の要求を含むパケットを受取るプロトコルインタープリタ210によって実行され得る。第2の要求はクライアント識別子を含む。
ルシステム操作を実行するための要求である場合、ステップ314において受取られた要求は、リクエスタに以前に送られた状態識別データを含む。この例では、状態識別データによって、フレームワーク200はファイルベースのロックのための要求の対象である、ファイルに関連付けられる状態情報を参照できることになる。
一旦プロトコルインタープリタ210が複合要求に指定された現在のファイルシステム操作についての情報をNFSパケットリーダ224から受取ると、プロトコルインタープリタ210は現在のファイルシステム操作をデータベースセッションに割当てる。データベースセッションのプールから選択され得る割当てられたデータベースセッションは、複合要求内に含まれるファイルシステム操作をデータベースサーバが処理することになるセッションである。状態情報がセッションとは別個に維持される(上で説明したように、状態情報はルックアップ機構212に維持される)ので、現在のファイルシステム操作をサービスするために任意のセッションがデータベースセッションのプールから選択されてもよい。ステップ314を実行した後、処理はステップ316に進む。
ステップ316では、ステップ314において受取られた要求が、要求内に含まれるクライアント識別子によって識別されたクライアントによって発行されたかどうかについて判断がなされる。実施例では、要求が受取られるたびに、リクエスタの識別を確認するために要求を認証する。ステップ316は、オーソライザ232に要求を認証させるためにオーソライザ232と通信するプロトコルインタープリタ210によって実行され得る。オーソライザ232は、要求内に含まれるクライアント識別子を認証プロセスの際に使用できる。オーソライザ232がステップ314において受取られた要求を認証した後、オーソライザ232は認証プロセスの結果をプロトコルインタープリタ210に通信する。オーソライザ232は、ケルベロス(Kerberos)、LIPKEYおよびSPKM−3を含む標準的な認証ライブラリならびにプロトコルを使用してリクエスタを認証してもよい。
ステップ318において、リクエスタが現在のファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかについて判断がなされる。ステップ318は、リクエスタが現在のファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかを特権ベリファイヤ230に検証させるために特権ベリファイヤ230と通信するプロトコルインタープリタ210によって実行され得る。
たファイルシステム操作を実行するのに十分な許可レベルを有しているかどうかを特権ベリファイヤ230が判断する。特権ベリファイヤ230は、各リクエスタごとにアクセス制御リストを維持する。各々のアクセス制御リストは、アクセス制御項目(access control entries)(ACEs)のリストを含む。各ACEは、リクエスタが特定の特権を付与されるか、または拒否されるかを識別する。
ステップ320では、現在のファイルシステム操作の実行が状態情報を必要とする場合、第2の要求内に含まれる状態識別データに基づいて適切な状態情報が検索される。状態識別データは以前に割当てられ、リクエスタに通信された可能性がある。たとえば、リクエスタは以前にファイルを開いたかもしれず、または以前にファイル上にロックを付与したかもしれない。ステップ320において検索される状態情報は、要求が複合要求である場合、現在のファイルシステム操作に関連付けられてもよい。ステップ320は、ルックアップ機構212を使用して状態情報を検索するプロトコルインタープリタ210によって実行され得る。ステップ320において検索された状態情報は、現在のファイルシステム操作を実行するのに必要な任意の状態情報を含む。ステップ320を処理した後、処理はステップ322に進む。
ステップ322では、現在のファイルシステム操作が、適切な状態情報に基づいて、選択されたデータベースセッション内で処理される。一実施例では、ステップ322はプロトコルインタープリタ210自体によって実行されてもよい。別の実施例では、プロトコルインタープリタ210は、フレームワーク200の他のコンポーネントに現在のファイルシステム操作を実行させるために他のコンポーネントと通信してもよい。現在のファイルシステム操作が処理された後、処理はステップ324に進む。
ステップ322では、ファイルシステム操作がセッションにおいて実行される。セッションによって使用される状態は、ファイルシステム操作の実行によって変わる。この例では、そのセッションの状態を表わす状態情報は「更新された状態情報」と称されるものとする。更新された状態情報は、現在のファイルシステム操作の処理から生じた状態の変更を反映する。たとえば、更新された状態情報は、ファイルシステム操作の対象であるファイルが開かれたかどうか、およびファイル上に任意のロックが付与されたかどうかを反映
する。したがって、現在のファイルシステム操作がファイルに対して実行された後、更新された状態情報はファイルの現在の状態を反映する。
複合要求に指定された操作を介する反復
各要求は、実行されるべき1つ以上のファイルシステム操作を指定する複合要求であってもよい。ステップ326では、ステップ314において受取られた要求が複合要求であり、複合要求に指定されたさらなる未処理のファイルシステム操作がある場合、処理はステップ318に進み、ステップ314の第2の要求に指定された次の未処理のファイルシステム操作が「現在のファイルシステム操作」になる。この態様で、複合要求に指定された各々のファイルシステム操作はフレームワーク200によってシーケンシャルに処理される。
ステップ328では、ステップ314の要求に指定されたすべてのファイルシステム操作を実行した結果が通信でリクエスタに伝送される。通信は、うまく実行されたファイルシステム操作の対象である特定のリソースに割当てられた状態情報を識別する任意の状態識別データを含んでもよい。ステップ328の実行は、状態保持ファイルシステム操作の
実行に応答して生成される任意の状態識別データとともに、複合要求の各々のファイルシステム操作を処理した結果をリクエスタに送るプロトコルインタープリタ210によって実行され得る。たとえば、リクエスタが以前に開いたファイル上の特定の範囲のバイトに読取−書込ロックが付与されることをリクエスタが要求した場合、プロトコルインタープリタ210は、リソースの新しい状態を識別する新しい状態識別データを含む、すなわち、特定のファイル上の特定の範囲のバイトに読取−書込ロックが付与された通信をリクエスタに送ることによってステップ328を実行してもよい。なお、新しい状態識別情報は、状態不保持ファイルシステム操作のうまくいった処理に応答するのではなく、状態保持ファイルシステム操作のうまくいった処理に応答してリクエスタに伝送される。
フレームワーク200は、状態不保持ファイルシステム操作または状態不保持プロトコルに一致する要求などの状態不保持要求も処理できる。プロトコルインタープリタ210が状態不保持要求を含むパケットを受取ると、プロトコルインタープリタ210はパケットを読取りかつ解釈するためにパケットをコンポーネントに伝送できる。たとえば、プロトコルインタープリタ210はFTP要求を含むパケットをFTPパケットリーダ226に送り、プロトコルインタープリタ210はHTTP要求を含むパケットをHTTPパケットリーダ228に送る。
クライアントがファイルに書込みたいとき、クライアントはOPENファイルシステム操作、次いで複数の書込ファイルシステム操作、次いでCLOSEファイルシステム操作の実行を要求し得る。このセクションの目的のために、単一のファイルシステム操作とは、OPENファイルシステム操作から始まって対応するCLOSEファイルシステム操作までの複数のNFS操作を指す。単一のファイルシステム操作を実行するために、1つ以上のデータベーストランザクションが実行されるようにするのにデータベースサーバ122が必要であるかもしれない。1つ以上のデータベーストランザクションの各々は、ファイルシステム操作が実行される前にコミットされる。したがって、特定のデータベーストランザクションによってデータベース124に加えられる変更は、ファイルシステム操作の実行がうまくいくものであるかどうかがわかる前にコミットされる。
リクエスタは同一のリソース上で独立してOPENコマンドおよびCLOSEコマンドを発行できる。したがって、たとえCLOSEコマンドが1つのリクエスタに対してファイルを閉じる場合であっても、ファイルはすべてのリクエスタに対して依然として閉じられない可能性がある。「最後のクローズ」という用語は、結果的にすべてのリクエスタに対してファイルが閉じられることになるCLOSEファイルシステム操作を指す。したがって、1つ以上のリクエスタによって現在開かれているいずれのリソースも最後のクローズをリソース上で実行させていない。
最後のクローズがリソース上で実行されておらず、リクエスタがリソースを得るための要求を送るとき、リクエスタが受取るべきリソースの状態は、リクエスタに関連付けられるクライアントのタイプに依存する。「一貫性のないクライアント」とは、リソースの「現在の状態」を見ることを予期するクライアントである。この文脈では、リソースの現在の状態は、リソースに加えられる任意のオープンコミットされた変更を含むが、リソースに加えられる任意のコミットされない変更を含まない。
一貫性のあるクライアントとは、任意のオープンコミットされた変更を見ることを許されないクライアントである。むしろ、一貫性のあるクライアントは、(a)リソースが開かれたが閉じられていない場合にリソースが開かれる前、または(b)最後のクローズがリソース上で実行された後のいずれかにリソースに加えられたコミットされた変更のみを見る。たとえば、リソースが開かれたが、最後のクローズがリソース上で実行されていないと想定されたい。リソースへのアクセスを要求する一貫性のあるクライアントは、OPEN操作の実行の直前にリソースの状態を見ることを予期する。
ミットされたデータベーストランザクションがリソースの状態を変更した場合、リソースのための要求を発行する一貫性のあるクライアントは、2つのトランザクションによって加えられる変更を反映しないリソースの状態を見ることを予期する。説明を容易にするために、一貫性のあるクライアントが見なければならないリソースの状態は、リソースの「クローズコミットされた」バージョンと称されるものとする。
(2) リクエスタ1がファイルf1を開く
(3) リクエスタ1が変更をファイルf1にコミットする
(4) 時間t2
(5) リクエスタ2がファイルf1を開く
(6) リクエスタ2が変更をファイルf1にコミットする
(7) 時間t3
(8) リクエスタ1がファイルf1を閉じる
(9) 時間t4
(10) リクエスタ2がファイルf1を閉じる
(11) 時間t5
時間t3において、ファイルf1の一貫性のあるバージョンは時間t1におけるファイルであり、ファイルの一貫性のないバージョンは時間t3におけるファイルである。時間t4において、ファイルf1の一貫性のあるバージョンは時間t1におけるファイルであり、ファイルの一貫性のないバージョンは時間t4におけるファイルである。時間t5において、ファイルf1の一貫性のあるバージョンは時間t5におけるファイルであり、ファイルの一貫性のないバージョンは時間t5におけるファイルである。一貫性のあるクライアントがリソースの以前の状態を見ることを予期するので、その状態は最後のクローズがリソース上で実行されるまで保存されなければならない。
フレームワーク200が一貫性のあるリクエスタおよび一貫性のないリクエスタをサポートするために、フレームワーク200は異なるタイプのロック、すなわちデータベースロックおよびファイルベースのロックを利用する。データベースロックとはデータベース操作の実行に応答して得られるロックであり、データベース操作がうまく完了した(コミットした)ときにデータベースロックは解除される。ファイルベースのロックとはOPENファイルシステム操作の実行に応答して得られるロックであり、CLOSEファイルシステム操作が実行されるときにファイルベースのロックは解除される。
プ412はデータベースサーバ122によって実行され得る。リクエスタタイプに基づいて、データベースサーバ122は特定のリソースのどのバージョンをリクエスタに送るかを判断する。リクエスタが一貫性のないリクエスタである場合、データベースサーバ122は特定のリソースの現在のバージョンを送る。しかしながら、リクエスタが一貫性のあるリクエスタである場合には、データベースサーバ122は特定のリソースのより古いバージョン、すなわちリソースのクローズコミットされたバージョンを送る。
複数のリクエスタが同一のリソースを伴う操作を実行しているとき、ファイルベースのロックの使用は等しく有利である。たとえば、複数のリクエスタは各々が同一ファイル上でファイルシステム操作を実行するための要求を発行してもよい。2つ以上のリクエスタがファイルを開いてもよく、2つ以上のリクエスタがリソースの状態に変更を加えてもよい。
リソースがOPENファイルシステム操作の対象であった時点でリソースの以前のバージョンについての情報を維持することが有利である多数の理由が存在する。第1に、上で説明したように、リソースがOPENファイルシステム操作の対象であったが、最後のクローズの対象ではなかった時点でリソースの以前のバージョンを維持することによって、データベースサーバ122は一貫性のあるリクエスタからリソースのための要求をサービスすることが可能である。第2に、リソースの以前のバージョンを維持することによって、データベースサーバは以前のバージョンにリソースを戻すことが可能である。(a)リクエスタがリソースの誤ったバージョンを作成するとき、(b)リクエスタがスキーマと互換性のないスキーマベースのリソースのバージョンを作成するとき、または(c)複数のリクエスタによってリソース上で実行された変更が互いに互換性がないときなどのさまざまな状況において、以前のバージョンにリソースを戻すことが必要である場合がある。
たデータベーストランザクションがリソースの状態を変更した後、コミットされたデータベーストランザクションによって変更が加えられる前の状態にリソースを戻すための要求が受取られる。たとえば、クライアント110は、ファイルのクローズコミットされたバージョンなどの特定の時点より前の状態に特定のファイルを戻すための要求をデータベースサーバ122に発行してもよい。
特定の時点より前の状態にリソースを戻すためにさまざまな技術が使用され得る。使用される特定の技術は、たとえばリソースがスキーマベースのリソースであるかまたはスキーマベースでないリソースであるかに依存するかもしれない。スキーマベースのリソースとは、定義されたスキーマに一致するリソースである。たとえば、所与のスキーマに一致する購入発注文書はスキーマベースのリソースの一例である。スキーマベースでないリソースとは、スキーマベースのリソースではないあらゆるリソースである。
スキーマベースのリソースは、リソース全体を一緒に格納することによって、たとえばデータベーステーブルのlob列にXML文書を格納することによって、構築された形態で格納されることができる。代替的には、スキーマベースのリソースを含む要素を別個に格納することによって、分解された形態でスキーマベースのリソースを格納することが有利であろう。たとえば、XML文書の個々のXMLタグおよびそれらの関連付けられるデータを記述するデータは、データベーステーブルの列に格納されてもよい。スキーマベースのリソースの要素が別個に格納されるので、スキーマベースのリソースの要素は、スキーマベースのリソースが読取られる前に再構築される必要があるかもしれない。
とができる。
一実施例によれば、スキーマベースのリソースは「以前のバージョン情報」に基づいて戻される。図5は、この発明の実施例に従うスキーマベースのリソースについての以前のバージョン情報を格納するシステムのブロック図である。以前のバージョン情報はXMLタイプテーブル510および任意の入れ子テーブル520に維持されることができるのに対して、スキーマベースのリソースに加えられる変更は、最後のクローズがスキーマベースのリソース上で実行されるまで、XML lob列502に格納されたリソースの再構築されたコピー上で実行されることができる。
図6Aおよび図6Bは、この発明の実施例に従うスキーマベースでないリソースについての以前のバージョン情報を格納するブロック図である。図6Aおよび図6Bは、スキーマベースでないリソースについての以前のバージョン情報を格納するための3つの異なるアプローチを説明するために使用するものとする。
ステム操作がリソース上で実行される直前の論理的な時間を示す。
第2のアプローチによれば、図6Bに示されるように、リソーステーブル650はLOB列652にスキーマベースでないリソースを格納する。このアプローチでは、OPENファイルシステム操作がリソース上で実行されると、リソースのコピーはリソーステーブル650の列654に格納される。列654は「キャッシュ列」として使用される。具体的には、列654に格納されるリソースのコピーは、リソースの現在のバージョンとして扱われる。データベーストランザクションがリソースに変更を引起こすとき、その変更は列652に格納された元のリソースの代わりに列654に格納されたリソースのコピーに加えられる。
格納空間の制約のために、ある特定の時間よりも古いアンドゥ情報は典型的には、より新しいアンドゥ情報によって上書きされる。その結果、スナップショット時間を使用して戻しを実行すること(すなわち第1のアプローチ)は必ずしも実現可能ではない。しかしながら、アンドゥ情報が利用可能であるときには、スナップショット時間ベースの戻しがキャッシュ列の戻し(すなわち第2の戻し)よりも好ましいであろう。
一実施例によれば、ファイルが閉じられるときに修正されたファイルの一貫性がチェックされ、それ以上の待ち状態のOPENファイルシステム操作はない。たとえば、スキーマベースのリソースが確実にスキーマの規則に一致するようにするためにスキーマベースのリソースがチェックされ得る。スキーマベースのリソースが対応するスキーマに一致しない場合には、リソースは開かれたときにリソースの状態に戻され得る。
ファイルベースのロックによって、データベースサーバ122はデータベース124に維持されるファイル上でファイルシステム操作を実行できる。リソースロッカー222は、データベース124に格納されたリソース上でファイルシステムロックを管理できる。ファイルベースのロックの挙動は、3つの重要な局面において、HTTPなどの状態不保持プロトコルのために使用される他のロックとは異なる。
、以前に付与されたロックが確実にまだ有効であるようにするために、以前に付与されたロックをチェックできる。以前に付与されたロックがもはや有効でない場合には、ロックが無効であることを反映するように、ルックアップ機構212に格納された情報が更新される(たとえば、ロックについての情報が削除され得る)。さらに、特定のクライアントに付与されたすべてのロックは、特定のクライアントが期限切れになったときに解除される。実施例では、クライアントが最後にフレームワーク200と通信して以来構成可能な量の時間が経過した後、クライアントは期限切れになる可能性がある。したがって、以前に付与されたロックが、付与されるように要求されるロックと矛盾する場合に、クライアントがまだ有効であることを検証するために、以前に付与されたロックに関連付けられるクライアントをチェックできる。クライアントが有効でない場合には、以前に付与されたロックが解除され、付与されるように要求されるロックが実行され得る。この発明の実施例では、特定のクライアントが期限切れになったかどうかの判断はclient B−ツリーをチェックすることによって実行されることができる。
データベース122は、オラクル・コーポレイションのRAC 10gオプションを使用するなど、リアルアプリケーションクラスタ(Real Application Cluster)(RAC)において実現されてもよい。RAC環境では、ファイルベースのロックがリソース上に付与されるとき、どのデータベースサーバがリソース上でファイルベースのロックを付与したかを記述するデータがデータベース124に格納されなければならない。
クライアント110、データベースサーバ122およびデータベース124は各々が実施例に従ってコンピュータシステム上で実現されてもよい。図8は、この発明の実施例が実現され得るコンピュータシステム800を示すブロック図である。コンピュータシステム800は、情報を通信するためのバス802または他の通信機構と、バス802に結合されて情報を処理するためのプロセッサ804とを含む。コンピュータシステム800は、バス802に結合されて、プロセッサ804によって実行されるべき情報および命令を格納するための、ランダムアクセスメモリ(random access memory)(RAM)または他の動的記憶装置などのメインメモリ806も含む。メインメモリ806は、プロセッサ804によって実行されるべき命令の実行中に一時的な変数または他の中間情報を格納するためにも使用されることができる。コンピュータシステム800はさらに、バス802に結合されて、プロセッサ804についての静的な情報および命令を格納するためのリードオンリーメモリ(read only memory)(ROM)808または他の静的記憶装置を含む。磁気ディスクまたは光学ディスクなどの記憶装置810は、情報および命令を格納するために設けられ、バス802に結合される。
いて2自由度を有し、これによって、この装置は平面において位置を指定することが可能である。
てもよい。無線リンクも実現されてもよい。いかなるこのような実現例においても、通信インターフェイス818は、さまざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電磁気信号または光信号を送受信する。
Claims (13)
- 装置によって実現される方法であって、
リソース上のファイルシステムプロトコルによって規定されるファイルシステム操作の実行を要求するための要求をリクエスタからデータベースサーバが受取るステップを備え、前記要求は、前記要求に関連付けられる状態情報を識別する状態識別データを含み、前記方法はさらに、
前記要求に関連付けられ、リクエスタによって前記リソース上で以前に実行された状態保持操作を指定する状態情報を、前記データベースサーバにおけるルックアップ機構を使用して、前記データベースサーバが検索するステップを備え、
前記ルックアップ機構は、前記状態識別データを前記状態情報に関連付ける特定のデータを備え、
前記ルックアップ機構を使用することは、前記特定のデータと前記状態識別データとを使用して前記状態情報をルックアップすることを備え、前記方法はさらに、
少なくとも一部には前記状態情報に基づいて、ファイルシステム操作の実行を要求する前記要求を前記データベースサーバが処理するステップと、
前記要求の処理に応答して、ファイルシステム操作がリソース上で実行された後のリソースの状態を指定するようにルックアップ機構における状態情報を更新し、更新された状態情報を識別しかつリクエスタに関連付けられる第2の状態識別データを作成するステップとを備え、更新された状態情報も、リクエスタによって前記リソース上で以前に実行された状態保持操作を指定し、前記方法はさらに、
前記リクエスタに前記第2の状態識別データを伝送するステップを備える、方法。 - 前記要求に関連付けられる前記状態情報を検索する前記ステップは、
前記状態情報を検索するために前記ルックアップ機構においてキーの値として前記状態識別データを使用することを備える、請求項1に記載の方法。 - 前記ルックアップ機構は、b−ツリーおよびハッシュテーブルからなる群から選択される1つのメンバーである、請求項2に記載の方法。
- 前記第2の状態情報は、前記要求の処理に応答して前記リクエスタによって開かれたファイルを指定する、請求項1に記載の方法。
- 前記第2の状態情報は、前記要求の処理に応答して前記リクエスタに付与されたファイル上の新しいロックを指定し、前記第2の状態情報は、前記リクエスタに以前に付与されたいずれのロックも指定する、請求項1に記載の方法。
- 前記新しいロックは、前記ファイルの指定されたバイト範囲をカバーし、前記指定されたバイト範囲は前記ファイルのすべてには及ばない、請求項5に記載の方法。
- 前記要求は第2の要求であって、前記方法はさらに、
前記第2の要求を受取る前に、リクエスタのためのクライアント識別子を確立するための第1の要求を前記データベースサーバにおいて受取るステップと、
前記リクエスタに前記クライアント識別子を伝送するステップとを備え、
前記第2の要求は前記クライアント識別子を含む、請求項1に記載の方法。 - 前記要求は特定のリクエスタを識別し、前記方法はさらに、
前記要求に関連付けられる前記状態情報を検索する前記ステップの前に、要求を発行したリクエスタが実際に要求において識別される特定のリクエスタであるかどうかを判断するステップを備える、請求項1に記載の方法。 - 前記要求はリクエスタによって発行され、前記方法はさらに、
前記要求によって要求された特定の操作を実行する前に、前記リクエスタが前記特定の操作を実行するのに十分な許可レベルを有しているかどうかを判断するステップを備える、請求項1に記載の方法。 - 前記要求はリクエスタによって発行され、前記要求を処理する前記ステップはさらに、
前記リクエスタを指定するように、前記データベースサーバに維持されるリクエスタデータを更新するステップを備え、前記リクエスタデータはファイルシステム操作を発行するために登録されるリクエスタを識別する、請求項1に記載の方法。 - 前記要求はリクエスタによって発行され、前記ファイルシステム操作はファイルを開くための操作であって、前記要求を処理する前記ステップはさらに、
前記リクエスタが前記ファイルを開いたことを反映するように、前記データベースサーバに維持されるファイルデータを更新するステップを備える、請求項1に記載の方法。 - 前記要求はリクエスタによって発行され、前記ファイルシステム操作はファイルの一部をロックするための操作であって、前記要求を処理する前記ステップはさらに、
前記リクエスタがロックした前記ファイルの前記一部を反映するように、前記データベースサーバに維持されるロックデータを更新するステップを備える、請求項1に記載の方法。 - 1つ以上のプロセッサによって実行されるときに、請求項1から12のいずれかに記載の方法を1つ以上のプロセッサに実行させる、命令の1つ以上のシーケンスを記憶するコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/014,354 | 2004-12-16 | ||
US11/014,354 US7627574B2 (en) | 2004-12-16 | 2004-12-16 | Infrastructure for performing file operations by a database server |
PCT/US2005/044134 WO2006065587A1 (en) | 2004-12-16 | 2005-12-06 | Infrastructure for performing file operations by a database server |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008524707A JP2008524707A (ja) | 2008-07-10 |
JP2008524707A5 JP2008524707A5 (ja) | 2009-01-29 |
JP4842279B2 true JP4842279B2 (ja) | 2011-12-21 |
Family
ID=36013304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007546744A Active JP4842279B2 (ja) | 2004-12-16 | 2005-12-06 | データベースサーバによるファイル操作を実行するためのインフラストラクチャ |
Country Status (7)
Country | Link |
---|---|
US (1) | US7627574B2 (ja) |
EP (1) | EP1825409B1 (ja) |
JP (1) | JP4842279B2 (ja) |
CN (1) | CN100527129C (ja) |
AU (1) | AU2005316812B2 (ja) |
CA (1) | CA2587529C (ja) |
WO (1) | WO2006065587A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11496552B2 (en) * | 2021-03-30 | 2022-11-08 | Dropbox, Inc. | Intent tracking for asynchronous operations |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7809848B1 (en) * | 2005-03-15 | 2010-10-05 | Oracle America, Inc. | System and method for aggregating NFS requests |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
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 |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
US7392335B2 (en) * | 2006-02-10 | 2008-06-24 | Oracle International Corporation | Anticipatory changes to resources managed by locks |
US7600063B2 (en) * | 2006-09-15 | 2009-10-06 | Oracle International Corporation | Techniques for improved read-write concurrency |
US7664781B2 (en) * | 2006-12-11 | 2010-02-16 | Simdesk Technologies | File operations with persistent file locking techniques |
US8433693B2 (en) * | 2007-04-02 | 2013-04-30 | Microsoft Corporation | Locking semantics for a storage system based on file types |
US20080243847A1 (en) * | 2007-04-02 | 2008-10-02 | Microsoft Corporation | Separating central locking services from distributed data fulfillment services in a storage system |
US8943087B2 (en) * | 2008-07-25 | 2015-01-27 | International Business Machines Corporation | Processing data from diverse databases |
US8972463B2 (en) * | 2008-07-25 | 2015-03-03 | International Business Machines Corporation | Method and apparatus for functional integration of metadata |
US9110970B2 (en) * | 2008-07-25 | 2015-08-18 | International Business Machines Corporation | Destructuring and restructuring relational data |
US8843460B2 (en) | 2009-02-17 | 2014-09-23 | Amadeus S.A.S. | Method allowing validation of large volume of updates in a large production database of new entered data prior to their release |
EP2221733A1 (en) * | 2009-02-17 | 2010-08-25 | AMADEUS sas | Method allowing validation in a production database of new entered data prior to their release |
US20110307490A1 (en) * | 2010-06-15 | 2011-12-15 | Usm China/Hong Kong Limited | Context Level Protocols And Interfaces |
US9015136B2 (en) * | 2010-01-22 | 2015-04-21 | Microsoft Technology Licensing, Llc | Storing temporary state data in separate containers |
US8626713B2 (en) * | 2010-12-08 | 2014-01-07 | International Business Machines Corporation | Multiple contexts in a redirect on write file system |
DE112012004099T5 (de) * | 2011-09-30 | 2014-07-17 | International Business Machines Corp. | Transaktionsverarbeitungssystem, Verfahren und Programm |
US20140164477A1 (en) * | 2012-12-06 | 2014-06-12 | Gary M. Springer | System and method for providing horizontal scaling of stateful applications |
US20170031881A1 (en) * | 2015-07-31 | 2017-02-02 | Cheng Shiu University | Method for creating web program and corresponding table interface according to column comment |
WO2017173828A1 (en) * | 2016-04-06 | 2017-10-12 | Huawei Technologies Co., Ltd. | System and method for multi-master synchronous replication optimization |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
EP3794805A1 (en) * | 2018-05-15 | 2021-03-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Concurrent id allocation in a service-based architecture |
EP3821588A1 (en) * | 2018-07-12 | 2021-05-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Detecting and addressing clashing transactions in a service-based architecture |
CN111324573B (zh) * | 2020-02-13 | 2022-08-12 | 苏州浪潮智能科技有限公司 | 一种网络文件系统状态管理方法与系统 |
US11422716B2 (en) | 2020-04-08 | 2022-08-23 | Samsung Electronics Co., Ltd. | Systems and method for distributed read/write locking with network key values for storage devices |
CN111260341B (zh) * | 2020-05-06 | 2020-07-28 | 武汉中科通达高新技术股份有限公司 | 一种交通违法数据审核方法、计算机设备及可读存储介质 |
JP7072275B2 (ja) * | 2020-09-02 | 2022-05-20 | 株式会社ビジュアル・プロセッシング・ジャパン | ファイルシステムとデータベース間でデータを伝達する、プログラム及び情報処理装置で用いる方法 |
US11698884B2 (en) * | 2020-10-29 | 2023-07-11 | EMC IP Holding Company LLC | File level incremental continuous data protection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004097680A1 (en) * | 2003-03-27 | 2004-11-11 | Microsoft Corporation | File system for displaying items of different types and from different physical locations |
Family Cites Families (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0398495B1 (en) | 1989-05-15 | 1997-01-22 | International Business Machines Corporation | File lock management in a distributed data processing system |
CA2067633C (en) * | 1991-07-24 | 1996-10-01 | Eric Jonathan Bauer | Method and apparatus for accessing a computer-based file system |
GB2269920A (en) | 1992-08-18 | 1994-02-23 | Clairmont | Maintaining database integrity |
JPH0798669A (ja) | 1993-08-05 | 1995-04-11 | Hitachi Ltd | 分散データベース管理システム |
US5513314A (en) | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
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 |
US5956712A (en) * | 1995-06-07 | 1999-09-21 | International Business Machines Corporation | Byte range locking in a distributed environment |
WO1997016956A1 (en) | 1995-11-06 | 1997-05-15 | Chang Kyu Whang | A sprinkler for exterminating vermin of crops |
US5737523A (en) * | 1996-03-04 | 1998-04-07 | Sun Microsystems, Inc. | Methods and apparatus for providing dynamic network file system client authentication |
US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US5937406A (en) | 1997-01-31 | 1999-08-10 | Informix Software, Inc. | File system interface to a database |
US6032216A (en) * | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Parallel file system with method using tokens for locking modes |
US6493804B1 (en) * | 1997-10-01 | 2002-12-10 | Regents Of The University Of Minnesota | Global file system and data storage device locks |
NZ503682A (en) | 1997-10-21 | 2001-09-28 | British Telecomm | Information management system with data storage and retrieval, and control to input data set to data retrieval tool |
US6799298B2 (en) * | 1998-03-11 | 2004-09-28 | Overture Services, Inc. | Technique for locating an item of interest within a stored representation of data |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
US6973455B1 (en) * | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US6321219B1 (en) * | 1998-08-14 | 2001-11-20 | Microsoft Corporation | Dynamic symbolic links for computer file systems |
US6487469B1 (en) | 1998-11-13 | 2002-11-26 | Texas Instruments Incorporated | System and method for integrating schedule and design environments |
US6393456B1 (en) * | 1998-11-30 | 2002-05-21 | Microsoft Corporation | System, method, and computer program product for workflow processing using internet interoperable electronic messaging with mime multiple content type |
US6532488B1 (en) | 1999-01-25 | 2003-03-11 | John J. Ciarlante | Method and system for hosting applications |
US6922708B1 (en) * | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US7366708B2 (en) * | 1999-02-18 | 2008-04-29 | Oracle Corporation | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system |
JP3763992B2 (ja) * | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6304873B1 (en) * | 1999-07-06 | 2001-10-16 | Compaq Computer Corporation | System and method for performing database operations and for skipping over tuples locked in an incompatible mode |
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 |
US7280995B1 (en) * | 1999-08-05 | 2007-10-09 | Oracle International Corporation | On-the-fly format conversion |
US8335775B1 (en) * | 1999-08-05 | 2012-12-18 | Oracle International Corporation | Versioning in internet file system |
US6549916B1 (en) * | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
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 |
JP2001101044A (ja) * | 1999-09-29 | 2001-04-13 | Toshiba Corp | トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム |
US6389420B1 (en) * | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US6496944B1 (en) * | 1999-10-06 | 2002-12-17 | International Business Machines Corporation | Method for database assisted file system restore |
US6493742B1 (en) | 1999-12-13 | 2002-12-10 | Weddingchannel.Com, Inc. | System and method for providing internet accessible registries |
US6564215B1 (en) * | 1999-12-16 | 2003-05-13 | International Business Machines Corporation | Update support in database content management |
US6587873B1 (en) | 2000-01-26 | 2003-07-01 | Viaclix, Inc. | System server for channel-based internet network |
US6877095B1 (en) * | 2000-03-09 | 2005-04-05 | Microsoft Corporation | Session-state manager |
JP3992263B2 (ja) * | 2000-03-30 | 2007-10-17 | 株式会社日立製作所 | データベース−ファイル連携方法 |
US7421541B2 (en) * | 2000-05-12 | 2008-09-02 | Oracle International Corporation | Version management of cached permissions metadata |
US7043472B2 (en) * | 2000-06-05 | 2006-05-09 | International Business Machines Corporation | File system with access and retrieval of XML documents |
US8090811B2 (en) * | 2000-06-06 | 2012-01-03 | Panasonic Electric Works Co., Ltd. | Service provider for embedded devices using a message store |
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 |
US7383288B2 (en) * | 2001-01-11 | 2008-06-03 | Attune Systems, Inc. | Metadata based file switch and switched file system |
US6636878B1 (en) * | 2001-01-16 | 2003-10-21 | Sun Microsystems, Inc. | Mechanism for replicating and maintaining files in a spaced-efficient manner |
US6959416B2 (en) * | 2001-01-30 | 2005-10-25 | International Business Machines Corporation | Method, system, program, and data structures for managing structured documents in a database |
US6850938B1 (en) * | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
US6625604B2 (en) * | 2001-03-09 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Namespace service in a distributed file system using a database management system |
US7177866B2 (en) * | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
US6772155B1 (en) * | 2001-04-04 | 2004-08-03 | Ncr Corporation | Looking data in a database system |
WO2002082312A2 (en) * | 2001-04-06 | 2002-10-17 | International Business Machines Corporation | A method for standardized file-based access to databases, enterprise java beans and content management systems |
US7107319B2 (en) * | 2001-05-31 | 2006-09-12 | Oracle Corporation | Method and apparatus for reducing latency and message traffic during data and lock transfer in a multi-node system |
US6782396B2 (en) * | 2001-05-31 | 2004-08-24 | International Business Machines Corporation | Aligning learning capabilities with teaching capabilities |
US7117216B2 (en) * | 2001-06-07 | 2006-10-03 | Sun Microsystems, Inc. | Method and apparatus for runtime merging of hierarchical trees |
US7293028B2 (en) | 2001-06-08 | 2007-11-06 | Sap Ag | Cache-conscious concurrency control scheme for database systems |
US6728709B1 (en) * | 2001-06-22 | 2004-04-27 | Unisys Corporation | Locking partitioned database tables |
US6718327B1 (en) * | 2001-08-31 | 2004-04-06 | Openwave Systems Inc. | Fault-tolerant queue with autonomous client operation |
US6799188B2 (en) * | 2001-08-31 | 2004-09-28 | Borland Software Corporation | Transaction processing system providing improved methodology for two-phase commit decision |
US6874001B2 (en) * | 2001-10-05 | 2005-03-29 | International Business Machines Corporation | Method of maintaining data consistency in a loose transaction model |
US6948039B2 (en) * | 2001-12-14 | 2005-09-20 | Voom Technologies, Inc. | Data backup and restoration using dynamic virtual storage |
US7433948B2 (en) * | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US6904431B2 (en) * | 2002-01-25 | 2005-06-07 | Openwave Systems Inc. | Algorithm for dynamic selection of data locking granularity |
US7085785B2 (en) * | 2002-02-15 | 2006-08-01 | International Business Machines Corporation | Writable file system snapshot with ditto address feature |
US7313557B1 (en) * | 2002-03-15 | 2007-12-25 | Network Appliance, Inc. | Multi-protocol lock manager |
US6857001B2 (en) * | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7107385B2 (en) * | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7007027B2 (en) * | 2002-12-02 | 2006-02-28 | Microsoft Corporation | Algorithm for tree traversals using left links |
US7475142B2 (en) * | 2002-12-06 | 2009-01-06 | Cisco Technology, Inc. | CIFS for scalable NAS architecture |
US7254578B2 (en) * | 2002-12-10 | 2007-08-07 | International Business Machines Corporation | Concurrency classes for shared file systems |
WO2004055675A1 (ja) * | 2002-12-18 | 2004-07-01 | Fujitsu Limited | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム |
US7668541B2 (en) * | 2003-01-31 | 2010-02-23 | Qualcomm Incorporated | Enhanced techniques for using core based nodes for state transfer |
US7325130B2 (en) * | 2003-03-21 | 2008-01-29 | International Business Machines Corporation | Method for guaranteeing freshness of results for queries against a non-secure data store |
US7281050B2 (en) * | 2003-04-08 | 2007-10-09 | Sun Microsystems, Inc. | Distributed token manager with transactional properties |
US7139781B2 (en) * | 2003-04-29 | 2006-11-21 | International Business Machines Corporation | Managing filesystem versions |
US7571354B2 (en) * | 2003-05-09 | 2009-08-04 | Sun Microsystems, Inc. | System and method for request routing |
US20040230896A1 (en) * | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with unique node identifications |
US6959313B2 (en) * | 2003-07-08 | 2005-10-25 | Pillar Data Systems, Inc. | Snapshots of file systems in data storage systems |
US20050039049A1 (en) * | 2003-08-14 | 2005-02-17 | International Business Machines Corporation | Method and apparatus for a multiple concurrent writer file system |
US7401104B2 (en) * | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
US7349913B2 (en) * | 2003-08-21 | 2008-03-25 | Microsoft Corporation | Storage platform for organizing, searching, and sharing data |
US20050086384A1 (en) | 2003-09-04 | 2005-04-21 | Johannes Ernst | System and method for replicating, integrating and synchronizing distributed information |
US7441041B2 (en) * | 2003-11-29 | 2008-10-21 | Microsoft Corporation | Network download regulation method and system |
US20050203903A1 (en) * | 2004-03-10 | 2005-09-15 | Rajan Rajeev B. | System and method for locking and isolation in a storage platform |
US7376642B2 (en) * | 2004-03-30 | 2008-05-20 | Microsoft Corporation | Integrated full text search system and method |
US7143120B2 (en) * | 2004-05-03 | 2006-11-28 | Microsoft Corporation | Systems and methods for automated maintenance and repair of database and file systems |
US7366740B2 (en) * | 2004-05-03 | 2008-04-29 | Microsoft Corporation | Systems and methods for automatic maintenance and repair of enitites in a data model |
JP4581500B2 (ja) * | 2004-06-17 | 2010-11-17 | 株式会社日立製作所 | ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法 |
US20050289143A1 (en) * | 2004-06-23 | 2005-12-29 | Exanet Ltd. | Method for managing lock resources in a distributed storage system |
US20060041719A1 (en) * | 2004-08-18 | 2006-02-23 | Chui Jimmy P F | Multi-tier data storage system |
US8495266B2 (en) * | 2004-12-10 | 2013-07-23 | Hewlett-Packard Development Company, L.P. | Distributed lock |
US7506009B2 (en) * | 2005-01-28 | 2009-03-17 | Dell Products Lp | Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes |
-
2004
- 2004-12-16 US US11/014,354 patent/US7627574B2/en active Active
-
2005
- 2005-12-06 CN CNB2005800432659A patent/CN100527129C/zh active Active
- 2005-12-06 WO PCT/US2005/044134 patent/WO2006065587A1/en active Application Filing
- 2005-12-06 JP JP2007546744A patent/JP4842279B2/ja active Active
- 2005-12-06 AU AU2005316812A patent/AU2005316812B2/en active Active
- 2005-12-06 CA CA2587529A patent/CA2587529C/en active Active
- 2005-12-06 EP EP05848788.5A patent/EP1825409B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004097680A1 (en) * | 2003-03-27 | 2004-11-11 | Microsoft Corporation | File system for displaying items of different types and from different physical locations |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11496552B2 (en) * | 2021-03-30 | 2022-11-08 | Dropbox, Inc. | Intent tracking for asynchronous operations |
Also Published As
Publication number | Publication date |
---|---|
CA2587529A1 (en) | 2006-06-22 |
US20060136376A1 (en) | 2006-06-22 |
CN100527129C (zh) | 2009-08-12 |
EP1825409B1 (en) | 2019-02-20 |
EP1825409A1 (en) | 2007-08-29 |
CA2587529C (en) | 2011-07-12 |
US7627574B2 (en) | 2009-12-01 |
AU2005316812B2 (en) | 2010-08-19 |
JP2008524707A (ja) | 2008-07-10 |
AU2005316812A1 (en) | 2006-06-22 |
CN101080714A (zh) | 2007-11-28 |
WO2006065587A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4842279B2 (ja) | データベースサーバによるファイル操作を実行するためのインフラストラクチャ | |
JP4759570B2 (ja) | データベース管理システムにおけるファイル操作のためのロックを提供するための手法 | |
US7548918B2 (en) | Techniques for maintaining consistency for different requestors of files in a database management system | |
US7809675B2 (en) | Sharing state information among a plurality of file operation servers | |
RU2686594C2 (ru) | Файловая служба, использующая интерфейс совместного файлового доступа и передачи состояния представления | |
US7925751B1 (en) | Mechanism for controlled sharing of files in a clustered application environment | |
US11574070B2 (en) | Application specific schema extensions for a hierarchical data structure | |
US7120631B1 (en) | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator | |
US6453354B1 (en) | File server system using connection-oriented protocol and sharing data sets among data movers | |
US6973455B1 (en) | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator | |
US6205466B1 (en) | Infrastructure for an open digital services marketplace | |
US5649185A (en) | Method and means for providing access to a library of digitized documents and images | |
US20050187983A1 (en) | Method of maintaining data consistency in a loose transaction model | |
US6611848B1 (en) | Methods for maintaining data and attribute coherency in instances of sharable files | |
US8224837B2 (en) | Method and mechanism for supporting virtual content in performing file operations at a RDBMS | |
US6687716B1 (en) | File consistency protocols and methods for carrying out the protocols | |
JP2007528555A (ja) | ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法 | |
US6633870B1 (en) | Protocols for locking sharable files and methods for carrying out the protocols | |
US20050108237A1 (en) | File system | |
US7716260B2 (en) | Techniques for transaction semantics for a database server performing file operations | |
US7024434B2 (en) | Method and system for modifying schema definitions | |
Pfaff | Rfc 7047: The open vswitch database management protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081202 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110830 |
|
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: 20110927 |
|
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: 20111005 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4842279 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: 20141014 Year of fee payment: 3 |
|
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 |