[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008533564A - データ管理のための方法および装置 - Google Patents

データ管理のための方法および装置 Download PDF

Info

Publication number
JP2008533564A
JP2008533564A JP2007556705A JP2007556705A JP2008533564A JP 2008533564 A JP2008533564 A JP 2008533564A JP 2007556705 A JP2007556705 A JP 2007556705A JP 2007556705 A JP2007556705 A JP 2007556705A JP 2008533564 A JP2008533564 A JP 2008533564A
Authority
JP
Japan
Prior art keywords
data
channel
access system
key
database
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.)
Pending
Application number
JP2007556705A
Other languages
English (en)
Inventor
シャロン バルカイ,
ギラド ズロトキン,
アヴィ ヴィグデル,
ニル クラー,
ヤニヴ ロメム,
アエレト ショメル,
イリス カミネル,
ロニ レヴィ,
ジーヴ ブロウドゥ,
イリア ギルデルマン,
Original Assignee
ゼラウンド システムズ リミテッド
ゼラウンド システムズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ゼラウンド システムズ リミテッド, ゼラウンド システムズ インコーポレイテッド filed Critical ゼラウンド システムズ リミテッド
Publication of JP2008533564A publication Critical patent/JP2008533564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

Landscapes

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

Abstract

改善されたアクセシビリティ、完全性、スケーラビリティ、および他の特徴を提供するために、データ格納からデータ処理を切り離すデータアクセスシステム。システムは:各々独立にアクセス可能な仮想パーティションに配列されるデータベースユニット、複数のデータ処理ユニット、および仮想パーティション間でデータ処理ユニットを交換し、それによってデータ処理容量をそれぞれの仮想パーティションに割り当てるための交換網を含む。
【選択図】 なし

Description

