ユーザがデータ及びメタデータで構成されたデータベースと対話することを可能にするデータベース管理システムであって、Aiユーザレベルでの高レベル入力及び出力指令と、データベースと対話するための一連の作動を制御するシステムレベルでの入力及び出力指令との間のインタフェースであって、ある一定のシステムレベル指令に応答して、アトムオブジェクトが、アトムを生成し、各アトムが、データ又はメタデータの指定のフラグメントを含み、それによって1組のアトムの全てのインスタンスが該データベース内の全ての該メタデータ及びデータを集合的に定義する前記インタフェース、iiシステム内の各他のノードとの通信経路を確立するための通信制御、iiiクエリに関連するがそのノードに存在しないアトムのコピーを選択されたノードから要求するための前記インタフェースからのシステム指令に応答する方法、iv別のノードからのアトムの要求に応答して、クエリを完了するのに必要とされるアトムのみがいずれかの所定の時間にいずれかのトランザクションノードに位置する必要があるように前記要求側ノードへの転送に向けて要求されたアトムを複製するための方法、及びvそのノードでのアトムの変化に応答して、そのアトムが常駐する前記システム内の全ての他のノードへの転送に向けてそのアトムを複製するための方法、を各ノードが含む複数のノードと、B全ての前記ノード間の通信経路を提供するために前記複数のノードに接続された手段と、C永続ストレージ内のアトムの集合が前記データベース内の全ての前記データ及びメタデータを集合的に含むようにアトム内の情報のための永続ストレージを提供するために前記通信手段に接続された手段と、を含むことを特徴とするデータベース管理システム。前記アトムオブジェクトのうちのある一定のものが、そのノードに常駐する全てのアトムと、該常駐アトムの各々のコピーを有する各ノードの位置とを追跡するカタログアトムを生成することを特徴とする請求項1に記載のデータベース管理システム。前記カタログアトムの1つが、システムに接続した各ノード内で複製されるマスターカタログアトムであり、前記アトムの別のものが、前記インタフェースにより開始されたトランザクションの進行を追跡するための前記データベースのための単一のトランザクションマネージャアトムであり、前記マスターカタログは、前記トランザクションマネージャアトムの位置を識別する、ことを特徴とする請求項2に記載のデータベース管理システム。前記ユーザレベルでの前記データベースは、レコード及びフィールドを有する名称付きテーブルを含み、かつ少なくとも1つの名称付きスキーマに従って作動し、前記アトムオブジェクトの他のものが、iフィールドのリストを収容する各テーブルのためのテーブルアトム、iiスキーマとそのスキーマに関連する前記名称付きテーブルとの間の対応を確立するスキーマアトム、及びiii前記データベースと前記名称付きスキーマの間の対応を確立するデータベースアトム、を生成する、ことを特徴とする請求項3に記載のデータベース管理システム。前記レーザレベルでの前記データベーステーブルは、フィールドとデータとを収容する識別されたレコードを含み、他のアトムオブジェクトが、所定の数のデータレコードを含むデータアトムとレコードバージョンを管理するレコード状態アトムとを生成し、前記レコード状態アトムは、そのレコード状態アトムに割り当てられた管理されたデータアトムと、各レコードバージョンの識別表示と、各レコードバージョンに対するそのバージョンとそのバージョンを含む該データアトムの位置とに関する情報とを識別するアレイを含む、ことを特徴とする請求項4に記載のデータベース管理システム。各データアトムは、該データアトム内の各レコードのアドレス及び長さと該データレコードとを更に含むことを特徴とする請求項5に記載のデータベース管理システム。前記レーザレベルでの前記データベーステーブルは、識別されたブロブを含み、他のアトムオブジェクトが、ブロブと、全ての関連のブロブアトムと該ブロブアトムにおける該ブロブの位置とのリストを含むブロブレコード状態アトムとを収容するブロブアトムを生成する、ことを特徴とする請求項4に記載のデータベース管理システム。各ブロブアトムが、各ブロブのアドレス及び長さと該ブロブとを含むことを特徴とする請求項7に記載のデータベース管理システム。各ノードが、更に、iシステムレベル指令に応答して予め定義されたメッセージを生成して受信するメッセージング手段、及びii前記メッセージを送信するための前記通信経路の1つを選択するための手段、を含む、ことを特徴とする請求項1に記載のデータベース管理システム。各ノードが、各通信経路の効率を非同期で試験するための手段を含むことを特徴とする請求項9に記載のデータベース管理システム。前記試験する手段は、ピングメッセージを生成して各通信経路に対してピング時間を判断するためのピング確認応答メッセージを受信するための手段を含むことを特徴とする請求項10に記載のデータベース管理システム。前記メッセージング手段は、アトムをメッセージにシリアル化してメッセージをアトムに逆シリアル化するための手段を含み、各メッセージが、非同期に前記選択された通信経路上で送られる、ことを特徴とする請求項9に記載のデータベース管理システム。メッセージが、メッセージシーケンスを維持する制御を有するプロトコルの下で送られることを特徴とする請求項12に記載のデータベース管理システム。個々のノードが、アクティブであってシステムに接続することができ、かつシステムから切り離すことができ、前記アトムの1つが、システム内の各アクティブノードを識別してシステムに接続された各ノード内で複製されるマスターカタログアトムであり、システムが、i加入側ノードと前記アクティブノードの選択されたものとの間の接続を確立するための手段、ii前記選択されたノードに接続を求めるための前記加入側ノード内の手段、iii前記選択されたノード内でそのマスターカタログアトムを更新し、前記加入側ノードをアクティブノードとして示すための手段、iv前記選択されたノードの識別表示を含むメッセージを前記加入側ノードに転送し、かつシステム及び永続ストレージ内の全ての他のノードに該加入側ノードの利用可能性を示すメッセージをブロードキャストするための該選択されたノード内の手段、v前記マスターカタログアトムのコピーを前記選択されたノードに要求することによって前記メッセージに応答するための前記加入側ノード内の手段、及びvi前記選択されたノード内でその更新されたマスターカタログアトムを前記加入側ノードに転送するための手段、を含むノードがシステムに加入することを可能にするための手段、を含む、ことを特徴とする請求項1に記載のデータベース管理システム。前記加入側ノードは、前記更新されたマスターカタログアトムの受信に応答して、前記インタフェースからの要求に応答して追加のアトムのコピーを要求するための手段を含むことを特徴とする請求項14に記載のデータベース管理システム。前記選択されたノードは、前記更新されたマスターカタログの利用可能性を全ての他のノード及び永続ストレージにブロードキャストし、各他のノード及び永続ストレージが、該更新されたマスターカタログのその受信の確認応答を該選択されたノードにするための手段を含むことを特徴とする請求項14に記載のデータベース管理システム。前記ノードの1つにおけるインタフェースが、新しいアトムの生成を要求する要求を行い、前記アトムオブジェクトのうちのある一定のものが、そのノードに常駐するアトムを追跡するカタログアトムを生成し、前記ノードの前記1つは、更に、i前記カタログアトム内で該カタログアトムにコンテンツなしのその新しいアトムを作成させ、かつ該新しいアトムをそのアトムのための議長に指定させるための前記インタフェース要求に応答して該新しいアトムを追跡することになる手段、ii前記カタログアトム内でオブジェクト識別表示を前記新しいアトムに割り当てる手段、iii前記カタログアトム内で前記新しいアトムの冗長なコピーがないこと及び該新しいアトムが他のノードに対して利用可能でないことを示す該新しいアトムに対するステータスを確立するための手段、iv前記カタログアトム内で前記新しいアトムの存在をシステム内の全ての他の対応するカタログアトムにブロードキャストするための手段、v前記新しいアトムをポピュレートし、かつ該新しいアトムをシステム上で利用可能にするための手段、を含む、ことを特徴とする請求項1に記載のデータベース管理システム。永続ストレージが、前記新しいアトムの前記記憶に応答して冗長なコピーの存在を示すためにそのステータスを更新するメッセージを該新しいアトムを有するノードに送るための手段を含むことを特徴とする請求項17に記載のデータベース管理システム。前記ノードの1つにおけるインタフェースが、他のノードにだけ存在するアトムに対する要求を行い、前記アトムオブジェクトのうちのある一定のものが、そのノード及び他のノードに常駐するアトムを追跡するカタログアトムを生成し、システムが、i前記インタフェース要求に応答して前記要求側カタログアトム内でその空のアトムを作成するための該インタフェース要求に応答して前記要求されたアトムを追跡することになる手段、ii前記要求側カタログアトム内で最も応答性のあるノードを選択して前記アトムのコピーを該最も応答性のあるノードから要求することを確立するための手段、iii前記選択されたノード内で前記要求されたアトムのコピーをオブジェクトメッセージで前記要求側ノードに送り、かつ該アトムの利用可能性をそのアトム内の他のノードにブロードキャストするための手段、iv受信したオブジェクトメッセージの有効性を評価し、前記空のアトムをポピュレートし、かつオブジェクト確認応答メッセージを前記選択されたノードに転送するための手段、を含む、ことを特徴とする請求項1に記載のデータベース管理システム。前記選択されたノードは、該選択されたノードがそのアトムに関連する他のノードからのメッセージを前記要求側ノードに転送することになる前記要求されたアトムを収容する全てのノードのリレーリストを生成することを特徴とする請求項19に記載のデータベース管理システム。前記ブロードキャストされたオブジェクト利用可能メッセージを受信する前記他のノードの各々が、オブジェクト確認応答メッセージを前記選択されたノードに送るための手段を含み、該選択されたノードは、前記要求側ノードへのあらゆるその後のメッセージのリレーを終了するために別のノードからの各オブジェクト確認応答メッセージの受信に応答して前記リレーリストを更新するための手段を含むことを特徴とする請求項20に記載のデータベース管理システム。前記データベースの一貫性を保証するためのトランザクション処理に向けて適合され、システムが、コミットすべきアトムに関わる第1のノードを含み、少なくとも1つの他のノードが、そのアトムのコピーを含み、そのアトムのコピーが、永続ストレージに含まれており、システムが、i前記第1のノード内で永続ストレージへの転送のためのトランザクション識別表示を有するプレコミットメッセージを生成するための手段、ii前記トランザクションをコミットし、その後に前記トランザクション識別表示を有するコミットメッセージを全ての前記ノードにブロードキャストするために前記プレコミットメッセージに応答する永続ストレージに関連付けられた手段、iii前記識別されたトランザクションを更新するために前記コミットメッセージの受信に応答する前記第1のノード及び少なくとも1つの他のノード内の手段、を含む、ことを特徴とする請求項1に記載のデータベース管理システム。ユーザがデータ及びメタデータで構成されたデータベースと対話することを可能にするデータベース管理システムであって、Aユーザにデータベースへのアクセスを提供する少なくとも1つのトランザクションノード及びデータベース全体のアーカイブを維持する少なくとも1つのアーカイブノードであって、各トランザクションノードが、ユーザレベルでの高レベル入力及び出力クエリ指令と該データベースと対話するための一連の作動を制御するシステムレベルでの入力及び出力指令との間のインタフェースを提供するデータベース要求エンジンを含み、ある一定のシステムレベル指令に応答して、アトムオブジェクトが、アトムを生成し、各アトムが、データ又はメタデータの指定のフラグメントを含み、それによって1組のアトムの全てのインスタンスが、該データベース内の全ての該メタデータ及びデータを集合的に定義する前記少なくとも1つのトランザクションノード及び少なくとも1つのアーカイブノード、B全ての前記ノードを相互接続するデータベースシステムネットワーク、C前記ノードの各々においてシステム内の各他のノードとの通信経路を確立するための通信制御、D前記クエリ指令に関連するがそのノードに存在しないアトムのコピーを要求するために前記データベース要求エンジンからのシステム指令に応答する各トランザクションノード内の方法、E各ノードにおいてクエリ指令を完了するのに必要とされるアトムのみがいずれの所定の時間にもいずれかのトランザクションノードに位置する必要があるように前記要求側ノードへの転送に向けて要求されたアトムを複製するために別のノードからのアトムの要求に応答する方法、及びF各トランザクションノードにおいてそのノードでのアトムの変化に応答してそのアトムのコピーを含むシステム内の全ての他のノードにその変化を複製するための方法、を含むことを特徴とするデータベース管理システム。前記アトムオブジェクトのうちのある一定のものが、そのノードに常駐する全てのアトムと該常駐アトムの各々のコピーを有する各ノードの位置とを追跡するカタログアトムを生成することを特徴とする請求項23に記載のデータベース管理システム。前記カタログアトムの1つは、システムに接続された各ノード内で複製されるマスターカタログアトムであり、前記アトムの別のものが、前記インタフェースにより開始されたトランザクションの進行を追跡するための前記データベースのための単一のトランザクションマネージャアトムであり、前記マスターカタログは、前記トランザクションマネージャアトムの位置を識別する、ことを特徴とする請求項24に記載のデータベース管理システム。前記ユーザレベルでの前記データベースは、レコード及びフィールドを有する名称付きテーブルを含み、かつ少なくとも1つの名称付きスキーマに従って作動し、前記アトムオブジェクトの他のものが、iフィールドのリストを収容する各テーブルのためのテーブルアトム、iiスキーマとそのスキーマに関連する前記名称付きテーブルとの間の対応を確立するスキーマアトム、及びiii前記データベースと前記名称付きスキーマの間の対応を確立するデータベースアトム、を生成する、ことを特徴とする請求項25に記載のデータベース管理システム。前記レーザレベルでの前記データベーステーブルは、フィールドとデータとを収容する識別されたレコードを含み、他のアトムオブジェクトが、所定の数のデータレコードを含むデータアトムとレコードバージョンを管理するレコード状態アトムとを生成し、前記レコード状態アトムは、そのレコード状態アトムに割り当てられた前記管理されたデータアトムと、各レコードバージョンの識別表示と、各レコードバージョンに対するそのバージョン及びそのバージョンを含む該データアトムの位置に関する情報とを識別するアレイを含む、ことを特徴とする請求項26に記載のデータベース管理システム。各データアトムは、該データアトム内の各レコードのアドレス及び長さと該データレコードとを更に含むことを特徴とする請求項27に記載のデータベース管理システム。前記レーザレベルでの前記データベーステーブルは、識別されたブロブを含み、他のアトムオブジェクトが、ブロブと、全ての関連のブロブアトムと該ブロブアトムにおける該ブロブの位置とのリストを含むブロブレコード状態アトムとを収容するブロブアトムを生成する、ことを特徴とする請求項26に記載のデータベース管理システム。各ブロブアトムが、各ブロブのアドレス及び長さと該ブロブとを含むことを特徴とする請求項29に記載のデータベース管理システム。各ノードが、更に、iシステムレベル指令に応答して予め定義されたメッセージを生成して受信するメッセージング手段、及びii前記メッセージを送信するための前記通信経路の1つを選択するための手段、を含む、ことを特徴とする請求項23に記載のデータベース管理システム。各ノードが、各通信経路の効率を非同期で試験するための手段を含むことを特徴とする請求項31に記載のデータベース管理システム。前記試験する手段は、ピングメッセージを生成して各通信経路に対してピング時間を判断するためのピング確認応答メッセージを受信するための手段を含むことを特徴とする請求項32に記載のデータベース管理システム。前記メッセージング手段は、アトムをメッセージにシリアル化して該メッセージをアトムに逆シリアル化するための手段を含み、各メッセージが、非同期に前記選択された通信経路上で送られる、ことを特徴とする請求項31に記載のデータベース管理システム。メッセージが、メッセージシーケンスを維持する制御を有するプロトコルの下で送られることを特徴とする請求項34に記載のデータベース管理システム。個々のノードが、アクティブであってシステムに接続することができ、かつシステムから切り離すことができ、前記アトムの1つが、システム内の各アクティブノードを識別してシステムに接続された各ノード内で複製されるマスターカタログアトムであり、システムが、i加入側トランザクションノードと前記アクティブノードの選択されたものとの間の接続を確立するための手段、ii前記選択されたノードにシステムへの接続を求めるための前記加入側トランザクションノード内の手段、iii前記選択されたノード内でそのマスターカタログアトムを更新し、前記加入側トランザクションノードをアクティブノードとして示すための手段、iv前記選択されたノードの識別表示を含むメッセージを前記加入側トランザクションノードに転送し、かつシステム内の全ての他のノードに該加入側トランザクションノードの利用可能性を示すメッセージをブロードキャストするための該選択されたノード内の手段、v前記マスターカタログアトムのコピーを前記選択されたノードに要求することによって前記メッセージに応答するための前記加入側トランザクションノード内の手段、及びvi前記選択されたノード内でその更新されたマスターカタログアトムを前記加入側トランザクションノードに転送するための手段、を含むノードがシステムに加入することを可能にするための手段、を含む、ことを特徴とする請求項23に記載のデータベース管理システム。前記加入側トランザクションノードは、前記更新されたマスターカタログアトムの受信に応答してそのデータベース要求エンジンからのシステム指令に応答して追加のアトムのコピーを要求するための手段を含むことを特徴とする請求項36に記載のデータベース管理システム。前記選択されたノードは、前記更新されたマスターカタログの利用可能性を全ての他のノードにブロードキャストし、各他のノードが、該選択されたノードに該更新されたマスターカタログのその受信を確認応答するための手段を含むことを特徴とする請求項36に記載のデータベース管理システム。前記トランザクションノードの1つにおける前記データベース要求エンジンは、新しいアトムの生成を要求する要求を行い、前記アトムオブジェクトのある一定のものが、そのノードに常駐するアトムを追跡するカタログアトムを生成し、前記トランザクションノードは、更に、i前記カタログアトム内で前記カタログアトムにコンテンツなしのその新しいアトムを作成させ、かつ該新しいアトムをそのアトムのための議長として指定するために前記データベース要求エンジン要求に応答して該新しいアトムを追跡するための手段、ii前記カタログアトム内でオブジェクト識別表示を前記新しいアトムに割り当てるための手段、iii前記カタログアトム内で前記新しいアトムの冗長なコピーがないこと及び該新しいアトムが他のノードに対して利用可能ではないことを示す該新しいアトムのステータスを確立するための手段、iv前記カタログアトム内で前記新しいアトムの存在をシステム内の全ての他の対応するカタログアトムにブロードキャストするための手段、v前記新しいアトムをポピュレートし、かつ該新しいアトムをシステム内の他のノードに利用可能にするための手段、を含む、ことを特徴とする請求項23に記載のデータベース管理システム。各アーカイブノード内で前記新しいアトムの前記記憶に応答して冗長なコピーの存在を示すそのステータスを更新するメッセージを該新しいアトムに送るための手段を更に含むことを特徴とする請求項39に記載のデータベース管理システム。1つのトランザクションノード内のデータベース要求エンジンが、他のノードにだけ存在するアトムを要求し、前記アトムオブジェクトのある一定のものが、そのノード及び他のノードに常駐するアトムを追跡するカタログアトムを生成し、システムが、i前記要求側カタログアトム内の前記要求に応答してその空のアトムを作成するために前記要求されたアトムを追跡することになる手段、ii前記要求側カタログアトム内で最も応答性のあるノードを選択して前記アトムのコピーを該最も応答性のあるノードから要求することを確立するための手段、iii前記選択されたノード内で前記要求されたアトムのコピーをオブジェクトメッセージで前記要求側ノードに送り、かつ該アトムの利用可能性を該アトムが常駐する他のノードにブロードキャストするための手段、iv受信したオブジェクトメッセージの有効性を評価し、前記空のアトムをポピュレートし、かつオブジェクト確認応答メッセージを前記選択されたノードに転送するための手段、を含む、ことを特徴とする請求項23に記載のデータベース管理システム。前記選択されたノードは、該選択されたノードがそのアトムに関連する他のノードからのメッセージを前記要求側ノードに転送することになる前記要求されたアトムを収容する全てのノードのリレーリストを生成することを特徴とする請求項41に記載のデータベース管理システム。前記ブロードキャストされたオブジェクト利用可能メッセージを受信する前記他のノードの各々が、オブジェクト確認応答メッセージを前記選択されたノードに送るための手段を含み、該選択されたノードは、前記要求側ノードへのあらゆるその後のメッセージのリレーを終了するために別のノードからの各オブジェクト確認応答メッセージの受信に応答して前記リレーリストを更新するための手段を含むことを特徴とする請求項42に記載のデータベース管理システム。トランザクション処理中に前記データベースの一貫性を保証するように適合されており、システムが、コミットすべきトランザクションに関わる第1のノードを含み、アーカイブノードを含む少なくとも1つの他のノードが、そのアトムのコピーを含み、システムが、i前記第1のノード内でアーカイブノードへの転送のためにトランザクション識別表示を有するプレコミットメッセージを生成するための手段、ii前記プレコミットメッセージに応答して前記トランザクションをコミットし、その後に前記トランザクション識別表示を有するコミットメッセージを全ての前記ノードにブロードキャストするためのアーカイブノードに関連付けられた手段、及びiii前記第1のノード及び少なくとも1つの他のノード内で前記コミットメッセージの受信に応答して前記識別されたトランザクションを更新するための手段、を含む、ことを特徴とする請求項23に記載のデータベース管理システム。論理データベースに関連するトランザクションを処理する複数のトランザクションノードからアクセスされるテーブルに編成されたデータレコードで構成された論理データベースのためのデータベース管理システムであって、Aデータベースをフラグメントに構文解析するための手段であって、各フラグメントが、シリアル化されたメッセージとしてのデータベース管理システム内の転送に向けてかつ逆シリアル化されたメッセージとしての記憶に向けて論理データベースに関連するメタデータ及び/又はデータの一部分を記憶する前記構文解析するための手段と、B逆シリアル化された形式の全ての前記フラグメントを永続ストレージに記憶し、それによってデータベース全体のための単一のストアを構成する少なくとも1つのアーカイブノードであって、各トランザクションノードが、iユーザからのクエリに対して該クエリに関連するフラグメントを識別するための一連の低レベル指令を確立することによって応答するための手段、ii所定のフラグメントが何らかの他のノードに存在するか又はアーカイブノードでのみ存在することができるように、そこで処理されているクエリに関連する既存のフラグメントのコピーのみを取得することによって前記低レベル指令に応答するための手段、及びiii変更が、他のノード内のフラグメントにピアツーピアに基づいて行われ、かつあらゆるトランザクションノードが、そのトランザクションノードを通じて前記データベースにアクセスするユーザによって行われているクエリに関連するフラグメントのみを含むように、あらゆる変更されたフラグメントを前記少なくとも1つのアーカイブノード及びそのフラグメントのコピーが常駐する各トランザクションノードに対して複製するための手段、を含む前記少なくとも1つのアーカイブノードと、を含むことを特徴とするデータベース管理システム。従って、本発明の目的は、エラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の別の目的は、耐故障性であるエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の更に別の目的は、高度の利用可能性を有するエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の更に別の目的は、プラットフォーム独立型であるエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の別の目的は、アトミック性、一貫性、独立性、及び永続性を有するエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の更に別の目的は、専用高速通信経路を必要とせずにインターネットで作動するエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の更に別の目的は、トランザクション処理を提供し、かつ広い地理的領域にわたる実施に適合されたエラスティックなオンデマンド分散型データ処理システムを提供することである。本発明の一態様により、ユーザがデータ及びメタデータで構成されたデータベースと対話することを可能にするデータベース管理システムは、複数のノードとその間の通信経路を有する永続ストレージを含む。各ノードは、ユーザレベルでの高レベル入力及び出力指令とデータベースと対話する一連の作動を制御するシステムレベルでの入力及び出力指令間のインタフェースを含み、特定のシステムレベル指令に応答して、アトムオブジェクトは、アトムを生成し、各アトムは、1組のアトムの全てのインスタンスが、データベース内の全てのメタデータ及びデータを集合的に定義するようにデータ又はメタデータの指定のフラグメントを含む。各ノードは、システム内の各々の他のノードとの通信経路を確立する通信制御と、クエリに関連するがそのノードに存在しないアトムのコピーを選択されたコピーを要求するインタフェースからのシステム指令に応答する方法と、クエリを完了するのに必要とされるアトムのみがいずれの所定の時間に、もいずれかのトランザクションノードに位置する必要があるように要求側ノードへの転送に向けて要求されたアトムを複製する別のノードからのアトムの要求に応答する方法と、そのアトムが常駐するシステム内の全ての他のノードへの転送に向けてそのアトムを複製するそのノードでのアトムの変化に応答する方法とを更に含む。永続ストレージは、データベース内の全てのデータ及びメタデータを集合的に含むアトムの集合を含む。本発明の別の態様によれば、ユーザがデータ及びメタデータで構成されたデータベースと対話することを可能にするデータベース管理システムであり、このシステムは、ユーザにデータベースへのアクセスを供給する少なくとも1つのトランザクションノード及びデータベース全体のアーカイブを維持する少なくとも1つのアーカイブノードを含む。各トランザクションノードは、ユーザレベルでの高レベル入力及び出力クエリ指令とデータベースと対話する一連の作動を制御するシステムレベルでの入力及び出力指令間のインタフェースになるデータベース要求エンジンを含む。特定のシステムレベル指令に応答して、アトムオブジェクトは、アトムを生成する。各アトムは、1組のアトムの全てのインスタンスが、データベース内の全てのメタデータ及びデータを集合的に定義するようにデータ又はメタデータの指定のフラグメントを含む。データベースシステムネットワークは、全てのノードを相互接続する。ノードの各々内の通信制御は、システム内の各々の他のノードとの通信経路を確立する。各トランザクションノード内の方法は、クエリ指令に関連するがそのノードに存在しないアトムのコピーを要求するデータベース要求エンジンからのシステム指令に応答する。各ノード内の別の方法は、クエリ指令を完了するのに必要とされるアトムのみがいずれの所定の時間に、もいずれかのトランザクションノードに位置する必要があるように要求側ノードへの転送に向けて要求されたアトムを複製する別のノードからのアトムの要求に応答する。各トランザクションノード内の別の方法は、そのアトムのコピーを含むシステム内の全ての他のノードにその変化を複製するそのノードでのアトムの変化に応答する。本発明の更に別の態様によれば、関連するトランザクションを処理する複数のトランザクションノードからアクセスすべきであるテーブルに編成されたデータレコードで構成された論理データベースのデータベース管理システムであり、データベースは、フラグメントに構文解析され、各フラグメントは、シリアル化されたメッセージとしてのデータベース管理システムにおける転送に向けて、かつ逆シリアル化されたメッセージとしての記憶に向けて論理データベースに関連するメタデータ及び/又はデータの一部を記憶する。システムは、逆シリアル化された形で全てのフラグメントを永続ストレージに記憶し、それによってデータデータベース全体の単一のストアを形成する少なくとも1つのアーカイブノードを含む。各々のトランザクションノードは、クエリに関連するフラグメントを識別する一連の低レベル指令を確立することによってユーザからのクエリに応答し、かつ特定のフラグメントが何らかの他のノードで又はアーカイブノードでのみ存在することができるように、処理中のクエリに関連する既存のフラグメントのコピーのみを取得することによって低レベル指令に応答する。各トランザクションノードは、ピアツーピアに基づいて他のノード内のフラグメントに変更が行われるように、かつあらゆるトランザクションノードが、そのトランザクションノードを通じてデータベースにアクセスするユーザにより行われているクエリに関連するフラグメントのみを含むようにあらゆる変更されたフラグメントを少なくとも1つのアーカイブノード及びそのフラグメントのコピーが常駐する各トランザクションノードに複製する。特許請求の範囲では、特に、本発明の主題を指摘し、かつ明確に主張する。本発明の様々な目的、利点、及び新しい特徴は、同様の参照番号が同様の部分を指す添付図面と関連して以下の詳細説明を読むことによって更に完全に明らかであろう。図1は、本発明を組み込む複数のデータ処理ノードを有するエラスティックな拡張性のあるオンデマンド分散型データベースシステム30の一実施形態を示している。ノードN1~N6は、データベースへのユーザアプリケーションアクセスをもたらすトランザクションノードであり、ノードA1及びA2は、各アーカイブノードでデータベース全体のディスクアーカイブを維持するように機能するアーカイブノードである。アーカイブノードは通常データベース全体を記憶するが、単一のトランザクションノードは、その時間にそのノードで実行中のトランザクションをサポートするのに必要であると判断するデータベースのその部分だけを含む。図1の各ノードは、データベースシステムネットワーク31を通じてシステム30内の各々の他のノードと直接に通信することができる。例えば、ノードN1は、ノードN2~N6、A1及びA2の各々と通信経路を確立することができる。あらゆる2つノード間の通信は、シリアル化されたメッセージによるものである。好ましい実施形態では、メッセージングを非同期に行って、システムによって使用される帯域幅を最大化し、それによって時機を逃さずかつ迅速に様々な作動を提供する。一般的に、データベースシステムネットワーク31は、広帯域幅、低待ち時間経路例えば、イーサネット登録商標ネットワーク及び広帯域幅、高待ち時間経路例えば、WANネットワークの組合せで作動する。各ノードは、低待ち時間経路の使用を速度が重視される通信例えば、アトムのフェッチに制限する機能を有する。高待ち時間経路は、非クリティカル通信例えば、テーブルの情報を更新する要求に使用することができる。同じくかつ好ましくは、本発明のデータ処理ネットワークは、送信制御プロトコルTCPのようなメッセージングプロトコルを組込み、かつ各ノードが確実にメッセージが他のノードによりそれに送られたのと同じシーケンスでメッセージを処理に適応させる。図2は、データベースシステムネットワーク31及び様々なエンドユーザ33に連結する代表的なトランザクションノード32を示している。トランザクションノード32は、ネットワークインタフェース35を通じてデータベースシステムネットワーク31と、ユーザネットワークインタフェース37を通じて様々なユーザと通信する中心処理システムCP34を含む。中心処理システム34は、本発明の好ましい実施形態を実行するデータベース管理プログラムのコピーを含むRAMメモリ38とも対話する。このプログラムは、リモートインタフェース40と、データベース要求エンジン41と、クラス又はオブジェクトのセット42とをもたらすように機能する。データベース要求エンジン41は、トランザクションノード上に存在するにすぎず、レーザレベルでの高レベル入力及び出力指令とシステムレベルでのシステムレベル入力及び出力指令間のインタフェースである。一般的には、データベース要求エンジンは、SQL問い合わせのようなユーザクエリをその組42の様々なクラス又はオブジェクトにより解釈される指令に構文解析、コンパイル、及び最適化する。本発明の説明の目的上、セットクラス/オブジェクトセット42は、アトムクラスの部分集合43、メッセージクラスの部分集合44、及びヘルパークラスの部分集合45に分割される。これらのクラスの更なる詳細に対しては後述する。明らかなようにかつ本発明により、いずれの所定の時間にも、トランザクションノードは、その時にアクティブなユーザアプリケーションに関連する総合データベースの部分を含むに過ぎない。更に、本発明の様々な特徴は、使用中のデータベースの全ての部分がランダムアクセスメモリ38内に常駐することを可能にするものである。このシステムの作動中にトランザクションノードにディスクストアのような補助ストアを設ける必要はない。図3を参照すると、図1のアーカイブノードA1又はA2のような各アーカイブノード50は、データベースシステムネットワーク31にも接続している。しかし、図2内のトランザクションノード32に関連するエンドユーザ33の代わりに、アーカイブノードは、永続ストレージ51、一般的にディスクベースのストレージシステム又はキーバリューストアにのみ接続される。アーカイブノード50は、I/Oチャンネル52を通じて永続ストレージ51と、ネットワークインタフェース55を通じてデータベースシステムネットワーク31と通信する中心処理システム54を含む。中心処理システム54は、1組のクラス又はオブジェクト62を含むRAMメモリ57とも対話する。図2のトランザクションノード32と同様に、図3のクラス/オブジェクトセット62は、アトムクラスのセット63、メッセージクラスのセット64、及びヘルパークラスのセット65を含む。本発明の好ましい実施形態は、オブジェクト指向プログラミングOOPを使用し、当業技術で公知のように、図2及び図3に示すようなクラス及びサブクラスは、そのクラス又はサブクラスのインスタンス又はオブジェクトを生成することができる方法、データ構造、及び処理を定義する。インスタンスは、継承及び/又は多相性を使用して生成することができる。具体的に開示する実施形態上でオブジェクト指向プログラミング又は変形を使用しない実施例が可能であることは、当業者には明らかであろう。本発明をここでいくつかの相で説明する。アトムの節では、それぞれ図2及び図3のアトムクラス43及び63によって生成されたオブジェクトの階層及び機能を定義する。メッセージ節では、それぞれ図2及び図3のメッセージクラス44及び64によって生成される可能性があるトランザクションノード及びアーカイブノード間の通信を行う1組のメッセージを説明する。方法の節では、データベース管理に関して基本操作を説明する。実施例の節では、データベース要求エンジン41への特定のデータベース問合せに応答して本発明の目的をもたらすアトム、メッセージ、及び方法の対話を説明する。アトム上述のように、図2のアトムクラス43及び図3の63の各々は、アトムを生成する。より具体的には、アトムクラスは、1つ又はそれよりも多くのアトムタイプ又はアトムオブジェクトを定義する。各アトムタイプ又はアトムオブジェクトは、それ自体のインスタンス、すなわち、アトムを生成する。各特定のアトムオブジェクトの目的のより詳細な理解すると明らかなように、各アトムは、データベース情報の特定のフラグメントを含む。一部のアトムは、データベースメタデータの一部を含み、他のアトムは、データレコードを含み、更に他のアトムは、他のアトムタイプを作成及び追跡するカタログとして機能する。一部のアトムタイプは、全てのノードに複製される1つのアトムをインスタンス化することができるに過ぎない。他のアトムタイプは、必要に応じて他のノードに複製される複数のアトムをインスタンス化することができる。アトムは、ある一定の特性を有する。トランザクションノードにおいて、アトムは、非永続メモリ内にのみ、及びアトムの有効なメモリ常駐フォーマットをもたらす特定のアトムタイプをポピュレートした逆シリアル化されたメッセージの形態でのみ存在する。各アトムは、コンテンツをシリアル化されたメッセージに符号化するための手段とアトムのコンテンツを検索するためにシリアル化されたメッセージを復号するための手段とを有する。このようなシリアル化されたメッセージは、後述するいくつかの作動に関連して使用される。アトムを複製するノードから送信された各シリアル化されたメッセージは、添付のノード識別表示及びそのノードの最新のトランザクションコミットシーケンス番号と共にそのアトムのコンテンツを含む。アーカイブノードがそのシリアル化されたメッセージを受信した時に、メッセージを逆シリアル化し、ノードリスト及びコミットシーケンス番号を除去した後に、メッセージすなわち、アトムの残りのコンテンツを永続ストレージ内に配置する。本発明によりアトムには、いくつかの規則が適用される。それらの規則の理由及び含意は、より明らかである。第1に、各アトムは、図1のデータベース処理ネットワーク30においてどこでもそのアトムの確実な識別表示を行う固有の識別表示を有するべきである。第2に、あらゆるアトムは、同時に冗長性を維持するために2つのノードに存在すべきであるが、単一のアトムは、作成された後に、かつアーカイブノードがコピーを要求する前に存在することができることを除く。第3に、トランザクションノードは、要求があって初めてアトムを取り込み。第4に、変更が1つのノード内のアトムに行われる度に、そのノードは、ピアツーピアで、すなわち、全てのアーカイブノード及びその同じアトムを含むトランザクションノードだけにその変更されたアトムを複製すべきである。より詳細に後述するゴミ収集処理は、アーカイブノード及びトランザクションノードに行われる可能性がある。処理は、トランザクションノード及びアーカイブノードから非アクティブアトムを除去する。従って、トランザクションノードは、そのノードでのランダムアクセスメモリ内のユーザアプリケーションにその時に現在関連するアトムを記憶することができる。従って、データベース要求エンジン41は、データベース全体をローカルと見て、マルチノード環境で、かつそのノードでデータベースの完全なコピーなしで作動していることに気づいていない。アーカイブノードは、ディスクにシリアル化された後にアトムのコンテンツをパージする選択肢を有し、従って、記憶に必要とされるメモリが小形化される。アーカイブノードがこのようなアトムの複製メッセージを受信した場合に、アーカイブノードは、複製中のアトムからの情報を適用する前にディスクストアから情報をフェッチすべきである。この一般的な背景で、各アトムタイプを論理的又は機能的レベルでここに説明する。この情報により、本発明の作動に対して更に説明する内容に関連して、当業者は、オブジェクト指向プログラミングに基づく実施例を含む様々な実施例のいずれかにおいて本発明を製造及び使用することができる。図4A及び図4Bは、データベースエンジン41、及びいずれかの所定の時間にトランザクションノード32内に常駐する可能性がある代表的な1組のアトムを示している。この例において、トランザクションノードは、マスターカタログアトム70、トランザクションマネージャアトム71、データベースアトム72、スキーマアトム73、テーブルアトム74、及びテーブルカタログアトム75に対応する。データベース当たりにマスターカタログアトム70が1つのみ、トランザクションマネージャアトム71が1つ、データベースアトム72が1つある。トランザクションマネージャアトム71、データベースアトム72、及びスキーマアトム73は、データベース要求エンジン41が新しいデータベースを作成する時に作成される。図4Aを参照すると、マスターカタログアトム70は、図1のデータベースシステム30内のトランザクションノード及びアーカイブノードの状態を追跡する。マスターカタログアトム70は、トランザクションマネージャアトム71、データベースアトム72、各スキーマアトム73、各々の対応する1組のテーブルアトム74及びテーブルカタログアトム75、及びシーケンスIDマネージャ82を作成及びモニタするアクティブインデックスと考えることができる。テーブルカタログアトム75は、アクティブインデックスとして作用し、かつ単一のテーブルに関連するインデックスアトム76、レコード状態アトム77、データアトム78、ブロブ状態アトム80、及びブロブアトム81を作成及びモニタする。すなわち、各テーブルにテーブルカタログアトム75が1つある。図4Bは、異なるアトムタイプの対話及び管理を理解する際に有用である。このコンテクストにおいて、マスターカタログアトム70もテーブルカタログアトム75も管理機能を実行しない。残りのアトムに対して、データベースアトム70が、各スキーマアトム73を管理する。各スキーマアトム73は、各々の関連のテーブルアトム74及びシーケンスIDマネージャアトム82を管理する。各テーブルアトム74は、対応するテーブルカタログアトム75、インデックスアトム76、レコード状態アトム77、データアトム78、ブロブ状態アトム80、及びブロブアトム87を管理する。図4Bを依然として参照すると、データベース要求エンジン41は、マスターカタログアトム70、トランザクションマネージャアトム71、データベースアトム72、各スキーマアトム73、各テーブルアトム74、及びシーケンスIDマネージャ82と通信する。データベース要求エンジン41は、SQLのような高レベル言語のコンパイラとして作用する。コンパイラとして、クエリを構文解析、コンパイル、及び最適化して、データベース情報の様々なフラグメントの形成に対してアトムからメタデータ及びデータを取得する。各アトムは、特定の共通の要素とタイプに独特である他の要素とを有する。図5を参照すると、マスターカタログアトム70は、共通の要素70A~70Iを含む。要素70Aは、アトムの固有の識別表示である。全てのノードに複製されるマスターカタログアトムのインスタンスが1つしかないので、マスターカタログアトムID70Aには固定した数字、一般的に1定数が与えられる。一般的に、ポインタ70B及び70Cにより、それぞれ、マスターカタログアトム及び作成カタログアトムが識別される。マスターカタログアトムに対して、両方のポインタは、マスターカタログアトム自体を識別する。各アトムは、議長を有するべきである。議長は、後述するような機能を実行する。要素70Dは、そのアトムの議長が常駐するそのノードのポインタである。アトムのコピーがあらゆるトランザクションノードで変更される度に、新しい変更番号を受信する。要素70Eは、その変更番号を記録する。ノードがアトムを別のノードに要求する時はいつでも、要求側ノードが他のトランザクションノードに分らない合間がある。要素70Fは、要求が完了されるまで供給側ノードがそのアトムを含む全ての他のノードから要求側ノードにメッセージを中継すべきである全てのノードのリストである。データベースシステムの作動は、サイクルにも分割される。サイクル基準要素70Gは、アトムへの最終アクセスのサイクル番号を供給する。要素70Hは、アトムを含む全てのアクティブノードのリストである。要素701は、いくつかの状態インジケータを含む。図5を依然として参照すると、グローバルノードIDSエントリ70Jは、システム内の各アクティブノードの固有の識別子を割り当てるIDマネージャを含む。公知のように、このような識別子は、長い文字ストリングである。ローカルノードIDSエントリ70Kは、システムに取り付けることができるノードの総数までの数字の範囲を含む。これらのエントリを併せて、2種類の識別表示間の対応が得られる。ローカルノードIDの使用により、効率が増大する。トランザクションノードが図1のデータベースシステムに加入する時に、接続マネージャ70Lがこの処理を達成する。トランザクションノードがデータベースシステムに加入することを可能にする特定的な実施例に対しては後述する。加入側ノードは、未処理ノード状態エントリ70Mを使用して、応答側ノードからの更に別の通信を受信するまでその応答側ノードのグローバルアドレスがないことを示している。データベースUUIエントリ70Nは、データベースの全域的な固有の識別表示を含む。70Pでのエントリは、マスターカタログアトム70がアクティブインデックスとして作用する全てのアトムを連結するので重要である。上述のように、これらには、データベースアトム72及びスキーマアトム73、テーブルアトム74、及びテーブルカタログアトム75の各々がある。パスワードエントリ70Qは、データベースへの接続を認証するための手段を表している。実際のエントリ及びソフトウエアバージョンエントリ70R及び70Sにより、システムは、より新しいバージョンのソフトウエアがインストールされた時に下位互換性で作動させることができる。実際のソフトウエアエントリ70Rにより、その時に使用中であるソフトウエアバージョン、ソフトウエアバージョンエントリ70S、最新のインストールされたバージョンに対応する番号が識別される。それによって個々のノードをより新しいバージョンに更新することができ、他のノードを更新せずに済み、かつデータベースは、全てのノードによるアクセスに向けて閉じられたりしない。図5を依然として参照すると、マスターカタログアトム70は、トランザクションマネージャアトム71のポインタ70Tと、構成オブジェクトのポインタ70Uと、ゴミ収集スレッドのポインタ70Vと、ピングスレッドのポインタ70Wとも含む。疎通スレッドは、ノードで定期的に及び他の作動とは独立して作動する。各々の他のノードの疎通を確認して対応する経路の通信効率の判断において使用することができる情報を提供する。例えば、図1のノードN1がノードN2又はN5と通信する選択肢を有する場合に、ノードN1は、その通信に向けてノードN2及びN5への通信経路のうち最も効率的なもの選択においてピング情報を使用することができる。他の選択処理を置換又は追加することができる。図6を参照すると、各データベースにトランザクションマネージャアトム71が1つあり、マスターカタログアトム70を作成する同じ処理中に作成される。トランザクションマネージャアトム71は、データベース要求エンジン41からのデータベース指令に応答してデータベーストランザクションを作成、追跡、及び終了する。トランザクションマネージャアトム71は、マスターカタログアトム内の同様の要素に対応する要素71A~71Iを含む。しかし、要素71Aは、トランザクションマネージャアトム71の識別表示である。要素71B及び71Cは、両方ともマスターカタログアトム70を指示する。IDマネージャ71Jは、固有のトランザクションシーケンス識別表示を提供し、かつアクティブトランザクションリスト71Kと、コミットされたトランザクションリスト71Lと、失敗したトランザクションリスト71Mとを維持する。要素71Nは、コミットシーケンス情報を記憶する。IDマネージャ71Jは、各トランザクションの開始時にトランザクションIDを割り当てる。各トランザクションIDは、固有のものであるが、必ずしも連続したものというわけではない。ローカルトランザクションマネージャアトムは、トランザクションがコミットされた時にコミットシーケンス番号を要素71Nに割り当てる。シーケンス番号は、連続したものであり、各々は、トランザクションを要求したノード独特のものである。トランザクション遷移イベントカウンタ71Pは、トランザクションの開始及びトランザクションのコミット成功のような各トランザクション中に行われる個別のイベントを識別する。このようなカウンタは、同じ情報を伴う複数のトランザクションが重なり合う時に有用である。図7を参照すると、データベースアトム72は、マスターカタログアトム70及びトランザクションマネージャアトム71が作成されると同時に作成される。データベースアトム72は、スキーマアトム73の各々を識別する。データベースアトム72は、新しいユーザがデータベースに加入しようとする時に認証処理に関わることができる。認証レベルに関する他のデータを含むことができる。基本的に、データベースアトム72は、図5の同様の要素に対応する要素72A~72Iを含む。要素72Aは、データベースアトム識別表示である。ポインタ72B及び72Cの各々により、マスターカタログアトム70が識別される。スキーマ名-スキーマIDレジストリ72Jは、スキーマ名をスキーマアトム識別表示に関連付けるものである。図8を参照すると、スキーマアトム73は、そのスキーマに対してテーブルアトムを作成及び追跡する。データベースアトム72は、複数のスキーマアトムを管理することができ、各スキーマアトムは、複数のテーブルアトムと対話することができる。スキーマアトム73は、図5の要素70A~70Iに対応する要素73A~73Iを含む。要素73Aは、固有のスキーマアトム識別表示73Aであり、要素73B及び73Cは、マスターカタログアトム70のポインタである。テーブルは、スキーマ内に固有の名を有する。テーブル名-テーブルアトムIDレジストリ73Jは、各テーブル名と対応するテーブルアトムの対応を示している。各スキーマシーケンスは、名称を有する。シーケンス名称-シーケンスIDマネージャレジストリ73Kは、シーケンス名と、各スキーマアトムに関連付けられた図4A及び4BのシーケンスIDマネージャ82のような対応するシーケンスIDマネージャとの間の関係を提供する。図9は、フィールド、フォーマット、インデックス、及びタイプに関連するメタデータを組込み、かつそのテーブルに対してインデックスアトム76、レコード状態アトム77、及びブロブ状態アトム80の各々を管理するテーブルアトム74の論理図を示している。テーブルアトム74は、テーブル内のデータを作成及び追跡もする。テーブルアトム74は、図5の要素70A~70Iに対応する要素74A~74Iを含む。要素74Aは、固有のテーブルアトム識別表示を含み、要素74B及び74Cは、両方ともマスターカタログアトムを指示する。ポインタ74Jにより、対応するテーブルカタログアトムが識別される。要素74Kは、テーブルの全てのフィールドのリストを収容する。各テーブルアトムは、いくつかのIDマネージャを有する。ポインタ74Lは、各フィールドに固有の識別表示を供給するIDマネージャを指示する。ポインタ74M、74N、74P及び74Qにより、それぞれ、インデックスアトム、データアトム、ブロブアトム、及びサブタイプに識別表示を割り当てる別々のIDマネージャが識別される。要素74Rは、既存のサブタイプのリストである。アレイ74S及び74Tは、それぞれ、レコード状態アトム及びブロブ状態アトムの位置を示している。図10をここで参照すると、各テーブルアトムにテーブルカタログアトムが1つある。各テーブルカタログアトム75は、テーブルアトムが作成された時に作成される。テーブルカタログアトムは、インデックスと、レコード状態と、データと、ブロブ状態と、ブロブアトムとを含む1つのテーブルに独特なアトムを作成及び追跡する。各テーブルカタログアトム75は、図5の要素70A~70Iに対応する要素75A~75Iを含む。要素75Aは、マスターカタログアトムにより割り当てられた固有のテーブルカタログアトム識別表示である。要素75B及び75Cは、マスターカタログアトム70を指示する。IDマネージャ75Jは、インデックス、レコードの状態、データ、ブロブ状態、及びブロブアトムの各々に対して固有のアトム識別表示を提供する。リスト75Kにより、対応するテーブルアトムに関連する全てのアトムが識別される。要素75L内のポインタにより、対応するテーブルアトムに関連するローカルノードでの各アトムの位置が識別される。一連のリスト75Mにより、各アトムに対してそのアトムの複製を伴うノードのリストが識別される。ビットマップ75Nは、アトムがアーカイブノード内にある時に他のオブジェクト及びディレクトリを識別する有利な手段になる。図11を参照すると、テーブル内の各インデックスにインデックスアトム76が1つあり、テーブル当たりに複数のインデックスアトムがある場合がある。各々のインデックスアトムは、図5の要素70A~70Iに対応する要素76A~76Iを含む。要素76Aは、対応するテーブルカタログアトムにより割り当てられる固有のインデックスアトム識別表示である。ポインタ76B及び76Cにより、それぞれ、マスターカタログアトム及びテーブルカタログアトムが識別される。要素76Jは、従来の割り出し機能をもたらすインデックスノードのバイナリツリーを含む。要素76Kは、インデックスレベルを含む。このようなインデックス構造及びインデックスオペレーションは、当業者に公知である。図12を参照すると、レコード状態アトム77は、単一のテーブル内の一定の範囲のレコード番号に対してレコードバージョン及び状態を管理する。従って、特定のテーブルアトムは、複数のレコード状態アトムを管理することができる。各々のレコード状態アトムは、図5の要素70A~70Iに対応する要素77A~77Iを含む。要素77Aは、作成テーブルカタログアトムが割り当てるレコード状態アトムIDを含む。ポインタ77B及び77Cにより、それぞれ、マスターカタログアトム及びテーブルカタログアトムが識別される。要素77Jは、レコード状態アトム77により管理される全てのデータアトムの位置を識別するアレイである。要素77Kは、ベースレコードのレコード番号を含む。すなわち、各データアトムは、複数のレコードを記憶する。要素77は、対応するテーブルアトムのポインタである。本発明が対象とするデータベースアプリケーションにおいて、複数のユーザが、同じレコードの複数のバージョンを生成することができる。本発明の好ましい実施形態は、マルチバージョン同時実行制御MVCCを使用して、レコード又は他のオブジェクトのいくつかのバージョンが同時にデータベースに存在することを可能にすることによってトランザクションが確実にデータベースを決して待つ必要がないようにする。その結果、各レコード状態アトム77は、各レコードバージョンに関するメタデータを含む。エントリ77Mは、ゴミ収集において有用である各々のバージョンを有するレコードの位置を識別するビットマップである。レコード状態アトム77は、レコードの各バージョン77Nに対して、バージョンを生成したトランザクションを識別するトランザクションID77Pを含む。フォーマットバージョンエントリ77Qにより、レコードが挿入された時に存在していたテーブルサブタイプのバージョン番号が識別される。このフォーマットによりレコードの物理的順序が識別され、レコードバージョンが作成された時に使用中であったデータベースプログラムのレコードが属するサブタイプが識別される。要素77Rは、レコードバージョンシーケンス番号を含み、要素77Sは、レコードの次に古い又は前のバージョンの位置を含む。データアトムアレイ77Jのインデックス77T及びベースレコード識別表示77Kを併せて、レコードバージョンを有するデータアトム内の実際のスロット77Uのアドレスになる。図13は、図5の要素70A~70Iに対応する要素78A~78Iを有するデータアトム78を示している。データアトム78において、要素78Aは、テーブルカタログアトムにより割り当てられたデータアトム識別表示78Aである。要素78B及び78Cは、それぞれ、マスターカタログアトム及び対応するテーブルカタログアトムのポインタである。IDマネージャ78Jは、データアトム78内の各レコードに対してレコードスロット識別表示を割り当てる。要素78Kにより、データアトム78内の各レコードに対してアドレス及びそのレコードの長さが識別される。要素78Cは、データ記録及びそのバージョンを表している。図14をここで参照すると、データベースは、ブロブレコードも記憶する。ブロブレコードは、一般的にデータベース内の単一の構成要素として記憶された二進データの集合である。ブロブレコードは、バージョン内には存在しない。ブロブ状態アトムは、図5の70A~70I要素に対応する要素80A~80Iを含む。要素80Aは、ブロブ状態アトム固有アトム識別表示を有する。要素80B及び80Cは、それぞれ、マスターカタログアトム及び対応するテーブルカタログアトムのポインタである。リスト80Jにより、単一のブロブ状態アトム80により管理される全てのブロブアトムが識別される。エントリ80Kは、基部ブロブレコードの識別表示を提供する。要素80Lは、対応するテーブルアトムを指示する。各ブロブレコードに対して、ブロブ状態アトムは、ブロブアトムにインデックス80Mを含む。要素80Nにより、ブロブレコードに対してブロブアトムのスロットが識別される。図15は、図5の要素70A~70Iに対応する要素81A~81Iを有するブロブアトム81を示している。要素81Aは、テーブルカタログアトムにより割り当てられたアトム識別表示である。要素81B及び81Cは、それぞれ、マスターカタログアトム及び対応するテーブルカタログアトムのポインタである。IDマネージャ81Jは、ブロブスロット識別表示をブロブアトム81内の各ブロブに割り当てる。要素81Kにより、ブロブアトム78内の各ブロブに対して、アドレス及び長さが識別される。要素81Lは、ブロブアトムに割り当てられた全てのブロブレコードを表している。要約すると、各アトムは、データベースのフラグメントのみとの関係を有する。例えば、データベースアトム72は、データベースのスキーマを識別するメタデータを含む。各スキーマアトム73は、そのスキーマに関連する全てのテーブルを識別するメタデータを含む。各テーブルに対して、テーブルアトム74及び対応するテーブルカタログアトム75は、フィールド及び特性の識別表示のような情報を含むテーブルに関するメタデータを示す。レコード状態アトムは、一群のレコードに関するメタデータを含む。データアトムは、これらのレコード及び様々なバージョンを含むスロットのポインタと共に各データレコードに関する情報を含む。ブロブ状態及びブロブアトムは、ブロブレコードに関する類似の情報を含む。メッセージ上述のように、あらゆる2つノード間の通信は、メッセージングシーケンスを維持する制御でTCP又は別のプロトコルを使用して非同期で送信されるシリアル化されたメッセージによるものである。図16は、可変長ヘッダ91と可変長本文92とを含む典型的なメッセージ90の基本的な構文を示している。ヘッダ91は、メッセージ及びその機能を指定するメッセージ識別子コード93を含む。本発明では異なるノードが異なるソフトウエアバージョンを用いて作動する場合があるシナリオを仮定しているので、ヘッダ91は、メッセージを作成したソフトウエアバージョンの識別表示94も含む。ヘッダ内の残りの要素には、送信側すなわち、図5のマスターカタログアトムからのローカル識別表示95、メッセージの宛先、すなわち、カタログアトム例えば、図10のテーブルカタログID75Aの情報96、及びアトム識別表示97例えば、図12内のレコード状態ID77Aがある。この情報から、受信者ノードは、メッセージを逆シリアル化、復号、及び処理することができる。17は、本発明の特定的な実施形態に対して図16の構文を有する1組のメッセージを示している。各々は、これから説明するような特殊機能を実行する。先に簡単に説明したように、メッセージが送られることになっている時に、ノードが異なれば通信経路も異なる。例えば、1つのノードが、要求側ノードとして、アトムを取得する必要がある場合に、そのアトムの複製は、複数の他のノードに位置することができる。この実施形態では、ピングにより、最良の経路対応ノードを選択するのに有用な選択情報が得られる。ピングでは、公知のように、ピング指令が宛先に到達する時間及び確認応答メッセージが受信される時間を判断する。本発明のこの実施形態では、各ノードは、定期的にヘルパークラスを使用して、ピングメッセージ110を接続以前の他のノードの各々に送る。各受信側ノードは、ヘルパークラスを使用して、ピング時間を含むピング応答メッセージ111を戻す。各ノードは、図8に関して後述するノードオブジェクトでこれらのメッセージを送受信する時間に関するこの情報を蓄積する。1つのノードが複数のノードの1つにメッセージを送る準備をする時に、送信側ノードは、そのメッセージの受信側ノードとしてノードの1つを選択するために蓄積されたピングデータを含むがこれらに限定されないファクタを解析する。次の組のメッセージは、図1のデータベースシステム30への新しいノードの接続又は以前非アクティブであったノードの接続に関わっているものである。このようなノード、例えば、トランザクションノードN2がデータベースシステム30に接続したいと思った時に、図19に関して詳細に後述する接続処理を開始する。図17を参照すると、その処理がメッセージを受信するためのアクティブノードを識別した状態で、加入側ノードは、接続メッセージ112を選択したノードに送る。選択したノードは、データベースシステム30内の全ての他の接続したノードに歓迎メッセージ113及び新ノードメッセージ114を戻す。他の接続したノードの各々は、固有の歓迎メッセージ113を加入側ノードに送信する。このメッセージシーケンスが完了した時に、加入側ノードは、様々なアトムを取得するために更に歩を進めることができる。アーカイブノードは、彼らが別のノードに同期している時にアクティブモード又は同期モードで作動させることができる。アーカイブノード内のヘルパークラスは、ノード状態メッセージ115を送信して、そのアーカイブノードの状態変化に対して全ての他のノードの注意を喚起する。次の組のメッセージは、ノードが要求側ノードとして別のノードからのアトムのコピーを検索する時に関わっているものである。例えば、ノードが図1のデータベースシステム30に加入した後に、一般的にマスターカタログアトムのコピーを要求する。この処理に対して、図20及び図21の説明に関連して先に詳細に説明する。図17を依然として参照すると、要求側ノードは、目的要求メッセージ116を選択したノードに出し、選択されたノードは、要求されたアトムと共に一般的にオブジェクトメッセージ117を戻す。選択されたノードは、そのアトムと共にオブジェクト利用可能メッセージ118を全ての他のノードに送る。選択されたノードからオブジェクト利用可能メッセージ118を受信する各ノードは、オブジェクト確認応答済みメッセージ119を選択されたノードに戻す。選択されたノードは、選択されたノードが全てのオブジェクト確認応答済みメッセージ119を受信した後にオブジェクト完了メッセージ120ノードを要求側ノードに送る。一部の状況では、選択されたノードは、選択されたノードが要求されたアトムを落したと知らせるオブジェクト利用不能メッセージ121を送る。選択されたノードからのバウンスオブジェクトメッセージは、要求されたアトムがマスターカタログアトム又はテーブルカタログアトムの1つにないことを示している。これは、更新トランザクションが進行中であり、選択されたノードがオブジェクト要求メッセージ116に応答しない時に発生する場合があり、その理由は、ゴミ収集処理によりオブジェクト要求メッセージを受信する前にそのアトムが収集されたからである。応答として、要求側トランザクションノードは、アトムでデータベースシステム内の別のノードを選択することができる。図1及び図4A及び図4Bのデータベース要求エンジン41は、登録オブジェクトメッセージ123又は登録抹消オブジェクトメッセージ124を定期的に生成する可能性がある。これらのメッセージは、データベース及びスキーマアトムのようなレジストリを含むアトムを対象とする。オブジェクト削除メッセージ125は、そのノードでのユーザが、テーブルのような何らかの品目を削除する指令を出した時にノードから送られる。ローカルノードが更新又は修正された時はいつでも、変更番号が増加する。あらゆる複製メッセージは、そのアトムのローカル変更番号を含む。あらゆるアトムは、各ノードに対して最新の変更番号を追跡する。アーカイブノードが修正されたアトムのコピーを受信した時に、アトムの変更番号をコピーして、変更番号を消去した後にアトムをディスクにシリアル化する。変更が行われた場合に、変更番号は、ゼロにはならない。アーカイブノードは、オブジェクト書込済みメッセージ126を送り、変更番号は、各ノードに書き込まれる。各受信側ノードは、自身の変更番号をメッセージ内の変更番号と比較する。次に、ノードは、アトムがアーカイブされてゴミ収集の潜在的な候補であることを説明するためにアトムの状態を更新することができる。上述のように、各アトムは、固有のアイデンティティがなければならない。特定のアトムタイプ例えば、新しいテーブルアトムの第1のアトムが作成された時に、作成トランザクションノードは、そのテーブルアトムの議長と指定される。議長の地位を取り分割する規則に対しては後ほど説明する。トランザクションノードは、新しいアトムタイプを作成する必要がある時はいつでも、利用可能な識別表示を有していない場合にID要求メッセージ127を議長に送る。議長は、一般的に、自由な識別表示値の割り当てによる少なくとも1つの固有の識別表示のブロックを含むID委任メッセージ128を戻す。この処理は、図20の処理に関してより詳細に説明する。図4A及び図4Bを参照すると、テーブルアトム74は、いくつかのメッセージのいずれかを送ることができる。データベース要求エンジン41が新しいフィールドを追加する処理を開始した場合に、その対応するトランザクションノードでのテーブルアトムは、新しい構造を生成して、そのテーブルアトムを含む全ての他のノードの変更を複製するテーブルフィールド追加済みメッセージ129を送る。トランザクションノードがテーブル構成を変更するフィールド、サブタイプ、又はフィールド特性を更新した場合に、そのノードは、テーブル構成メッセージ130を出す。ノードが新しいレコードの状態又はブロブ状態アトムを作成する必要がある時はいつでも、テーブル要求記録メッセージ131が生成される。議長だけが、このアトムを作成することができ、議長は、これが行われた時にテーブル記録オブジェクトメッセージ132をブロードキャストする。トランザクションノードがテーブルに新しいレコードを挿入する度に、それは、テーブルレコードメッセージ133を生成する。インデックス付きのフィールドがテーブルに追加される時のような新しいインデックスを作成することが必要になった時はいつでも、作成テーブルアトムは、新しいテーブルアトムを複製する。この時に、インデックスが、書込専用インデックスに設定される。関連する全ての関連の処理が完了した後に、ノードは、テーブルインデックス追加済みメッセージ134を送る。テーブルアトムがブロブのブロブ状態アトムを作成する時はいつでも、テーブルアトムは、テーブルブロブオブジェクトメッセージ135を生成する。テーブルブロブメッセージ136は、新しいブロブが作成されたことを示している。タイプ及びサブタイプを利用するデータベースにおいて、図1のデータベース要求エンジン41は、テーブルアトムに新しいテーブル-タイプ識別表示を割り当てさせる指令を生成する。これが行われた時に、テーブルタイプメッセージ137が、同様のテーブルアトムを有する全てのノードに複製される。テーブルレコード抹消メッセージ138は、特定のレコード状態アトムに関するレコード番号を示している。テーブルゴミ収集メッセージ139は、そのテーブル内のレコードが以前のバージョン又は他の基準の異常に長いチェーンを含むと判断された時に、テーブルアトムに対して議長によって生成される。従って、未使用アトムは、データがない状態である。図4A及び図4Bのレコード状態アトム77は、いくつかの専用メッセージも生成する。特定のレコードを更新することが必要になった場合に、本発明のデータベース管理システムは、そのレコードの新しいバージョンを作成する。図17を再び参照すると、対応するレコード状態アトムは、そのアトムがその特定のレコードを更新する許可を求めるために議長に誘導されるレコード更新要求メッセージ140を生成する。議長は、そのレコードを更新する許可を付与又は拒否する記録更新応答メッセージ141を生成することによって応答する。議長が許可を付与した場合に、要求側レコード状態アトムは、更新を実行して、アトムの新しいバージョンを有する記録更新メッセージ142をそのアトムのコピーと共に各ノードに送る。データアトムは、レコード及びそのバージョンの何らかの最大数まで記憶する。対応するレコード状態アトムは、管理するデータアトムのサイズをモニタする。レコード状態アトムが管理されたデータアトムはそのサイズを超えたと判断する場合に、新しいデータアトムを生成して、記録データオブジェクトメッセージ143によってその新しいデータアトムを複製する。レコード状態アトムは、いずれの新しいレコードバージョンも複製する記録レコードメッセージ144を生成する。定期的に、テーブルアトム議長は、レコード状態アトムが最古アクティブトランザクションより古いレコードバージョンを識別する処理を開始する。これが行われた時に、会長のレコード状態アトムは、上述の以前のレコードバージョンをその後のゴミ収集処理中に削除することを可能にする記録プルーンメッセージ145を送信する。トランザクションをロールバックすることが必要になるこの条件が生じた場合に、レコード状態アトムは、バックアウトレコードを更新するバックアウトレコードメッセージ146を生成する。1組のインデックス専用メッセージもある。公知のように、インデックスは、最適な最大寸法を有し、インデックスがそのサイズを超えた場合には、インデックスは分割すべきである。本発明により、議長のみが、インデックスアトムを分割することができる。議長は、一方的に又はそのアトムの別のコピーからのインデックス分割要求メッセージ147に応答してこれを行うことができる。議長が分割を引き起こした時に、議長は、分割されたインデックスを含むインデックス分割メッセージ148を生成する。分割の後に、議長は、分割後に最初のインデックスアトムを切り捨てるインデックスプルーンメッセージ149を送る。インデックスノードがインデックスに追加される度に、新しいインデックスに関するインデックスキー、レコード識別表示、及び他の情報を含むインデックスノード追加済みメッセージが生成される。インデックスが完全にポピュレートされ、従って、検索作動中に使用準備ができている時に、テーブルインデックス待機メッセージ151が生成される。上述のように、テーブルインデックスを追加することにより、書込専用インデックスでありかつ読取不可能であるインデックスアトムが生成される。テーブルインデックス待機メッセージ151は、このような書込専用インデックスを可読にする。ブロブ状態アトムは、ブロブズブロブメッセージ152を生成することにより、ブロブアトムのスロットを識別する。データレコードメッセージ153は、スロット番号及びレコード長を含む。それは、データレコードも含む。トランザクションの状態が変わる時に、特定のトランザクションノードのトランザクションマネージャアトム71は、トランザクション状態メッセージ154を生成する。これらは、トランザクションの現状がアクティブ状態か、プリコミット状態か、コミット状態又はロールバック状態かを示している。ある一定の状況の下で、1つのトランザクションに関連する要求が別のノード上の別のトランザクションにより遮断される可能性がある。その場合に、トランザクションマネージャアトムは、トランザクション遮断メッセージ155を受信する。トランザクションがデッドロックになり、ロールバックすべきである場合に、デッドロックを引き起こすノードに関連するトランザクションマネージャアトムは、トランザクションをロールバックさせるトランザクションデッドロックメッセージ156を生成する。いずれのテーブルカタログアトム上のアーカイブノードマスターカタログ又はアトムも、最後に書かれた時間を要求することができる。これは、要求側ノードが要求に書込時間メッセージ158を送る時に行われる。そのメッセージの受信者は、次に、書込時間メッセージ159でそれらの要求された時間を戻す。上記メッセージは、本発明を組み込むデータベース管理システムを維持するのに必要とされる様々な手順を適切に処理することができるセットを構成する。明らかなように、各メッセージは、ヘッダに最少のオーバヘッドを有する。各メッセージは、適切に短いものとすることができる。TCP又は他のメッセージングプロトコルと共に使用される時に、メッセージは、連続して送られなければならず、いずれの所定のノードでも、受信され次第、それらは、それらが異なるノードによって送られたものであったとしてもそれと同じシーケンスで取り扱うべきである。方法ここで、本発明の作動の様々な態様に関連する一部の基本的な方法を説明することは、本発明の更に理解するのに役立つであろう。各々の変形は、当業者には明らかであると考えられる。図18は、ノードがネットワークに加入した時に図1のデータベースシステム30内の異なるノードにおいては行われる作動の流れ図である。この説明の目的上、図1のノード5がデータベースシステムに加入することになり、すなわち、それは、加入側トランザクションノード170であると指定されたと仮定する。第1の処理として、加入側トランザクションノード170は、段階171を使用して選択されたノードでTCP接続を確立する。基本的に、加入側トランザクションノード170は、データベースを識別する固定された位置にメッセージを送る。示されていないが当業技術で公知のように、接続ブローカーは、データベースシステムへのアクセスを拒否又は許可することによってこの要求に応答する。接続ブローカーがアクセスを許可した場合に、選択されたノード172として、トランザクションノードNlのようなノードを選択する。次に、接続ブローカーは、選択されたノード172のポート番号によるなどの名称で加入側トランザクションノード170にメッセージを送る。図18は、群173として、データベースシステム内の全ての他のアクティブトランザクションノード及びアーカイブノードも示している。段階171で接続が確立された状態で、加入側トランザクションノード170は、段階174を使用して接続メッセージを選択されたノード172に送る。選択されたノード172は、段階175で、接続マネージャでマスターカタログアトムを更新し、ローカルノードIDを加入側トランザクションノード170に割り当てて、そのノードオブジェクトでそのノードをローカルノードのアレイに追加することによって接続メッセージに応答する。例を図19に示している。図19は、図18の段階175に関連して説明したようなノードオブジェクトを示している。それは、ノードのソケットのポインタ400Aと、ノードでのマスターカタログアトムのポインタ400Bと、マスターカタログアトム内の接続マネージャのポインタ400Cとを収容する。ポインタ400Dにより、着信メッセージを聴取するのに使用されるスレッドが識別され、ポインタ400Eにより、メッセージを受信するソケットバッファが識別される。メッセージ聴取者は、メッセージを待ち、メッセージタイプを判断し、次に、メッセージを処理して完了させる。ノードオブジェクト400は、全てのアトムと同様に、このノードが聴取しているノードのグローバルノードID400F及びローカルノードID400Gを含む。要素400Hは、ノードから送られたものを待っているメッセージの待ち行列のポインタである。要素400I及び400Jは、ローカルポート及びリモートポートの識別表示を含む。要素400Kは、リモートノードで作動するソフトウエアのバージョン番号を含む。ノードタイプ要素400Lは、リモートノードがトランザクションノードか、同期処理を受けているアーカイブノードか、又はオンラインアーカイブノードかを示している。要素400Mは、ローカルノードの名称を含み、要素400Nは、リモートノードの名称を含む。要素400Pは、処理中の現在のメッセージのポインタである。要素400Q及び400Rは、最終ピング作動及びピング時間の時間を識別する。上述のように、各ノードは、そのノードで開始されたトランザクションの各コミット作動に応答して連続したコミットシーケンス番号を生成する。要素400Sは、この数を含む。要素400Tは、このノードオブジェクトがこのノードのノードオブジェクトであるか否かを示している。図18を再び参照すると、段階176で、選択されたノード172は、歓迎メッセージをグローバルノードIDを含む加入側トランザクションノード170に送る。次に、選択されたノードは、段階177において、新ノードメッセージを全ての他のトランザクションノード及びアーカイブノードの群173にブロードキャストする。群173内の各ノードは、段階180で、グローバルIDを記録し、加入側トランザクションノードのローカルIDを割り当てて、それぞれのマスターカタログアトム内の全ての接続したノードのローカルリストを更新することによって新ノードメッセージに応答する。各々は、次に、段階181を使用して、歓迎メッセージを加入側トランザクションノード170に送る。この処理が完了すると、加入側トランザクションノード170は、群173内の選択されたノード172及び全てのノードを含む全てのアクティブノードの完全なリストを有する。段階182で加入側トランザクションノード170が歓迎メッセージを選択されたノードから受信する時に、それは、マスターカタログアトムのコピーを要求する選択されたノード172にオブジェクト要求メッセージを送る段階183。選択されたノード172がマスターカタログアトム内の情報の様々な項目を更新した後に、選択されたノードは、段階184を実行し、加入側トランザクションノード170に送られるオブジェクトメッセージ内のマスターカタログアトムをシリアル化し、オブジェクト利用可能メッセージをシステム内の全ての他のノードにブロードキャストする。従って、各ノード内のマスターカタログアトムは、更新及び同期化される。オブジェクトメッセージの受信を待つことなく、加入側トランザクションノードは、選択されたノード172からのデータベースアトム及びトランザクションマネージャアトムのコピーを検索する段階185の処理を始めることができる。段階186で、オブジェクト利用可能メッセージを受信する各々の他のノードは、オブジェクト確認応答済みメッセージを選択されたノードに戻すことによって応答する。加入側ノード内のデータベース要求エンジンは、このシーケンスを開始する。従って、図18の方法が完了された時に、加入側トランザクションノード170は、データベースシステムに接続され、図4A及び図4Bに示すように、マスターカタログアトム70、トランザクションマネージャアトム71及びデータベースアトム72のコピーを含む。加入側トランザクションノード170は、次に、必要に応じて他のアトムのコピーを作成又は取得する。一部の作動中に、トランザクションノードは新しいテーブルを作成することができ、新しいテーブルアトムの作成が必要になる。図20は、その処理190を開示するものであり、ノードAは、要求側ノードである、アトムXは、新しいアトムYを要求して管理することになるアトムである。新しいテーブルアトムYの作成に対して、アトムXは、スキーマアトムになり、ローカルカタログZは、マスターカタログアトムになる。段階191は、アトムYのインスタンスを取得する要求の準備機能を表している。アトムが変更される度に、変更番号が割り当てられ、初期値は、一般的に0である。段階192で、ローカルカタログZはコンテンツなしのアトムYのそのインスタンスを作成して、ローカルノードをアトムYの議長に指定する、次に、処理193により、ローカルカタログZは、オブジェクトIDを新しいアトムYに割り当てることができる。このような処理の詳細を図21に関して示すと共に説明する。次に、ローカルカタログZは、その変更が行われることを可能にする排他的ロックを設定する。ロックが所定の位置にある間、ローカルカタログZは、新しいアトムYの状態をダーティな状態に、及び非オープン状態に設定する。ダーティな状態は、新しいアトムYがアーカイブに複製されなかったことを示している。非オープン状態は、新しいアトムYは他のノードがまだ利用可能でないことを示している。段階195で、ローカルカタログZは自己更新して、次に、排他的ロックを解除する。段階196で、カタログZは、アトムYを識別するオブジェクト利用可能メッセージをトランザクションノード及びアーカイブノード内のカタログZの全ての他のインスタンスにブロードキャストする。段階197で、アトムXは、新しいアトムYの管理アトムとしてアトムYのインスタンスをポピュレートし、アトムYの状態を新しいアトムを複製することができることを示すオープンに設定する。その後しばらく、アーカイブノードは、永続ストレージへの新しいアトムのコピーを保存することになる。すなわち、アーカイブノードは、アトムYのコピーを要求することによってオブジェクト利用可能メッセージの受信に応答し、それによって冗長性をもたらすことになる。これが完了した時に、アーカイブノードからオブジェクト確認応答済みメッセージの受信によりダーティな状態を変更し、この変更は、次に、アトムYのコピーを有する全ての他のノードに反映される。図20の割当て処理193及び同様の割当て処理は、オブジェクトIDを割り当てる本発明の作動の様々な段階で用いている。図21は、より詳細にこの割当て処理を示している。具体的には、カタログアトムがオブジェクトIDを割り当てたいと思った時に、段階200で、カタログアトムが利用可能なローカルIDを有するか否かを判断する。有する場合には、制御は、要求に応答して利用可能なIDを割り当てる段階201に移る。ローカルIDが利用可能でない場合には、制御は、段階202に移って、このノードでのカタログアトムが議長状態を有するか否かを判断する。ローカルIDが利用可能である場合に、議長は、直接に利用可能なIDを識別する権限を有し、制御は、段階201に移る。思い出されるように、特定のアトムに対して少なくとも1つの他のノードが存在する時に、各アトムは、要求されたアトムのコピーを含むノードのリストを収容する。そのアトムが図20の処理に従って作成された後にこれがアトムの第1の要求であった場合に、リスト上の第1のノード内の対応するカタログは、議長である。段階203は、ノードを選択して議長を識別する処理を表している。選択処理に対して、最初にトランザクションノードで通信を確立することが好ましい。段階204は、議長へのID要求メッセージの送信を表している。段階205で議長がID要求メッセージを受信した時に、利用可能なID番号のブロックを取得する段階206。議長は、利用可能なID番号のこのブロックのサイトとして要求を行うトランザクションノードを識別する段階207。段階210で、次に、議長は、ID委任メッセージを要求側ノードに送る。段階211で要求側ノードが議長からID委任メッセージを受信した時に、は段階212でID番号のブロックを記憶し、次に、段階201での割り当てるに向けて第1の利用可能なIDを選択する。再び図20を参照すると、その関連では、処理193は、段階202から段階201に移って直接に段階200に移り、その理由は、議長は、図20で段階192で指定されるからである。図4A及び図4Bのデータベースエンジン41がアトムを要求する時はいつでも、図22の応答220が処理される。例えば、要求側ノード221内のデータベース要求エンジン41が他のノード223を有するデータベース内の選択されたノード222からのアトムY例えば、テーブルアトムのコピーを求めると仮定する。データベース要求エンジン41がその要求が行われた時に、段階224では、アトムYが要求側ノード221に存在するか否かを判断する。存在する場合に、段階225では、要求されたアトムが存在するので処理を終了する。存在しない場合に、制御は、段階226に移って、ローカルカタログZは、アトムYの空のインスタンスを作成してアトムYが未ポピュレート状態であると宣言する。データベースエンジン41がテーブルアトム74を要求している場合に、マスターカタログアトム70は、この段階を実行する。段階230では、次に、上述の選択処理を用いて選択されたノード222を識別する。優先項目は、選択されたノード222として最も応答性があるアーカイブノードを選択する前にトランザクションノードのいずれかを選択することである。段階231において、要求側ノード221は、アトムYのオブジェクト要求メッセージを選択されたノード222に送る。これに応答して、選択されたノード222は段階232を用いて、ノード及びシーケンス番号を有するシリアル化された形の要求されたアトムYと共にメッセージをオブジェクトに送る。同時に、選択されたノード222は、オブジェクト利用可能メッセージを全ての他のノード223にブロードキャストする。アトムYのコピーを有する全ての他のノードのリレーリストを作成する。処理のこの時点で、他のノードは、要求側ノード内のアトムYとは直接には通信せず、その理由は、そのアトムのコピーにメッセージを要求側ノードに送るべきであることに気づいていないからである。従って、他のノードのいずれかがアトムYを複製した時に、選択されたノード222は、メッセージを要求側ノード221に中継する。要求側ノード221が選択されたノード222からオブジェクトメッセージを受信した時に、段階233でメッセージの接近容易性解析を提供する。メッセージが現在のアトムを含む場合に、アトムYは、段階236でメッセージを処理して、段階237でオブジェクト確認応答済みメッセージを選択されたノードに送る。全ての他のノード223は、段階240を用いて、オブジェクト確認応答済みメッセージを選択されたノード222に送ることによってオブジェクト利用可能メッセージに応答する。選択されたノード222は段階241を用いて、オブジェクト確認応答済みメッセージをモニタする。具体的には、各オブジェクト確認応答済みメッセージに応答してそのリレーリストから他のノードの各々を除去して、そのノードへの中継を中止する。全ての他のノード223がリストから除去された時に、選択されたノードは、全ての中継を停止してオブジェクト完了メッセージをブロードキャストする。別のノードが図22の段階226と236の間の時間中に要求側ノード221に到達する複製メッセージを送ることが可能である。これは、メッセージ処理を中断する可能性がある。その結果、アトムYが未ポピュレート状態である間に上述の例のアトムYの複製メッセージが要求側ノードで受信した時に、複製メッセージは、図5~図13のいずれも示していないが各アトムの一部である未処理メッセージリスト内に配置される。上述のように、本発明は、特にトランザクション処理技術とインタフェースで接続するデータベースに適合される。従って、メッセージをコミットする適切な手法を伴うべきである。図23は、このような環境においてデータの一貫性を保証する1つの手法を示している。具体的には、図23は、4つのノード、すなわち、トランザクションノードA250、トランザクションノードB251、トランザクションノードC252、及びアーカイブノード253を示している。トランザクションノードB251は、段階254でそのノードでのトランザクションマネージャアトムによって供給されたトランザクションIDと共にプリコミットメッセージを送ると仮定する。段階255でメッセージをアーカイブノードに経路指定する。そのトランザクションをコミットする全ての条件が完了された時に、アーカイブノード255は、段階256でコミットトランザクションメッセージを出し、段階257でその委任メッセージをブロードキャストする。段階258で、トランザクションノードの各々は、これに応答してその対応するトランザクション番号を更新する。図21のアトムのコピーを要求する処理に関して上述したように、要求側ノードは、段階233であらゆる受信したメッセージにアクセシビリティ解析を提供する。この試験により、あらゆるトランザクションノードが常に有効な情報で作動するという保証が得られ、この試験では、トランザクションID番号及びコミットシーケンス番号の解析を提供する。この解析及び本発明の他の特徴の理解は、トランザクションID及びコミットシーケンス番号の更に別の理解、トランザクションの相対的な順序の解析、及びアトムスキューの理解により容易にされると考えられる。トランザクションID及びコミットシーケンス番号に関してかつ上述したように、各トランザクション識別子は、図1のデータベースシステムにわたって固有である。トランザクションIDの目的は、それが、どのトランザクションが特定のレコードバージョンを作成したかを示す固有の永久的なシステム全体に及ぶマークであることである。各トランザクションIDは、トランザクションマネージャアトム71のローカルコピーにより割り当てられ、1つのこのようなトランザクションマネージャアトムは、データベースシステム内の各トランザクションノード上のトランザクションマネージャアトムに識別子番号のブロックを割り当てる議長になる。特定のトランザクションノードでのトランザクションマネージャアトムは、割り当てられたブロック内の未使用数をノードが開始する各トランザクションに順番に割り当てる。従って、特定のノードで開始されるトランザクションが新しいほど、トランザクションIDは、古いトランザクションに割り当てられたトランザクションIDより高いとすることができる。しかし、システムにわたって、トランザクションIDは、異なるトランザクションの相対的な開始時間に関しては何も意味しない。その結果、レコードバージョンを作成したトランザクションが、トランザクションの読取が開始される前にコミットされた場合に限り、トランザクションが確実にレコードバージョンを読むことができるようにする何らかの方法を提供すべきである。本発明において、どのレコードバージョンを読むべきかを判断するこのような方法は、開始時間にはなく、レコードバージョンを作成したトランザクションのトランザクションコミット時間に存在する。トランザクションIDは、コミット時間を含まず、従って、各ノード上のトランザクションマネージャアトムは、実際コミット作動に基づいてコミットシーケンス番号を各トランザクションに割り当てる。各トランザクションノードは、増加するシーケンスでコミットシーケンス番号を生成する。特定のノードからのトランザクションが467というコミットシーケンス番号を有する場合に、それよりも小さいコミットシーケンス番号を有するノードからの全てのトランザクションがコミットされたことは確かである。全てのノードは同じコミットシーケンス番号を生成するので、個数を解釈するには対応するノードの番号及び識別表示が必要である。トランザクションがコミットされた時に、トランザクションマネージャアトムは、対応するトランザクションID及びコミットシーケンス番号を含む全てのノードに委任メッセージを送る。アトムが自己シリアル化した時に、そのアトムのコピーを保持する各ノードからわかった最高のコミットシーケンス番号を含む。例えば、ノードA、B及びCがアトムZのコピーを含み、ノードAがアトムZに対してオブジェクトメッセージを生成すると仮定する。そのメッセージのシリアル化された形式は、ノードAが自分自身からわかった最高のコミットシーケンス番号と、ノードB及びCからわかった最高のコミットシーケンス番号とを含むことになる。ノードAからシリアル化されたメッセージは、ノードAがアトムYのコピーを共有するノードを見た時に、アトムYのコピーを共有する全てのノード上のトランザクションの状態を説明するものである。ノードB又はノードCは、ノードAがまだ受信又は処理していないトランザクションに対してより高いコミットシーケンス番号を実際に出した可能性がある。各ノード上のトランザクションマネージャは、データベースシステム内の各ノードに対してトランザクションオブジェクトを維持する。各トランザクションオブジェクトは、全てのノード上のトランザクションの状態を反映し、ローカルでありかつ連続的に増加しているもう2つの番号を各オブジェクトに割り当てる。トランザクションマネージャアトムがトランザクションを開始するか、又は別のノードがトランザクションを開始したことを示すトランザクション遷移メッセージを受信した時に、トランザクションマネージャアトムは、新しいトランザクションIDを有するローカルトランザクションオブジェクトを作成して開始番号を割り当てる。ローカルトランザクションがコミットされた時に、又はトランザクションマネージャアトムが別のノード上のトランザクションがコミットされたことを示すトランザクション遷移メッセージを受信した時に、トランザクション終了番号が、コミットシーケンス番号と共にトランザクションオブジェクトに割り当てられる。開始番号及び終了番号は、同じシーケンスからのものである。一例として、トランザクション123がトランザクション453の終了番号よりも高い開始番号を有する場合に、トランザクション123は、トランザクション453により作成されたレコードバージョンをトランザクション453を実行したあらゆるノードから読み取ることができる。トランザクション開始番号及び終了番号は、ローカルであり、すなわち、ローカルノード上でわかった時のトランザクションの状態を反映する。ノードが異なれば、異なる値を割り当てるので、他のノード上でのトランザクションの異なる順序付けが見出される。明らかなように、処理トランザクション状態メッセージを受信及び処理する際に遅延が存在する可能性がある。各トランザクションは、ローカルトランザクションノード上でのみ実行される。このデータベースシステムは、1つのトランザクションノードには、トランザクションがローカルトランザクションノード上でコミットする前にトランザクションがコミットされたと分らないようにしている。例えば、ノードAがトランザクション453のトランザクションノードBから委任メッセージを受信して処理した後にトランザクション123を開始した場合に、トランザクション123は、トランザクションを受信したトランザクションノードCがコミットされて別の順番でメッセージを開始したとしてもトランザクション453からの変更を読み取ることができ、2つのトランザクションは同時点のものと考える。トランザクションのいずれもトランザクションノードC上では実行されないので、情報は、トランザクションノードCに関連のないものである。しかし、各個々のトランザクションノードが見たデータベースシステムの姿の差異により、ある一定の状況では問題が発生する可能性がある。アトムスキューに関して、本発明の一態様により、各ノードは、別のノードがメッセージに送った順番で別のノードからのメッセージを処理すべきである。しかし、全てのノードは、独立して作動する。従って、いずれの所定の時間にも、一部のノードは、他のノードがまだ処理していないメッセージを受信して処理してしまっていることになる。アトムの一部のコピーは、他のコピーが含まない変更を含むことになる。上述の差異は、コピーを有するノードには重要なことではなく、その理由は、アトムの各コピーは、そのノードに対しては一貫した状態であるからである。上述のように、トランザクションノードがアトムを変更した時はいつでも、ノードは、変更されたアトムをそのアトムのコピーを含む全ての他のノードに複製する。トランザクションノードB及びCが各々そのアトムのコピーを含みかつトランザクションノードBがそのアトムを変更した場合に、トランザクションノードBは、複製メッセージをトランザクションノードCに送る。トランザクションノードBがトランザクションを処理している間、トランザクションノードCにトランザクション状態メッセージを送ってトランザクションノードBが変更するあらゆるアトムを複製する。トランザクションノードBが図23に示す処理によりトランザクションをコミットした時に、トランザクションノードCは、トランザクションがコミットされたことを示すトランザクション状態メッセージを受信しているはずである。トランザクションノードCは、全てのメッセージは送られた順序で処理されることになるために委任メッセージを受信する前にトランザクションに関連する全てのメッセージを処理することになる。トランザクションノードが異なれば、アトムのコピーは異なる可能性があるが、いずれのトランザクションノード上でトランザクションにより行われた全ての変更も、他のノードがトランザクションコミットされたと分る前に全ての他のノード上にあることになる。システムレベルからトランザクションを見た時に、異なるトランザクションノードは、同期して作動しているのではない。異なるノードにより処理された単一のメッセージの時間は、通信経路の効率及び各トランザクションノードが処理する必要があるメッセージの数の差異のために変わる可能性がある。異なるノードでの処理時間内の差異を考慮すべきである。3つのトランザクションノード、すなわち、ノードA、ノードB、及びノードCを考える。ノードBが、アトムXを変更するトランザクション768を実行し、かつノードCが、アトムXのコピーを有すると仮定する。ノードBでのアトムXが、変更メッセージをノードCに送り、かつノードCが、上述の変更を処理する前に何らかの時間の経過があると仮定する。また、ノードBが、47というコミットシーケンス番号をトランザクション768に割り当てたと仮定する。ノードB上のトランザクションマネージャアトムは、データベースシステム内の全てのノードにトランザクション状態メッセージを送る。また、ノードAが、ノードBから委任メッセージを受信した後に、但し、ノードCがトランザクションの処理を完了する前に、アトムXのコピーをノードCに要求すると仮定する。ノードAは、ノードBからトランザクション状態メッセージを受信して処理する。ノードAの観点からすれば、トランザクション768がコミットされ、ノードBの最高コミットシーケンス番号は、47である。しかし、このタイミングで、ノードCから戻されたアトムは、ノードBでトランザクションにより行われた変更を反映していない。本発明により、ノードC上のアトムXが、ノードAへの送信に向けて自己シリアル化した時に、それは、アトムXのコピーを有する各ノードから最高コミットシーケンス番号を含む。この場合に、メッセージは、ノードCに対してはシーケンス番号97、ノードBに対しては46を含むと仮定する。図22を参照すると、要求側ノードとしてのノードAは、コンテンツをノードCに求める前にアトムXの空のインスタンスを作成する。図22内のアクセシビリティ解析により、ノードAが見た時の各ノードの現在の最高コミットシーケンス番号が得られる。アトムXを有するシリアル化されたメッセージも拡張され、ノードBが見た時の各ノードの現在の最高コミットシーケンス番号が得られる。この比較において、アクセシビリティ解析により、メッセージ内のシリアル化されたコミットシーケンス番号が46であり、一方、Bのローカル最高コミットシーケンス番号は47であると判断することになる。従って、ノードA、現状ではアトムXのシリアル化されたバージョンを使用することができないので、ノードC上のアトムXがオブジェクト完了メッセージを送るのを待たなければならない。コミットシーケンス番号が同じか又はより高い場合に、ノードAは、アトムを処理し続けることができる。上述のように、ノードCがアトムXのシリアル化されたコピーをノードAに送った時に、それは、アトムXの他のコピーに、この場合には、ノードB上のコピーにオブジェクト利用可能メッセージを送っている。ノードB上のアトムXは、オブジェクト確認応答済みメッセージをノードC上のアトムXに送ってノードA上のコピーを自分自身のコピーのそのリストに追加する。次に、ノードB上のアトムXは、変更メッセージをノードA及びCの上のコピーに送ることになる。その間、ノードC上のアトムXは、ノードBからメッセージを処理してノードAに中継する。ノードA上のアトムXは、メッセージを処理して益々それ自体を更新する。ノードC上のアトムXがノードB上のアトムXからのオブジェクト確認応答済みメッセージ及び他のノード上のアトムXの全ての他のコピーを処理した時に、オブジェクト完了メッセージをノードA上にアトムXに送る。本発明により、各トランザクションノードは、ディスク又は他の永続ストレージにあらゆるアトムを転送する必要がなく作動すべきである。これには、各トランザクションノードからの非アクティブアトムの能率のよい除去が必要である。この目標をもたらすために、各ノード内のヘルパークラスは、定期的にサイクルマネージャにより呼び出されるゴミ収集機能を行って、他の作動とは独立して新しいゴミ収集サイクルを開始する。より具体的には、サイクルマネージャは、経年変化サイクルを実行し、それによって前のサイクルで参照したあらゆるアトムは、そのノードのマスターカタログアトム内の最長時間未使用LRUリスト上の最初に移動される。サイクルマネージャは、前のサイクルに関してアクティブである他のいずれのスレッドも確実にないようにする排他的ロックを取得する。サイクルマネージャは、次に、レコードゴミ収集に向けてマーク付けされたテーブルアトムに対してレコードゴミ収集スレッドを開始する。ノードでの現在の記憶量が図5でポインタ70Uにより識別された構成オブジェクトにより定義された指定の量を超えた場合に、ゴミ収集スレッド処理は、最長時間未使用アトムからごく最近使用アトムまでマスターカタログLRUをループする。アトムが1アクティブではない、2現在の経年変化サイクルで参照されていない、3オブジェクト未完了ではない、4ローカルで変更されてアーカイブノードにまだ書き込まれていない、かつ5メモリ常駐アトムがないカタログである場合に、そのアトムをゴミ収集候補に向けて候補と分類する。アーカイブノード内のアトムは、更にディスクにシリアル化されたものでなければならない。ゴミ収集処理により全ての上述の条件が満たされたと判断された場合に、2つの選択肢がある。ノードがアーカイブノードであり、アトムの他のインスタンスが他のノードにある場合に、アトムのコンテンツはパージされる。そうでなければ、アトムは、それ自体を落とすように要求され、それは、これをまず最終試験を作成カタログアトムに問合わせすることによって行う。その試験に合格した場合に、カタログアトムは、候補アトムのそのポインタを消去し、候補アトムは、オブジェクト利用不能メッセージを候補アトムのインスタンスを含む他のノードにブロードキャストし、次に、自己削除する。このループは、作動記憶量が許容限度内になるまでアトム単位で続く。2つの機構は、この処理に関わっているものである。カタログアトムが、分類に向けてアトムを見つけるように求められた時に、カタログアトムは、サイクル参照エントリを現在のサイクル番号に設定する。更に、トランザクションマネージャ、データベース、スキーマ、シーケンス、及びテーブルアトムは、上述のアトム内の方法によりアトムポインタを保持することができ、オブジェクト又はアトムがごみ収集されるのを防止するためにアトム使用カウンタを増分せず済むように現在のサイクルで共有ロックを取得する。図19及び図20は、議長任務を説明するものである。図20に示すように、アトムが作成された時に、作成ノードはアトム議長と指定され、アトムに対してノードの順序付けされたリストを確立する。ノードがアトムを作成した時に、それは、順序付けされたリスト内の唯一のエントリである。リスト内の第1のノードは、議長である。別のノードが後でそのアトムのコピーを要求した時に、選択されたノードは、議長であるか否か問わず、要求側ノードの識別表示を順序付けされたリスト内で自分の直後にいれる。従って、いずれかのアトムの議長と指定されたノードが何らかの理由で非アクティブになった場合に、そのアトムの全ての他のコピーは、ノードの順序付けされたリストを有する。順序付けされたリストを通して見ると、次の議長は、リスト上の第1の残りのトランザクションノードである。トランザクションノードがリスト上になかった場合に、第1の非同期アーカイブノードが指定される。ここで、簡単なデータベースクエリを説明することは、ノード内の異なるノード及びアトムの間の対話を理解する際の手助けとして役に立つと考えられる。トランザクションノードでのデータベース要求エンジンが01944という郵便番号でテーブルメンバ内の全てのレコードを選択するデータベースクエリを受信することを仮定する。トランザクションマネージャアトム及びテーブルアトムはローカルノードに位置し、全ての問合せ処理が完了しており、かつインデックスアトムが、メンバテーブル内のzipフィールドに向けて存在すると仮定する。最初は、図2内のデータベース要求エンジン41は、トランザクションマネージャアトムがトランザクションIDを割り当てる新しいトランザクションを始める指令をトランザクションマネージャアトムに出す。次に、データベース要求エンジンはメンバテーブルに関するテーブルアトムを利用して、インデックスアトムがzipフィールドに向けて存在するか否かを判断する。これらの2つのアトムがローカルノードである場合に、これらの2つのアトムを処理する。そうでなければ、これらのアトムのコピーを他のノードから取得した後に処理が続く。メンバテーブルのテーブルアトムは、対応するテーブルカタログアトムからの情報を利用してインデックスを走査する。それによって指定の郵便番号を有するメンバテーブル内の各レコードを識別するビットマップが生成される。明らかなように、このビットマップは、特定のフィールドに限定することができ、又は複数のフィールドからのインデックスの論理結合の結果とすることができる。次に、得られるビットマップに基づいてループを確立する。ループの各反復に対して、データベース要求エンジンは、レコード内のトランザクションIDで指定されたフェッチレコード方法を処理するためにテーブルアトムの呼び出しを出す。テーブルアトムは、レコード状態アトムが管理するレコードIDの最大数に対応する定数でレコード番号を割ることによってレコードアトムに関連する適切なレコード状態アトムを選択する。次に、テーブルアトムは、トランザクションID及び識別されたレコード番号を使用してフェッチ方法を選択されたレコード状態アトムに使用する。マルチバージョンレコードに対して、レコード状態アトムは、あらゆるレコードバージョンをループして、正しいバージョン及び適切なポインタが対応するデータアトムを見つける。レコード状態アトムは、レコードを指示してその検索を可能にするデータアトム番号でそのデータアトムを呼び出す。この処理が完了した時に、データベース要求エンジンは、ユーザに指定の郵便番号を有する全てのレコードを説明するレコードセットを供給する。要約すると、本発明により構成されるデータベース管理システムは、エラスティックな拡張性のあるオンデマンド分散データ処理システムを提供することが当業者に明らかであろう。システムは耐故障性であり、かつ高度な利用可能性を有する。それは、プラットフォーム独立型であり、アトミマック性、一貫性、独立性、永続性があるデータベースになるように作動する。更に、高速通信経路を必要とせずにインターネットで作動させることができ、広い地理的領域にわたって実施することができるトランザクション処理に向けて適合される。本発明は、以下の特徴の1つ又はそれよりも多くを実施することによって全ての上述の目的を達成する。本発明は、データベースをピアツーピアで複製する分散型オブジェクトに分解する。各トランザクションノード及びアーカイブノードは、どのアトムがローカルでメモリ常駐であるべきであるかを判断する。カタログアトムは、位置を様々なアトムのローカルコピー及びリモートコピーまで追跡し、これらのコピーがメンバであるカタログを識別する。更に、各ノードは、地理的に分散したシステムを可能にするアトムのコピーを要求する複数のノードのうちの最良のものを判断することができる。本発明は、ある一定の実施形態に関して開示したものである。本発明から逸脱することなく多くの修正を開示した装置に行うことができることは明らかであろう。従って、全てのかかる変更と修正を本発明の真の精神及び範囲に該当するように網羅することが添付の特許請求の範囲の意図である。