JP4653490B2 - 相互接続を有するクラスタリングシステムおよび方法 - Google Patents

相互接続を有するクラスタリングシステムおよび方法 Download PDF

Info

Publication number
JP4653490B2
JP4653490B2 JP2004557224A JP2004557224A JP4653490B2 JP 4653490 B2 JP4653490 B2 JP 4653490B2 JP 2004557224 A JP2004557224 A JP 2004557224A JP 2004557224 A JP2004557224 A JP 2004557224A JP 4653490 B2 JP4653490 B2 JP 4653490B2
Authority
JP
Japan
Prior art keywords
node
nodes
network
data
cluster
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.)
Expired - Lifetime
Application number
JP2004557224A
Other languages
English (en)
Other versions
JP2006508469A (ja
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 JP2006508469A publication Critical patent/JP2006508469A/ja
Application granted granted Critical
Publication of JP4653490B2 publication Critical patent/JP4653490B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

発明の分野
この発明はノードクラスタリングに関する。この発明は、ノード間に相互接続を含むクラスタリングシステムおよび方法への特定の用途を見出す。
発明の背景
クラスタは単一のシステムとして協働する独立したサーバのグループである。主要なクラスタ構成要素はプロセッサノード、クラスタ相互接続(専用ネットワーク)およびディスクサブシステムである。クラスタはディスクアクセスや、データを管理するリソースを共有するが、別個の各ハードウェアクラスタノードはメモリを共有しない。各ノードはそれ自体の専用のシステムメモリ、ならびにそれ自体のオペレーティングシステム、データベースインスタンスおよびアプリケーションソフトウェアを有する。クラスタは、単一の対称的なマルチプロセッサシステムにわたって高度な障害許容力およびモジュールの増分システム成長を提供し得る。サブシステムが故障した場合には、クラスタリングにより高い可用性が確実にされる。冗長なハードウェア構成要素、たとえば付加的なノード、相互接続および共有ディスクはより高い可用性を提供する。このような冗長なハードウェアアーキテクチャにより単一障害点が避けられ、障害許容力が与えられる。
データベースクラスタにおいては、各ノードに対するCPUおよびメモリ要件がデータベースアプリケーションごとに異なり得る。性能および費用の要件もデータベースアプリケーションごとに異なる。性能に寄与する1つの要因は、クラスタにおける各ノードがその健康状態および構成を当該クラスタにおける他のノードに知らせ続ける必要があることである。これは、ハートビートと称されるネットワークメッセージをネットワークにわたって定期的に同報通信することによってなされてきた。ハートビート信号は通常、専用のネットワーク、すなわちノード間通信に用いられるクラスタ相互接続を介して送信される。しかしながら、ハートビートメッセージが損失または遅延したりすると、ノードが機能していないという誤った報告がなされるおそれがある。
先行技術のシステムにおいては、クラスタ相互接続は、各ノードにネットワークカードを取付け、適切なネットワークケーブルでこれらを接続し、ワイヤ全体にわたらせるようソフトウェアプロトコルを構成することによって構築されてきた。相互接続は、典型的には、TCP/IPもしくはUDPを実行する低コスト/低速のイーサネット(登録商標)カード、または、RDG(Reliable DataGram)を実行するコンパック(Compaq)のメモリチャネル(Memory Channel)もしくはHMP(Hyper Messaging Protocol)を用いるヒューレット・パッカード(Hewlett-Packard)のHyperfabric/2のような高コスト/高速のプロプラエタリの相互接続であった。低コスト/高速の相互接続はユーザのためにクラスタリングのコストを下げ、実行中の待ち時間を短くするだろう。
この発明は、上述の問題に対処するクラスタリングの新しく有用な方法およびシステムを提供する。
発明の概要
一実施例においては、1つ以上のデータ記憶装置と複数のノードとを含むクラスタが提供される。当該複数のノードは各々が当該1つ以上のデータ記憶装置とデータ通信アクセ
スできる。相互接続バスは当該複数のノード間にノード間通信リンクを提供する。自己監視ロジックにより、当該相互接続バス上の信号に基づいて当該クラスタにおけるトポロジ変化が検出される。
別の実施例に従うと、クラスタにおけるデータを伝達する方法が提供される。ここでは、当該クラスタは、1つ以上のデータ記憶装置を備えた通信ネットワークに複数のノードを含み、当該複数のノードの各々がソフトウェアインスタンスを制御する。当該複数のノードはさらに相互接続バスを介して互いに通信を行なう。データ要求メッセージが、当該相互接続バスを介して当該複数のノードにおける第1のノードから第2のノードに直接送信される。ダイレクトメモリアクセスによって選択されたデータは、当該選択されたデータが利用可能であり、当該相互接続バスを介して当該第2のノードから当該第1のノードに直接伝送される場合、当該第2のノードによって検索される。
明細書に援用され、明細書の一部を構成する添付の図面においてシステムおよび方法の実施例が示されるが、当該実施例は、下記の詳細な説明とともに当該システムおよび方法の具体的な実施例を説明するのに役立つ。図面に示される要素の境界(たとえば箱または箱のグループ)が境界の一例を表わすことが理解されるだろう。1つの要素が複数の要素として設計され得るかまたは複数の要素が1つの要素として設計され得ることを当業者は理解するだろう。別の要素の内部の構成要素として示される要素が外部の構成要素として実現され得、逆の場合も同様に実現され得る。
図示される実施例の詳細な説明
以下は、開示全体を通じて用いられる選択された用語の定義を含む。すべての用語の単数形および複数形はともに各々の意味の範囲内である。
この明細書中で用いられる「コンピュータ読取可能媒体」は、信号、命令および/またはデータを実行のために直接的または間接的にプロセッサに供給することに関わるいかなる媒体をも指す。このような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むが、これらに限定されない多くの形を取り得る。不揮発性媒体はたとえば光ディスクまたは磁気ディスクを含み得る。揮発性媒体は動的メモリを含み得る。伝送媒体は同軸ケーブル、銅ワイヤおよび光ファイバケーブルを含み得る。伝送媒体はまた、電波および赤外線データ通信中に生成されるような音波または光波の形を取り得る。コンピュータ読取可能媒体の一般的な形は、たとえば、フロッピ(登録商標)ーディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは他のいずれかの磁気媒体、CD−ROM、他のいずれかの光学媒体、パンチカード、紙テープ、孔のパターンを備えた他のいずれかの物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、他のいずれかのメモリチップもしくはカートリッジ、搬送波/パルス、またはコンピュータが読取ることのできる他のいずれかの媒体を含む。
この明細書中で用いられる「ロジック」は、機能もしくは動作を実行するために、および/または別の構成要素から機能もしくは動作を引起すためにハードウェア、ファームウェア、ソフトウェアおよび/または各々の組合せを含むが、これらには限定されない。たとえば、所望の用途または必要性に基づき、ロジックはソフトウェア制御のマイクロプロセッサ、特定用途向け集積回路(ASIC)などのディスクリートロジックまたはプログラミングされた他の論理素子を含み得る。ロジックはまたソフトウェアとして十分に具体化され得る。
この明細書中で用いられる「信号」は、1つ以上の電気信号、アナログもしくはデジタル信号、信号状態の変化(たとえば電圧上昇/降下)、1つ以上のコンピュータ命令、メ
ッセージ、ビットもしくはビットストリーム、または受信、伝送および/もしくは検出が可能な他の手段を含むが、これらに限定されない。
この明細書中で用いられる「ソフトウェア」は、コンピュータまたは他の電子素子に所望の態様で機能を実行させたり、動作を実行させたり、および/または作動させたりする1つ以上のコンピュータ読取可能および/または実行可能な命令を含むが、これらに限定されない。命令は、動的にリンクされたライブラリからの別個のアプリケーションまたはコードを含むルーチン、アルゴリズム、モジュールまたはプログラムなどのさまざまな形で実現され得る。ソフトウェアはまた、独立プログラム、関数呼出、サーブレット、アプレット、メモリに記憶された命令、オペレーティングシステムの一部、または他の種類の実行可能な命令などのさまざまな形で実現され得る。ソフトウェアの形がたとえば所望のアプリケーションの要件、それが実行される環境、および/または設計者/プログラマの要望などに依存することを当業者は理解するだろう。
図1には、この発明の一実施例に従った単純なクラスタ化されたデータベースシステム100の一実施例が示される。2つのノード、すなわちノード105およびノード110がこの例において示されるが、異なる数のノードが用いられてもよく、異なる構成でクラスタ化されてもよい。データベースクラスタが一例として用いられるが、当該システムは他の種類のクラスタ化されたシステムにも適用可能である。各ノードは、ソフトウェアを実行しかつ情報を処理するコンピュータシステムである。コンピュータシステムはパーソナルコンピュータ、サーバまたは他の計算装置であってもよい。各ノードはさまざまな構成要素および装置、たとえば、1つ以上のプロセッサ115、オペレーティングシステム120、メモリ、データ記憶装置、データ通信バスおよびネットワーク通信装置を含み得る。各ノードは他のノードとは異なる構成を有し得る。一種のクラスタリングシステムの一例が、「1つのノードのキャッシュから別のノードのキャッシュにデータを転送するための方法および装置(“Method and Apparatus for Transferring Data from the Cache of One Node to the Cache of Another Node”)」と題され、この発明の譲渡人に譲渡され、その全体がすべての目的のために引用によりこの明細書中に援用される米国特許第6,353,836号に記載される。
図1をさらに参照すると、ノード105が、クラスタ化されたデータベースシステム100におけるノードの構成例を説明するために用いられる。この実施例においては、ノードは、各ノードが1つ以上のデータ記憶装置125にアクセスできるデータ共有構成でネットワーク接続される。データ記憶装置125は、クラスタにおいて接続されたノードによって共有され得るデータベースファイルなどのさまざまなファイルを保持し得る。ネットワークコントローラ130はノード105をネットワーク135に接続する。オペレーティングシステム120は、ノード105上で実行するソフトウェアアプリケーションとネットワークコントローラ130との間の通信インターフェイスを含む。たとえば、当該インターフェイスは、ネットワーク135の選択された通信プロトコルに従ってプログラミングされたネットワークデバイスドライバ140であってもよい。
ネットワークコントローラ130およびネットワーク135のために用いられ得る通信プロトコルの例には、ファイバチャネル(Fibre Channel)ANSI規格X3.230および/またはSCSI−3 ANSI規格X3.270が含まれる。ファイバチャネルアーキテクチャは、シリアル通信およびストレージI/Oの両方に高速のインターフェイスリンクをもたらす。ネットワークコントローラ130の他の実施例は、とりわけ、Fast−40(Ultra-SCSI)、シリアル・ストレージ・アーキテクチャ(SSA)、IEEE規格1394、非同期転送モード(ATM)、スケーラブル・コヒーレント・インターフェイス(SCI)IEEE規格1596−1992または上述のいくつかの組合せを利用する実施例などの記憶装置125とノード105、110とを接続する他の方法をサポートし
得る。
ノード105はさらに、1つ以上の記憶装置125において保持されるデータへのアクセスを管理および制御するデータベースインスタンス145を含む。クラスタ化されたデータベースシステム100における各ノードがデータベースインスタンスを実行することにより、その特定のノードが記憶装置125において共有データベース上のデータにアクセスしかつ当該データを処理することが可能となるので、ロックマネージャ150が設けられる。当該ロックマネージャ150は、記憶装置125に格納される共有データベースなどの1つ以上のリソース上のロックを認可したり、待ち行列に入れたり、追跡したりすることを担うエンティティである。プロセスが共有データベース上で動作を実行し得る前に、当該プロセスは、データベース上で所望の動作を実行する権利を当該プロセスに与えるロックを得る必要がある。ロックを得るために、プロセスはロックの要求をロックマネージャに伝送する。ネットワークシステムにおけるリソースの使用を管理するために、ロックマネージャがネットワークにおける1つ以上のノード上で実行される。
ロックは、特定のプロセスがリソースに関する或る権利を与えられたことを示すデータ構造である。多くの種類のロックがある。多くのプロセスで共有され得る種類のロックもあれば、同じリソース上で他のいずれかのロックが認可されるのを妨げる種類のロックもある。ロック管理システムの一例のより詳細な説明が、「ロック管理システムにおける予期ロックモード変換(“Anticipatory Lock Mode Conversions in a Lock Management System”)」と題され、この発明の譲渡人に譲渡され、その全体がすべての目的のために引用によりこの明細書中に援用される米国特許第6,405,274 B1号に見出される。
記憶装置125にアクセスし得るノードをネットワーク上で追跡しかつ管理するために、クラスタ構成ファイル155が保持される。クラスタ構成ファイル155はクラスタにおけるアクティブなノードの現在のリストを含み、これにはノードアドレス、ノードIDおよび接続構造(たとえば隣接ノード、親子ノード)などの識別情報が含まれる。当然、他の種類の情報がこのような構成ファイルに含まれてもよく、その種類のネットワークシステムに基づいて異なっていてもよい。トポロジ変化がクラスタにおいて発生すると、ノードが識別され、クラスタ構成ファイル155がクラスタノードの現在の状態を反映するよう更新される。トポロジ変化の例は、ノードがいつ追加されるか、いつ除去されるかまたはいつ動作を停止させるかを含む。
図1をさらに参照すると、データベースクラスタシステム100はさらに、ノード105とノード110との間にノード間通信をもたらす相互接続ネットワーク160を含む。相互接続ネットワーク160は、ネットワーク上のすべてのノードが互いに双方向通信することを可能にするバスを備える。相互接続160は、同じバスを介して各ノードとメッセージおよびデータのやりとりを行なうためのアクティブな通信プロトコルを提供する。相互接続ネットワーク160に接続されるように、各ノードは、ノードのPCIスロットに差込まれる周辺カードであり得る相互接続バスコントローラ165を含む。コントローラ165はノード間でケーブルを接続するための1つ以上の接続ポート170を含む。3つの接続ポートがポート170に図示されているが、異なる数のポートが用いられてもよい。
一実施例においては、相互接続バスコントローラ165は、ファイアワイヤまたはi.LINKとしても公知であるIEEE1394プロトコルに従って動作する。データベースインスタンス145またはノード105上で実行する他のアプリケーションを相互接続バス160と通信させるために、バスデバイスドライバ175が設けられる。バスデバイスドライバ175はオペレーティングシステム120と作動して、相互接続バスコントロ
ーラ165とアプリケーションとのインターフェイスを取る。たとえば、データベースインスタンス145からのデータベースコマンドが、バスデバイスドライバ165によってIEEE1394コマンドまたはオープン・ホスト・コントローラ・インターフェイス(OHCI)コマンドに翻訳される。IEEE1394OHCI規格は、IEEE1394バスに接続するための標準的なハードウェアおよびソフトウェアを規定する。OHCIは、標準的なレジスタアドレスおよび機能、データ構造、ならびにダイレクトメモリアクセス(DMA)モデルを規定する。
IEEE1394は、使いやすく低コストで高速の通信を提供するバスプロトコルである。当該プロトコルは非常に拡張可能であり、非同期アプリケーションおよび等時性アプリケーション(isochronous application)の両方を備え、大量のメモリマップドアドレス空間へのアクセスを可能にし、ピアツーピア通信を可能にする。相互接続バスコントローラ165がIEEE1394a、1394bなどの他のバージョンのIEEE1394プロトコルや、他の将来の変更および増強に対応するよう変更可能であることを当業者は理解するだろう。
IEEE1394プロトコルは、ポイント・ツー・ポイントシグナリング環境を備えたピアツーピアネットワークである。バス160上のノードは、それらの上にいくつかのポート、たとえばポート170を有し得る。これらのポートの各々は中継器として機能し、ノード内の他のポートが受信するいずれのデータパケットをも再伝送する。各ノードは、ネットワークトポロジ/構成の現在の状態を追跡するノードマップ180を保持する。IEEE1394プロトコルは、その現在の形では、単一のバス上で63個までの装置をサポートし、装置への接続は電話機のプラグ差込口に差込むのと同じくらい容易である。ノードおよび他の装置は、最初にノードの電源を切ったりネットワークを再起動したりしなくても直ちに接続され得る。データベースクラスタトポロジの管理が以下により詳細に記載される。
相互接続ネットワーク160を用いれば、ノード105におけるデータベース145は、ノード110またはクラスタにおける他のノード上の実行中のデータベースアプリケーションに対し直接データを要求するかデータを送受信するかまたはメッセージを送信し得る。これにより、1つ以上の中間ステップや付加的なディスクI/Oが必要になったり、待ち時間が増えたりするような、メッセージまたはデータパケットを記憶装置125に送信せざるを得ない状態が回避される。
図2には、IEEE1394規格に基づいた相互接続バスコントローラ165の例が示される。これは3つのISOプロトコル層、すなわちトランザクション層200、リンク層205および物理層210を含む。当該層は、上述において規定されハードウェア、ソフトウェアまたはこれらの両方を含むロジックで実現され得る。トランザクション層200は、3つの基本的な動作、すなわち読出、書込およびロックを用いてバストランザクションを実行するための完全な要求−応答プロトコルを規定する。リンク層205は中間レベル層であり、トランザクション層200および物理層210の両方と相互作用して、データパケットのために非同期および等時性転送サービスを提供する。データ転送を制御する構成要素はデータパケット送信機、データパケット受信機およびクロックサイクルコントローラを含む。
物理層210は、コントローラ165と相互接続バス160の一部を形成するケーブルとの間に電気的および機械的なインターフェイスを提供する。これは物理ポート170を含む。当該物理層210はまた、すべてのノードがアービトレーション機構を用いてバスに公平にアクセスできることを確実にする。たとえば、ノードは、バスにアクセスする必要がある場合、その親ノードに要求を送信し、当該親ノードが当該要求をルートノードに
転送する。当該ルートが受信した第1の要求が受入れられると、他のすべての要求が拒否され取消される。ノードがルートに近ければ近いほど受入れられる可能性が高くなる。結果として生ずるアービトレーションの不公平性を解決するために、バスアクティビティの期間がいくつかの間隔に分割される。ある間隔中に各ノードが一度伝送され、次の間隔まで待機する。当然、アービトレーションのために他の方法が用いられてもよい。
物理層210の他の機能は、データ再同期、符号化および復号化、バス初期設定ならびに信号レベルの制御を含む。上述のとおり、各ノードの物理層はまた中継器として機能し、ポイント・ツー・ポイント接続を仮想の同報通信バスに翻訳する。標準的なIEEE1394ケーブルは1.5アンペアまでのDC電力を供給して、遠隔装置を、それらの電源が切られているときでも「認識している(aware)」状態に維持する。物理層はまた、IEEE1394に基づいて、ノードが単一の媒体上でさまざまな速度でデータを伝送することを可能にする。データレート能力が異なるノードまたは他の装置はより遅い装置速度で通信する。
IEEE1394プロトコルに基づいて動作する相互接続バスコントローラ165はアクティブなポートであり、自己監視/自己構成シリアルバスを備える。これは、たとえバスがアクティブであってもユーザが装置を追加したり取除いたりすることを可能にするホットプラグアンドプレイとして公知である。こうして、ノードおよび他の装置が、ネットワーク動作を遮らずに接続および切断され得る。自己監視/自己構成ロジック215は、相互接続バス信号における変化に基づいてクラスタシステムにおけるトポロジ変化を自動的に検出する。ノードのバスコントローラ165は、当該ノードがバスに接続されると、相互接続バス160上にバイアス信号を配置する。自己監視ロジック215を介する隣接ノードが、電圧の変化として現われ得るバイアス信号を自動的に検出する。こうして、検出されたバイアス信号は、ノードが追加されたことおよび/またはノードが依然としてアクティブであることを示す。逆に、バイアス信号がないということは、ノードが除去されたかまたは機能を停止したことを示す。この態様では、トポロジ変化は、ノード間で伝送されるポーリングメッセージを用いなくても検出することができる。ロジック215の自己構成局面が図6および図7に関連してより詳細に説明される。
アプリケーションプログラムインターフェイス(API)層220は、バスデバイスドライバ175へのインターフェイスとしてバスコントローラ165に含まれ得る。これは概して、データ、エンドシステム設計およびアプリケーションをまとめるより高いレベルのシステムガイドライン/インターフェイスを含む。API層220は、データベースインスタンス145(および他のアプリケーション)と相互接続バスコントローラ165との間の通信をカスタマイズするよう所望の特徴でプログラミングされ得る。随意には、API層220の機能は、トランザクション層200またはバスデバイスドライバ175内で全体または一部が実現され得る。
図3を参照すると、この発明のシステムおよび方法が実現され得るデータベースクラスタアーキテクチャ300の一実施例が示される。当該アーキテクチャ300は共有ディスクアーキテクチャとして一般に公知であり、付加的なノードが示されている以外は図1に類似している。概して共有ディスクデータベースアーキテクチャにおいては、ファイルおよび/またはデータはノード間で論理的に共有され、各々のデータベースインスタンスはすべてのデータにアクセスできる。共有ディスクアクセスが、たとえばファイルを保持する1つ以上の記憶装置305への直接的なハードウェア接続性によって達成される。随意には、接続は、すべてのノード上におけるすべての記憶装置305の単一のビューを提供するオペレーティングシステム抽象層を用いることによって実行され得る。ノードA〜Dはまた、ノード相互接続160を介して接続されてノード間通信を提供する。共有ディスクアーキテクチャにおいては、ノード内のいずれかのデータベースインスタンス上で実行
されるトランザクションは、記憶装置305上のデータベースのいずれかの部分を直接読出すかまたは変更することができる。アクセスは、上述のように1つ以上のロックマネージャによって制御される。
図4を参照すると、この発明のシステムおよび方法を組込み得るクラスタアーキテクチャの別の実施例が示される。クラスタアーキテクチャ400は典型的には非共有アーキテクチャと称される。非共有アーキテクチャの一例が、「ハイブリッド非共有/共有ディスクデータベースシステム(“Hybrid Shared Nothing/Shared Disk Database System”)」と題され、この発明の譲渡人に譲渡され、その全体がすべての目的のために引用によりこの明細書中に援用される米国特許第6,321,218号に記載される。純粋な非共有アーキテクチャにおいては、データベースファイルは、たとえば、ノードA〜D上で実行するデータベースインスタンス間で分割される。各データベースインスタンスまたはノードはデータの別個のサブセットの所有権を有し、このデータへの全アクセスがこの「所有」インスタンスによって排他的に実行される。ノードはまた相互接続160と接続される。
たとえば、記憶装置A〜Dに記憶されるデータファイルが従業員ファイルを含む場合、当該データファイルは、ノードAが文字A〜Gで始まる従業員名に対する従業員ファイルを制御し、ノードBが従業員名H〜Nに対する従業員ファイルを記憶装置B上で制御し、ノードCが名前「O〜U」に対する従業員ファイルを記憶装置C上で制御し、ノードDが記憶装置D上で従業員ファイル名「V〜Z」を制御するように分割され得る。他のノードからデータにアクセスするために、このようなデータを要求するメッセージが送られるだろう。たとえば、ノードDがノードAによって制御される従業員ファイルを所望する場合、データファイルを要求するメッセージがノードAに送られるだろう。次いで、ノードAが記憶装置Aからデータファイルを検索し、データをノードDに伝送するだろう。この発明のシステムおよび方法が、ツリー構造などの他のクラスタアーキテクチャおよび構成上で、かつ特定の用途に対し所望のとおりに他のデータアクセス権および/または制限で実現され得ることが理解されるだろう。
図5には、図3または図4のクラスタシステムに関連付けられる方法論の一実施例が示される。当該実施例は、相互接続バス160を用いたノード間におけるデータの直接的な送受信を説明する。例示された要素は「処理ブロック」を示し、コンピュータに動作を実行させかつ/または決定を下させるコンピュータソフトウェア命令または命令のグループを表わす。代替的には、処理ブロックは、デジタル信号プロセッサ回路または特定用途向け集積回路(ASIC)などの機能的に同等の回路によって実行される機能および/または動作を表わし得る。図ならびに他の例示された図はいずれかの特定のプログラミング言語の構文を示すものではない。むしろ、当該図は、回路を製作し、コンピュータソフトウェアまたはハードウェアおよびソフトウェアの組合せを作成して例示された処理を実行するために当業者が使用し得る関数情報を例示する。電子的アプリケーションおよびソフトウェアアプリケーションが動的かつフレキシブルなプロセスを含み得るので、例示されたブロックが図示されるものとは異なる他のシーケンスで実行され得、および/またはブロックが組合され得るかもしくは付加的な構成要素に分けられ得ることが理解されるだろう。これらはまた、機械語、手続き型、オブジェクト指向および/または人工知能技術などのさまざまなプログラミング手法を用いて実現され得る。上述のことは、この明細書中に記載されるすべての方法論に適用される。
図5を参照すると、図500は、ノード間相互接続ネットワーク160を用いてノード間でデータを伝達する一例である。ノード(要求ノード)が別のノードからのデータを所望する場合、データ要求メッセージが相互接続バス160を介して宛先ノードに伝送される(ブロック505)。当該データ要求は、ノード名および/またはアドレスを当該要求
に添付することによって1つ以上の選択された宛先ノードに直接送信され得る。要求されたデータの位置が未知である場合、データ要求が相互接続ネットワークにおける各ノードに同報通信され得る。
データ要求が適切なノードによって受信されると、データベースインスタンスは、データがそのノード上で利用可能であるかどうかを判断する(ブロック510)。データが利用可能でない場合、データが利用可能でないというメッセージが要求ノードに伝送される(ブロック515)。データが利用可能である場合、データはダイレクトメモリアクセスによってローカルメモリから検索され(ブロック520)、相互接続バスを介して要求ノードに伝送される(ブロック525)。リモートダイレクトメモリアクセスがまた、直接的なメモリ間転送を実行するよう実現され得る。この態様では、メッセージおよびデータは、メッセージまたはデータを共有記憶装置に伝送する必要なしにノード間で直接伝送され得る。ノード間通信は待ち時間を減らし、ディスク入出力の数を減らす。
図6には、IEEE1394バスプロトコルに基づいたクラスタアーキテクチャを再構成する例示的な方法論が示される。データベースクラスタにおけるノードが追加されるか、除去されるかまたは機能を停止する場合、データベースクラスタは変更を検出し、ノードを識別する必要があり、当該クラスタは適切に再構成される必要がある。上述のように、IEEE1394プロトコルに基づいて動作する相互接続バスコントローラ165(図1)はアクティブなポートであり、自己構成シリアルバスを備える。こうして、ノードおよび他の装置がネットワーク動作を遮らずに接続および切断され得る。
たとえば、ノードがバスに追加されると、当該バスがリセットされる(ブロック605)。追加されたノードの相互接続コントローラ165はバス上でバイアス信号を自動的に送信し、隣接ノードがそのバイアス信号を検出し得る(ブロック610)。同様に、ノードが除去されるときにノードのバイアス信号がないことが検出され得る。すなわち、隣接ノードの相互接続コントローラ165は、ノードを追加するかまたは除去することによって引起されるバス信号強度の変化などの相互接続バス160上の信号の変化を検出し得る。次いで、トポロジ変化が、データベースクラスタにおける他のすべてのノードに伝送される。バスノードマップが当該変化に応じて再構築される(ブロック615)。一実施例においては、ノードマップは当該変化に応じて更新され得る。データベースインスタンスが通知され、これが、ロックマネージャに対するアクティブなノードを追跡するようクラスタ構成ファイルを更新する(ブロック620)。当然、図示されたシーケンスの順は他のやり方で実現されてもよい。
IEEE1394プロトコルを用いれば、相互接続コントローラ165は上述の自己監視/自己構成機構を含むアクティブなポートとなる。この機構を用いる場合、データベースクラスタシステムは、ポーリング機構に伴うさらなる待ち時間なしに再構成され得る。というのも、ノードがトポロジにおける変化を実質的に直ちに検出し得るからである。アクティブなポートはまた、ネットワークの電源を切る必要なしにクラスタの再構成を可能にする。
図7には、クラスタを検出および再構成する別の実施例が示される。各ノードは、バイアス信号の有無などのバス信号の変化を検出するために相互接続バスを監視する(ブロック705)。ノードがトポロジ変化を検出すると(ブロック710)、当該ノードはバスを介してバスリセット信号を送信し、自己構成機構を開始する。物理層210によって管理されるこの機構は3つの段階、すなわち、バス初期設定、ツリー識別および自己識別を含み得る。バス初期設定中にアクティブなノードが識別され、樹状の論理トポロジが構築される(ブロック715)。各々のアクティブなノードはアドレスが割当てられ、ルートノードが動的に割当てられ、ノードマップが新しいトポロジで再構築または更新される(
ブロック720)。バス自体が構成されると、ノードはバスにアクセスできる。各ノード上のデータベースインスタンスがトポロジ変化について通知される(ブロック725)と、データベースロックマネージャは、共有データベースがクラスタ全体にわたって適切に管理され得るように当該変化に応じて再構成される(ブロック730)。
ネットワーク135などのネットワーク接続が他の方法で実現され得ることが理解されるだろう。たとえば、これは、ノベル(Novell)、マイクロソフト(Microsoft)、アーティソフト(Artisoft)および他の販売業者から入手できるソフトウェアなどの通信またはネットワーキングソフトウェアを含み得、TCP/IP、SPX、IPX、ならびにツイストペア、同軸もしくは光ファイバケーブル、電話線、衛星、マイクロ波中継装置、無線周波数信号、変調されたAC電力線、および/または当業者に公知の他のデータ伝送線を介する他のプロトコルを用いて動作し得る。ネットワーク135は、ゲートウェイまたは類似の機構を介して他のネットワークに接続可能であり得る。相互接続バス160のプロトコルが無線バージョンを含み得ることも理解されるだろう。
図8を参照すると、データベースクラスタ800のためのハートビートシステムの一実施例が示される。ハートビートシステムは、ノードが、それらがアクティブであり機能していることを示す信号またはメッセージを周期的に生成する機構である。当該機構はまた、ノードが、生成された信号に基づいてクラスタにおける他のノードの健康状態または状態を判断することを可能にする。図示のとおり、クラスタ800はノード805および810を含むが、ノードがいくつクラスタに接続されてもよい。例示されたノードは図1に示されるノードと類似の構成を有し得る。しかしながら、例示の目的で簡略化された構成が示される。
ノード805、810は、データベースファイルなどのファイルを保持する記憶装置815へのアクセスを共有する。当該ノードは、共有ストレージネットワーク820によって記憶装置815に接続される。一実施例においては、ネットワーク820はIEEE1394通信プロトコルに基づいている。互いに通信するために、ノード805、810および記憶装置815はIEEE1394ネットワークコントローラ825を含む。ネットワークコントローラ825は相互接続バスコントローラ165に類似しており、一実施例においては、各々の装置に差込まれるネットワークカードである。代替的には、コントローラはノード内に固定され得る。ネットワークコントローラ825は、ケーブルが各装置間に接続され得るように1つ以上のポートを含む。加えて、他の種類のネットワーク接続、たとえばIEEE1394プロトコルまたは他の類似のプロトコル規格に基づいた無線接続が用いられてもよい。
図8をさらに参照すると、各ノードは、記憶装置815上のファイルへのアクセスを制御するデータベースインスタンス830を含む。リソースがデータベースクラスタ800におけるノード間で共有されるので、各ノードはそれらの健康状態を他のノードに知らせるためのロジックを含み、ネットワーク上の他のノードの健康状態を判断するためのロジックを含む。たとえば、ハートビートロジック835は、予め定められた時間間隔内でハートビートメッセージを生成しかつ伝送するようプログラミングされる。ハートビートメッセージは状態信号とも称される。予め定められた時間間隔は選択されたいかなる間隔であってもよいが、典型的には、数ミリ秒から数秒のオーダ、たとえば300ミリ秒から5秒のオーダである。このため、当該間隔が1秒である場合、各ノードは1秒ごとにハートビートメッセージを伝送するだろう。
一実施例においては、ネットワークロードはハートビート時間間隔を決定する際に要因として用いられる。たとえば、ハートビートメッセージが同じネットワーク上でデータとして伝送される場合、ネットワーク上のハートビートメッセージの周波数が高いことによ
り、データ伝送プロセスに遅延がもたらされる可能性がある。図8は、この状況によって影響を受ける可能性のあるネットワークを示し、図9は、異なるネットワーク上でハートビートシステムを実現することによりネットワークトラフィックの量を減ずるネットワークを示す。図8および図9のネットワークも非共有アーキテクチャとして構成され得ることがさらに理解されるだろう。
図8をさらに参照すると、各ノードからのハートビートメッセージが集められ、定数ファイル840に記憶される。この実施例においては、定数ファイル840は、記憶装置815内に規定される1つ以上のファイルまたは区域であり、当該記憶装置815は共有ファイルも保持する。クラスタ800における各ノードは定数ファイル840内にアドレス空間が割当てられて、そこにそのハートビートメッセージが記憶される。定数ファイル840の空間は典型的には等しく分割され、各ノードに割当てられるが、他の構成も可能であり得る。こうして、定数ファイル840は、ファイルが1つのデータ構造として論理的に規定され得るにもかかわらず、クラスタ全体に対する1つのファイルとしてではなく各ノードに対する別個のファイルとして実現され得る。定数ファイルは、1つ以上の記憶場所、レジスタまたは他の種類の記憶区域に記憶されるスタック、アレイ、表、リンクされたリスト、テキストファイルまたは他の種類のデータ構造として実現され得る。ノードの定数空間が一杯になれば、新しいメッセージが受信されるとその空間における最も古いメッセージが押出されるかまたは上書きされる。
図9には、データベースクラスタ900およびハートビートシステムの別の実施例が示される。この実施例においては、ノード905および910は定数ネットワーク920を介して定数装置915と通信する。定数ネットワーク920は共有ストレージネットワーク925とは別個のネットワークである。こうして、ノードは、定数ネットワークとは異なるネットワークバスを用いて記憶装置930上の共有ファイルにアクセスする。定数ネットワーク920は、上述のようにノード間相互接続ネットワークの一部であり得る。定数装置915は、クラスタにおけるノードから受取ったハートビートメッセージを記憶するために定数ファイルを保持するよう構成されたデータストレージを含む。
図9をさらに参照すると、ノード905、910は定数装置915に接続され、IEEE1394通信プロトコルに従って互いに通信する。各ノードおよび定数装置915は、先述のコントローラに類似のIEEE1394コントローラ935を含む。別個のネットワークがファイルとのデータ通信のために構成されるので、各ノードは、記憶装置930と通信を行なう別個の共有ネットワークコントローラ940を含む。共有ネットワークコントローラ940はIEEE1394コントローラであり得るかまたはファイバチャネルプロトコルなどの他のネットワークプロトコルであり得る。各ノード内のデータベースインスタンス945は共有ネットワークコントローラ940を介してデータ要求を処理する。
ハートビートロジック950はハートビート機構を制御し、IEEE1394コントローラ935を用いて定数装置915と通信する。このアーキテクチャを用いると、既存のデータベースクラスタ900内における定数装置915の追加または交換は、既存のネットワークへの影響を最小限に抑えて容易に実行可能である。また、ハートビート機構が別個のネットワークを介して処理されるので、共有ストレージネットワーク925上のトラフィックを減らすことにより、データ処理要求に対するより迅速な応答が可能となる。図8および図9のクラスタがノード間相互接続ネットワークを含み得ることも理解されるだろう。
図10には、以下において共に定数ファイルと称される定数ファイル840または定数装置915で実行されるハートビートシステムの例示的な方法論1000が示される。定
数ファイルがデータベースクラスタ内で構成されかつ起動されると、定数ファイル内のメモリがクラスタにおけるノードの各々に割当てられる(ブロック1005)。定数ファイルは等しく分割され得、さらに、各ノードに割当てられ得るかまたは他の割当が規定され得る。定数ファイルがアクティブになると、当該定数ファイルはIEEE1394プロトコルに従って各ノードからハートビートメッセージを受信する(ブロック1010)。各ハートビートメッセージはノード識別子を含み、当該ノード識別子が、メッセージと当該メッセージの時間を示すタイムスタンプとを送信するノードを識別する。次いで、定数ファイルが受信した各メッセージがそのノードの割当てられた位置に記憶され(ブロック1015)、受信された各々のハートビートメッセージのために当該プロセスが繰返される。
各ノードのために、ハートビートメッセージが、受信される順序で定数ファイルに記憶される。こうして、最後に受信されたタイムスタンプと現在の時間とを比較することにより、当該システムは、どのノードがそれらのハートビートメッセージをアクティブに送信しているかを決定することができる。この情報は、ノードがアクティブであるか否かを示し得る。たとえば、ノードが予め定められた数の連続したタイムスタンプを見落とした場合、問題が起り得ると想定され得る。1つのメッセージを含む各ノードのために任意の数のメッセージが記憶され得る。上述のように、各ノードのハートビートロジックは、予め定められた間隔でハートビートメッセージを生成および伝送するようプログラミングされる。こうして、定数ファイルからデータを読出すことにより、当該ロジックは、いくつかの間隔が見落とされたかどうかを判断することができる。この種類の状態チェックロジックはハートビートロジック835または950の一部であってもよく、図11に関連してより詳細に説明される。
図11は、ノードの健康状態または状態を判断するための方法論の例を示す。上述のとおり、ハートビートロジックは、予め定められた時間間隔で各ハートビートメッセージを生成し、かつ当該メッセージを定数ファイルに伝送するためのロジックを含む。いかなる所望のときにも、ノードのハートビートロジックはそのクラスタ構成ファイルを更新して、アクティブなノードの現在の組を決定し、いずれかのノードが機能を停止したかまたはさもなければネットワークから除去されたかどうかを決定し得る。また、クラスタ全体に亘ってこの決定の同期を取ることもできる。状態チェックロジック(図示せず)が、以下のとおりにこのタスクを実行するようハートビートロジックの一部としてプログラミングされ得る。
状態チェックを開始するために、定数ファイルが、ノードの各々に対するタイムスタンプされた情報を検査するために読出される(ブロック1105)。各ノードのために記憶されるタイムスタンプされたデータに基づき、ロジックは、特定のノードが定数ファイルに書込まれた最後のメッセージの時間に基づいて依然として機能しているかどうかを判断し得る(ブロック1110)。しきい値が設定されることにより、問題が存在し得ることが当該決定によって示される前に予め定められた数のタイムスタンプを見落とすことが可能となる。たとえば、ノードは2つの連続したタイムスタンプを見落としてもよいが、第3のスタンプが見落とされた場合、当該ノードは適切に機能し得ない。しきい値は、他の値、たとえば1の値に設定されてもよい。
ノードが指定された量のタイムスタンプメッセージを見落とした場合(ブロック1120)、それは必ずしもノードが機能を停止したことを意味するものではないかもしれない。ノードがIEEE1394規格に従って定数ファイルに接続されるので、付加的な状態チェックを実行することができる。先に説明したとおり、IEEE1394バスはアクティブであり、当該バスに接続された各装置は、隣接するノードが機能を停止しているかどうかまたはネットワークから取除かれているかどうかを検出し得る。この付加的な情報は
、ノードの健康状態をよりよく判断するのに役立ち得る。状態ロジックは、定数ファイルからのタイムスタンプ情報とIEEE1394コントローラによって保持されるノードマップデータとを比較し得る。
たとえば、ノードがそのタイムスタンプを見落とし(ブロック1120)、当該ノードがノードマップにおいてアクティブなノードでない(ブロック1125)場合、当該ノードがダウンしていると推定されるかまたはネットワークから除去されたと判断される(ブロック1130)。しかしながら、ノードがそのタイムスタンプを見落とすが当該ノードがノードマップにおいて依然としてアクティブである場合、ことによると当該ノードがハングアップするか、または他の何らかの遅延がクラスタに存在する可能性がある(ブロック1135)。この場合には、プロセスは、そのノードに対する定数ファイルを随意に再チェックして、新しいタイムスタンプが受信されたかどうか、起こり得る遅延を示すメッセージが生成され得るかどうか、および/またはノードがアクティブなノードのリストから除去され得るかどうかを判断し得る。
判断ブロック1120を再び参照すると、ノードがそのタイムスタンプを見落とさなければ、当該ノードはおそらく適切に機能している。しかしながら、ノードがノードマップにおいてアクティブであるかどうかをチェックすることにより追加の決定が下され得る(ブロック1140)。ノードがアクティブであれば(ブロック1145)、当該ノードは適切に機能している。ノードがアクティブでなければ(ブロック1150)、ネットワークバスのエラーが存在する可能性がある。こうして、定数ファイルおよびIEEE1394バスのノードマップの両方からの情報を用いて、ノードの健康状態のより詳細な分析が決定され得る。さらに、共有ストレージネットワーク925がIEEE1394バスでもある実施例における図9に示されるクラスタ構成においては、2つの別個のネットワークノードマップが保持される。付加的なノードマップがまた、上述の比較プロセスおよび状態チェックに含まれてもよい。
図11を再び参照すると、簡略化された実施例が実現され得る。判断ブロック1120では、ノードがそのタイムスタンプを書込むのに失敗した場合、ロジックはそのノードが機能していないことを宣言し、データベースインスタンスのクラスタ構成ファイルからそれを除去し得る。このプロセスにおいてはノードマップは検査されない。
この明細書中に記載されるさまざまな記憶装置が定数ファイルを割当てるための定数装置を含み、多数の方法で実現され得ることが理解されるだろう。たとえば、記憶装置は、磁気ディスクドライブまたは光ディスクドライブ、テープドライブ、電子メモリなどの1つ以上の専用の記憶装置を含み得る。記憶装置はまた、コンピュータ、サーバ、携帯用処理装置、または、データを保持するためのストレージ、メモリもしくはこれらの組合せを含む類似の装置を含み得る。記憶装置はまた、いかなるコンピュータ読取可能媒体であってもよい。
この発明のシステムおよび方法のさまざまな構成要素を実現するための好適なソフトウェアは、ここに呈示される教示やプログラミング言語およびツール、たとえばJava(登録商標)、Pascal、C++、C、CGI、Perl、SQL、API、SDK、アセンブリ、ファームウェア、マイクロコードならびに/または他の言語およびツールなどを用いて当業者によって容易に提供される。ソフトウェアとして具体化される構成要素は、コンピュータを所定の態様で動作させるコンピュータ読取可能/実行可能な命令を含む。当該ソフトウェアは製品としてであってもよく、および/または、先に規定したようにコンピュータ読取可能媒体に記憶されてもよい。
この発明がその実施例を説明することにより例示され、その実施例がかなり詳細に説明
されてきたが、出願人の意図は、添付の特許請求の範囲をこのような詳細に制限するかまたは何らかの方法で限定することではない。付加的な利点および変形例が当業者には容易に明らかとなるだろう。したがって、この発明は、そのより広範な局面においては、特定の詳細、代表的な装置ならびに図示および説明される具体例には限定されない。したがって、出願人の一般的な発明の概念の精神または範囲から逸脱せずにこのような詳細からの逸脱が可能である。
この発明に従ったクラスタノードの一実施例を示すシステム図である。 図1の相互接続バスコントローラを示す例図である。 共有ディスククラスタアーキテクチャの一例を示す図である。 非共有クラスタアーキテクチャの一例を示す図である。 相互接続バスを用いてデータを通信する方法論の一例を示す図である。 トポロジ変化を検出する方法論の一例を示す図である。 トポロジ変化を検出する方法論の別の例を示す図である。 ハートビートシステムを含むクラスタの別の実施例を示す図である。 ハートビートシステムの別の実施例を示す図である。 定数ファイルを保持する方法論の一例を示す図である。 定数ファイルを用いてノードの状態を決定する方法論の一例を示す図である。

Claims (15)

  1. クラスタであって、
    1つ以上のデータ記憶装置と、
    各々が前記1つ以上のデータ記憶装置とのデータ通信アクセスを有する複数のノードと、
    前記複数のノード間にIEEE1394プロトコルを用いるシリアルなノード間通信リンクを提供するための相互接続バスと
    前記複数のノードの状態をチェックするための状態チェック手段と、
    前記状態チェック手段と関連付けられた定数記憶手段とを備え、
    前記複数のノードの各々は、
    前記相互接続バスの一端に接続される相互接続バスコントローラと、
    前記クラスタにおける前記複数のノードのノードトポロジを規定するノードマップと、
    予め定められた時間間隔内でハートビートメッセージを伝送するためのハートビートロジックとを含み、前記ハートビートメッセージは、対応するノードを示すノード識別子を含み、
    前記相互接続バスコントローラは、対応のノードが前記相互接続バスに接続されるとバイアス信号を送信するように構成されており、
    前記相互接続バスコントローラは、前記クラスタにおけるトポロジ変化を検出するための、IEEE1394に基づいた自己監視ロジックを含み、
    前記自己監視ロジックは、
    前記相互接続バス上の前記バイアス信号の変化に基づいて、隣接する他のノードの追加または除去を検出し、
    前記隣接する他のノードの追加または除去に応じたトポロジ変化を他のノードへ通知し、
    前記トポロジ変化に基づいて、対応の前記ノードマップを更新し、
    前記定数記憶手段は、前記複数のノードの各々から伝送される前記ハートビートメッセージを、前記ハートビートメッセージに含まれるノード識別子および前記ハートビートメッセージのタイムスタンプと対応付けて保持し、
    前記状態チェック手段は、予め定められた数の連続したタイムスタンプを見落としたか否か、および、前記ノード間通信リンクにおいて前記複数のノードの各々がアクティブであるか否かに基づいて、前記複数のノードの各々の状態をチェックする、クラスタ。
  2. 前記相互接続バス上の前記バイアス信号の変化は信号強度の変化を含む、請求項1に記載のクラスタ。
  3. 前記バイアス信号は非ポーリング信号である、請求項1または2に記載のクラスタ。
  4. 前記ノード間通信リンクは前記複数のノード間にデータのダイレクトメモリアクセスを提供する、請求項1〜3のいずれか1項に記載のクラスタ。
  5. 前記ノード間通信リンクは、前記複数のノード間を通る非同期メッセージを供給する、請求項1〜4のいずれか1項に記載のクラスタ。
  6. 前記複数のノードの各々は1つのコンピュータである、請求項1〜5のいずれか1項に記載のクラスタ。
  7. 前記複数のノードは前記ノード間通信リンクを介してシリアルに接続される、請求項1〜6のいずれか1項に記載のクラスタ。
  8. 前記複数のノードの各々は、
    プロセッサと、
    前記プロセッサによって実行される、前記データ記憶装置に保持されるデータへのアクセスを管理および制御するアプリケーションインスタンスと、
    前記アプリケーションインスタンスからのコマンドを前記相互接続バスで用いられるコマンドに翻訳するデバイスドライバとをさらに含む、請求項1〜7のいずれか1項に記載のクラスタ。
  9. 前記1つ以上のデータ記憶装置は前記複数のノードの各々によって直接アクセス可能である、請求項1〜8のいずれか1項に記載のクラスタ。
  10. 前記1つ以上のデータ記憶装置は前記複数のノードから選択されたノードによってアクセス可能である、請求項1〜9のいずれか1項に記載のクラスタ。
  11. 前記複数のノードは1つ以上のデータベースインスタンスを含み、
    前記1つ以上のデータ記憶装置のうち少なくとも1つはデータベースとして構成される、請求項1〜10のいずれか1項に記載のクラスタ。
  12. 前記相互接続バスコントローラは、他のノードからのデータ要求に応答して、前記データベースから読み出したデータを前記相互接続バスを介して要求ノードに伝送する、請求項11に記載のクラスタ。
  13. 第1のノードとしての第1のコンピュータと第2のノードとしての第2のコンピュータとの間で通信するための方法であって、前記第1のコンピュータと前記第2のコンピュータとの間は、第1のネットワークを介して接続されており、前記第1および第2のコンピュータの各々は、前記第1および第2のノードを含む複数のノードのノードトポロジを規定するノードマップを有しており、
    前記第1および第2のコンピュータが、前記第1のノードと前記第2のノードとの間で前記第1のネットワークを介してデータを伝送するステップを含み、前記データはIEEE1394ベースのプロトコルを用いて前記第1のネットワークを介して転送され、前記第1のネットワークはノード間のシリアルな通信リンクであり、さらに、
    前記第1のコンピュータが前記第1のノードと1つ以上のデータ記憶装置との間において第2のネットワークを介してデータを伝送するステップと、
    前記第2のコンピュータが前記第2のノードと前記1つ以上のデータ記憶装置との間において前記第2のネットワークを介してデータを伝送するステップを含み、前記第2のネットワークは前記第1のネットワークとは別個であり、前記第1および第2のコンピュータは前記第1のネットワークに接続されるとバイアス信号を送信し、さらに、
    前記第1または第2のコンピュータが、前記第1のネットワーク上の前記バイアス信号の変化に基づいて、第1または第2のノードの追加または除去を検出するステップと、
    前記第1または第2のコンピュータが、検出された変化に応じて、対応の前記ノードマップを更新するステップと
    予め定められた時間間隔内でハートビートメッセージを伝送するステップと、
    前記複数のノードの各々から伝送される前記ハートビートメッセージを、前記ハートビートメッセージに含まれるノード識別子および前記ハートビートメッセージのタイムスタンプと対応付けて保持するステップと、
    予め定められた数の連続したタイムスタンプを見落としたか否か、および、前記ノード間通信リンクにおいて前記複数のノードの各々がアクティブであるか否かに基づいて、前記複数のノードの各々の状態をチェックするステップとを含む、方法。
  14. 前記第1および第2のコンピュータが、前記第1のノードと前記第2のノードとの間で前記第1のネットワークを介して非同期的にデータを伝送するステップをさらに含む、請求項13に記載の通信するための方法。
  15. 前記第1のコンピュータが、前記第2のノードからのデータ要求に応答して、対応する前記データ記憶装置から読み出したデータを前記第1のネットワークを介して第2のノードに伝送するステップをさらに含む、請求項13または14に記載の通信するための方法。
JP2004557224A 2002-11-27 2003-11-19 相互接続を有するクラスタリングシステムおよび方法 Expired - Lifetime JP4653490B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30556702A 2002-11-27 2002-11-27
PCT/US2003/036944 WO2004051474A2 (en) 2002-11-27 2003-11-19 Clustering system and method having interconnect

Publications (2)

Publication Number Publication Date
JP2006508469A JP2006508469A (ja) 2006-03-09
JP4653490B2 true JP4653490B2 (ja) 2011-03-16

Family

ID=32467766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004557224A Expired - Lifetime JP4653490B2 (ja) 2002-11-27 2003-11-19 相互接続を有するクラスタリングシステムおよび方法

Country Status (6)

Country Link
EP (1) EP1565822A2 (ja)
JP (1) JP4653490B2 (ja)
CN (1) CN1717659B (ja)
AU (1) AU2003291089A1 (ja)
CA (1) CA2504170C (ja)
WO (1) WO2004051474A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375427C (zh) * 2005-11-25 2008-03-12 杭州华三通信技术有限公司 一种集群设备批量传输文件的方法及文件传输设备
US8922559B2 (en) * 2010-03-26 2014-12-30 Microsoft Corporation Graph clustering
EP2615548B1 (en) * 2010-09-08 2016-12-28 Hitachi, Ltd. Computing device
CN102521297B (zh) * 2011-11-30 2015-09-09 北京人大金仓信息技术股份有限公司 无共享数据库集群中实现***动态扩展的方法
CN103905499B (zh) * 2012-12-27 2017-03-22 深圳市金蝶天燕中间件股份有限公司 利用共享磁盘构建通信通道的方法和***
CN103631623A (zh) * 2013-11-29 2014-03-12 浪潮(北京)电子信息产业有限公司 一种集群***中部署应用软件的方法及装置
CN104753702B (zh) * 2013-12-27 2018-11-20 华为技术有限公司 一种集群***中的集群处理方法、装置及***
CN104052804A (zh) * 2014-06-09 2014-09-17 深圳先进技术研究院 一种不同任务拓扑间共享数据流的方法、装置及集群
CN109299407A (zh) * 2018-10-22 2019-02-01 田大可 一种自主构建的多地址多网点信息推送的方法
CN113590709B (zh) * 2021-06-18 2023-11-14 浙江中控技术股份有限公司 工业数据库集群***及其数据访问方法
CN113608932B (zh) * 2021-10-09 2022-02-15 深圳市科力锐科技有限公司 数据库演练方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58124353A (ja) * 1982-01-21 1983-07-23 Fujitsu Ltd バス監視方式
JPH11252093A (ja) * 1998-02-27 1999-09-17 Sony Corp 情報処理装置および方法、並びに提供媒体
JP2000069035A (ja) * 1998-08-24 2000-03-03 Canon Inc 電子機器及び情報処理方法
JP2000222373A (ja) * 1999-01-29 2000-08-11 Internatl Business Mach Corp <Ibm> マルチクラスタ化コンピュ―タ・システムを構成及び管理する方法及び装置
JP2002328823A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 非共有型パラレルデータベースサーバシステム、このシステムにおけるデータ書き込み方法及び一致化処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58124353A (ja) * 1982-01-21 1983-07-23 Fujitsu Ltd バス監視方式
JPH11252093A (ja) * 1998-02-27 1999-09-17 Sony Corp 情報処理装置および方法、並びに提供媒体
JP2000069035A (ja) * 1998-08-24 2000-03-03 Canon Inc 電子機器及び情報処理方法
JP2000222373A (ja) * 1999-01-29 2000-08-11 Internatl Business Mach Corp <Ibm> マルチクラスタ化コンピュ―タ・システムを構成及び管理する方法及び装置
JP2002328823A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 非共有型パラレルデータベースサーバシステム、このシステムにおけるデータ書き込み方法及び一致化処理方法

Also Published As

Publication number Publication date
CA2504170A1 (en) 2004-06-17
WO2004051474A2 (en) 2004-06-17
CN1717659B (zh) 2010-04-28
CA2504170C (en) 2016-06-21
AU2003291089A1 (en) 2004-06-23
JP2006508469A (ja) 2006-03-09
EP1565822A2 (en) 2005-08-24
CN1717659A (zh) 2006-01-04
WO2004051474A3 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
US7451359B1 (en) Heartbeat mechanism for cluster systems
US6934878B2 (en) Failure detection and failure handling in cluster controller networks
US7069349B2 (en) IPMI dual-domain controller
US5784617A (en) Resource-capability-based method and system for handling service processor requests
JPH11316748A (ja) 並列処理コンピュ―タ・システムにおけるデ―タの転送方法
JPH11316746A (ja) 拡張可能な並列処理コンピュ―タ・システムにおけるデ―タ通信方法
JPH11316749A (ja) デ―タ・ストレ―ジ・システムにおける冗長デ―タの識別方法
US20030158933A1 (en) Failover clustering based on input/output processors
JPH11328135A (ja) 並列処理コンピュ―タ・システム
US20040243769A1 (en) Tree based memory structure
JP2000090061A (ja) 並列処理コンピュ―タ・システムにおけるデ―タ通信方法
KR20060040684A (ko) 인피니밴드(InfiniBand)분산형 시스템-영역네트워크 집중 관리 제공 방법, 시스템, 컴퓨터 프로그램제품
US7409432B1 (en) Efficient process for handover between subnet managers
JP4653490B2 (ja) 相互接続を有するクラスタリングシステムおよび方法
US6823397B2 (en) Simple liveness protocol using programmable network interface cards
US7228352B1 (en) Data access management system in distributed processing system
US7499987B2 (en) Deterministically electing an active node
US7904752B2 (en) Synchronizing device error information among nodes
KR20210044281A (ko) 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치
KR100361076B1 (ko) 이중화 시스템의 메모리 공유 방법 및 이를 이용한 이중화 시스템
CN112578996B (zh) 一种存储***的元数据的发送方法及存储***
US20030182479A1 (en) Implementing clustering in raid controllers
Farazdel et al. Understanding and using the SP Switch
CN116302585A (zh) 一种跨集群双向同步***
CN117076409A (zh) 文件共享方法、装置、***、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101207

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4653490

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term