本発明は、データ管理のための方法または装置に関し、さらに詳しくは、分散アーキテクチャを使用するそのような方法または装置に関するが、それに限定されない。
分散データリポジトリ
最もミッションクリティカルなデータリポジトリは、データネットワークによって相互接続された幾つかのコンピューティングサーバで実行される分散システム、つまり分散データリポジトリとして構築される。分散データリポジトリの例として、ファイルシステム、ディレクトリ、およびデータベースがある。ミッションクリティカルなデータリポジトリは、主として高い可用性および高いスケーラビリティをもたらす分散システムとして構築される。
1.高い可用性は、単一のコンピューティングサーバの障害により、各々および全部のデータ要素を含むデータリポジトリの全体としての可用性が損なわれないようにもたらされる。
2.高いスケーラビリティは、2つの異なる次元で、すなわち(1)データの量、および(2)読出し/書込みトランザクションレート(スループット)でもたらされる。いずれの場合も、より多くのデータ量および/またはより高いトランザクションレートをサポートするために、より多くのコンピューティングサーバをシステムに追加することができれば、分散データリポジトリは「高度にスケーラブル」である。ミッションクリティカルな分散データリポジトリのスケーラビリティは「オンラインスケーラビリティ」をも必要とし、それは、システムがデータ管理サービスを提供し続けながらスケーリングすることができることを意味する。
実時間事象処理
分散データリポジトリが、実時間事象処理を実行するデータアプリケーションを提供するときに、分散データリポジトリは高い応答性をサポートすることも期待される。
3.高い応答性は、各読出しおよび各書込みトランザクションが予め定められた時間量内に非常に高い確率で完了することが保証されるように、実時間データリポジトリにもたらされる。実時間データリポジトリでは、高可用性およびオンラインスケーラビリティ要件は、障害時およびスケーラビリティ事象中に、システムの連続的な高応答性を維持することも期待される。
実時間事象処理データアプリケーションの例として、テレコム呼制御、移動電話ホームロケーションレジストラ(HLR)、インターネットマルチメディアシステム(IMS)、ホームサブスクライバサーバ(HSS)、オンラインバンキングおよびトレーディングシステムがある。
ミッションクリティカルな実時間データリポジトリシステムは、可用性が高く、スケーラビリティが高く、かつ応答性が高いことが期待される。これらの要件の組合せをサポートすることは、非常にやりがいのある課題である。応答性要件は、要求される時間量内にトランザクションが完了することを確実にするために、トランザクション用の専用コンピューティング資源を割り当て、かつ振り向けることを示唆するかもしれない。この戦略は、応答性に悪影響を及ぼすので、典型的なパイプラインおよび時分割処理スケジューリングによるトランザクションレートを加速させる効率を低下させる。
他方、高可用性要件は一般的に、高可用性ストレージデバイス(例えばRAID−独立ディスクの冗長アレイ)に全てのミッションクリティカルなデータ項目を格納することを示唆する。それは、全ての書込みトランザクションがコミットされ完了する前に、それをディスクに書き込む必要があることを意味する。さもなければ、書込み演算素子が故障した場合に、データが利用不能になる。この戦略は、多数のCPUを持つ大型コンピューティングサーバで実行されるときでさえ、達成されるトランザクションレートを低減する(SMP−対称型多重処理)。
多くの場合、ミッションクリティカルなデータリポジトリは、読出し/書込みトランザクションのために幾つかの異なるコンピューティングエンティティ(「クライアント」)によって同時にアクセスされ、したがって分散データリポジトリはまた、システム全体の一貫性を提供することも必要である。全てのクライアントの観点から各データ要素値の変化の順序が同一である場合、データリポジトリは「一貫性がある」(または「順序一貫性がある」)とみなされる。
書込みトランザクションを実行する多数の並行クライアントをサポートする分散データリポジトリのほとんどの実現において、一貫性の要件は、トランザクションレートに関するシステムスケーラビリティに対する制限因子でもある。これは、書込みトランザクションをシリアル化する必要があり、かつ読出しトランザクションを一般的に、保留中の書込みトランザクションが完了するまで遅延しなければならないからである。読出し/書込みトランザクションのシリアル化は一般的に、システム内のデータの編成の仕方のため(例えば同一ディスク上に、同一メモリ内に、等)、異なるトランザクションが異なるデータ要素にアクセスするときにも行なわれる(つまり独立トランザクション)。
「全共有」分散キャッシュコヒーレンシアーキテクチャ
従来の分散データリポジトリ(例えばOracle Real Application Clusteringおよびその他)は、高可用性ストレージを使用して(一般的にRAID技術を使用して)、ミッションクリティカルなデータを格納しながら、データのメモリ内コピーのコヒーレントローカルキャッシュを維持する。この「全共有」分散キャッシュコヒーレンシアーキテクチャは、柔軟性のあるアクティブ−アクティブN+M高可用性を提供することができるので、全てのコンピューティングノードを利用して、全てのデータ処理負荷を共有することができる。1つまたはそれ以上のノードが故障した場合、存続するノードを利用して、故障したノードによって取り扱われたデータ処理を引き継ぐことができる。
「全共有」分散キャッシュコヒーレンシアーキテクチャを図1に示す。該アーキテクチャは、読出しトランザクションレートのスケーラビリティを提供することができる。つまり、システムにより多くのノードを追加すると、読出しトランザクションレートを高めることができる。しかし、「全共有」分散キャッシュコヒーレンシアーキテクチャは一般的に、全てのローカルキャッシュ間で各書込みを調整する必要性のため、書込みトランザクションレートスケーラビリティが無く、または低下する場合さえあるという欠点がある。したがって、システムに追加されるノードが多いほど、全てのローカルキャッシュの間でキャッシュコヒーレンシを維持するために、各書込みトランザクションをコミットし完了するまでにかかる時間が長くなる。書込みトランザクションのコミットおよび完了におけるこの遅延の増大のため、トランザクションの大部分が書込みトランザクションである場合、「全共有」分散キャッシュコヒーレンシアーキテクチャは、実時間トランザクション処理を必要とするアプリケーションをサポートするには適さなくなる。大きい書込みトランザクションレートが存在する場合には、応答性要件を満たすことができず、上述した実時間事象処理アプリケーションは高い書込みトランザクションレートを有することが一般的であるので、これは問題となる。したがって、「全共有」分散キャッシュコヒーレンシアーキテクチャは、大規模に展開される場合にはそのようなアプリケーションには適さない。
「無共有」データパーティショニングアーキテクチャ
他の分散データリポジトリ(例えばIBM DB2 UDBおよびMySQL)は、図2に示すような「無共有」データパーティショニングアーキテクチャを使用する。無共有アーキテクチャでは、分散データリポジトリシステムは、幾つかの独立分散データリポジトリサブシステムにパーティション化され、各々がデータの異なる部分を管理する。「無共有」データパーティショニングアーキテクチャでは、各パーティションを「全共有」分散キャッシュコヒーレンシサブシステムとして表示することができ、各々がそれ自体の高可用性ストレージを持つ。
「無共有」データパーティショニングアーキテクチャは、システムが有する独立パーティションが多いほど、非ブロッキング方法で同時に実行できる異なるパーティションへの書込みトランザクションが多くなるので、書込みレートスケーラビリティの問題を克服する。したがって、書込みコミット応答性もそのようなアーキテクチャによって充分に取り扱うことができる。
「無共有」データパーティショニングアーキテクチャの鍵は、コンピューティング資源のパーティショニングがデータパーティショニングに緊密に結合されていることである。これは、コンピューティング資源が各データパーティションに静的に割り当てられることを意味する。システムの書込みレートが高くなったときに、システムをスケールアップする唯一の方法は、システムをより多数のパーティションに再分割し、新しいパーティションにより多くのコンピューティング資源を割り当てることである。このスケーリングプロセスは一般的にパーティション間のデータの再分散を必要とし、応答性の高いオンラインデータベースサービスを提供し続けるシステムの能力を害することなく実行することはできない。したがって、再パーティショニングは一般的に、システム全体の計画ダウンタイムを必要とする。したがって、オンラインスケーラビリティは「無共有」データパーティショニングアーキテクチャでは達成することができない。さらに、「無共有」アーキテクチャの潜在的な同時並行性を完全に利用するためには、クライアントアプリケーションは一般的に、データがパーティション化される方法を知っている必要があり、それは再パーティショニング事象がクライアントアプリケーション自体の変更をも必要とし得ることを意味する。これは、「無共有」アーキテクチャの管理および保守を非常に高価にする。
「メモリ内」データリポジトリアーキテクチャ
より良い応答性をもたらし、かつより良い全体的トランザクションレートをもたらすために、トランザクション待ち時間を低減することに重点を置いた、他のデータリポジトリアーキテクチャが出現した。これは、単一の機械の1つの充分に大きいメモリ内に全てのデータを維持し、かつ全てのデータベース動作をこのメモリ内で直接実行することによって、行なわれる。コンピュータ作業メモリにアクセスする待ち時間は、ディスク等のストレージデバイスにアクセスするより数桁短縮することができる。したがって、メモリ内の全データを管理することにより、該データリポジトリはずっと短いトランザクション待ち時間を獲得し、したがって、より高いトランザクションレートをも獲得する。
ミッションクリティカルなメモリ内データリポジトリは一般的に、メモリ内データがローカルネットワークを介して複製インスタンス間で連続的に同期化されるように(「全共有」アーキテクチャのキャッシュコヒーレンシ機構の場合と同様に)、システムを2つ以上の同一インスタンスに複製している。ネットワークベースのデータコミットは、書込みトランザクション完了の待ち時間を増大し、したがって書込みトランザクションレートをも低下させる。しかし、ネットワークベースのデータ同期化は耐障害性を可能にする。
上記の変形として、冗長性のために2つ以上のデータリポジトリを設け、リポジトリ間で更新を行なうことが可能である。
図3を参照すると、耐障害性を持つメモリ内リポジトリが図示されている。
メモリ内データリポジトリは、単一のコンピューティングサーバによって提供される容量および書込みトランザクションレートを超えてスケーリングすることはできない。「メモリ内」データリポジトリシステムの容量および/または書込みトランザクションレートをスケーリングする唯一の方法は、コンピューティングシステムにメモリを追加すること、あるいはコンピューティングシステムのメモリ容量が限度まで使用し尽くされた場合には、システムをより多くのメモリおよびより多くのCPU(つまり、より大型のSMPサーバ)を持つより大型のコンピューティングシステムに移すことである。両方のスケーラビリティ戦略はどちらもシステムの計画ダウンタイムを必要とし、したがって高可用性およびオンラインスケーラビリティ要件に適合しない。容量および書込みトランザクションレートはどちらも、単にコンピューティングサーバを追加するだけではスケーリングすることができない。
メモリ内データリポジトリは一般的に、最大限の性能および短い待ち時間を達成するために、アプリケーションおよびデータベースのコロケーションを必要とする。データベースは一般的にCPU毎に価格設定されるが、CPUはデータベース専用ではなく、アプリケーションにも使用されるので、これはデータベースの実際のコストを引き上げる。したがって、CPUおよびメモリ資源を使用する実際のアプリケーションは、データベースの実際のコストパフォーマンスを著しく低減させる。他方、メモリ内データベースおよびアプリケーションを別個のボックスに分離すると、データベースで使用されるメモリの最大限の利用が可能になるが、最初にメモリ内データベースを使用することによって獲得される性能がしばしば低減される。
したがって、上記システムの利点を結合しかつ欠点を回避するシステムの必要性が広く認識されており、かつそれを手にすることは非常に有利であろう。
本発明の1態様では、
各々独立にアクセス可能な仮想パーティションに配列されるデータベースユニットと、
複数のデータ処理ユニットと、
仮想パーティション間でデータ処理ユニットを交換し、それによってデータ処理容量をそれぞれの仮想パーティションに動的に割り当てるための(1つまたはそれ以上の相互接続されたスイッチングユニットを結合した)交換網と
を備えたデータアクセスシステムを提供する。
好ましくは、各データベースユニットは、それぞれのネットワークチャネルとして独立にアクセス可能である。
該システムは、データにハッシュプロセスを実行するためのハッシュユニットを備えることができ、その場合、データは、ハッシュプロセスの結果を介して、それぞれのデータベースユニットに割り当てられる。
好ましくは、データは1つまたはそれ以上のテーブルの集合の形で割り当てられる。好ましくは、各テーブルは、一次キーおよび/または1つもしくはそれ以上の二次キーを有するレコードの集合の形で割り当てられる。ハッシュプロセスは、キーの1つ、ここではテーブルの先頭キーに対して実行される。テーブルの先頭キーは、2つ以上のフィールドを意味する複合キーおよび/または非一意キーおよび/または外部キーをはじめ、任意のキーとすることができる。
好ましくは、データは、先頭キーおよびおそらく1つまたはそれ以上の二次キーを有するレコードの形で割り当てられ、その場合、各レコードは、一次アドレス、先頭キーに基づく「一次ハッシュ」、および二次ハッシュと呼ばれる二次キーに基づくおそらく1つまたはそれ以上の二次アドレスをも割り当てられる。
2つ以上のテーブルが同じ先頭キーを共有することができる。一般的に、そのような先頭キーは外部キーであってもよいが、これは不可欠ではない。その結果、一次ハッシュアドレスは、同じ一次キーを共有する異なるテーブルの全てのレコードに対して同一であり続ける。したがって、必要な場合には、レコードを単一のデータエンティティとして管理することもできる。
2つ以上のテーブルが1つまたはそれ以上の二次キーを共有することもでき、したがって異なるテーブルのレコードが二次ハッシュアドレスを共有することもできる。
システムは、二次アドレスを対応する一次アドレスに解決する(resolving)ためのレゾリューションユニット(resolution unit)を備えることができる。
好ましくは、レゾリューションユニットは少なくとも1つのルータを含む。システムの高可用性を確実にするために、バックアップルータを設けることもできる。1つのルータの故障後に、データ要素が二次アドレスを使用して利用可能であり続けるように、残りのルータが依然として二次アドレスから一次アドレスへの解決を取り扱うことができることを確実にするには、1つのバックアップルータだけで充分である。
二次キー解決(secondary key resolution)、つまりルーティングは、二次キーが一意であるか否かによって、二次キーを1つまたはそれ以上の一次キーにマッピングする内部インデックステーブルをシステムに維持させることによって、行なうこともできる。この内部インデックステーブルは、二次キーをインデックステーブルの先頭キーとして使用して、全ての仮想パーティションにわたってハッシングされる。そのような場合、二次キーの一次キーへのルーティングは、いずれかの他のテーブルが読み出されるのと同様の仕方でインデックステーブルを読み出すことによって行なわれる。
該システムは、データ処理ユニットの故障後に、システムが依然として全てのデータにアクセスすることができるように、全ての仮想パーティションが幾つかのデータ処理ユニットによって格納されかつ管理されるように構成することができる。
好ましくは、各仮想データパーティションは奇数個のコピーを有する。奇数個は、バージョン間の多数決が一般的に働くことを確実にする。好ましくは、書込みおよび読出し動作を含め、全てのデータ処理は過半数に基づくグループ決定によって実行され、例えば幾つかのデータ処理ユニットの故障のため、各仮想パーティションのコピーのマイノリティが失われた場合でさえも、システムはデータへの不断のアクセシビリティを提供し続けることができる。マイノリティの最大サイズは、システムの耐障害性のレベルである。例えばシステムが各仮想データパーティションに5つのコピーを有する場合には、システムは、各読出しおよび書込みトランザクションに対する多数決を喪失することなく、各仮想データパーティションのコピーを最大2つまで喪失することができる。したがって、システム内の各データ要素のアクセシビリティを喪失することなく、最高2つまでのコピーを喪失することができる。
システムは、競合する同時並行書込み動作間の調停を行なうリーダまたはコーディネータとして、データ処理ユニットの1つを各仮想パーティションに動的に割り当てるための選定機能を含むことができる。
システムは、仮想パーティションをデータ処理ユニットに動的に割り当てるための選定機能を含むことができる。
システムは、第1データ処理ユニットの故障後に、仮想データパーティションの紛失コピーが残りのデータ処理ユニットの全部または一部に再割当てされるように、トリガされる自己回復機構を含むことができる。その結果、システムの耐障害性は、その目標レベルに戻る傾向がある。
9が5つ並んだ数字(99.999%)の可用性は、キャリアグレードのシステムの典型的な要件である。現在、大規模システムの場合、基礎を成すデータ処理ユニット自体が各々99.9%の可用性を持ち、かつ自己回復機構が数分以内にトリガされることを前提として、各データレコードまたは仮想パーティションの3つのコピーがあれば、一般的に充分である。99.999%レベルを超える超高可用性の場合、かつ/または巨大システムの場合、5つのコピーがあれば充分である。特に明記しない限り、本書で使用する全ての科学技術用語は、本発明が属する技術分野の通常の熟練者によって一般的に理解されるのと同じ意味を有する。本書に提示する材料、方法、および実施例は単なる例示であって、限定の意図は無い。
本発明の方法およびシステムの実現は、特定の選択されたタスクまたはステップを手動的に、自動的に、またはそれらを組み合わせて実行または完遂することを含む。さらに、本発明の方法およびシステムの好適な実施形態の実際の機器および設備では、幾つかの選択されたステップをハードウェアによって、またはいずれかのファームウェアのいずれかのオペレーティングシステムにおけるソフトウェアによって、またはそれらを組み合わせて実現することができる。例えば、ハードウェアとしては、本発明の選択されたステップは、チップまたは回路として実現することができる。ソフトウェアとしては、本発明の選択されたステップは、いずれかの適切なオペレーティングシステムを使用するコンピュータによって実行される、複数のソフトウェア命令として実現することができる。いずれの場合にも、本発明の方法およびシステムの選択されたステップは、複数の命令を実行するためのコンピューティングプラットフォーム等のデータプロセッサによって実行されると記載することができる。
図面の簡単な記述
本明細書では本発明を単に例示し図面を参照して説明する。特に詳細に図面を参照して、示されている詳細が例示として本発明の好ましい実施態様を例示考察することだけを目的としており、本発明の原理や概念の側面の最も有用でかつ容易に理解される説明であると考えられるものを提供するために提示していることを強調するものである。この点について、本発明を基本的に理解するのに必要である以上に詳細に本発明の構造の詳細は示さないが、図面について行う説明によって本発明のいくつもの形態を実施する方法は当業者には明らかになるであろう。
図1は、先行技術の全共有分散キャッシュコヒーレンシアーキテクチャを示す。
図2は、データが異なるデータノードにパーティション化され、各パーティションが全共有分散キャッシュコヒーレンシとして管理される、先行技術の無共有アーキテクチャを示す。
図3は、全てのデータがメモリ内に維持され、異なるコンピューティングユニットの2つ以上のメモリの間で完全に複製され、かつ同期化される、先行技術の耐障害性メモリ内データリポジトリアーキテクチャを示す。
図4は、仮想パーティションとコンピューティングユニットとの間の動的マッピングのために交換チャネルネットワーキングが使用される、本発明の好適な実施形態に係るアーキテクチャを示す簡略図である。この簡略化された事例では、仮想パーティションは複製されず、各コンピューティングユニットが1つまたはそれ以上の仮想データパーティションの単一のコピーを格納かつ管理するように、コンピューティングユニットと仮想パーティションとの間に1対多数の関係が存在することができる。
図5は、図4のアーキテクチャを示す簡略図であるが、ここではデータ複製を有するので、コンピューティングユニットとデータ複製との間に多数対多数の関係が存在する。各コンピューティングユニットは1つまたはそれ以上の仮想データパーティションを格納かつ管理し、各データパーティションは3つのコンピューティングユニットによって格納かつ管理される。
図6〜8は、本発明の好適な実施形態に係る階層ベースの仮想パーティションを使用して表わすことのできる、階層状のデータ編成のためのツリー構造を示す。
図9は、本発明の好適な実施形態に係るパーティショニング手順を示す簡略フローチャートである。
図10Aおよび10Bは、2つのレベルのサブチャネルを有するチャネルを示し、かつさらに、本発明の好適な実施形態に係るチャネル階層内のマイクロリポジトリの割当てを示す。
図11および図12Bは、仮想パーティションが本発明の好適な実施形態に係る階層ベースである、図4のアーキテクチャの部分を示す簡略ブロック図である。
図12Aは、本発明の好適な実施形態を使用する3フェーズコミット書込み動作を示す簡略フローチャートである。
図12Cは、本発明の好適な実施形態に係る障害復旧動作の簡略フローチャートを示す。
図12Dは、本発明の好適な実施形態に係る自己回復動作の簡略フローチャートを示す。
図13および14は、本発明の好適な実施形態に係る、自己回復機構の一部としてのサーバおよびデータのマイクロリポジトリの再マッピングのブロック図である。
図15は、本発明の好適な実施形態に係る、チャネル交換網グラフ兼マルチキャストスパンニングツリーである。
図16は、顧客機器を示す本発明の好適な実施形態に係るネットワークの一部のブロック図である。
図17および18は、本発明の好適な実施形態に係る分散チャネルハッシュ実現を示すブロック図である。
図19および20Aは、本発明の好適な実施形態に従って、二次キーを使用してデータのマッピングをいかに実行することができるかを示すブロック図である。
図20Bは、3部および5部構成のストレージならびに2つの異なる可用性レベルの場合のデータストレージユニットXDBの数に対する1秒当たりの演算実行回数による性能および可用性を示すグラフである。
図21および22は、本発明の好適な実施形態に従ってプロセス状態をいかに維持することができるかを示すブロック図である。
図23は、本発明の好適な実施形態に係るプロセス状態の維持のための状態データベースの使用を示すブロック図である。
図24は、チャネルがグループ毎に切り換えられる、本発明の好適な実施形態を示す簡略図である。
本発明の実施形態は、マルチキャストドメインネットワーキングを使用して分散データリポジトリを構築するための装置および方法を含む。本発明の実施形態のデータリポジトリは、データパーティショニングをコンピューティング資源パーティショニングから切り離すことを含む。そのようなアーキテクチャの利点は、保証された応答性、高可用性、高スケーラビリティ、および動的オンラインスケーラビリティをもたらすことである。無共有アーキテクチャと同様のシステムがもたらされるが、データを一種のグループアドレスであるネットワークチャネルにマッピングすることによって、物理的パーティションの代わりに、仮想パーティショニングが使用される。次いで、交換網アドレス指定管理およびルーティングを使用することによって、ネットワークチャネルはコンピューティング資源に動的にマッピングされる。その結果により、データパーティショニングがコンピューティング資源の割当てから切り離される。データ処理はデータストレージから切断され、提供することのできる仮想チャネルの数は、ネットワークアドレス指定空間のみによって制限される。データ処理資源は自由に再割当てすることができる。
1実施形態では、データを検索するために使用されるアドレス指定空間は、単一のデータレコードに対し複数のアドレスを含み得、一次キー、二次キー、または追加キーのいずれかを使用してデータを突き止めることができる。
下述する実施形態では、「ネットワーク内」データリポジトリアーキテクチャについて記載する。該アーキテクチャは、以下で詳述するように、分散アーキテクチャに勝る「全共有」、「無共有」、および「メモリ内」の利点を組み合わせながら、各ソリューションの欠点を回避する、分散データリポジトリシステムの構築を定義する。該アーキテクチャは、上述した「メモリ内」アーキテクチャの応答性を有する。同時に、「ネットワーク内」アーキテクチャは上述した「全共有」アーキテクチャの対称的負荷均衡およびN+M高可用性を有するが、システムのスケーラビリティおよび応答性を制限するブロッキング要素は無い。
加えて、本書に記載する「ネットワーク内」アーキテクチャは、上述した「無共有」アーキテクチャの非ブロッキングデータパーティショニング属性を有する。しかし、以下に説明するように、明示的データパーティショニングを行なう必要も、あるいは異なるデータパーティションの間で明示的コンピューティング資源割当てを行なう必要も無く、したがってシステムは、演算素子間の真に高応答性の動的負荷均衡を達成する。
本発明による装置および方法の原理および作用は、図面および付随する説明を参照してより十分に理解されることができる。
本発明の少なくとも1つの実施形態を詳しく説明する前に、本発明は、その適用において、下記の説明において示されるか、または、図面によって例示される構成要素の構成および配置の細部に限定されないことを理解しなければならない。本発明は他の実施形態が可能であり、または、様々な方法で実施または実行されることができる。また、本明細書中で用いられる表現法および用語法は記述のためであって、限定であると見なしてはならないことを理解しなければならない。
ここで、図4を参照すると、本発明の第1の好ましい実施形態の簡略図が示されている。データアクセスシステムは、各々独立にアクセス可能な仮想パーティションに配列されるデータベースユニットと、複数のデータ処理ユニットとを備える。前記仮想パーティション間で前記データ処理ユニットを交換し、それによってデータ処理容量をそれぞれの仮想パーティションに動的に割り当てるためのスイッチングユニットがさらに提供される。より具体的には、図4において、データパーティション401.1...401.Mは、チャネル1...M上にマッピングされる。コンピュータノード403.1〜403.Kは、各々メモリを備え、そして格子型のネットワークが設定されるようにチャネルへの交換を介して接続される。
図4は、交換チャネルネットワーキングを使用して仮想パーティションとコンピューティングユニットとの間の動的マッピングを行なうアーキテクチャを示す。この簡略化された事例では、仮想パーティションは複製されず、コンピューティングユニットと仮想パーティションとの間に1対多数の関係が存在し得、各コンピューティングユニットは、1つまたはそれ以上の仮想データパーティションの単一のコピーを格納かつ管理する。
図4に示す分散データリポジトリアーキテクチャでは、データおよび処理能力の編成は、それが非ブロッキングであり、したがってメモリ内の独立読出し/書込みトランザクションのサービス提供の同時並行性が最大になる一方、比較的高レベルの応答性、一貫性、および比較的容易なスケーラビリティが提供されるように行なわれる。
上記の利点は、次のことによって達成される。
1.データパーティショニングをコンピューティング資源パーティショニングから切り離す。その結果、「全共有」零管理スケーラビリティと結合されるように、「無共有」非ブロッキング同時並行性が達成される。
2.メモリ内のデータを管理し、それによって上述した「メモリ内」アーキテクチャを達成する。
データパーティションおよびコンピューティング資源パーティションの切り離しは、交換チャネルネットワーキングを使用し、かつ、データパーティショニングが静的にネットワークチャネルにマッピングされる一方、コンピューティング資源をこれらのネットワーキングチャネルに動的に割り当てることができるように、本書でチャネルと呼ぶ中間ネットワーキング構造を形成することによって行なわれる。したがって、1つまたはそれ以上のチャネルに割り当てられた各コンピューティングサーバは、そのメモリ内でそのチャネルにマッピングされた全てのデータを維持する。
コンピューティングサーバとチャネルとの間のマッピングは1対多数である必要はなく、多数対多数であってもよい。したがって、幾つかのコンピューティングサーバを同一チャネルに割り当てることができ、データパーティションはメモリ内で複製され、同一チャネルに割り当てられた全てのコンピューティングサーバの間で同期化される。
ここで、図5を参照すると、複製を持つコンピューティングパーティションからのデータの切離しを図解するために、図4の実施形態がもう少し詳細に示されている。図4と同一である部分には同一参照番号が付与されており、同一実施形態の理解に必要である場合を除き、それについて再度言及することはしない。交換チャネルネットワーキングは、データパーティションのいずれかを必要に応じて動的にコンピュータノードのいずれかに接続することを可能にする。
図5は、図4と同じ基本的アーキテクチャを有するが、データ複製が提供されるという点において異なる。データ複製は、コンピューティングユニットとデータ複製との間の多数対多数の関係を可能にする。各コンピューティングユニットは1つまたはそれ以上の仮想データパーティションを格納かつ管理し、各データパーティションは例えば3つまたは5つのコンピューティングユニットによって格納かつ管理される。
次の要素は図5の実施形態を構成する。
中間ネットワーキングチャネルを使用し、交換チャネルネットワーキングを通して独立デュアルマッピングを実現することによって、データパーティションをコンピューティングパーティションから切り離す。
a.データパーティション401.1〜401.mとベースネットワーキングチャネル1...チャネルMとの1対1の静的マッピング。
b.コンピューティングサーバ403.1...403.kとチャネル(チャネル1...チャネルM)との多数対多数の動的マッピング。
2.チャネル割当てのワイヤ速度応答性および実時間再構成を確保するように、標準パケットネットワーキングを推進するために、ネットワーキングチャネリング方法が提供される。
3.分散データ管理プロトコル、ここではデータアクセスプロトコルまたはXDAP。
4.経路制御ネットワーキングのみならず、パーティション化されたインデックステーブルハンドリングを使用するデータインデクシングは、代替的二次インデックスを介して同一データへのワイヤ速度アクセスを確実にする。
図5に示す分散データリポジトリアーキテクチャでは、データおよび処理能力の編成は、それが非ブロッキングとなり、したがって応答性レベル、一貫性、スケーラビリティ、および可用性レベルを損ねることなく、メモリ内の独立読出し/書込みトランザクションのサービス提供の同時並行性が最大になるように行なわれる。
上述した利点は、
データパーティションをコンピューティング資源パーティショニングから切り離し、「無共有」非ブロッキング同時並行性と「全共有」トランスペアレントスケーラビリティとを達成し、ネットワーク越しに複製されたメモリ内のデータパーティショニングを管理し、「メモリ内」応答性および耐障害性を達成する、
ことによって達成される。
本発明のさらなる態様をここで、ほとんどのデータリポジトリに適用可能な階層データパーティショニングの説明として例証する。本発明は、上述したものを含め、それらに限らず、多数のデータ型に適用可能である。データ型の説明に続いて、パブリッシュ−サブスクライブネットワーキングチャネルを使用して、階層データパーティションをいかにしてコンピューティングパーティショニングから切り離すことができるかを説明し、次いで、標準パケットネットワーキングを使用して、そのような「パブリッシュ−サブスクライブ」ネットワーキングチャネルをいかにして実現することができるかを論じる。
チャネルの実現の後に、ワイヤ速度データ同期化、トランザクション完全性、耐障害性、オンラインスケーラビリティ、および自己回復を確実にする、上述したコア分散データ管理プロトコル(XDAP)について記載する。
以下、標準経路制御ネットワーキングのみならず、インデックステーブルパーティショニングハンドリングをも推進するインデクシング方法を説明する。
データパーティショニング階層
ここで、図6を参照すると、ツリー型データ階層601が示されている。データリポジトリ内のデータ要素は通常、「部分」関係または全順序関係を表わすツリー状構造の階層にパーティション化される。例えば、リレーショナルデータベースはスキーマ単位で編成される。各スキーマはテーブル単位で編成される。各テーブルは、異なるキー値を有するレコードのリストを有する。
「部分」(⊃)関係は、そのような階層で明確に定義された関係である。上の例では、「音楽ライブラリ」603⊃「アルバムデータベース」605⊃「ジャズアルバム」607⊃「パワー・オブ・スリー」609⊃「Limbo.mp3」611である。
別の例のファイルシステムを図7に示す。図7の例は、フォルダの階層として編成されたディレクトリシステム701を示す。階層内で、各フォルダは他のフォルダおよび/またはファイルを含む。各ファイルはブロックのリストを含む。
「部分」(⊃)関係は、上記のファイルシステムの例、つまり「ルートディレクトリフォルダ」703⊃「プログラムファイルフォルダ」705⊃「Adobeフォルダ」707⊃「Acrobat6.0フォルダ」709⊃「AcroRd32.exeファイル」711でも明確に定義される。
ここで、図8を参照すると、ツリー構造のさらなる例が示されている。図8において、ディレクトリもまたリストのツリー801として構築され、リストにおける各要素はデータレコードまたはデータレコードのリストのいずれかである。
ツリー801において、データは階層状に編成され、したがって各データ要素は、データリポジトリ内で、例えば「DNSディレクトリ」⊃「.il」⊃「.co.il」⊃「.xeround.co.il」⊃「www.xeround.co.il」で、一意の「座標」を有する。
データ要素の座標は要素を一意に識別し、したがって常に書込みトランザクションの一部として提供される。多くの場合、特定のデータ座標が読出しトランザクションでも提供される。例えばwww.xeround.co.ilドメイン名のIPアドレスを解決するために、ディレクトリクエリ内に特定の座標が提供される。しかし、いくつかの読出しクエリは階層のより上位、例えば「.co.ilの全ドメイン名」を参照し得る。この場合、クエリは、情報が読み出されるサブツリーを「選択する」。
下述する実施形態は、応答性、データの一貫性、トランザクションの完全性、非常に高いスケーラビリティ、動的なオンラインスケーラビリティ、および高可用性を達成しながら、全ての種類のクエリをサポートする分散データリポジトリの骨格を構成するネットワークチャネルの階層に全てのデータ要素をマッピングする、階層ベースのハッシュ関数を使用して、データリポジトリ内のデータおよび処理資源を編成する方法を教示する。
コンピューティングパーティションからのデータパーティションの切離し
構築された分散型階層ベースのハッシュデータリポジトリは、マルチキャストネットワークチャネルの階層を含むので、様々なクエリを様々なチャネルに経路指定することができ、かつ、他方で、異なるコンピューティングサーバが任意の組のチャネルにサブスクライブして、それらの全てのメッセージを受信することができる。以下に、そのようなパブリッシュ−サブスクライブネットワーキングチャネル機構を実現するために使用することができる様々な標準ネットワーキング技術を列挙する。
ここで、図4に戻ると、チャネル自体の中に、「同一チャネルまたはサブチャネル内」を意味する順序「≧」が定義されている。つまりチャネル1≧チャネル1.1≧チャネル1.1.1である一方、チャネル1.1≧チャネル1.2であり、かつチャネル1.2≧チャネル1.1である。
切離しを図9のフローチャートに示し、それは次の構成要素から構成される。
*マイクロ(μ)パーティショニング903:グローバルデータリポジトリは、各々異なる組のチャネルにサブスクライブされた多くの独立マイクロリポジトリ(μリポジトリ905)に静的かつ仮想的にパーティション化される。マイクロリポジトリの数は、数千またはそれ以上とすることさえ可能である。
*ハッシング907:単調階層ベースのハッシュ関数をデータリポジトリ座標に使用して、それらをチャネルにマッピングする。a⊃b⇒h(a)≧h(b)のとき、ハッシュ関数h()は単調である。同時並行性が最大になるように、ソリューションは完全ハッシュ関数(つまりターゲットチャネル間の均一分布)を使用する。ハッシュ関数は実際にグローバルデータリポジトリを多くの独立μリポジトリにパーティション化する。
*複製909:各μリポジトリは、同一の独立したコピーの3部(または5部もしくはそれ以上)構成である。同一μリポジトリの全てのコピーは、同一組のチャネルにサブスクライブされる。以下でさらに詳述するように、トランザクションの完全性、データの一貫性、および高可用性を得るために、過半数原理がクエリ結果に使用される。
*分散およびシャッフル911:μリポジトリのコピーは、コンピューティングサーバに統合される。各μリポジトリはコンピューティングサーバ上の単一のプロセス、スレッド、テーブル、またはサブテーブルである。したがって各コンピューティングサーバは、そのμリポジトリのチャネルにサブスクライブされる。μリポジトリは負荷均衡を最大にし、かつ相互依存性およびブロッキングを最小にするように、コンピューティングサーバ間でよく分散され、シャッフルされる。
ここで、図10Aを参照すると、サブチャネルに分割された一連のチャネルを示す概念図が示されている。したがって、チャネル1はチャネル1.1およびチャネル1.2に分割される。チャネル1.1は次にサブチャネル1.1.1、1.1.2、および1.1.3.に分割される。
ここで、図10Bを参照すると、チャネルおよびサブチャネルに割り当てられたマイクロリポジトリが示されている。複製およびシャッフル原理を適用する例は、サブチャネルにサブスクライブされた各μリポジトリが、そのチャネルより上位の全てのチャネルレベルにもサブスクライブされることに見ることができる。
ネットワーキングチャネリングパブリッシュ−サブスクライブ法
ネットワーキングチャネルはここでは、各サーバがどのチャネルでもメッセージをパブリッシュつまり送信することができるように、パブリッシュ−サブスクライブ機構として提供される。しかし、チャネルにプレサブスクライブされたサーバだけが、そのチャネルにパブリッシュされるメッセージを読むことができる。いずれのサーバも、いずれかのチャネルに/からいつでも動的にサブスクライブかつ/またはサブスクライブ解除することができる。任意のサーバが多くのチャネルに同時にサブスクライブすることができる。
標準パケットネットワーキングを使用してそのようなネットワーキング「パブリッシュサブスクライブ」チャネルを実現するための幾つかの方法を以下で説明する。
分散データアクセスおよび管理プロトコルXDAP
図9に戻ると、「クエリルータ」(またはXDR−データルータ)と呼ばれる分散コンピューティングコンポーネントで、座標ハッシング807が実行される。ここで、図11を参照すると、クエリルータ1101.1...1101.3を使用するネットワークアーキテクチャが示されている。各クエリルータは複数のクエリを同時に処理する。読出し/書込みクエリ/トランザクションを生成する全てのデータリポジトリクライアントをサポートするためにソリューションで必要なだけ多数のクエリルータが存在し得る。各クライアントは、1つまたはそれ以上の特定のクエリルータに対抗するように事前設定される。クエリルータは、彼のクライアントに対し、それが読出し/書込みクエリを受信し、クエリを実行し、かつ次いでクエリの結果値または状態をクライアントに返送するように、データリポジトリを提示する。
クエリルータは、次の一般的にアルゴリズムを使用してクエリを処理する。
それは、先頭キーまたは二次キーから形成されたクエリの座標を使用して、クエリを正しいチャネルにハッシングし、経路指定する。全てのサーバが任意のチャネルに書き込むことができることに注目されたい。しかし、チャネルにサブスクライブされたサーバだけが、そのメッセージを受信する。読出しトランザクションの処理は、書込み(挿入、更新、削除)トランザクションの処理とは異なる。クエリルータは、単一のクエリを幾つかの読出しトランザクション、書込みトランザクション、およびロッキングアクションに変換することができる。クエリルータは、下述するように、そのようなクエリ実行プランまたはアクセスプランを生成し、次いで各々のそのようなトランザクションを実行する。ロッキングアクションは、一般的に知られるように実行され、データベースドメインで使用される。
読出しトランザクション:先頭キーに基づく読出しトランザクションは1つのフェーズ、「スイッチングフェーズ」で行なわれ、そこで読出し要求は正しいチャネルに切り換えられ、それに続いて、手順はそのチャネルにサブスクライブされているμリポジトリを待ち、それら自体の内部データリポジトリに対して読出しクエリを独立に計算し、それらの結果を要求データルータに返送する。読出しクエリの結果に関する充分な情報をμリポジトリから受信した後、データルータは情報を統合し、クエリを計算し、結果をクライアントに返送する。
二次キーに基づく読出しトランザクションは、スイッチングフェーズの前にルーティングフェーズを持つことによって実行される。ルーティングフェーズは二次キーを一次キーにマッピングすることを含み、次いでそれは上述したようにスイッチングフェーズで使用される。ルーティングフェーズはルータを使用することによって達成することができ、あるいはこれは、正しい二次インデックステーブルに対して読出しトランザクションを実行することによって行なうこともできる。二次インデックステーブルは二次キーをオリジナルテーブルの先頭キーにマッピングする。したがって、インデックステーブルの先頭キーはオリジナルテーブルの二次キーであり、そのようなインデックス読出しトランザクションは、上述した1つのスイッチングフェーズにおける任意の先頭キーに基づくトランザクションと同様に行なわれる。ルーティングフェーズがネットワークルータによって実現される場合には、XDRは、二次キーを読出しトランザクションが送信される一意のネットワークアドレスにマッピングする、別のハッシュ関数を使用する。ルータはここで、XDRの観点からだけではなく、二次キーに基づく読出しトランザクションが単一フェーズを必要とするためにも、メッセージを受信してクエリをリダイレクトし、あるいはクエリを正しいチャネルに経路指定する。
書込みトランザクション:書込みトランザクションは、所与のチャネルにサブスクライブされている全てのサーバによって受信される。しかし、書込みトランザクションの分散コミットプロセスは、3フェーズコミットプロトコルを使用して所与のチャネルのメンバの間から選定される特別なコーディネータによって管理される。コーディネータの管理下でひとたび3フェーズコミットが完了すると、コーディネータは書込みトランザクション完了標識をXDRに報告し、それは次いでクライアントに転送される。コーディネータが必要であるのは、異なるソースからの同一データレコードへの同時アクセスを可能にし、しかも同時書込みの事象が試みられた場合にデータ完全性を維持しなければならないからである。
コーディネータの選択に関するさらなる詳細については、後述する過半数ベースのリーダ選定に関する節を参照されたい。
非ブロッキング同時並行処理、順序一貫性、トランザクションの完全性、および耐障害性を達成しながらの書込みクエリおよび読出しクエリの処理について、これから、より詳細に論じる。
書込みトランザクション処理
ここで、図12Aを参照すると、書込みトランザクションを示す簡略フローチャートである。書込みトランザクションは、挿入、変更、または削除トランザクションを含む。挿入トランザクションは常に、それを追加する特定データレコードの完全な座標「C」、つまり先頭キーを指定する。しかし、削除および変更トランザクションは先頭キーを提供しなくてもよい。それらは二次キー値または何らかの他の検索基準を提供することができる。先頭キーが書込みトランザクションの一部として指定されない場合には、XDRはまず最初に、変更または削除する必要のある全てのレコードを見つけ出す読出しトランザクションを実行する必要があり、次いで入手した先頭キー値により書込みトランザクションを実行する。本書の図12Aの説明は、書込みトランザクションのための先頭キーがすでに識別されたことを前提とする。書込み動作が全てのコピーで無事に完了したことを確実にするために、全てのμリポジトリのコピーに3フェーズコミットプロトコルを実行する。コミットプロトコルは、上述の通りコーディネータとなるように選定されたサーバの1つによって調整される。
さらに詳しくは、各チャネルに対し、コーディネータが選定される。コーディネータは任意のトランザクションのコミットを開始する。コーディネータは従属トランザクションをシリアル化する。同時並行読出し、つまり書込みアクセス中に発生する読出しアクセスは一般的に、更新前のレコードのバージョンの使用を完了し、あるいは代替的に、それらは更新後のバージョンを待つ。読出しが更新中に実行された場合、アプリケーションがそのように要求すれば、読出しを失敗させることもできる。また、ひとたび書込みがコミットされ(かつ応答がクエリルータに送信され)ると、新しい読出しは応答として以前のバージョンを受け取らない。
コーディネータは好ましくは単調カウンタを使用して、各チャネルでそれが開始した各トランザクションにマーキングする。3フェーズコミットの第1フェーズは、トランザクションを全ての参加者に送信することである。したがってコーディネータは、トランザクションを全ての参加者に送信する。次のステップは、それらのプレコミットまたはアボート応答を収集することである。原子トランザクションは単一のコーディネータを介して維持され、チャネルのメンバは常に、各トランザクションに関し完全に同期して作業する。したがって、応答は常に同一(3フェーズコミット技術ではプレコミットまたはアボートのいずれか)でなければならない。完全な同期化のために、チャネルメンバは、応答がプレコミットされた(つまりプロトコルフェーズのあるマージングが発生した)ときに、トランザクションを即座に局所的にコミットすることができる。過半数の肯定応答(プレコミットまたはアボート)の受信後、コーディネータは適切な応答をクエリルータに返却することができる。
書込み動作の途中でコーディネータに障害が発生した場合、復旧を確実にするために、全メンバがトランザクション情報を維持する。チャネルメンバの完全な同期性を維持するために、コーディネータは、全メンバが肯定応答するまで、全メンバにトランザクションを再送信し続ける。例えば肯定応答の欠如後に再送信を繰り返す必要性は、チャネルの障害を示唆しており、障害を反映してチャネルを再編成しなければならないかもしれない。トランザクションについて、および何がうまくいかなかったかについて、コンセンサスが得られると、チャネルメンバ全体の多数決によりコンセンサスおよびしたがって復旧を導くことができるので、それを処分することができる。次いでコーディネータは、トランザクションが合意されかつその全ての情報を処分することができることを全メンバに伝える、通常の3フェーズコミットプロトコルの最終コミットメッセージと事実上同様のメッセージを送信することができる。
ここで、複合トランザクション管理は1組の原子トランザクションに分割され、1つのコーディネータがトランザクション全体に関与する一方、他のコーディネータは原子サブトランザクションを取り扱うことができる。原子サブトランザクションの1つまたはそれ以上に障害が発生した場合、複合トランザクションコーディネータは、完了したかもしれない複合組内の他の原子サブトランザクションをロールバックまたは取り消す役割を果たす。
ネットワークメッセージングを低減するため、かつ同一トランザクションの他の部分に関する情報を非実時間で伝達する必要性のため、「他の部分」情報を他のトランザクションのピギーバックとして送信することもできる。より正確には、各々の通常のトランザクションメッセージは、そのトランザクションより前の、またはそのトランザクションを含め、全てのトランザクションがチャネルによってすでに完全に吸収された最大トランザクションのIDを含む。
そのようなプロトコルは、データベースの原子性(Atomicity)、一貫性(Consistency)、分離(Isolation)、および耐久性(Durability)、つまりACID特性を維持しながら、コーディネータ自体を含め、チャネルのメンバのマイノリティの障害に耐えることができる。データベースシステムのACID特性は、データの安全な共有を可能にする。これらのACID特性無しには、コンピュータシステムを使用して製品を購入する等の日常的な出来事は困難であり、誤りの潜在的可能性が大きくなるであろう。したがって、よくある出来事で、2人以上の人間が所与のコンピュータ化カタログから同じサイズおよび色のセーターを同時に購入しようとした場合に、ACID特性は、商人がこれらのセーター購入トランザクションを相互に重複させないことを可能にし、商人の誤った在庫および勘定収支を防ぐ。上記は書込みアクセスにつながり、上記プロトコルは、書込み動作を制御し続けることができるように、総合スーパバイザがチャネル全体を管理することを確実にする。
上記プロトコルの基礎を成す効果は、メンバの大多数が所与のトランザクションを肯定応答した場合に、オブジェクトの以前のバージョンはこれらの機械から除去されているので、その後の読出しは以前のバージョンを含まなくなることである。その後の読出しは新しいバージョンを有するか、あるいはタイムアウトする。復旧すると、書込みトランザクションは全てのメンバに対して実現されているか、あるいは元の大多数の少なくとも1メンバが依然としてトランザクション内容を有し、それが最終的に現在のメンバで実現されることを確実にすることができる。ひとたびそれが発生すると、読出しはもはやタイムアウトせず、それらはオブジェクトの新しいバージョンを含む。
データレコードの書込みに成功するたびに、現在のレコードの通し書込み番号である一意の「認証」が生成され、プロトコルが正常に動作する限り、レコードの最後の値の認証は全てのコピーに対して同一であることを期待することができる。この認証は、読出しプロセスの一部として値検証に使用される。
読出し処理
クエリの読出し処理は、上記の書込みクエリと同様に、正しいレコードを見つけ出し、次いで求められている情報を出力する必要がある。想起される通り、同一データレコードが2つ以上の場所に存在する。
ここで、データレコードは一般的に、そこからレコードを取得することのできる第1の検索可能フィールドである先頭キー付きで格納される。それは他の検索可能フィールドを持つこともできる。データベースは、先頭キーの使用をハッシングしてレコードの直接アドレス指定を行なうことができるように、構成することが好ましい。
読出しクエリがデータ要素の先頭キーを含む場合、
1.クエリをハッシングして、XDRによって正しいチャネルに切り換えることができる。
2.レコードのバージョンを有する各XDBが、チャネルからクエリを受信する。
3.レコードの内容および最後の書込み動作を示す認証を含め、結果がXDBによって要求XDRに返される。
4.XDRが充分な(過半数で)一貫した結果、つまり同一値および同一認証を受信した後、受信した内容が結果値としてクライアントに返送される。
上述の通り、ここで、2つ以上のフィールドが検索可能である。したがって、特定の番号を見つけ出すために主として名前によって検察するように意図された電話ディレクトリの場合、名前フィールドは一次キーを構成する。しかし、ディレクトリは、必要な場合、逆に探索することも可能であり、名前を探すために番号を入力することができる。この場合、クエリは非先頭キーを含む。
読出しクエリがデータ要素のそのような非先頭キー(それは一次または二次インデックスであり得る)を含む場合には、読出しクエリは、一次キーを提供するために、最初にインデックステーブルと照合される。上記の例では、電話番号は一意であり、したがって単一の結果を導くが、多くのそのようなキーは言うまでもなく一意であるとは限らず、2つ以上の結果が取得されるかもしれない。次いでクエリ処理は、上述の通り、単数または複数の先頭キーを使用して単数または複数のデータ要素を突き止めるように進行する。二次インデクシングについては以下でさらに詳述する。一次キーが取得された場合、それは正しいチャネルを導く。
ここで、検索クエリはキーを全く含まないこともある。読出しクエリがデータ要素の一次キーを含まず、それに対する二次インデクシングも含まない(つまりそれがフラット「検索」クエリである)場合、それは検索を行なう階層の1つまたはそれ以上のレベルを「選択」しなければならない(デフォルトでは全部検索される。それは、ルートディレクトリが選択されていることを意味する)。図6のディレクトリ構造に対して行なわれる、キーではなくむしろ条件を有するクエリの1例は次の通りである。
1.10分より長いジャズトラックを見つけだす(「ジャズアルバム」が選択される)。
2.25歳以下のアーティストのアルバムを見つけ出す(「ジャズアルバム」および「アーティストデータベース」の結合クエリが選択される)。
図6の階層をチャネルの階層に変換するための階層ハッシュ関数マップを図12Bに示す。図12のマッピングでは、図6の構造の全てのデータベースおよびテーブルがsuperチャネル、つまりSuperチャネル1、Superチャネル2等にマッピングされ、所与のテーブル内の全てのデータ要素は、1組のサブチャネルにマッピングされる。例えば、「ジャズアルバム」テーブルはSupperチャネル2.1にマッピングされ、全てのジャズレコードエントリは1組のチャネル2.1.xにハッシングされる。
特定のジャズレコードを指す読出しクエリは、2.1.xチャネルの1つに直接マッピングされる。次いで、データベース内に該レコードが存在する場合には、そのチャネルにサブスクライブされている全てのμリポジトリコピーに詳細が存在する。
「ジャズアルバム」テーブルを「選択」する読出しクエリは、Superチャネル2.1にマッピングされる。探索クエリを受信した各μリポジトリは、それ自体の内部リポジトリに対してクエリを独立に実行し、取得された結果を返す。クエリルータは全ての個別μリポジトリ結果のコピーに過半数の原理を適用し、次いで全ての結果をマージしてクライアントに返送する。
結合データクエリは、一連の原子「選択」トランザクションによって組み合わされる複合トランザクションとして実現される。別々のクエリは一度に1つずつ実行され、複合トランザクションは、結合データクエリにどのような論理が要求されるかに関わらず、1つの選択の結果が次の選択で行なわれるクエリに影響することを確実にするように構成される。
復旧および自己回復
ここで、図12Cを参照すると、それは自己回復の手順を示す簡略図である。上述したシステムは任意の単一の障害に耐えるので、任意の単一の障害ではシステムの可用性および機能性は損なわれない。システムの耐障害性のレベルは、各データレコードのより多数のμリポジトリコピーを使用することによって構成することができる。しかし、ひとたび障害が発生すると、システムはその「耐障害性」レベルの一部を失い、それ以上の障害を切り抜けることができないかもしれない。したがって、要求される耐障害性レベルを自動的に復活させる、「自己回復」と呼ばれる「耐障害性復旧」機構について、これから論じる。
以下で、最初の障害から設定可能な時間量後にトリガされる、耐障害性復旧のための完全に対称的かつ分散型の自己回復機構について記載する。
μリポジトリの障害は、同じチャネルのそのピアによって自動的に認識される。
μリポジトリ障害の検出の後に、次の復旧プロセスが実現される。
1.μリポジトリが属するチャネルの他のメンバは、そのチャネルのリポジトリの1つに障害があることを認識する。チャネルのコーディネータが障害発生体ではない場合には、コーディネータは、欠落したμリポジトリコピーをホストするために、チャネルに新しいサーバを追加することによって、チャネルのメンバの組の変更を開始する。新しく再ホストされたコピーは、チャネルコーディネータによってチャネルと再同期化される。チャネルにおけるその後の書込みトランザクションは、図12Dに記載するように、この変更を反映する。
2.代替的に、障害のあるサーバがチャネルのコーディネータである場合には、チャネルの残りのサーバが、図12Dで上記1に記載したように、チャネルへのサーバの追加を調整しかつチャネルデータの追加を調整する、チャネル用の新しいコーディネータを選定する。
図12Cに記載するように、サーバが故障すると、障害サーバにサブスクライブしている全てのチャネルで復旧プロセスを行なう必要がある。これらのチャネルの幾つかにおいて、障害サーバはコーディネータであった。したがって、復旧プロセスの一部として、チャネルに新しいコーディネータを選定する必要がある。全ての復旧チャネルの復旧プロセスを調整するために、全体的「自己回復」コーディネータが選定され、プレコンパイルされた復旧プランを使用することによって、または必要ならば新しい復旧プランを生成することによって、復旧プロセスを調整する。そのような復旧プランは、図14に記載するように、障害サーバにホストされていた各μリポジトリコピーに対し、残存サーバのうちのどれにそれを効果的に退避させるべきかを指定する、「復旧マトリックス」と考えることができる。このシステムを使用して、障害サーバの損失がそれにホストされていたμリポジトリのデータの可用性に対して与える影響が最小限となるように、データは再均衡化される。
ここで、図13を参照すると、それは7つのカラムB1...B7が7つのサーバを表わす図表である。サーバはそれらの間に35のチャネルC1...C35をホストする。各サーバは、塗りつぶされた欄によって表わされる15のチャネルにサブスクライブされており、各サブスクリプションはホストされているμリポジトリを表わす。したがって、図示するように、7つのサーバは各々15のμリポジトリをホストしている。各μリポジトリは3回コピーされ、35のベースμリポジトリの3倍の全部で105のコピーができ、それらが35のチャネルにマッピングされる。B2とC11との交差部は塗りつぶされており、サーバ2がμリポジトリ11のコピーをホストしており、したがってチャネル11にもサブスクライブされていることを意味する。
ここで、図14を参照すると、それは、例えばサーバNo.3の障害を補償するために、図13の構造をいかに変化させることができるかを示す。サーバB3は故障しているが、黒く塗りつぶされたサーバ3の全てのリポジトリは、他の2つの場所に存在する。復旧プランで、サーバ7を例に挙げると、それは緊急事態のチャネルから「サーバ3ダウン」緊急信号を受信し、次いでそれは3つの新しいμリポジトリ複写プロセスを開始して、チャネル1、3、および4にあるリポジトリを複写し、B3/C1、B3/C2、およびB3/C4で失われたマイクロリポジトリを複写する。内容は、これらのチャネルにサブスクライブされる他の2つのコピーから複製される。同様にサーバ6はチャネル6、8、および10の内容を複写する。サーバ5はチャネル11、15、および18の内容を複写する。サーバ4はチャネル19、22、および26の内容を複写し、次いでサーバ2および1はそれらの間でチャネル30ないし33を共有する。複写されたリポジトリは、より濃い塗りつぶしで示される。
チャネルの実現
上述の通り、チャネルは階層ハッシング図表を実現する。チャネルは、単純化のために、μリポジトリ間の共有メディアと考えることができる。しかし、一般的に、共有メディアは、リポジトリを追加したときにあまりよく対応されない。これは、密度が増加したときに、共有メディアが全てのリポジトリに対し処理圧力を増大するからである。
最も効率的なネットワーキングアーキテクチャは、したがって、相互接続ノードのグラフを開く交換インフラストラクチャ、およびμリポジトリを葉として保持する最小マルチキャストスパンニングツリーを通して実現される。
ここで、図15を参照すると、マルチキャストスパンニングツリーを表わすチャネル交換網グラフの略図である。
アプリケーション転送ノードを有するアプリケーション層交換網を定義することができる。転送ノードは、DHT(分散ハッシュテーブル)実現のランドマークとしても知られる。物理層、リンク層、またはネットワーク層で標準ネットワーク技術のアドレス空間にマッピングするチャネルハッシュ関数を使用することが効率的である。そのような方法は、市販の標準的ネットワーキング機器を介して交換ハッシュグラフを実現することを可能にする。そのようなチャネルハッシュマップは、チャネルの実現のための計算層の折畳みを可能にし、結果的にチャネル内の分散交換ハッシングのワイヤ速度処理を達成することができる。したがって、そのようなハッシュマップの使用は、ハッシュ図表の効率的で高速で費用効率が高くかつスケーラビリティの高い実現を可能にする。
チャネルの標準ベースの実現
ハッシュ階層を維持することができる標準ベースのアドレス空間の例は、以下を含む。
* IETF IP V4またはV6
* ATMF ATM VCI VPI
* IEEE802.D Ethernet(登録商標) dot1QinQ VLAN
* ITUT E.164
標準マルチキャストチャネルインライン登録/サブスクリプションプロトコルをもサポートする標準ネットワーキング環境は、例えば以下を含む。
* IPのためのIGMP
* VLANのためのGARP
* ATMのためのUNI−NNIシグナリング
IEEE MACアドレス等の非階層アドレス空間を選択し、マルチレイヤサブネットネットワークを構成して、チャネルハッシュ図表を実現することも可能である。標準ハードウェアによってワイヤ速度処理をサポートし、かつ汎用交換網インフラストラクチャ内に容易にカプセル化もされる、効率的な実現の例として、汎用公衆MPLSバックボーン上でMartiniまたは同様のトンネルを介してカプセル化されるQ VLANにおけるIEEE dot1Qがある。それを代替的に汎用公衆ATMバックボーン上でLANE/MPOAを介してカプセル化して、マルチサイト実現を提供することができる。
ここで、図16を参照すると、Pスイッチ(P)がプロバイダエッジ(PE)機器につながり、それが次に顧客エッジ(CE)機器につながるネットワーク構成を示す簡略図が示されている。顧客エッジ(CE)機器はIEEE 802 dot1Q VLANを実現し、データストレージを保持する。CPEポートおよびタグに従って、CEは、公衆/専用サービスプロバイダエッジ(PE)機器へのQinQダブルタグ付きアップリンクのトラフィックをハッシングする。PEはポートおよびVLANによるCEアップリンクトラフィックをMPLSでトンネルにハッシングする。トンネルはMPLSの内部IPアドレス空間にハッシングされ、ルート記述子に従ってこれらはMPLSのタギングスキームにハッシングされ、プロバイダ(P)コアスイッチに転送される。Pコアスイッチはトラフィックをタグに従って直接またはさらなるハッシングを通して、分散チャネルの実現を共有する全てのサイトに適合するように、DWDM周波数、TDMタイムスロット、または他のトランスポート機構にハッシングする。標準ネットワーク技術に上述した方法を使用することにより、システムはネットワーク技術内で継承ハッシングを利用することが可能になる。したがって、VLANタグ、IPアドレス、タグスイッチング、時分割または波長分割多重化を使用して、ワイヤ速度で、かつ全ワイヤ容量で、データに直接ハッシュデータキーを提供することができる。
分散ハッシュフローの実現例は次の通りである。
CPEおよびCEストレージエリアの分散ハッシュフロー:
データキー → チャネル → VLANタグ → タグ+ポート → スーパタグ.タグ+アップリンクポート
PEおよびP公衆エリアの分散ハッシュフロー:
アップリンクポート+VLAN → トンネルID → LSP IP接続 → 内部タグ →外部タグ
光伝送基底ハッシュフロー:
外部タグ+ポート → 光波長(WDM)または/および光タイムスロット(SONET)
さらなる詳細については、下述する特定のチャネルの実現に関する節を参照されたい。
ここで、図17を参照すると、様々なハッシュ段階で無限大サイズの高速ストレージネットワークにどのようにチャネル分散ハッシュテーブルを実現するかを示す。図17は分散ディレクトリの実現を示す。分散ディレクトリの実現の場合、クライアントクエリプロトコルはLDAP(軽量ディレクトリアクセスプロトコル)である。
さらに図18を参照すると、本発明の好適な実施形態に係るネットワークレイアウトのチャネルハッシュ実現が図示されている。図18の実現は、顧客エッジ機器による中央のネットワークリングを示す。中央のリングの周囲にデータベースXDBおよびクエリ定式化またはスイッチングユニットXDRがある。
VLan技術およびGVRP登録プロトコルを使用して、アクセスポイントとストレージ要素XDBとの間の分散データベース通信を実現する実現について説明する。
GVRPベースのチャネルの実現
ここで説明する、パブリッシュ−サブスクライブネットワークチャネルを実現するための方法は、非常に効率的なチャネルの実現のために、VLAN技術およびGVRPダイナミック登録技術を使用する。
分散データベースシステムは2種類の要素、アクセス要素XDRおよびデータストレージ要素XDBから構成される。要素間の通信は、上述の通り、チャネルを介する。各チャネルは、データベースに格納されたデータの一種の部分集合を表わす。各チャネルを構成するデータストレージ要素の集合は、様々な理由で経時変化することがある。アクセス要素とチャネルを構成する実際のデータストレージ要素との間のチャネル接続性を維持することは、非常に重要である。データストレージ要素はまた、原子コミット動作を実行するために、同じチャネルを使用してそれらの間でも通信する。データストレージ要素がそれらの間で通信するときに、通信のために選択されるチャネルは、データ自体からも推断される。
この方法の強みは、チャネルに送信されるデータが送信側から1回しか送信されないことである。次いで、メッセージが全ての宛先に到達することを確実にするために、ネットワークが必要最小限度にメッセージを複製して、データは全てのチャネルメンバに到達する。
提示した方法は、次の構成ブロックを含む。
1.システム内の各論理チャネルは、IEEE802.1q VLAN技術を使用するVLANによって物理的に実現される。
2.ストレージ要素は、チャネルのデータの受信器である。
a.ストレージ要素は、適切なVLANのためのGVRP登録メッセージを周期的に送信することによって、受信器としてチャネルにエンロールする。
b.ストレージ要素を複数のVLANにエンロールさせるために、一般的にそれらをトランクポートとしてイーサネット(登録商標)スイッチに接続する必要がある。
c.ストレージ要素はまた、チャネル上のデータを他のチャネルメンバに送信することもできる。それらは、チャネルタグ付きのブロードキャストメッセージを送信することによってそうする。それらは適切なVLANに対して登録しているだけであるので、これは他のストレージ要素に到達するだけである。
3.アクセスポイントはチャネルへのデータの送信器である。
a.それらがデータを複数のチャネルに送信することを可能にするために、それらはIEEE802.1q VLANをタギングしたブロードキャストメッセージを送信する。
b.アクセスポイントにタグ付きパケットを発生させるために、一般的にそれらをトランクポートとしてイーサネット(登録商標)スイッチに接続する必要がある。
c.アクセスポイントはチャネル自体上のデータを受信しない。したがって、それらはチャネルにエンロールすべきではない。それらはGVRPシグナリングを実行する必要が無い。
4.要素が接続されるイーサネット(登録商標)スイッチは、VLANタグおよびGVRPシグナリングをサポートする必要がある。効率性のために、トランクポートの着信データは、該ポートが受信者ではない場合、VLANタグが付けられる。さもなければ、チャネル上の全ての送信データをアクセスポイントでフィルタリングしなければならなくなるので、これは該ソリューションの効率の要素である。
5.データストレージ要素からアクセスポイントに送信される応答メッセージは、標準IPメッセージまたは標準イーサネット(登録商標)ユニキャストであり得る。
今日、VLANタグ付きパケットをWANネットワーク上で仮想LANにより送信するためのソリューションがある。この目的のために幾つかの提案が、IETF組織内で草案化されてきた。Cisco等の大手製造者のものを含め、幾つか実現されているものもある。したがって、データベースアクセスポイントとデータストレージ要素との間の通信チャネルとして低待ち時間分散ハッシュテーブルを実現する方法の基礎として、標準VLANおよびGVRP技術を使用することが可能である。そうすると、データ通信は、データ自体の関数となる(つまりデータ要素をハッシングすることによって通信が選択される)。
この方法は、チャネル上の複数の受信者向けに意図されたメッセージが送信者によって単一のメッセージとして送信されるので、生成されるメッセージの数において効率的である。メッセージは、全ての宛先に実際に到達するために必要な最小限の量だけ複製される。
IGMPスヌーピングに基づくチャネルの実現
ここに記載する方法は、以下でさらに詳述するように、非常に効率的なチャネルの実現のために、IGMPプロトコルおよびIGMPスヌーピングの広範な実現を使用する。
本方法の強みは、チャネルに送信されるデータが送信側から1回しか送信されないことである。次いで、メッセージが全ての宛先に到達することを確実にするために、ネットワークが必要最小限度にメッセージを複製して、データは全てのチャネルメンバに到達する。
本実施形態の方法は、次の構成ブロックを含む。
1.システム内の各論理チャネルは、専用IPマルチキャストアドレスを使用して実現される。
2.IPマルチキャストメッセージは一般的に、スイッチに複数の受信者がいるかもしれないので、イーサネット(登録商標)ブロードキャストメッセージを使用してイーサネット(登録商標)スイッチ内で送信される。最新イーサネット(登録商標)スイッチはしばしば、IGMPスヌーピングとして知られる技術を使用して、パケット内をより深く調べかつIPマルチキャストアドレスを使用することによって、そのようなパケットを全てのスイッチポートに同報通信することを回避する。またスイッチ上のIGMPプロトコル通信を監視することによっても、スイッチは、IPパケットがどのポートに関連しているかを知ることができる。この幅広く使用される技術をIGMPスヌーピングと呼ぶ。ここに示唆する方法は、この最適化を取り入れたスイッチと共に使用したときに、効率が著しく向上する。
3.ストレージ要素はチャネル上のデータの受信器である。
a.ストレージ要素は、IGMPプロトコルを使用して適切なIPマルチキャストアドレスのデータの受信者となることによって、受信器としてチャネルにエンロールする。
b.ストレージ要素はチャネル上のデータを他のチャネルメンバに送信することもできる。それらは、チャネルに関連付けられるマルチキャストアドレスにIPメッセージを送信することによってそうする。これは、チャネルに関連付けられる他のストレージ要素だけがこのマルチキャストアドレスを受信するように登録しているので、それらにだけ到達する。
4.アクセスポイントはチャネルへのデータの送信器である。
c.データは、宛先アドレスをチャネルに関連付けられるマルチキャストアドレスに設定して、IPメッセージを使用してチャネル上で送信される。
d.アクセスポイントはチャネル自体上のデータを受信しない。したがって、それらはいずれのチャネルにもエンロールしない。それらはIGMPシグナリングを実行する必要が無い。
5.ソリューションの効率は、IGMPスヌーピングを使用するイーサネット(登録商標)スイッチを使用することによって、著しく改善される。
6.データストレージ要素からアクセスポイントに送信される応答メッセージは、標準IPメッセージまたは標準イーサネット(登録商標)ユニキャストであり得る。
7.IGMPはWANリンク上のその横断が効率的である。受信者へのルートまたは経路が分岐するときにだけ、パケットが複製される。
したがって、通信がデータ自体の関数であり(つまり通信がデータ要素のハッシングによって選択され)、データベースアクセスポイントとデータストレージ要素との間の通信チャネルとして使用される低待ち時間分散ハッシュテーブルを実現する方法の基礎として、標準IGMP技術を使用することが可能である。
この方法は、イーサネット(登録商標)スイッチがIGMPスヌーピング能力を持つときに、いっそう効率的になる。チャネル上の複数の受信者用に意図されたメッセージは、送信者によって単一のメッセージとして送信されるので、生成されるメッセージの数は最小限である。ネットワーキングハードウェアは、全ての受信者に到達するために必要な最小限のポイントでメッセージを複製するだけである。
イーサネット(登録商標)ユニキャストに基づくチャネルの実現
ここに記載する方法は、通信チャネルにイーサネット(登録商標)(ユニキャスト)通信を使用する。
本発明の方法は、イーサネット(登録商標)ユニキャストメッセージの使用に基づく。すなわち、チャネル内の通信は、ユニキャストメッセージを使用して行なわれる。イーサネット(登録商標)ユニキャスト送信器は、送信器自体がチャネルのメンバであるか否かに関係なく、メッセージの発信元である。チャネル向け意図された各メッセージは、イーサネット(登録商標)宛先アドレスとしてメンバのMACアドレスを使用して各メンバにユニキャストされるので、チャネルの全てのメンバに対して複製される。したがって、各チャネルのMACアドレスの会員リストを維持するための機構が必要である。本発明の方法は、チャネルと通信する各要素に、それがチャネルのメンバであるか否かに関係なく、それ自体のMACアドレスの会員リストを維持させることを含む。これらのリストは動的に更新され、通信障害は会員リストの更新を促す。提示する方法のチャネルメンバシップ解決プロトコル(channel membership resolution protocol)は、一時的マッピングキャッシュが2つのネットワークアドレスの間に維持されるという意味で、周知のARPプロトコルとの実質的な類似性を持つ。主な相違は、ARPプロトコルがIPアドレスとMACアドレスとの間の1対1のマッピングを維持する一方、提示する方法が単一のチャネルアドレスを幾つかのMACアドレスに変換することである。
各要素は、チャネル対MACアドレス情報のそれ自体のキャッシュを維持する。次いでキャッシュは、メッセージをチャネルに送信しようとするときに、要素によってアクセスされる。古い情報はキャッシュから除去される。キャッシュ内の情報が不充分である場合、必要な情報を得るためにチャネル解決プロトコル(channel resolution protocol)が使用される。そのメッセージについては下述する。ターゲットの数が一種の機能的最小値を下回る場合、情報は不充分であるとみなされる。上述したデータベースの場合、最小値はチャネルメンバの過半数である。また、要素がチャネルでメッセージを生成するが、古い情報のキャッシュ期限除去時間タイムアウトより短いタイムフレーム内に充分な応答を受信しない場合、要素は関連チャネル情報を明示的にリフレッシュすることができる。
イーサネット(登録商標)ユニキャストに基づくチャネルの実現に使用されるメッセージ
以下のメッセージは、チャネル解決プロトコル(以下、CRP)として知られる、提示する方法のチャネルメンバシッププロトコルで使用される。
1.CRP要求メッセージは、MACアドレスを要求者に送信するように1つまたはそれ以上のチャネルのメンバに要求するために使用される、イーサネット(登録商標)ブロードキャストメッセージである。要求者はまた、各チャネルに関するそれ自体の状態を以下のオプションによって示す。
a.要求者は自らをチャネルのメンバとみなしていない。
b.要求者は、チャネル(データストレージ要素の1つの)通常のメンバである。
c.要求者はチャネルのコーディネータである。これは、それが現在、チャネル内の原子コミット手順を調整する役割を果たす要素であることを意味する。本書の別の場所におけるコーディネータに関する記載を参照されたい。
2.CRP応答メッセージは、CRP要求メッセージに応答してチャネルメンバから送信されるイーサネット(登録商標)ユニキャストメッセージである。該応答メッセージは、チャネル上の各要素の役割をはじめ、応答要素が有するチャネルに関する情報を含む。該応答メッセージはチャネルのリストを含む。各チャネルに対し、メンバのMACアドレスのリストおよびそのメンバがチャネルで有する役割が存在し、つまり、それがチャネルの通常のメンバであるか、それともチャネルの現在のコーディネータである。
a.一般的に、チャネルのコーディネータはチャネルの全メンバを知っている。
b.一般的に、通常のメンバはそれ自体しか知らない。
c.ここでユニキャストメッセージに代替するものは、イーサネット(登録商標)ブロードキャストメッセージを使用してメッセージを同報通信することである。利点は、情報が他の要素にも関係し、システム内の要求の全体数が低減されることである。欠点は、ブロードキャストが他の要素とは無関係であり得、ネットワークの過度のフラッディングが生じることである。
3.周期的に、ストレージ要素は、それらのチャネルメンバシップ全体の状態情報を含むイーサネット(登録商標)ブロードキャストメッセージを送信することによって同報通信される。そのようなブロードキャストメッセージは、CRP応答と同じ内部構造を有する。
イーサネット(登録商標)ユニキャストの拡張に基づくチャネルの実現
1.同じ方法を、小さい変更を加えて使用することができる、例えば他のレイヤ2技術を非信頼性(または信頼性)ブロードキャストおよびユニキャストメッセージング、例えばインフィニバンドと共に使用する。
2.イーサネット(登録商標)ユニキャストをIP通信に(生IPとして、またはUDPパケットとして)置換することによって、同じ方法をIP技術に適応させることができる。加えて、イーサネット(登録商標)ブロードキャストを、全てのストレージ要素が記載されているIPマルチキャストに置換することが賢明である。
したがって、データベースアクセスポイントとデータストレージ要素との間の通信チャネルとして使用するために低待ち時間分散ハッシュテーブルを実現するための方法として、広く利用可能なイーサネット(登録商標)ユニキャスト通信を使用することが可能である。ハッシングは、通信をデータ自体の関数とすることを可能にする。つまり、通信はデータ要素のハッシングによって選択される。
上に説明した通り、データを損ねることなく、複数の読出し動作を略同時に実行することができる。しかし、書込み動作は相互に干渉することがあり得る。
XDAPプロトコルで使用される過半数に基づくリーダ選定プロトコル
以下で、書込みをベースとする動作の意思決定制御をもたらす主導処理ユニットを選択することができるように、分散非同期ネットワークにおける過半数ベースのリーダ選定の実施形態について記載する。
今まで、分散システムにおける様々な種類のノードおよびリンクの障害に耐えるプロトコルに関し、目覚しい研究が行なわれてきた。この分野の最新の論文として、次のようなものがある。
Leader Election in the Presence of Link Failures,Gurdip Singh,IEEE Transactions on Parallel and Distributed Systems 7(3),March 1996
Leader Election in Asynchronous Distributed Systems,Scott D. Stoller,Technical Paper,Computer Science Department,Indiana University,Bloomington,IN,USA,March 9,2000
並行して、原子コミットを目的とするグループ意思決定のための頑健なプロトコルに関し、目覚しい研究が過去に行なわれている。優れた要約を次の文献に見ることができる。
Consistency and High Availability of Information Dissemination in Multi−Processor Networks(博士論文)−Chapter 8,Idit Keidar(1998年イスラエル国ヘブライ大学に提出)
本発明者らの知る限りでは、科学界は、リーダ選定の問題および分散コンピューティング領域における原子コミットの問題を単一の文脈内で捉えてこなかった。同時に、ほとんどの原子コミットアルゴリズムで、コーディネータが要求される。コーディネータは一般的に、リーダ選定アルゴリズムを使用してグループによって選択される。リンクおよびコンポーネントの障害に耐える実際の分散コンピューティング環境の脈絡内で、2つの領域の分離は、成功裏に完結する別々のソリューションの成功が一貫性を欠く状況を導いている。換言すると、不合理にも、現行の技術では、障害のパターンおよび選択されるアルゴリズムから、原子コミットを調整できないリーダが選定されることがあるという状況が存在する。また、不合理にも、現行の技術では、障害のパターンおよび選択されるアルゴリズムから、原子コミットを首尾よく調整することができるノードがあるにも拘らず、リーダが選定されないという状況が存在し得る。
先行技術の上記欠点を克服するために、本書で教示するリーダ選定は、過半数に基づく3フェーズ原子コミットに強固に結合される。したがって、リーダ選定プロセスおよびしたがって過半数に基づく3フェーズ原子コミットの結果の一貫性を欠く成否を防止することが可能である。
本発明のソリューションは、IMSレディ型のデータベースを生成する希望の直接的な結果である。本発明のソリューションは、様々な種類の幾つかの障害に耐えることのできる分散データベースソリューションを含むので、何百万ものサブスクライバの使用に意図されたIMS準拠通信網の展開によって課せられる、データベースの保証された待ち時間、高スループット、および連続的可用性の要件を満たす1つの方法を提供する。幾つかの障害に耐える能力の一部は、厳しい障害状況で原子コミットを実行する能力を含む。原子コミットを実行するために、リーダ選定および原子コミットアルゴリズム自体の両方が、厳しい障害状況で成功することができることが好ましい。リーダ選定と原子コミットアルゴリズムとの固い結合は、要求される通信の要求されるノード間パターンが比較的小さいので、他のリーダ選定アルゴリズムより、障害に対する回復力のずっと高いリーダ選定アルゴリズムを導く。つまり、要求されるノード間通信は、過半数に基づく3フェーズコミットのための必要最小限である。
固く結合されたアルゴリズムは、データベースを構成するノードのグループのサイズを考慮することによって、簡潔なショートカットを作成する。アルゴリズムは、未知のサイズのグループに一般化することができる。
根本的に、提案する固く結合されたアルゴリズムは、Garcia−Molinaインビテーションアルゴリズムの向上に基づく(Hector Garcia−Molina,Elections in a distributed computing system,IEEE Transactions on Computers,C−31(1):47−59,January 1982)。該アルゴリズムは、リーダ選定および3PC耐障害性プロトコルを、同一障害シナリオによる選定およびコミットを保証する1つのプロトコルに結合することを含む。
以下に、選定アルゴリズムの高レベル特性について記載する。
過半数に基づくリーダ選定プロトコルの高レベルステージ
本発明の好適な実施形態では、リーダまたはコーディネータの選定は、次のような状況で実行される。
1.システム初期化:全てのノード(またはプロセス)が分散データベースを初期化し、初めてそれに結合するときに、現在の既知のコーディネータは存在しない。したがってコーディネータが選定され、コーディネータアイデンティティが共通の知識であることを確実にするために、全てのノードが選定を承認する。
2.ノード結合:例えば再起動の後に新しいノードがシステムに結合するときに、現在のコーディネータを承認することが好ましい。したがって、新しいノードが加わることで選定プロセスはトリガされず、新しいノードの一意の識別子が現在のコーディネータの一意の識別子より高い場合でも、これは真である。下述するように、識別子は選定プロセスで使用される。コーディネータ移行動作から発生するデータベースシステムの性能の流出を制限するために、現在のコーディネータを可能な限り試行しかつ維持することは、該アルゴリズムの望ましい特徴である。
3.コーディネータ障害:コーディネータ障害時、例えばコーディネータ機械が破損した場合、接続し続けている全てのノードによって選定を実行することが好ましい。本質的に、選定はシステムの初期化時に呼び出されるものと同一である。
4.接続性障害:コーディネータおよびノードの過半数を構成しないノードグループ、換言すると(N−1)/2未満のノードが、過半数から切断されたときに、依然として接続されている過半数のノードは、新しいコーディネータを選定することが好ましい。ひとたび完全な通信が再開すると、前コーディネータを含め少数派のノードは、新しいコーディネータの主導権を認識し、それに加わることが好ましい。
5.オンデマンド選定:コーディネータは自らを指名することなく、選定プロセスを呼び出すことが好ましい。これは、コーディネータがコーディネータ(CPU、メモリ、熱等)として機能することにおける問題を識別し、責任を代替ノードに継承することを決定した場合に発生し得る。
過半数に基づくリーダ選定プロトコルのアルゴリズム
コーディネータ選定プロトコルは、各要素が一意の識別子を有することを要求し、特定のシステムメッセージを要求し、多数の予め定められた選定状態を有し、かつ特定のタイミング信号およびタイムアウトを要求する。ここでこれらの問題に取り掛かる。1.一意の識別子(UID):各ノード(またはプロセス)には一意の識別子(UID)が割り当てられる。UIDを生成するための様々な周知の技術が存在する。最も単純なものは、システムのMACアドレスをUIDとして使用する。
2.メッセージ:全てのメッセージが同じ既知のメンバリストを共有する。以下は、例示的選定シナリオで使用されるメッセージのリストである。言及する周波数は、シグナリングに周波数分割多重化が使用される実施形態に関連する。
2.1 I_AM_ELECTED_COORD:これは、コーディネータによってF1の周波数を使用して周期的に送信されるブロードキャストメッセージである。全てのシステムノード向けに意図されており、それらが依然としてコーディネータとの通信を維持することを確実にするために使用される。
2.2 I_AM_COORD_CANDIDATE:これは、選定中に送信されるブロードキャストメッセージである。自らをコーディネータ候補とみなしているノードが、周波数F2でこのメッセージを同報通信する。
2.3 I_ELECT_YOU:これは、ノードから潜在的コーディネータへ送信されるユニキャストメッセージである。このメッセージは、I_AM_COORD_CANDIDATEメッセージに対する応答として、またI_AM_ELECTED_COORDメッセージへの応答としても送信される。
2.4 IS_THERE_COORD:これは、各ノードが選定に参加し始めるときに、各ノードによってT3のタイムアウト付きで送信されるブロードキャストメッセージである。
3.XDB選定状態:
以下は、選定の過程において、またはその中間に、要素またはノードが入ることのできる例示的状態のリストである。
3.1. IS_THERE_COORD:この「コーディネータが存在するか」状態は、ノードが選定に参加し始めるときの初期状態である。上述したT3は、IS_THERE_COORDメッセージを送出した後の沈黙期間であり、その間、該ノードは選定メッセージが存在するか否かを知るために着信を待つ。
3.2. CANDIDATE(候補):ノードが候補状態になるときは、I_AM_COORD_CANDIDATEメッセージを送信することによって、自らをコーディネータ候補として指名する。ノードは、最長でT6の時間だけ候補状態を維持する。その間に別のノードがコーディネータになった場合、ノードはそのコーディネータに結合しようと試みる。より高いUIDを持つノードから受信し、本ノードが最近そのノードに投票していない場合、ノードはそのノードへの投票に移る。T6タイムアウトに達すると、ノードは、たとえそれがより低いUIDを持つ場合でも、別のノードへの投票に移る。
3.3. VOTED(投票):ノードが別のノードをコーディネータとして投票することを希望するときに、ノードは「投票」状態になる。ノードは投票状態にある間に1つの候補にのみ投票することができる。通常、ノードは最も高いUIDを持つノードに投票するが、ノードへの投票が、成功裏にその候補がコーディネータになるという結果につながらなかった場合、ノードは次回にそれがこのステージに入ったときにその投票を変更し、それが最近投票していないノードの中から最も高いUIDを選択する。
この状態のノードは、候補状態から移行した場合、それ自体の立候補のメッセージの送信を停止する。
ノードは、T4のタイムアウト期間中に投票候補からの着信が無ければ、T4のタイムアウト後にIS_THERE_COORD状態に移行する。この機構は、最終的に投票の変更を可能にする。
ノードは、T5のタイムアウト期間中に候補がコーディネータになることができず、他のコーディネータが選定されなかった場合、T5のタイムアウト後にIS_THERE_COORD状態に移行する。この機構は、最終的に投票の変更を可能にする。
3.4. ELECTED(選定):候補は、その立候補のブロードキャストに対し過半数の票を受信した場合、候補状態からこの状態に移行する(応答は、I_ELECT_YOUメッセージとみなされる)。ひとたびこの状態になると、該ノードは、I_AM_ELECTED_COORDブロードキャストを送信することを含むコーディネータの責任を負う。
3.5. ACCEPT(受入れ):これは、たとえノードが他のノードに投票したか、あるいは自らを候補と見ていた場合でも、I_AM_ELECTED_COORDメッセージを同報通信したノードがコーディネータであることを、ノードが受け入れる状態である。
4.タイマ:時間、タイマ、および頻度の次のリストは、選定プロセスによって使用される。
4.1. F1−I_AM_ELECTED_COORDメッセージが送信される頻度。時間T1=1/F1
4.2. F2−I_AM_COORD_CANDIDATEメッセージが候補状態のノードによって送信される頻度。時間T2=1/F2
経験的に、適正な実施は次の通りであることが決定された。
4.3 F2=2.5×F1
4.4. T3−IS_THERE_COORD状態中にネットワークトラフィックを観察する期間。
4.5. T3=5×T1、ここでT1=1/F1である。
4.6. T4−ノードがその候補に(候補メッセージに対する応答として)最後に投票したときから、それが投票した候補からブロードキャストを受信しなかった期間。そのノードがこの合間にどれか他のノードに投票したこと、およびこのノードが選定をこの時点で再始動することによってその投票を変更することができるあることを前提とする。
T4=10×T1
4.7. T5−ノードが一貫して特定のノードに投票する期間であって、投票されたノードが過半数を達成するのに失敗した期間。その後、ノードは選定を再始動する。
T5=200×T1
4.8. T6−これは、ノードが過半数を集めることができず、それにも拘らず別の選定されたコーディネータ、またはより高いUIDを持つ候補からの着信が無い場合に、候補であり続ける時間を制限する期間である。ノードはその立候補を諦め、投票すべき別のノードを探す。
T6=500×T1
4.9. T7−これは総合選定タイムアウトである。コーディネータの選定がこのタイムフレーム内に終了しない場合、選定プロセス全体が再始動する。
T7=1000×T1
4.10 T8−T8はタイムアウトである。T8のタイムアウト後、投票は失効したとみなされる。
T8=30×T1
4.11 T9−T9はタイムアウトである。T9のタイムアウト後に、候補ノードはもはや候補とみなされなくなる。
T9=7×T1
本アルゴリズムの注目すべき要素は、3フェーズ原子コミットを実行するために、他の全てのデータベースノードへの双方向通信を必要とする分散データベースのコーディネータとなるべきリーダが選定される目的に適合するように、それを調整する仕方である。他のノードは必ずしもそれらの間で通信する必要は無い。
この観点は、通常論じられるものとは異なるアルゴリズムを導き、要求される通信パターンが存在する場合にのみリーダの選定が終結するという利点を持つ。
レコードをネットワークアドレスにマッピングするための基礎として2次インデックスを使用することによるデータレコードへのアクセス
上記データ管理システムでは、マッピング/ハッシング関数を使用してデータレコードの先頭キーをネットワークアドレスにマッピングするデータレコードインデクシングの実現、およびそれを実行するための規定のXDAPデータアクセスプロトコルに基づく、データベース、ディレクトリ、レジストリ、ストレージシステム、またはリポジトリのための実現が達成される。
しかし、先頭キーのみに基づいてデータにアクセスすることは必ずしも充分ではない。往々にして、少なくとも時々、二次、三次、およびさらなるレベルのキーを探索する必要がある。
したがって、本発明の実施形態の他の利益のために一次キーを超える探索能力、すなわち高速、高スループット、および高スケーラビリティの読出しおよび書込み動作のためにデータレコードを格納しかつ取り出すように、標準高速ネットワーク機器を強化する能力を追加することが意図されている。記載する技術を使用して、前述した一次インデックスをベースとするアクセスと同様に、二次インデックスを使用したデータのアクセスが可能となるように、機能性を拡張する。
本実施形態は、レコードをネットワークアドレスにマッピングするための基礎として二次インデックスを使用して、システムでデータレコードにアクセスする技術および実現を教示する。したがって、一次アドレスの場合と同様に、標準ネットワーク要素を使用して非ブロッキングワイヤ速度で、リモートコンピュータにレコードを格納しかつ取り出すために、二次アドレスを使用することができる。
例えば行政機関によって維持される市民のレコードを例に挙げる。レコードは次のようなフィールド、すなわち氏名、社会保障番号、住所、電話番号、およびパスポート番号を含むことができる。全てのフィールドが完全に検索可能であることが望ましいが、1つのキーだけが先頭キーとなり、一次ネットワークのアドレシングシステムに直接ハッシングすることができる。
フィールドは、次のスキームすなわち:レコード人物;一次キー:社会保障番号(レコードをネットワークアドレス7:9:B:8:4:Aにマッピングする先頭キーとして使用される)を使用して、一次および二次フィールドに編成することができる。二次キー1は住所であり、二次キー2は電話番号であり、二次キー3はパスポート番号である。
一次キーは、効率性を求めて選択することが好ましい。したがって、探索される可能性が最も高いフィールド、または常に一意の回答をもたらす可能性が最も高いフィールドを、一次キーに対する一次フィールドとして選択される。一意であってもなくてもよい二次キーも、データ管理システムのクライアントアプリケーションによって、データレコードにアクセスするために使用することもできる。
二次キーは、値の範囲および2つ以上のフィールドに関与する任意の複合セットに対して定義することができる。例えば、年齢:未成年および住所の合成値を使用して、特定の家庭に住んでいる子供のデータレコードにアクセスすることができると言うことができる。
従来の技術つまり先行技術の二次および一次データレコードインデクシングは、コンピュータベースのデータ構造および検索手順、主に2/3ツリー、赤/黒ツリー、またはAVLツリー等の検索ツリーを使用して実現される。これらの方法を使用して二次キーをベースとするアクセスを実現し、基本的に一次インデックスに戻ってクロスインデックスすると、先頭キーアクセスを使用して実現されるような上述したシステムの利点が妨げられる。
上述したデータ管理システムで、標準ネットワーキングは、データレコードを格納し、かつ取り出すために使用される。レコードを検索する際に、この方法がいかにしてメモリアクセスにおける障壁およびブロッキングライン(blocking line)を回避するかを説明した。従来の技術つまり先行技術を使用して実現される二次キー検索では、これらの利点は全て損なわれ、先頭キーが取得されるまでデータは二次キーを介して検索される。一次キーが取得されて初めて、その後の動作が非ブロッキングかつ効率的になる。これは、二次キーを使用してデータにアクセスする全てのクエリに対して、メモリまたはディスクをベースとするデータ構造へのアクセス付近で、シーケンシャルラインのブロッキングが発生しそうであることを意味する。
これまで、データ管理システムはほとんどが単一のコンピュータをベースにし、あるいは代替的に、コンピュータネットワークを通してアクセス可能な複数のデータシステムにパーティション化され、階層システムとして管理されてきた。上述した背景を参照されたい。これらの実現におけるインデクシングは一般的に、検索ツリー等の検索手順および構造をサポートするメモリ内およびディスク内データ構造に基づいている。
そのような構造は一般的に、データ管理システムをホストするサーバの速度および容量が、クライアントアプリケーションをホストするコンピュータの速度および容量に比例して成長するので、これらのより限定された状況では充分である。したがって、サーバがN個のクライアントをサポートし(かつクライアントコンピュータよりN倍高速であり)、これらのクライアント処理容量が技術の進歩(ムーアの法則)を通してK倍成長すると、サーバの処理容量もそうなり(N*K)、サーバメモリおよびCPUを使用するデータインデクシングの実現は要件を満たし続ける。
しかし、今日、コンピュータのピアツーピアの通信アプリケーションのパターンが増加しており、クライアントサーバアプリケーションだけではなくなっている。そのようなアプリケーションがピアツーピア通信の副次的効果としてデータアクセスを要求すると、以前には存在した線形性がもはや適用不能になる。N個のコンピュータがピアツーピアアプリケーションに関与すると、N2乗の圧力係数がアクセス関連データ管理システムに発生し(N*(N−1)/2変換)、比例線形性は破綻する。
消費者電話(consumer telephony)等の古典的なピアツーピアアプリケーションでは、まさにこの理由で、商用データベース等の標準汎用データ管理システムは、今までオンラインデータ管理の運用に使用されていなかった。ネットワークにおける電話機の位置を解決する(resolving)ような動作は、汎用データ管理システムよりむしろ、専用特殊用途電話網および特定用途向けネットワークシグナリングの不可分の一部であった。
今、ようやく、汎用ネットワークが大規模なピアツーピアアプリケーションに使用され始め、汎用データ管理システムは、それがオンライン呼データを解決し(resolve)格納するために使用されるときに、ネットワーク活動の完全多項式圧力(メトカーフの法則)に適合することを要求されている。
上記のソリューションとして、以下の実施形態は、障壁を克服するために、ネットワークを使用してデータレコードアクセスをいかに実現するかを教示する。ネットワークリンク層は、コンピュータメモリまたはディスクではなく、システムのための基礎および支柱であり、したがって、ネットワーク層オーバレイを使用し、かつネットワーク層アドレスを各レコードに追加して、インデクシングを実現することが可能である。したがって、複数のネットワーク層サブネットを同じリンク層ネットワーク上にオーバレイするのと全く同様に、複数の対データインデクシングスキームをオーバレイし、効率的な同時並行標準ネットワーク機器を使用してデータ管理システムを実現し続けることができる。
したがって、説明した通り、一次データレコードアクセスは、イーサネット(登録商標)リンク層ネットワークおよびMACアドレスに各レコードを関連付けかつマッピングすることによって実現される。加えて、二次インデックスが次いで、同じイーサネット(登録商標)リンク層ネットワーク上にオーバレイされた複数のIPサブネットとして実現され、標準ルータのみならず、分散ルータおよび経路指定方法を使用して、二次インデックスのネットワークアドレスを一次インデックスのMACにマッピングすることができる。したがって、一次キーへの二次マッピングが、まさしくそのために設計された機能を実行する標準ネットワークコンポーネント、ルータによって実行される。リンクおよびネットワーク層アドレス、つまりこの例ではMACおよびIPアドレス両方のグループアドレス指定を使用することによって、データコピーおよび非一意のインデックスは依存として存在し得る。
本実施形態に係る、二次キーを使用するデータアクセスのための技術を図19に示す。それは上述の通り、次の要素を含む。
XDR−データアクセスクエリを受け取るオブジェクト、XDR1...XDRn
XDB−サイトA、B、C、およびDでデータレコードを格納するオブジェクト、XDB1...12、ならびに、
XDAPプロトコル−複数の複写、パケット複製、パケット損失、および要素またはセグメント損失が与えられたレコードを格納し、かつ取り出すために使用されるプロトコル
加えて、スイッチ1901は、ネットワーク構造で相互接続され、かつ全てのXDBおよびXDRを接続するリンク層オブジェクトである。
ルータ1903−ネットワークアドレスが与えられると、1つのリンク層アドレスから別のリンク層アドレスを持つ宛先に、パケットを転送するネットワーク層オブジェクト。
図19は、分散インデックスルータを使用してネットワーク上のマルチインデクシングをサポートするルータの使用を示す。上で説明した通り、システムは負荷均衡および冗長性をも組み込んでいる。
ここで、図20を参照すると、一次キーに従って配列されたデータベースの二次キーによる検索を可能にするための1アームルータが示されている。二次キーに基づくクエリはXDR2002によって発行され、ルータ2004に送られる。ルータはクエリを受信し、対応する一次キーを見つけるためにそのルーティングテーブルで二次キーを捜索する。一次キーは通常の方法でハッシングされ、ハッシュ結果を使用して、クエリはXDB2006に差し向けられる。クエリは次いで、正しいXDBをターゲットリンク層アドレスとして同じネットワークに転送される。
特に二次キーを使用する、本実施形態に係るデータアクセスシステムの使用例は移動電話であり、そこではSIMカードIDおよび電話番号は両方ともキーであるが、それらのうちの1つだけが一次キーである。二次キー(例えば電話番号)に関する全てのクエリは、これらのキー用に割り当てられたサブネットでネットワークアドレスにマッピングされる。電話番号を含むクエリを受信したときに、XDRが番号をネットワークアドレスにマッピングし、次いでそれをサブネットのルータに転送するように、充分な1アームルータがデータアクセスネットワークにプラグインされる。ルータは、MACアドレスが一次キーに対応する正しいXDBにクエリを転送する。XDBが最後の二次キー更新を持ち、関連ネットワーク層アドレスを取り、サブネットルータとの標準登録手順を実行したときに、一次キーはルータによってトランスペアレントに学習される。これは事実上、IPアドレスがコンピュータで設定される場合と同様に働く。
ネットワークを通して、ネットワークアプリケーションの結果として、大量のデータにアクセスし、インデクシングすることが鍵である。該技術は、大型分散ストレージ、キャリアインフラストラクチャに基づくデータベース、または相互接続されたエンドステーション間で完全分散されたデータベースを形成するために使用することができる。
上記の使用の1例として、非常に厳しい時間または他の性能限界内でデータルックアップが要求される、すなわち高度に定義されたサービス品質要件を持つ、サービスの場合がある。
他のテーブルとして格納されハッシングされた二次インデックスを使用することによるデータレコードへのアクセス
ルータを使用しないが、依然として二次インデックスを介してデータレコードへの非ブロッキング実時間アクセスを提供する、二次インデックスを実現する別の方法についてここに記載する。無共有分散データリポジトリでは、テーブルはパーティショニングキーを使用してパーティション化され、異なるコンピューティング資源間に分散される。そのような無共有アーキテクチャでは、二次インデックスも一般的に異なるパーティション間に分散され、各パーティションは、そのパーティションに属するサブテーブルの二次インデックスを保持する。テーブルパーティショニングとその対応するサブインデックスとのこの緊密なコロケーションは、全てが所与のパーティション内に充分に範囲を限定されるデータベースの運用をサポートするときに、有利である。
例えば、CDR(呼データレコード)を保持するデータベースは、日付別にパーティション化することができる。つまり、特定の日付に行なわれた全ての呼が1つのパーティションに属する。CDRデータベースのための二次インデックスの1例は、発呼電話番号であり得る。そのようなパーティション化の例では、特定の日付に行なわれた全ての呼の発呼電話番号別のサブインデックスを、その日付に行なわれた全ての呼と同じパーティションに共通配置すると、共通のクエリ(例えば所与のサブスクライバによって所与の日付に行なわれた全ての呼)の演算が効率的になる。
しかし、多くの他の場合、パーティショニングサブインデックスをパーティショニング日付自体と共通配置すると、二次インデックスを介するデータアクセスを非スケーラブルにする、ブロッキングデータ構造が形成される。
例えば、ID番号を持つ上述したデータベースは、先頭キーおよびパーティショニングキーとすることができる。各ID番号パーティションレンジに対し電話番号二次インデックスがサブインデクシングされた場合、電話番号を使用することによってデータレコードにアクセスするには、クエリを全てのサブスクライバに同報通信する必要がある。
ルータ無しで、しかし依然として二次インデックスを介してデータレコードへの非ブロッキング実時間アクセスを提供する、二次インデックスを実現する別の方法は、ここに記載するネットワーク内分散データ管理の一部である。電話番号二次インデックスは別のテーブル、「インデックステーブル」として実現され、それは2つのフィールド、すなわち「電話番号」および「ID番号」を有する。インデックステーブルは次いで、二次インデックスフィールド「電話番号」がインデックステーブルの先頭キーとなるように、パーティション化される。二次テーブルは、オリジナルテーブルが変更されるたびに、システムによって自動的に更新される。二次テーブルは、(読出しおよび書込み動作に関連して)システム内のいずれかの他のテーブルとして管理される。したがって、その先頭キーを使用していずれかのデータ要素にアクセスするのと同様に、インデックステーブル内のエントリへのアクセスはワイヤ速度で行なわれる。したがって、二次キーを使用してオリジナルテーブル内のデータ要素にアクセスすることは、次によって実現される。
1.インデックステーブルの先頭キーを使用してインデックステーブルにアクセスし、オリジナルテーブルの先頭キーを受け取る。
2.結果として得られる先頭キーを使用してオリジナルテーブルのデータ要素にアクセスする。
インデックステーブルクロスパーティションをハッシングするこの方法は、2回の先頭キーベースデータ要素アクセスを使用して、最初にインデックステーブルにアクセスし、次いでオリジナルテーブルにアクセスすることによって、ユーザがその二次キーを使用して非ブロッキングで任意のデータ要素を突き止めることを可能にする。
システムのアップタイムモデル
次に、わずか3〜5部の複製を使用して、システム可用性に関して9が5個以上並ぶ性能(>99.999%)を達成することを実証する。
上述したメモリ内分散データシステムに基づいて、演算素子の個数、および仮想データパーティショニングが演算素子にマッピングされる方法の関数として、システムの期待される可用性を算出することが可能である。
上で説明した通り、仮想データパーティショニングコピーをコンピューティングノード間でシャッフルすることを通して、コンピューティングノード間の全体的負荷均衡および相互依存性が増大する。他方、図24に示すように、チャネルのグループに割り当てられるセットとしてコンピューティングノードを配列することによって(本書では回復力セットと呼ぶ)、システムの可用性を高めることができる。全ての回復力セットはそのコピーのマイノリティを失うことができ、それでもシステムは依然として利用可能であるので、システム全体の回復力は非常に高い。
以下のアップタイムモデルは、システムの各演算素子「スロット」に使用される。
Figure 2008533564
システム可用性モデル:
上記システムの可用性モデルを使用して、図20Bに示すグラフを計算することが可能である。上述のグラフは、各XDBの性能が15000回の毎秒演算数であることを前提としている(実験室での試験で実証された通り)。
グラフから分かるように、最高200までのXDBを有し、毎秒約100万回のトランザクションを生成するシステムの場合、3部複写は、9が5個以上並ぶ可用性(>99.999%)を達成するのに充分である。そのようなシステムは、80000000〜100000000までのサブスクライバをサポートするほとんどのIMSキャリアクラスのアプリケーションにとって充分である。
同じく上述したグラフから分かるように、5部複写は、上記容量のシステムの場合、9が8個以上(>99.999999%)の可用性を達成し、IMSシステムに対する実際の需要を超える容量である、
Figure 2008533564
の4〜5倍をもたらすシステムの場合には、9が6個以上並ぶ可用性を提供することができる。
同時並行データベースクライアント間のサービスの品質(QoS)の管理
トランザクション待ち時間およびスループットに関して、同時並行データベースクライアント間のサービスの品質(QoS)を管理するための実施形態について、ここに記載する。
今日、データベースのサービスレベルメトリックは一般的に次のようなものを指す。
(1)レコードの読出しまたはレコードの書込み等の原子データベース動作の待ち時間
(2)同時並行セッションの数
(3)トランザクションレート
加えて、データベースの待ち時間保証の実現は通常、特定タスクに優先度を設定することによって行なわれる。次のような状況下で待ち時間メトリックを保証することは疑問である。
1.システム負荷が高い(システム負荷は待ち時間メトリックに悪影響を及ぼす)。
2.分散データベース(システムの分散は動作時間の制限を難しくする)。
実時間データベースは、eトレーディング、電気通信、および製造等の多数の分野で幅広く使用される実時間アプリケーションの基本的なコンポーネントである。実時間アプリケーションは、それらが提供するサービスレベルによって評価される。サービスレベルは、エンドユーザの経験を測定することになる。エンドユーザの経験は次のようなものを含む。
1.サービスの可用性:
2.ユーザはいつでも希望するときにサービスを利用することができるか
3.サービスの応答性:サービスは充分迅速に応答するか
4.サービス全体の品質:
サービス自体が充分に良好であるか−ユーザの全体的経験
当然、実時間アプリケーションサービスレベルは、アプリケーションプラットフォーム内の任意の単一コンポーネントによって達成されるサービスレベルの連結である。
実時間アプリケーションは発展しつつあり、それらは明らかに、
1.事実上分散化されることが多くなってきている。
2.予測不能なテーブル作業負荷を有する。
3.予想外のアクセスパターンを持つ。
4.クライアント−サーバよりむしろサービス指向になってきている。
現在、データベースおよび特に分散実時間データベースは、データベースの次の項目を保証するサービスの品質機構を実現していないと思われる。
(a)アクセスポイント毎の可用性(スループット:毎秒演算数)
(b)応答性(原子動作当たりの有界待ち時間)ならびに
(c)データ鮮度および一貫性(データは最新版でありかつ正確である)
次の相互条件の存在を可能にする一方で、上記メトリックが保証されなければならない。
1.データベースは任意の数のサイト全体に分散される。
2.データベースは任意の数の同時並行アクセスポイントを可能にする。
3.データベースは、無差別に任意の動作の組合せを実行することができる。
4.データベースは、任意の作業負荷状態で無差別に実行する。
本発明の実施形態は、ネットワーク内実時間データベースを含む。実施形態はネットワークを使用して、データベースを単一のグローバルクロスロケーションネットワークサービス(global cross−location networked service)に転換する。そういうものとして、それはネットワーク自体から幾つかの特性を継承し、中でも特に典型的なネットワークのQoSメトリックは遅延、帯域幅、および改善された損失特性である。データベースQoSの新しい概念は、実時間アプリケーションサービスレベル一致要件を満足する。
本書で記載する実施形態は、実時間アプリケーションサービスレベルメトリックを実時間データベース性能メトリックにマッピングするために使用することのできるQoS概念を示唆しかつ実現する、初めてのデータベースである。
そのようなメトリックとして、次のようなものが含まれる。
1.アクセスノード毎の保証されたデータベースのスループット:
a.データベース作業負荷に関係無く
b.同時並行アクセスノードの数に関係無く(各ノードは異なるアプリケーションにサービスを提供することができる)
2.原子動作毎の保証されたデータベース待ち時間:
a.オペレーションミックス(operations mix)に関係無く
b.データベース作業負荷に関係無く
c.データの物理位置に関係無く
d.データスキーマに関係無く
3.アプリケーション品質⇔データベースのデータの一貫性:
a.データの物理位置に関係無く
b.システム全体のデータ複製の数に関係無く
本書のどこか別の場所に記載するように、データベース内で障害が発生した場合、最大限の努力が果たされる。
上で図4に関連して説明した通り、分散データベースシステムは、3つの基本型のノード、つまりアクセスノード、データノード、およびスイッチングノードを含むサーバのクラスタである。アクセスノードは主としてクライアント要求を取り扱い、それに従って応答を返す。データノードは主としてデータレコードをそのメモリ内に格納し、データを管理し、例えばデータレコードを取得し、あるいはデータレコードを不揮発性ストレージに格納する。スイッチングノードは主として、全てのクラスタノードを接続し、様々なノードの間でメッセージを経路指定する。アクセスノードおよびデータノードは両方とも、システム内の残りのノードに関係なく、任意の物理位置に常駐することができる。
サービスレベルメトリックにより実時間アプリケーションにマッピングすることのできる実時間データベース保証QoSの概念は、様々なQoSメトリックを含むことができ、その各々を様々な仕方で実現することができる。以下は、可能なデータベースQoSメトリックおよび可能な実現方法を開示するが、これらおよびさらに多くのQoSメトリックを実現するために他の方法を使用することができる。
保証されるスループット
目的は、データベースクライアント(実時間アプリケーション)に対し、実行することのできる毎秒当たりの原子動作数を保証することである。原子動作は、レコードの作成、レコードの読出し、レコードの修正、レコードの削除を含む。スループットレベルはアプリケーション要件に従う。
本発明の実施形態は、以下を通してスループットQoSメトリックを保証することができる。
*スループットスケーラビリティ:本発明の実施形態の分散データベースは、さらなるノードをそのクラスタ(アクセスノード、データノード、スイッチングノード)に単純に追加するだけで、そのスループットを無限に拡張することができる。各アクセスノードは特定のスループット(毎秒X回の演算数)を保証し、システム全体のスループットは、全アクセスノードのスループットの合計である。したがって、アプリケーションは任意の所要スループットを要求することができる。
*スループット割当て機構:本発明の実施形態は、システムアドミニストレータがアクセスノード毎のスループット割当て量を割り当てることを可能にする、スループット制御機構を実現する。特定のアプリケーションは、そのスループット要件を満たすために必要なだけの数のアクセスノードを使用することができる。しかし、アプリケーションスループットは、データベースにアクセスするために使用されるアクセスノードに割り当てられたスループット割当て量によって制限され、同じデータベース資源を使用する他のアプリケーションがそれらの所要スループットを保証することを可能にする。
原子動作毎の保証される低待ち時間
目的は、原子動作を実行するために要する時間を制限し、それをできるだけ低く維持することである。原子動作は、レコードの作成、レコードの読出し、レコードの修正、レコードの削除を含む。待ち時間上限値は、システムの瞬時負荷によって、あるいはアクセスノードの物理位置に対するデータの物理位置によって影響されてはならない。
本実施形態に係るシステム内の動作ラウンドトリップは次の通りである。
アクセスノード(構文解析)→スイッチング(要求転送)→データノード(処理)→スイッチング(応答転送)→アクセスノード(応答)
目標は、典型的なラウンドトリップのサブフェーズの各々の待ち時間を最小化することである。本発明の実施形態のシステムは現在、以下を通して低待ち時間QoSメトリックを保証する。
*過半数に基づくデータアクセスおよびデータアフィニティ:ノード障害および瞬間ネットワーク切断がどちらも、データの可用性またはシステムの性能に悪影響を及ぼさないことを確実にすることを希望する。したがってデータレコードの幾つかの複製を維持し、その各々を異なるデータノードに格納する。データレコードを書き込み、または読み出すときに(過半数に基づくリーダを参照されたい):
・このデータレコードを格納するように現在要求されている全てのデータノードは、コーディネータを選択する。コーディネータは、要求により動作を管理しかつ監視する責任がある。
・レコードを読み出し/書き込むためにデータ複製の過半数が要求される場合のみ。これは、誤作動ノードが動作を低速化しないことを確実にする。
・システムアドミニストレータはデータアフィニティポリシーを規定することができる。つまり、データの過半数の位置をできるだけそのアクセスポイントの近くに設定し、ネットワーク(スイッチング)待ち時間を無効化することができる。
*同時並行性および負荷均衡:各データノードは、異なるデータノードの間に均等に分散されたデータの一部分を管理する責任がある。各データノードは他のノードから独立している。つまりそれは、データを他のデータノードと同時に処理することができる。これは、システムが高負荷状態で作業するときでも、1動作当たりの短い待ち時間を達成することを可能にする。本発明の実施形態のデータベースは、必要に応じた数のデータノードをそのクラスタに追加することができる。システムの有するデータノードが多いほど、同時並行データ処理容量が増大し、したがって1動作当たりの待ち時間が短くなる。より多数のデータノードを追加することにより、低い待ち時間レベルを維持することができる。
*データパケット化およびネットワーキング技術:本発明の好適な実施形態は、アクセスノードをデータノードと接続するためにネットワークおよびスイッチノードを提供する。システムは、データベーステーブルを原子レコードに分解し、それらをパケット化することを含む。各レコードはネットワークで伝送され、ネットワークを通して異なる場所(データノード)に格納される。これは、いずれのデータレコードも、現在実行される動作回数またはデータスキーマに関係なく、根底にあるネットワークのQoSレベルとしてワイヤ速度でそのデータノードに到達しかつ戻ることを意味する。
保証される実時間データ鮮度および一貫性
目的は、データレコードのどんな変更も即座に有効になることを確実にすることである。アプリケーションは最新の更新データを取得し、かつこのデータがシステム全体で一貫していることを確実にすることができる。
本発明の実施形態は現在、データ鮮度を確保するために、次のような幾つかの機構およびアルゴリズムを使用する。
*3フェーズコミット:これについては本書の別の場所に記載されている。
*過半数に基づくデータアクセスおよび誤り訂正:これについては上述している。
データノード障害の場合の最大限の努力の実施
データベースはそのQoSレベルを保証することが好ましい。しかし、データノード障害が発生した場合、システムはその残存資源により、要求されるQoSを充足するために最善を尽くす。
本発明の好適な実施形態は幾つかの機構およびアルゴリズムを使用して、データ鮮度を確保する。
*無制限のアクセスノード数:本発明の実施形態は、任意の数のアクセスノードを可能にする。アクセスノードは、各アプリケーションを複数のアクセスノードに接続することを可能にする。アクセスノードの1つに障害が発生した場合、アプリケーションは別のノードで作業することができ、そのアクセスレート(スループット)が低下しないことを確実にする。
*原子自己回復:本発明の実施形態は、それらのデータノードの自己回復機構を実現する。各データレコードは異なるノードに幾つかのコピーを有するので、1つのデータノードに障害が発生しても、データは依然として残存するデータノードで入手可能である。したがって、残存データノードはそのデータに対する責任を負う。データアフィニティはシステム資源全体にわたって最適であり、したがって作業負荷は、クラスタ内の全てのデータノードの間で均等に分散される。残存データノードが、割り当てられた追加量のデータを格納する容量を有し、かつそれらが完全に利用されていないことを前提として、データベーストランザクションの同時並行性は維持される。同時並行性は、各動作の待ち時間および同時に処理できる動作数がQoS要件に適合することを確実にする。追加データを処理するだけの充分な資源が無い場合、システムはQoS要件を満たすべく最善の努力を払って、依然としてその資源を最適に利用する。
実時間データベースは、実時間アプリケーションの基本的コンポーネントである。実時間アプリケーションはそれらのサービスレベルによって測定される。アプリケーションサービスレベルは、実時間データベース等のアプリケーションプラットフォーム内の全ての単一ノードのサービスレベルの連結である。データベースQoSは、アプリケーションサービスレベルメトリックをデータベース性能メトリックにマッピングし、瞬間システム負荷またはアクセス方法と関係なく、実時間アプリケーションサービスレベルを保証することを可能にする。
ステートフルアプリケーションのN+M高可用性および災害復旧のためのネットワーク内データベースの使用
次に、ステートフルアプリケーションのN+M高可用性および災害復旧のためのネットワーク内データベースの使用について記載する。
実時間ステートフル事象処理アプリケーション
セッションベースの実時間事象処理アプリケーションは、現在のセッションの状態を維持する必要がある。所与のセッションに属する各々の新しい事象は、そのセッションの「履歴」(つまり「状態」)の脈絡内で処理される。一般的に、パケットベースのアプリケーションは個々のパケットを処理し、それらを受け渡すだけであるが、これは必ずしも充分ではない。多くの場合、セッションの状態に応じてパケットを様々に処理する必要があるかもしれない。そのようなアプリケーションをステートフルアプリケーションと呼ぶ。
実時間ステートフル事象処理アプリケーションの例として、テレコム呼制御およびソフトスイッチ、移動電話ホームロケーションレジストラ(HLR)、インターネットマルチメディアシステム(IMS)のホームサブスクライバサーバ(HSS)、サービスセレクションゲートウェイ(SSG)、AAAサーバ、オンライン課金サーバ、ボーダーコントローラ、ファイヤウォール、オンラインバンキングおよびトレーディングシステムがある。
高可用性および災害復旧
実時間ステートフル事象処理アプリケーションの高可用性(HA)および災害復旧は、ステートフルフェイルオーバを確実にするために、異なるサーバ間でアプリケーションの内部状態を実時間で複製しかつ同期化することを必要とする。災害復旧プランニング(DRP)の場合、アプリケーション内部状態の実時間複製および同期化は、異なる場所の異なるサーバ間で実行される。
実時間ステートフル事象処理アプリケーションの今日稼動している唯一のDRPおよびHAモデルは、1+1モデルである。1+1可用性モデルでは、アプリケーションサーバは1対単位で構成され、各サーバがその待機フェイルオーバサーバを伴う。2つのサーバの内部状態は、暗黙にまたは明示的に同期して維持される。
暗黙の内部状態同期化高可用性1+1モデル
暗黙の内部状態同期化は、システムの全ての入力を2つのサーバに同時に供給し、かつ各々に同じ事象を同時に対称的に処理させることによって、行なわれる。その結果、両方のアプリケーションサーバが対称な内部状態を維持する。しかし、両方のサーバの容量は、単一サーバの容量に低減される。
暗黙の内部状態同期化モデルは、2つ以上の障害に対する耐障害性を達成するために、3つ以上のアプリケーションサーバ間で状態を同期化するために使用することができる。しかし、全ての暗黙同期サーバの容量は依然として、単一サーバの容量と同等である。
ここで、図21を参照すると、2つのユニット、一次ユニット2101および二次ユニット2102が両方とも処理の状態を格納する、暗黙の状態同期化1+1HAモデルが示されている。暗黙の同期化は2つのユニットの間で機能し、2つのユニットが更新されるのが単に同時であるだけでなく、実時間でもあることを確実にする。
明示的内部状態同期化高可用性1+1モデル
ここで図22を参照すると、暗黙の内部状態同期化の非効率的な資源利用を克服するために、明示的内部状態同期化が使用されている。明示的状態同期化は、2つのサーバ間で専用の接続およびプロトコルを使用して、サーバ間で内部状態を実時間で交換する。各サーバは異なるセッションおよび事象を独立に処理することができる。しかし、各サーバは両方のサーバの内部状態を有する。サーバの一方が障害を発生すると、第2のサーバはそれらの更新された状態を内部に格納しているので、第2のサーバが全てのセッションおよび事象を処理し続けることができる。
図22は、明示的状態同期化プロトコルを利用して各サーバが両方の状態を有することを確実にするリンク2202を介して、サーバ1がサーバ2に接続された、明示的状態同期化1+1HAモデルを示す。
1+1HAモデルで明示的内部状態同期化を使用する場合、両方のサーバを完全に利用することができる。しかし、サーバの一方がダウンすると、システムの容量は単一のサーバ容量まで、つまり50%低下する。これは、システムによって提供されるサービスの品質の深刻な劣化を引き起こし得る。したがって、明示的内部状態同期化の場合でも、障害発生時のサービスの劣化がそれほど深刻にならないように、各サーバはその全容量を完全には利用しないようである。これは資源利用率を低減させる。
実時間ステートフル事象処理アプリケーションは通常、実時間生産事象より多くの実時間状態同期化事象を処理することができないので、明示的内部状態同期化は一般的に1+1モデルに限定される。したがって、内部状態同期化は単一の障害を越える耐障害性を提供することができない。
本発明の実施形態の場合のように、N+Mモデルを達成するために、ネットワーク内高可用性データベースを使用して、ネットワーク内分散偏在高可用性の非ブロッキングデータベースを提供し、N+M HAモデルが達成されるように、多くの実時間ステートフル事象処理アプリケーションを実時間で明示的に同期化することが可能である。N+M HAモデルとは、システムの可用性が、最大M個までのサーバの障害発生状態で、N個のサーバの最小容量を提供することを確実にすることを意味する。これは、N+M HAモデルを使用して、N+M個のサーバでシステムを作動させることによって達成される。
N+M HAモデルでは、N+M個のサーバは全部、完全に利用することができ、各サーバの障害でシステム容量はわずか1/N+M低下するだけである。あるいはN+Mサーバは、M個のサーバ障害の最高限度まで、個別のサーバ障害でシステムの容量が低減しないように、N個の完全利用サーバのレベルまで利用することができる。どちらの場合も、資源利用率はN/N+Mであり、それは1+1HAモデルによって達成可能な最高50%の利用よりずっと高い。Nが10もの大きい値である場合でも、Mは一般的に1または2であるので、N+Mモデルによって達成される資源利用率は一般的に85%〜95%の間である。
我々が提案しているN+M HAおよびDRPのためのデータベース中心実時間状態同期化モデルは、異なる場所のN個の異なるクライアントからの多くの同時並行書込みを同時にサポートするために拡張することのできない、ブロッキングディスク内またはメモリ内アーキテクチャを有する現在のデータベース技術を使用するオプションではない。
N+M高可用性のためのデータベース中心実時間状態同期化モデル
本発明の実施形態は、N+M HAおよびDRPのための偏在する高可用性データベース中心実時間状態同期化モデルを提供する。それは以下を提供する。
1.より高い資源利用率:今日達成可能な50%の最大限度に対して、およそ90%。
2.より高レベルの耐障害性:今日達成可能な単一耐障害性をはるかに超える
本発明の好適な実施形態は、今日使用されている明示的状態同期化機構をピアツーピアの1対1のプロトコルからクライアントサーバの1対多数のモデルに拡張して、全ての場所から全ての実時間ステートフル処理アプリケーションインスタンスの全ての状態を格納するために、グローバルネットワーク内偏在非ブロッキングデータベースを使用する。1つまたはそれ以上のアプリケーションインスタンスが障害を発生した場合、同じ場所および/または他の場所の存続アプリケーションインスタンスによって、状態データベースからの全ての所要状態の実時間同期化によって、全てのセッション処理のステートフル復旧が実行される。
本発明の実施形態は、明示的状態同期化1+1高可用性モデルで今日使用されている、同一マルチアプリケーションインスタンス環境に基づく。実際、本実施形態は、1+1高可用性モデルからN+M高可用性モデルへの改善を実行するために、アプリケーションインスタンスにも、アプリケーション環境に対しても変更を行なう必要が無い。
明示的状態同期化1+1高可用性モデルで今日使用されている、先行技術のマルチアプリケーションインスタンス環境では、各実時間ステートフル事象処理アプリケーションインスタンスは、その内部状態を実時間でそのピアパートナ(peer partner)と同期化する。ピアの一方が障害を発生した場合、アプリケーション環境は事象およびメッセージを障害サーバからその存続同期化ピアパートナに再経路指定する。
本発明の実施形態は、同一プロトコルを使用してでも、ピアツーピアアーキテクチャの場合と全く同様に、各アプリケーションインスタンスがその状態を実時間で状態データベースと同期化することを提供する。しかし、ピアツーピアシナリオとは異なり、障害が発生しない限り、状態は状態データベースに書き込まれるだけであり、状態はアプリケーションインスタンスに同期化されない。
ここで、図23を参照すると、状態データベースを使用するN+M高可用性モデルが示されている。
ピアツーピアの場合と同様に、1つまたはそれ以上のアプリケーションインスタンスに障害が発生した場合、事象およびメッセージは障害サーバから存続アプリケーションインスタンスの一部または全部に再経路指定される。システムが動作することのできる2つの可能なモードが存在する。
1)プッシュ同期化モード:ピアツーピアの場合と全く同様に、アプリケーション環境は、所与の障害サーバに属する全ての事象およびメッセージを、同一場所または別の場所の存続サーバの1つに再経路指定する。この場合、状態データベースは、再び、ピアツーピア同期化で使用されている同じプロトコルを使用して、適切な状態を存続サーバに「プッシュ」することによって、それらを積極的に同期化する。
2)プル同期化モード:この場合、アプリケーション環境は事象およびメッセージを、障害サーバから同一場所および/または異なるサーバにある全ての存続サーバに再経路指定する。したがって、その状態を持たないので、それが認識しない事象またはメッセージを受信した存続サーバの各々は、状態を状態データベースから積極的に「プル」する。
プッシュおよびプルモードは両方とも、同一実現に共存することができる。そのような場合、プッシュモードは、それが無い場合にはデマンドによって1つずつ要求される状態の一種の「事前取出し」とみなすこともできる。
既述の通り、本発明の実施形態はネットワーク内分散偏在高可用性および非ブロッキングデータベースを提供し、N+M HAモデルが達成され、資源利用率が2倍に増大する一方で、無制限の耐障害性レベルがもたらされるように、多くの実時間ステートフル事象処理アプリケーションの内部状態を実時間で明示的に同期化する。
上記は、アプリケーションインスタンスまたは動作環境のいずれかに任意の修正を加えて、1+1HAのための明示的状態同期機構を実現するシステム用に達成することができる。
メモリ内データベースシステム価格決定モデル
次に、上述した実施形態および他の同様のアプリケーションに適した価格決定モデルについて説明する。DBMS(データベース管理システム)のための価値ベースの価格決定モデルは、トランザクションレート、容量、およびスループット等の主要顧客価値を使用して導出される。
Oracle、IBM DB2、およびその他のような現在のプロバイダによって使用されている既存のDBMSソフトウェアライセンス価格決定は、主要顧客の利益の問題ではなくしたがって不公正またはせいぜい恣意的とみなされ、最悪の場合には顧客に対立して、特にサービスプロバイダの利益に適う、パラメータを彼らの価格決定システムに使用している。
以下は、現在の価格決定システムの調査である。
1.ユーザ/サブスクライバ/DB−クライアントモデル−請求される価格は、データベースサーバに接続しているかあるいは接続を許可されたユーザ/サブスクライバ/DB−クライアントの数に関連付けられる。顧客の観点からは、ユーザベースの価格決定は、ユーザ/サブスクライバ/DB−クライアントの一部がヘビーユーザである一方、その他が稀に使用する場合には、非効率性を生み出す。ユーザベースの価格決定は、実際の使用レベルに関係なく、すべてのユーザに対して同一である。
2.プロセッサの数モデル−このモデルでは、請求される金額は、システムによって利用されているプロセッサの数に基づく。CPUは同一マルチCPUサーバ(SMP)内で、またはクラスタ構成(例えばOracle RAC)で作動する異なるサーバ全体で計数される。時々、マルチコアCPUは各コア毎に計数される。CPU/コア当たりの価格は、CPUのクロック速度および後で追加されたCPUの限界性能寄与とは関係なく同一である。この限界性能寄与に関し、マルチCPU構成では、SMPおよび/またはクラスタ構成のいずれでも、プロセッサがシステムに追加されると、プロセッサの各々からの限界効用が縮小することが認められる。追加された10番目のプロセッサがもたらす寄与は、最初のプロセッサよりずっと小さい。これは、支払いが全てのプロセッサに対して均等であるが、追加プロセッサ当たりの追加限界効用がますます低下し、したがって顧客の観点からは非効率性を生み出すことを意味する。さらに、顧客が感じるのは、彼らはDBMSソフトウェアによるCPUの非効率的な利用に対して割増料金を支払わなければならず、DBMSの製造供給元は彼らのソフトウェア製品のCPU効率性を改善することに対し後ろ向きの動機を持つということである。容量を最も効率的に提供するようにシステムを再構成するより、所要の容量に達するまでCPUを追加する方が、プロバイダにとっては費用効率が高い。
本発明の実施形態のDBMSソフトウェアライセンス価格決定モデルは、クライアントが自分の受けるサービスに対して支払う、つまりクライアントが支払うためのパラメータが、得られる利益に直接関係することが分かる、価値ベースの価格決定モデルを生成することを目指している。したがって本発明の実施形態は、顧客の観点からDBMSシステムの実際の性能を価格決定の基礎にする。したがって、1サブスクライバ当たり、または1CPU当たり等のテクニカルパラメータではなく、最大トランザクションスループット等のパラメータが使用される。
本発明の実施形態のDBMSライセンス価格決定モデルは、システムの実際の最大スループットに基づく。
ソフトウェアライセンス価格=(1秒当たりのスループット数)×(1スループット当たりの価格)**
スループットは、次のよって測定することができる。
1.データベースの1秒当たりのトランザクションカウント。
2.全てのクエリおよび返却結果を含め、データベースクライアントとデータベースサーバとの間の通信の全データベーストランザクションビットレート。全トランザクションビットレートは1秒当たりのメガビット数単位で測定される。
**1スループット当たりの価格は、次に関連付けられる。
1.GBに関するデータベースの容量。
2.サブスクライバ/ユーザの総数。
3.または、固定金額とすることもできる。
価格決定の好適な態様は、クライアントが、ソフトウェアの使用量によって導出される重要な性能値であるスループット単位毎に直接支払うことである。
1スループット当たりの価格:
GB=<3 3000ドル
GB=<6 4000ドル
GB>6 5000ドル
Figure 2008533564
過去における低い要求とは対照的に、毎秒当たりの非常に高いスループットがますます必要になっている。この必要性の高まりは、IP電話サービスの展開が成長するにつれて、劇的に増大することが予想される。過去に、顧客は非効率に対して喜んで支払いを行なったが、本発明の実施形態はその必要性を取り除く。支払いはトランザクションのスループットに直接結び付けられる。クライアントは、主要な価値であるシステムの総合最大スループットに対して支払いを行ない、支払いはCPUの数またはサブスクライバの数等の他の技術的パラメータには結びつかない。
この特許の存続期間中に、多数の関連する装置およびシステムが開発されることが予想され、本書における用語の範囲、特にネットワーキング、データベース管理、QoS、およびスループットといった用語の範囲は、全てのそのような新しい技術を先験的に含むことを意図している。
明確にするため別個の実施態様の文脈で説明されている本発明の特定の特徴は単一の実施態様に組み合わせて提供することもできることは分かるであろう。逆に、簡潔にするため単一の実施態様の文脈で説明されている本発明の各種の特徴は別個にまたは適切なサブコンビネーションで提供することもできる。
本発明はその特定の実施態様によって説明してきたが、多くの別法、変更および変形があることは当業者には明らかであることは明白である。従って、本発明は、本願の請求項の精神と広い範囲の中に入るこのような別法、変更および変形すべてを包含するものである。本願で挙げた刊行物、特許および特許願はすべて、個々の刊行物、特許および特許願が各々あたかも具体的にかつ個々に引用提示されているのと同程度に、全体を本明細書に援用するものである。さらに、本願で引用または確認したことは本発明の先行技術として利用できるという自白とみなすべきではない。
先行技術の全共有分散キャッシュコヒーレンシアーキテクチャを示す。 データが異なるデータノードにパーティション化され、各パーティションが全共有分散キャッシュコヒーレンシとして管理される、先行技術の無共有アーキテクチャを示す。 全てのデータがメモリ内に維持され、異なるコンピューティングユニットの2つ以上のメモリの間で完全に複製され、かつ同期化される、先行技術の耐障害性メモリ内データリポジトリアーキテクチャを示す。 仮想パーティションとコンピューティングユニットとの間の動的マッピングのために交換チャネルネットワーキングが使用される、本発明の好適な実施形態に係るアーキテクチャを示す簡略図である。 図4のアーキテクチャを示す簡略図である。 本発明の好適な実施形態に係る階層ベースの仮想パーティションを使用して表わすことのできる、階層状のデータ編成のためのツリー構造を示す。 本発明の好適な実施形態に係る階層ベースの仮想パーティションを使用して表わすことのできる、階層状のデータ編成のためのツリー構造を示す。 本発明の好適な実施形態に係る階層ベースの仮想パーティションを使用して表わすことのできる、階層状のデータ編成のためのツリー構造を示す。 本発明の好適な実施形態に係るパーティショニング手順を示す簡略フローチャートである。 2つのレベルのサブチャネルを有するチャネルを示し、かつさらに、本発明の好適な実施形態に係るチャネル階層内のマイクロリポジトリの割当てを示す。 仮想パーティションが本発明の好適な実施形態に係る階層ベースである、図4のアーキテクチャの部分を示す簡略ブロック図である。 本発明の好適な実施形態を使用する3フェーズコミット書込み動作を示す簡略フローチャートである。 仮想パーティションが本発明の好適な実施形態に係る階層ベースである、図4のアーキテクチャの部分を示す簡略ブロック図である。 本発明の好適な実施形態に係る障害復旧動作の簡略フローチャートを示す。 本発明の好適な実施形態に係る自己回復動作の簡略フローチャートを示す。 本発明の好適な実施形態に係る、自己回復機構の一部としてのサーバおよびデータのマイクロリポジトリの再マッピングのブロック図である。 本発明の好適な実施形態に係る、自己回復機構の一部としてのサーバおよびデータのマイクロリポジトリの再マッピングのブロック図である。 本発明の好適な実施形態に係る、チャネル交換網グラフ兼マルチキャストスパンニングツリーである。 顧客機器を示す本発明の好適な実施形態に係るネットワークの一部のブロック図である。 本発明の好適な実施形態に係る分散チャネルハッシュ実現を示すブロック図である。 本発明の好適な実施形態に係る分散チャネルハッシュ実現を示すブロック図である。 本発明の好適な実施形態に従って、二次キーを使用してデータのマッピングをいかに実行することができるかを示すブロック図である。 本発明の好適な実施形態に従って、二次キーを使用してデータのマッピングをいかに実行することができるかを示すフローチャートである。 3部および5部構成のストレージならびに2つの異なる可用性レベルの場合のデータストレージユニットXDBの数に対する1秒当たりの演算実行回数による性能および可用性を示すグラフである。 本発明の好適な実施形態に従ってプロセス状態をいかに維持することができるかを示すブロック図である。 本発明の好適な実施形態に従ってプロセス状態をいかに維持することができるかを示すブロック図である。 本発明の好適な実施形態に係るプロセス状態の維持のための状態データベースの使用を示すブロック図である。 チャネルがグループ毎に切り換えられる、本発明の好適な実施形態を示す簡略図である。

Claims (43)

  1. 各々独立にアクセス可能な仮想パーティションに配列されるデータベースユニット、
    複数のデータ処理ユニット、および
    前記仮想パーティション間で前記データ処理ユニットを交換し、それによってデータ処理容量をそれぞれの仮想パーティションに動的に割り当てるための交換網
    を含むデータアクセスシステム。
  2. 前記交換網は、スイッチングユニットの相互接続を含む、請求項1に記載のデータアクセスシステム。
  3. 各データベースユニットは、それぞれのネットワークチャネルとして独立にアクセス可能である、請求項1に記載のデータアクセスシステム。
  4. データにハッシュプロセスを実行するためのハッシュユニットをさらに含み、データは前記ハッシュプロセスの結果を介してそれぞれのデータベースユニットに割り当てられる、請求項1に記載のデータアクセスシステム。
  5. データは一次キーおよび少なくとも1つの二次キーを有するレコードの形で割り当てられ、ハッシュプロセスは前記一次キーに対して実行される、請求項4に記載のデータアクセスシステム。
  6. それぞれの二次キーに基づく検索クエリが前記一次キーにルータを介して関連付けられることができるように、二次キーと前記ハッシングされた一次キーとの間の関係を表にする少なくとも1つのルータで構成される、請求項5に記載のデータアクセスシステム。
  7. それぞれの二次キーに基づく検索クエリが前記一次キーに内部インデックステーブルを介して関連付けられることができるように、二次キーと前記ハッシングされた一次キーとの間の関係をマッピングする、少なくとも1つのさらなる自動的に管理された内部インデックステーブルで構成される、請求項5に記載のデータアクセスシステム。
  8. データは、少なくとも2つのデータパーティションにわたって少なくとも一度複製される、請求項1に記載のデータアクセスシステム。
  9. 競合する書込み動作間の調停を行なうコーディネータとして前記データ処理ユニットの1つを動的に割り当てるための選定機能を含む、請求項1に記載のデータアクセスシステム。
  10. 前記コーディネータは、コーディネータとして継続しているという信号を規則正しく送るように構成され、前記選定機能は前記規則正しい信号が終わったときに前記動的に割り当てることを繰り返すように構成される、請求項9に記載のデータアクセスシステム。
  11. 前記動的に割り当てることによって中断された書込み動作は、前記動的に割り当てることが終わったときに、最も進行した回復可能位置から再開する、請求項10に記載のデータアクセスシステム。
  12. 前記コーディネータは、レコード変更動作後にレコードに一意の認証を割り当て、それによって前記レコードのバージョンを比較できるようにするように構成される、請求項9に記載のデータアクセスシステム。
  13. データは少なくとも3つのキーを有するレコードの形で割り当てられ、各レコードは前記キーのうちの1つに基づく一次アドレスおよび前記キーの残りのものに基づく二次アドレスを割り当てられる、請求項4に記載のデータアクセスシステム。
  14. 二次アドレスを対応する一次アドレスに解決するためのレゾリューションユニットを含み、それによって、対応する一次キーを使用して二次キーによって定義されるレコードを見つける、請求項13に記載のデータアクセスシステム。
  15. 前記レゾリューションユニットは少なくとも1つのルータを含む、請求項14に記載のデータアクセスシステム。
  16. 前記レゾリューションユニットは少なくとも1つのバックアップルータをさらに含む、請求項15に記載のデータアクセスシステム。
  17. スイッチング機構は、全ての前記仮想パーティションの可用性が維持されるように、前記データ処理ユニットの1つまたはそれ以上の故障後にデータパーティションバージョンを前記データ処理ユニットの残りのものに再割り当てするように構成される、請求項8に記載のデータアクセスシステム。
  18. 各仮想パーティションは、所定のデータ処理ユニットの故障後に全てのデータがアクセス可能なままであるように、予め決められた数のデータ処理ユニットに格納される、請求項1に記載のデータアクセスシステム。
  19. 前記予め決められた数は少なくとも3である、請求項18に記載のデータアクセスシステム。
  20. 前記少なくとも3である数は奇数であり、それによって前記データの完全性を確実にするためにコピーされた仮想パーティション間の多数決を可能にする、請求項19に記載のデータアクセスシステム。
  21. 前記奇数は少なくとも5である、請求項20に記載のデータアクセスシステム。
  22. 前記データアクセスシステムの個々の顧客による使用量を測定するための使用測定機能、および前記顧客に顧客の最大使用量に基づいて課金する課金機能をさらに含む、請求項1に記載のデータアクセスシステム。
  23. データ処理ユニット、
    データ格納ユニット、
    前記データ処理ユニットと前記データ格納ユニットを動的に交換するための、それらの間のスイッチングシステム、および
    前記データアクセスシステムの個々の顧客による使用量を測定するための使用測定機能、および前記顧客に顧客の最大使用量に基づいて課金する課金機能
    を含むデータアクセスシステム。
  24. データクエリ構成を提供すること、
    前記データクエリ構成から分離したデータ格納構成を提供すること、および
    現在のクエリの影響下で前記データ格納構成と前記データクエリ構成を動的に接続するスイッチングシステムを提供すること
    を含む、高い可用性で高いスケーラビリティのデータ格納およびクエリシステムを提供する方法。
  25. 前記データ格納構成を複数のチャネルとして提供することを含む、請求項24に記載の方法。
  26. 各データ項目をレコードとして格納すること、および予め決められた数の前記チャネルにおいて所定のデータレコードのコピーを提供することを含む、請求項25に記載の方法。
  27. 前記予め決められた数は奇数である、請求項26に記載の方法。
  28. 前記データの完全性を確実にするために、前記奇数のコピー間で多数決を使用することをさらに含む、請求項27に記載の方法。
  29. 前記データレコードのフィールドを一次キーとして設定すること、および前記一次キーを前記チャネルにアドレス指定するためにハッシングすることを含む、請求項26に記載の方法。
  30. 前記データレコードのフィールドを二次キーとして設定すること、および前記二次キーと前記一次キーを相関させるために少なくとも1つのルータを提供することを含む、請求項29に記載の方法。
  31. 前記チャネルは、パブリッシュサブスクライブチャネルである、請求項25に記載の方法。
  32. 前記データ格納構成は複数のデータ格納ユニットを含み、方法は複数のデータ格納ユニットにおいて複数コピーでデータを格納すること、および所定のデータ格納ユニットの故障を検出すると前記所定のデータ格納ユニットにおいて格納されるデータユニットの他の場所からさらなるコピーを作成することを含む、請求項24に記載の方法。
  33. 前記データはクエリを介してアクセスされ、所定のクエリに対する応答は、前記データに関する現在の状態に依存する、請求項32に記載の方法。
  34. それぞれのデータ格納ユニット間の明示的な状態同期化によって、少なくとも1つのデータ格納ユニットの故障の場合に前記現在の状態を保持することをさらに含む、請求項33に記載の方法。
  35. 前記明示的な状態同期化は、プル同期化である、請求項34に記載の方法。
  36. 前記明示的な状態同期化は、プッシュ同期化である、請求項34に記載の方法。
  37. 顧客による使用量を測定することをさらに含む、請求項24に記載の方法。
  38. 前記使用量は最大使用量として測定される、請求項37に記載の方法。
  39. 前記最大使用量に基づいて前記顧客に課金することを含む、請求項38に記載の方法。
  40. データ格納資源の動的パーティショニングを提供すること、
    データ処理資源の動的割当てを提供すること、および
    前記データ格納資源の前記動的パーティショニングが前記データ処理資源の前記動的パーティショニングから切り離されるように、前記データ格納資源と前記データ処理資源との間の動的スイッチングを使用すること
    を含む、データ格納資源およびデータ処理資源を有するデータリポジトリを提供する方法。
  41. 前記データ格納資源において少なくとも2つの場所に個々のデータ項目をコピーすること、および前記少なくとも2つの場所にグループアドレスを提供することを含む、請求項40に記載の方法。
  42. 故障を検出すると、前記リポジトリが前記検出の前の状態を回復するように、前記データリポジトリに複数の状態を割り当てることを含む、請求項40に記載の方法。
  43. 各データ項目が一次キーおよび1つまたはそれ以上の二次キーを有する、複数のデータパーティションおよびデータ項目を含む無共有データレポジトリであって、前記一次キーは前記データパーティションを定義し、そして各二次キーは、二次キーによってパーティション化されるさらなる自動的に管理された内部インデックステーブルとして実現され、内部インデックステーブルは、それぞれの二次キーに基づく検索クエリが前記一次キーに前記内部インデックステーブルを介して関連付けられることができるように、二次キーと前記パーティション化された一次キーとの間の関係をマッピングする、無共有データレポジトリ。
JP2007556705A 2005-02-24 2006-02-21 データ管理のための方法および装置 Pending JP2008533564A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US65544105P 2005-02-24 2005-02-24
US73376805P 2005-11-07 2005-11-07
PCT/IL2006/000220 WO2006090367A2 (en) 2005-02-24 2006-02-21 Method and apparatus for distributed data management in a switching network

Publications (1)

Publication Number Publication Date
JP2008533564A true JP2008533564A (ja) 2008-08-21

Family

ID=36927816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556705A Pending JP2008533564A (ja) 2005-02-24 2006-02-21 データ管理のための方法および装置

Country Status (6)

Country Link
US (1) US7644087B2 (ja)
EP (2) EP2317450A1 (ja)
JP (1) JP2008533564A (ja)
KR (1) KR20070110367A (ja)
CA (1) CA2596719A1 (ja)
WO (1) WO2006090367A2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003935A (ja) * 2007-06-20 2009-01-08 Nvidia Corp 書込み操作を同報通信するためのシステム、方法、およびコンピュータプログラム製品
JP2011514087A (ja) * 2008-03-05 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション publish/subscribeメッセージ・ブローカ
JP2012238061A (ja) * 2011-05-10 2012-12-06 Nec Corp トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
JP2013506199A (ja) * 2009-09-25 2013-02-21 アビニシオ テクノロジー エルエルシー グラフベース・アプリケーションにおけるトランザクションの処理
JP2015019379A (ja) * 2008-04-25 2015-01-29 ゼットティーイー コーポレーションZte Corporation キャリアグレードピアツーピア(p2p)ネットワークシステム及び方法
JP2017507378A (ja) * 2013-12-13 2017-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation オンライン・シェアード・ナッシング・データベースを拡張するためのインクリメンタルで、かつ、連結された再分散
JP2020140699A (ja) * 2019-02-27 2020-09-03 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データを記憶およびクエリするための方法、装置、設備、および媒体

Families Citing this family (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL164191A0 (en) 2002-03-26 2005-12-18 Nanocyte Inc Stinging cells expressing an exogenous polynucleotide encoding a therapeutic, diagnostic or a cosme tic agent and methods compositions and devices utilizing such stinging cells or capsules derived therefrom for delivering the therapeutic, diagnostic or cosmetic agent into a tissue nanocyte inc.
US8326990B1 (en) * 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US20160098279A1 (en) * 2005-08-29 2016-04-07 Searete Llc Method and apparatus for segmented sequential storage
US8180923B2 (en) * 2005-11-29 2012-05-15 Intel Corporation Network access control for many-core systems
US8346732B1 (en) * 2005-11-30 2013-01-01 Symantec Operating Corporation Method and apparatus for providing high availability of a database
US8447829B1 (en) 2006-02-10 2013-05-21 Amazon Technologies, Inc. System and method for controlling access to web services resources
US8117153B2 (en) * 2006-03-28 2012-02-14 Oracle America, Inc. Systems and methods for a distributed cache
JP4862463B2 (ja) * 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4655986B2 (ja) * 2006-04-12 2011-03-23 ブラザー工業株式会社 ノード装置、記憶制御プログラム及び情報記憶方法
US8726020B2 (en) * 2006-05-31 2014-05-13 Microsoft Corporation Updating configuration information to a perimeter network
US7853685B1 (en) * 2006-07-10 2010-12-14 Network General Technology Identifying critical network and application entities
US9596301B2 (en) * 2006-09-18 2017-03-14 Hewlett Packard Enterprise Development Lp Distributed-leader-election service for a distributed computer system
EP2067104A1 (en) 2006-09-28 2009-06-10 Xeround Systems Ltd. Apparatus and method for a distributed storage global database
US20080097971A1 (en) * 2006-10-18 2008-04-24 Telcordia Applied Research Center Taiwan Company Peer-to-peer based secondary key search method and system for cluster database
US7917599B1 (en) 2006-12-15 2011-03-29 The Research Foundation Of State University Of New York Distributed adaptive network memory engine
US7925711B1 (en) 2006-12-15 2011-04-12 The Research Foundation Of State University Of New York Centralized adaptive network memory engine
US8090792B2 (en) * 2007-03-08 2012-01-03 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage
US20080285577A1 (en) * 2007-05-15 2008-11-20 Yehuda Zisapel Systems and Methods for Providing Network-Wide, Traffic-Aware Dynamic Acceleration and Admission Control for Peer-to-Peer Based Services
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US20090063807A1 (en) * 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
US20090109859A1 (en) * 2007-10-31 2009-04-30 At&T Knowledge Ventures, Lp Method and System for Detecting a Fault Condition Based on Failed IGMP Join Attempts
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US20090198736A1 (en) * 2008-01-31 2009-08-06 Jinmei Shen Time-Based Multiple Data Partitioning
US7895172B2 (en) * 2008-02-19 2011-02-22 Yahoo! Inc. System and method for writing data dependent upon multiple reads in a distributed database
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
US8103775B2 (en) * 2008-03-13 2012-01-24 Harris Corporation System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN)
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US8180838B2 (en) * 2008-08-29 2012-05-15 Microsoft Corporation Efficiently managing modular data storage systems
WO2010040179A1 (en) * 2008-10-08 2010-04-15 National Ict Australia Pty Ltd Use of dynamic bounded regions to improve the scalability of decentralised online environments
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
KR101693229B1 (ko) * 2009-02-13 2017-01-05 아브 이니티오 테크놀로지 엘엘시 데이터 저장 시스템과의 통신
US20100211544A1 (en) * 2009-02-19 2010-08-19 Jyshyang Chen System with session synchronization
US8321447B2 (en) * 2009-03-02 2012-11-27 Winshuttle, Llc Adaptive query throttling system and method
US20100262687A1 (en) * 2009-04-10 2010-10-14 International Business Machines Corporation Dynamic data partitioning for hot spot active data and other data
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
US8560639B2 (en) 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
WO2010134437A1 (ja) * 2009-05-18 2010-11-25 Nishiyama Shuhei 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
US8966017B2 (en) * 2009-07-09 2015-02-24 Novell, Inc. Techniques for cloud control and management
KR101644569B1 (ko) * 2009-10-01 2016-08-01 삼성전자 주식회사 가상 프로세서 관리 장치 및 방법
US8156304B2 (en) * 2009-12-04 2012-04-10 Oracle International Corporation Dynamic data storage repartitioning
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9116946B2 (en) 2010-04-02 2015-08-25 Scalebase Inc. System and method for interacting with a plurality of data sources
US8935248B2 (en) 2010-05-17 2015-01-13 United States Postal Service Localized data affinity system and hybrid method
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US8750164B2 (en) 2010-07-06 2014-06-10 Nicira, Inc. Hierarchical managed switch architecture
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US11308490B2 (en) * 2010-07-28 2022-04-19 Cox Communications, Inc. Security system and method that allows users to securely setup and maintain system security for all business systems
US8484242B1 (en) 2010-08-24 2013-07-09 ScalArc, Inc. Method and system for transparent database connection pooling and query queuing
US8543554B1 (en) 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
US9032017B1 (en) * 2010-08-10 2015-05-12 Scalarc Inc Method and system for transparent read-write query routing when load balancing databases
US8763091B1 (en) 2010-08-24 2014-06-24 ScalArc Inc. Method and system for user authentication offload in a transparent database load balancer
US9684702B2 (en) 2010-12-07 2017-06-20 International Business Machines Corporation Database redistribution utilizing virtual partitions
US9449065B1 (en) 2010-12-28 2016-09-20 Amazon Technologies, Inc. Data replication framework
US8554762B1 (en) * 2010-12-28 2013-10-08 Amazon Technologies, Inc. Data replication framework
US10198492B1 (en) * 2010-12-28 2019-02-05 Amazon Technologies, Inc. Data replication framework
US8468132B1 (en) 2010-12-28 2013-06-18 Amazon Technologies, Inc. Data replication framework
US8438364B2 (en) * 2010-12-30 2013-05-07 Facebook Inc. Distributed cache for graph data
US20120185642A1 (en) 2011-01-18 2012-07-19 International Business Machines Corporation Assigning a data item to a storage location in a computing environment
JP5727258B2 (ja) * 2011-02-25 2015-06-03 ウイングアーク1st株式会社 分散型データベースシステム
US9172750B2 (en) * 2011-04-26 2015-10-27 Brian J. Bulkowski Cluster-node load balancing in a distributed database system
US9052831B1 (en) 2011-06-30 2015-06-09 Amazon Technologies, Inc. System and method for performing live partitioning in a data store
US8909615B2 (en) * 2011-08-30 2014-12-09 Open Text S.A. System and method of managing capacity of search index partitions
US9348668B2 (en) 2011-09-15 2016-05-24 Oracle International Corporation System and method for supporting a server-side event model in a distributed data grid
US8732282B1 (en) * 2011-09-30 2014-05-20 Emc Corporation Model framework to facilitate robust programming of distributed workflows
US8849995B1 (en) * 2011-09-30 2014-09-30 Amazon Technologies, Inc. Managing host computing devices
US8849776B2 (en) * 2011-10-17 2014-09-30 Yahoo! Inc. Method and system for resolving data inconsistency
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US8856590B2 (en) * 2012-01-07 2014-10-07 Compunetix, Inc. Reliable compute engine, method and apparatus
US9116862B1 (en) 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
US8930312B1 (en) 2012-01-17 2015-01-06 Amazon Technologies, Inc. System and method for splitting a replicated data partition
US9069827B1 (en) 2012-01-17 2015-06-30 Amazon Technologies, Inc. System and method for adjusting membership of a data replication group
US8843441B1 (en) 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
US8327185B1 (en) 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid
CN104303165A (zh) 2012-06-04 2015-01-21 惠普发展公司,有限责任合伙企业 管理对存储在输入块中的数据待执行的分析函数
AT513242B1 (de) * 2012-07-02 2018-07-15 Frequentis Ag Verfahren zur Synchronisation von Daten in einem Computernetzwerk
CN103765391A (zh) * 2012-08-23 2014-04-30 数创株式会社 分布式数据库系统
GB2505229B (en) 2012-08-23 2019-10-16 Metaswitch Networks Ltd Upgrading nodes
US9164702B1 (en) * 2012-09-07 2015-10-20 Google Inc. Single-sided distributed cache system
US8931051B2 (en) * 2012-11-14 2015-01-06 Microsoft Corporation Scalable and highly available clustering for large scale real-time applications
US9229983B2 (en) 2012-11-30 2016-01-05 Amazon Technologies, Inc. System-wide query optimization
US10938917B2 (en) 2012-12-19 2021-03-02 Micro Focus Llc Triggering a high availability feature in response to detecting impairment of client experience
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US10127235B2 (en) * 2013-03-06 2018-11-13 Quest Software Inc. Storage system deduplication with service level agreements
CN104104537B (zh) * 2013-04-15 2017-07-07 北京中嘉时代科技有限公司 一种基于状态的服务监控与恢复方法及装置
CN104239307B (zh) * 2013-06-08 2018-07-27 腾讯科技(深圳)有限公司 用户信息存储方法和系统
US20150039555A1 (en) * 2013-08-02 2015-02-05 International Business Machines Corporation Heuristically modifying dbms environments using performance analytics
CN103440223B (zh) * 2013-08-29 2017-04-05 西安电子科技大学 一种实现高速缓存一致性协议的分层系统及其方法
US9633051B1 (en) 2013-09-20 2017-04-25 Amazon Technologies, Inc. Backup of partitioned database tables
US9405783B2 (en) 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
CN103533544B (zh) * 2013-10-10 2016-06-01 北京首信科技股份有限公司 一种在数据库发生故障时进行aaa认证的方法
US20150120697A1 (en) 2013-10-28 2015-04-30 Scalebase Inc. System and method for analysis of a database proxy
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9529546B2 (en) 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
CN103763364B (zh) * 2014-01-15 2017-05-24 浪潮(北京)电子信息产业有限公司 一种数据访问方法及微型存储服务器
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US10303702B2 (en) 2014-02-07 2019-05-28 Ignite Scalarc Solutions, Inc. System and method for analysis and management of data distribution in a distributed database environment
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9436564B1 (en) * 2014-03-31 2016-09-06 Emc Corporation Creating distributed storage during partitions
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9501359B2 (en) 2014-09-10 2016-11-22 Netapp, Inc. Reconstruction of dense tree volume metadata state across crash recovery
US9524103B2 (en) 2014-09-10 2016-12-20 Netapp, Inc. Technique for quantifying logical space trapped in an extent store
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US11138537B2 (en) * 2014-09-17 2021-10-05 International Business Machines Corporation Data volume-based server hardware sizing using edge case analysis
JP6564026B2 (ja) * 2014-09-26 2019-08-21 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10055300B2 (en) * 2015-01-12 2018-08-21 Actifio, Inc. Disk group based backup
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10067969B2 (en) * 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US10248530B2 (en) 2015-07-09 2019-04-02 Comcast Cable Communications, Llc Methods and systems for determining capacity
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10977276B2 (en) * 2015-07-31 2021-04-13 International Business Machines Corporation Balanced partition placement in distributed databases
US20170097771A1 (en) 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery
US9984142B2 (en) * 2015-11-05 2018-05-29 Oracle International Corporation Single unit of work
US10552454B2 (en) * 2015-11-13 2020-02-04 Sap Se Efficient partitioning of related database tables
US9830103B2 (en) 2016-01-05 2017-11-28 Netapp, Inc. Technique for recovery of trapped storage space in an extent store
US9846539B2 (en) 2016-01-22 2017-12-19 Netapp, Inc. Recovery from low space condition of an extent store
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
EP3475826A4 (en) 2016-06-24 2020-02-19 Schneider Electric Systems USA, Inc. METHOD, SYSTEMS AND DEVICE FOR DYNAMICALLY MANAGING A LIMITLESS SYSTEM WITH HIGH AVAILABILITY
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10592528B2 (en) * 2017-02-27 2020-03-17 Sap Se Workload capture and replay for replicated database systems
US10466930B2 (en) * 2017-04-28 2019-11-05 EMC IP Holding Company LLC Method and system for fast ordered writes with atomic multicast
US10614019B2 (en) 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10855554B2 (en) 2017-04-28 2020-12-01 Actifio, Inc. Systems and methods for determining service level agreement compliance
US10289491B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for implementing multi-dimensional raid in an extensible storage array to optimize performance
US10339062B2 (en) 2017-04-28 2019-07-02 EMC IP Holding Company LLC Method and system for writing data to and read data from persistent storage
US10666495B2 (en) * 2017-08-22 2020-05-26 International Business Machines Corporation Transaction processing
EP3704579B1 (en) 2017-10-31 2023-10-18 AB Initio Technology LLC Managing a computing cluster using replicated task results
US11115390B2 (en) 2017-12-05 2021-09-07 Goldilock Secure s.r.o. Storage system utilizing discrete on-demand memory resources
US11616781B2 (en) 2017-12-05 2023-03-28 Goldilock Secure s.r.o. Air gap-based network isolation device
JP6795527B2 (ja) * 2018-02-14 2020-12-02 日本電信電話株式会社 通信システム、及び、サーバ切替方法
US11132376B2 (en) 2018-02-28 2021-09-28 Walmart Apollo, Llc System and method for management of a database system
US11176001B2 (en) 2018-06-08 2021-11-16 Google Llc Automated backup and restore of a disk group
US20200137515A1 (en) * 2018-10-30 2020-04-30 International Business Machines Corporation Facilitating proximity based connections at an event
TWI678087B (zh) 2018-11-22 2019-11-21 財團法人工業技術研究院 訊息佇列發佈與訂閱之同步方法及其系統
US11625273B1 (en) 2018-11-23 2023-04-11 Amazon Technologies, Inc. Changing throughput capacity to sustain throughput for accessing individual items in a database
US11475040B2 (en) * 2019-01-08 2022-10-18 International Business Machines Corporation Managing data replication sessions in response to an inability to access a storage volume
US10884948B2 (en) * 2019-05-16 2021-01-05 Advanced Micro Devices, Inc. Replacing pointers with hashing in tree-based page table designs
US11507622B2 (en) 2020-03-25 2022-11-22 The Toronto-Dominion Bank System and method for automatically managing storage resources of a big data platform
CN112651711B (zh) * 2020-12-22 2023-08-22 北京市市政工程设计研究总院有限公司 基于xdb文件在bs架构下的协同设计管理平台的搭建系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625811A (en) * 1994-10-31 1997-04-29 International Business Machines Corporation Method and system for database load balancing
US6128467A (en) * 1996-03-21 2000-10-03 Compaq Computer Corporation Crosspoint switched multimedia system
US6594698B1 (en) * 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6505187B1 (en) * 1999-12-08 2003-01-07 Ncr Corporation Computing multiple order-based functions in a parallel processing database system
EP1678617A4 (en) * 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US20060168214A1 (en) * 2004-10-29 2006-07-27 International Business Machines Corporation System for managing logical partition preemption

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003935A (ja) * 2007-06-20 2009-01-08 Nvidia Corp 書込み操作を同報通信するためのシステム、方法、およびコンピュータプログラム製品
JP2011514087A (ja) * 2008-03-05 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション publish/subscribeメッセージ・ブローカ
JP2015019379A (ja) * 2008-04-25 2015-01-29 ゼットティーイー コーポレーションZte Corporation キャリアグレードピアツーピア(p2p)ネットワークシステム及び方法
JP2013506199A (ja) * 2009-09-25 2013-02-21 アビニシオ テクノロジー エルエルシー グラフベース・アプリケーションにおけるトランザクションの処理
JP2012238061A (ja) * 2011-05-10 2012-12-06 Nec Corp トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
US10387422B2 (en) 2013-12-13 2019-08-20 International Business Machines Corporation Incremental and collocated redistribution for expansion of online shared nothing database
JP2017507378A (ja) * 2013-12-13 2017-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation オンライン・シェアード・ナッシング・データベースを拡張するためのインクリメンタルで、かつ、連結された再分散
US11341139B2 (en) 2013-12-13 2022-05-24 International Business Machines Corporation Incremental and collocated redistribution for expansion of online shared nothing database
JP2020140699A (ja) * 2019-02-27 2020-09-03 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データを記憶およびクエリするための方法、装置、設備、および媒体
KR20200104789A (ko) * 2019-02-27 2020-09-04 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터 저장 및 조회 방법, 장치, 기기 및 매체
JP6998928B2 (ja) 2019-02-27 2022-01-18 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データを記憶およびクエリするための方法、装置、設備、および媒体
US11334544B2 (en) 2019-02-27 2022-05-17 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus, device and medium for storing and querying data
KR102407510B1 (ko) 2019-02-27 2022-06-10 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터 저장 및 조회 방법, 장치, 기기 및 매체

Also Published As

Publication number Publication date
US7644087B2 (en) 2010-01-05
US20060190243A1 (en) 2006-08-24
KR20070110367A (ko) 2007-11-16
WO2006090367A2 (en) 2006-08-31
EP1851662A2 (en) 2007-11-07
EP2317450A1 (en) 2011-05-04
WO2006090367A3 (en) 2007-01-25
CA2596719A1 (en) 2006-08-31

Similar Documents

Publication Publication Date Title
JP2008533564A (ja) データ管理のための方法および装置
EP2095248B1 (en) Consistency within a federation infrastructure
US8549180B2 (en) Optimizing access to federation infrastructure-based resources
US9647917B2 (en) Maintaining consistency within a federation infrastructure
US9231988B2 (en) Intercluster repository synchronizer and method of synchronizing objects using a synchronization indicator and shared metadata
US20130031229A1 (en) Traffic reduction method for distributed key-value store
US20150156136A1 (en) Cluster federation and trust
CN101128827A (zh) 用于交换网络中分布式数据管理的方法和装置
US10320905B2 (en) Highly available network filer super cluster
US10712964B2 (en) Pre-forking replicas for efficient scaling of a distributed data storage system
US8924513B2 (en) Storage system
Taylor et al. Reliable storage and querying for collaborative data sharing systems
CN107547657A (zh) 一种基于云存储系统中单点数据编号的方法、装置以及存储介质
Wang et al. Naxos: A named data networking consensus protocol
van Renesse et al. Autonomic computing: A system-wide perspective
Thant et al. Improving the availability of NoSQL databases for Cloud Storage
Reinefeld et al. A scalable, transactional data store for future internet services
CN117609389A (zh) 一种多端数据库系统
Jeyabharathi et al. Improvement of Chord algorithm in efficient grid resource discovery: A comparative analysis
Hogqvist et al. Towards Explicit Data Placement in Scalable Key/Value Stores
Tang et al. An efficient and scalable ubiquitous storage scheme for delay-sensitive IT applications

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20080711