JP2006508470A - クラスタシステムのためのハートビート機構 - Google Patents

クラスタシステムのためのハートビート機構 Download PDF

Info

Publication number
JP2006508470A
JP2006508470A JP2004557239A JP2004557239A JP2006508470A JP 2006508470 A JP2006508470 A JP 2006508470A JP 2004557239 A JP2004557239 A JP 2004557239A JP 2004557239 A JP2004557239 A JP 2004557239A JP 2006508470 A JP2006508470 A JP 2006508470A
Authority
JP
Japan
Prior art keywords
nodes
node
file
constant
heartbeat
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.)
Withdrawn
Application number
JP2004557239A
Other languages
English (en)
Other versions
JP2006508470A5 (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 JP2006508470A publication Critical patent/JP2006508470A/ja
Publication of JP2006508470A5 publication Critical patent/JP2006508470A5/ja
Withdrawn 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Cardiology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

クラスタシステムのためのハートビートシステムおよび方法を提供する。クラスタは複数のノードを含む。ノードは、ネットワークを介して1つ以上のデータ記憶装置上のファイルにアクセスする。当該システムは定数ファイルを含み、当該定数ファイルは、複数のノードから、それらがアクティブであることを示すハートビートメッセージを受信しかつ記憶する。ネットワークコントローラは、IEEE1394通信プロトコルに従って定数ファイルを複数のノードに接続する。

Description

発明の分野
この発明はクラスタリング技術に関する。この発明は、ハートビートシステムおよび方法を有するクラスタリングシステムへの特定の用途を見出す。
発明の背景
クラスタは単一のシステムとして協働する独立したサーバのグループである。主要なクラスタ構成要素はプロセッサノード、クラスタ相互接続(専用ネットワーク)およびディスクサブシステムである。クラスタはディスクアクセスや、データを管理するリソースを共有するが、別個の各ハードウェアクラスタノードはメモリを共有しない。各ノードはそれ自体の専用のシステムメモリ、ならびにそれ自体のオペレーティングシステム、データベースインスタンスおよびアプリケーションソフトウェアを有する。クラスタは、単一の対称的なマルチプロセッサシステムにわたって高度な障害許容力およびモジュールの増分システム成長を提供し得る。サブシステムが故障した場合には、クラスタリングにより高い可用性が確実にされる。冗長なハードウェア構成要素、たとえば付加的なノード、相互接続および共有ディスクはより高い可用性を提供する。このような冗長なハードウェアアーキテクチャにより単一障害点が避けられ、障害許容力が与えられる。
データベースクラスタにおいては、各ノードに対するCPUおよびメモリ要件がデータベースアプリケーションごとに異なり得る。性能および費用の要件もデータベースアプリケーションごとに異なる。性能に寄与する1つの要因は、クラスタにおける各ノードがその健康状態および構成を当該クラスタにおける他のノードに知らせ続ける必要があることである。これは、ハートビートと称されるネットワークメッセージをネットワークにわたって定期的に同報通信することによってなされてきた。ハートビート信号は通常、専用のネットワーク、すなわちノード間通信に用いられるクラスタ相互接続を介して送信される。しかしながら、ハートビートメッセージが損失または遅延したりすると、ノードが機能していないという誤った報告がなされるおそれがある。
先行技術のシステムにおいては、クラスタ相互接続は、各ノードにネットワークカードを取付け、適切なネットワークケーブルでこれらを接続し、ワイヤ全体にわたらせるようソフトウェアプロトコルを構成することによって構築されてきた。相互接続は、典型的には、TCP/IPもしくはUDPを実行する低コスト/低速のイーサネット(登録商標)カード、または、RDG(Reliable DataGram)を実行するコンパック(Compaq)のメモリチャネル(Memory Channel)もしくはHMP(Hyper Messaging Protocol)を用いるヒューレット・パッカード(Hewlett-Packard)のHyperfabric/2のような高コスト/高速のプロプラエタリの相互接続であった。低コスト/高速の相互接続はユーザのためにクラスタリングのコストを下げ、実行中の待ち時間を短くするだろう。
この発明は、上述の問題に対処するクラスタリングの新しく有用な方法およびシステムを提供する。
発明の概要
一実施例においては、複数のノードを含むクラスタシステムのためのハートビート機構が提供される。一局面においては、当該システムは、複数のノードからハートビートメッ
セージを受信する定数ファイルを含む。ネットワークコントローラは定数ファイルを複数のノードに接続し、ここで、当該ネットワークコントローラがIEEE1394プロトコルに従って定数ファイルと通信を行なう。
この発明の別の実施例に従うと、クラスタにおけるノードを監視する方法が提供される。定数ファイルは、クラスタにおけるノードから受取った状態メッセージを記憶するために割当てられる。ノードがアクティブであることを示す状態メッセージがクラスタにおけるノードから定期的に受信される。この場合、状態メッセージはIEEE1394通信プロトコルに基づいて受信される。
明細書に援用され、明細書の一部を構成する添付の図面においてシステムおよび方法の実施例が示されるが、当該実施例は、下記の詳細な説明とともに当該システムおよび方法の具体的な実施例を説明するのに役立つ。図面に示される要素の境界(たとえば箱または箱のグループ)が境界の一例を表わすことが理解されるだろう。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 (35)

  1. 複数のノードを含むクラスタのためのハートビート機構であって、システムは、
    前記複数のノードからハートビートメッセージを受信するための定数ファイルと、
    前記定数ファイルを前記複数のノードに接続するためのネットワークコントローラとを含み、前記ネットワークコントローラは、IEEE1394プロトコルに従って前記定数ファイルとの通信を提供する、ハートビート機構。
  2. 前記ネットワークコントローラはIEEE1394カードである、請求項1に記載のハートビート機構。
  3. 前記定数ファイルは記憶装置内に割当てられるメモリを含む、請求項1に記載のハートビート機構。
  4. 前記記憶装置は前記定数ファイルと前記複数のノードによって共有されるファイルとをともに含む、請求項3に記載のハートビート機構。
  5. 前記ネットワークコントローラによって保持され、前記IEEE1394プロトコルに基づいてアクティブなノードを識別するためのノードマップをさらに含む、請求項1に記載のハートビート機構。
  6. 前記ノードマップによって書込まれた前記定数ファイルにおけるハートビートメッセージと前記ノードとを比較することにより前記複数のノードからノードの状態を決定するための状態ロジックをさらに含む、請求項5に記載のハートビート機構。
  7. 前記ハートビートメッセージはタイムスタンプを含む、請求項1に記載のハートビート機構。
  8. 前記クラスタはデータベースクラスタである、請求項1に記載のハートビートシステム。
  9. クラスタ化されたシステムであって、
    1つ以上の共有ファイルと、
    ともにクラスタ化され、前記共有ファイルへの通信アクセスを有する複数のノードと、
    IEEE1394プロトコルに基づいて前記複数のノードの各々と通信するよう構成された定数ファイルとを含み、前記定数ファイルは前記複数のノードの各々からの状態メッセージを記憶する、クラスタ化されたシステム。
  10. 前記定数ファイルは1つ以上の第1の記憶装置上に保持され、前記共有ファイルは前記第1の記憶装置とは別個の1つ以上の第2の記憶装置上で保持される、請求項9に記載のクラスタ化されたシステム。
  11. 前記定数ファイルおよび前記共有ファイルは1つ以上の共通の記憶装置上で保持される、請求項9に記載のクラスタ化されたシステム。
  12. 前記共有ファイルと前記複数のノードとの間に通信を提供するための第1のネットワークと、
    前記定数ファイルと前記複数のノードとの間に通信を提供するための第2のネットワークとをさらに含む、請求項9に記載のクラスタ化されたシステム。
  13. 前記第1のネットワークおよび前記第2のネットワークはIEEE1394プロトコルに基づいてデータを通信する、請求項12に記載のクラスタ化されたシステム。
  14. 前記第1のネットワークおよび前記第2のネットワークは同じネットワークである、請求項12に記載のクラスタ化されたシステム。
  15. 前記状態メッセージはタイムスタンプを含む、請求項9に記載のクラスタ化されたシステム。
  16. 前記1つ以上の共有ファイルと前記定数ファイルとの両方に前記複数のノードを接続するための共通ネットワークをさらに含む、請求項9に記載のクラスタ化されたシステム。
  17. 前記複数のノードの各々に保持され、状態メッセージを定期的に生成し、前記IEEE1394プロトコルに従って前記状態メッセージを前記定数ファイルに伝送するハートビートロジックをさらに含む、請求項9に記載のクラスタ化されたシステム。
  18. 前記クラスタ化されたシステムはデータベースクラスタを含む、請求項9に記載のクラスタ化されたシステム。
  19. クラスタにおけるノードを監視する方法であって、
    前記クラスタにおけるノードから受取った状態メッセージを記憶するための定数ファイルを割当てるステップと、
    ノードがアクティブであることを示す状態メッセージを前記クラスタにおけるノードから定期的に受信するステップとを含み、前記状態メッセージはIEEE1394通信プロトコルに基づいて受信される、方法。
  20. 前記IEEE1394通信プロトコルに基づいて前記クラスタにおいてアクティブなノードのノードマップを保持するステップをさらに含む、請求項19に記載の方法。
  21. 前記定数ファイルにおける状態メッセージと前記ノードマップとを比較することによりノードがアクティブであるかどうかを判断するステップをさらに含む、請求項20に記載の方法。
  22. 選択された時間間隔で状態メッセージを生成し、前記IEEE1394通信プロトコルに従って前記状態メッセージを前記定数ファイルに伝送するステップをさらに含む、請求項19に記載の方法。
  23. 前記割当てるステップは、前記定数ファイルの部分を前記ノードの各々に等しく割当てるステップを含む、請求項19に記載の方法。
  24. 前記割当てるステップは、前記ノードによってアクセスされるファイルを含む記憶装置において前記定数ファイルを規定するステップを含む、請求項19に記載の方法。
  25. 前記割当てるステップは、IEEE1394コントローラを含む定数装置において前記定数ファイルを規定するステップを含む、請求項19に記載の方法。
  26. ハートビートシステムであって、
    複数のノードと、
    前記複数のノードから送信されたハートビートメッセージ情報を記憶するための定数区域と、
    前記定数ファイルを前記複数のノードに伝達するためのネットワークコントローラとを含み、前記ネットワークコントローラはIEEE1394プロトコルに従って前記定数ファイルとの通信を提供する、ハートビートシステム。
  27. 前記定数区域は前記複数のノードとは異なるネットワーク上で保持される、請求項26に記載のハートビートシステム。
  28. 前記定数区域は定数ファイルを割当てるための手段を含む、請求項26に記載のハートビートシステム。
  29. 前記複数のノードの各々に保持され、ハートビートメッセージ情報を定期的に生成し、これを前記IEEE1394プロトコルに従って前記定数区域に伝送するハートビートロジックをさらに含む、請求項26に記載のハートビートシステム。
  30. 前記複数のノードは共有ディスクアーキテクチャまたは非共有アーキテクチャにおいてクラスタ化される、請求項26に記載のハートビートシステム。
  31. クラスタにおけるノードを監視する方法であって、
    前記クラスタにおけるノードから受取った状態メッセージを記憶するための定数ファイルを割当てるステップと、
    前記ノードがアクティブであることを示す状態メッセージを前記クラスタにおけるノードから定期的に受信するステップとを含み、前記状態メッセージはIEEE1394通信プロトコルに基づいて受信される、方法。
  32. アクティブなノードのノードマップを保持するステップをさらに含む、請求項31に記載の方法。
  33. 前記定数ファイルにおける状態メッセージと前記ノードマップとを比較することによりノードがアクティブであるかどうかを判断するステップをさらに含む、請求項32に記載の方法。
  34. 前記割当てるステップは、前記ノードによってアクセスされるファイルを含む記憶装置において前記定数ファイルを規定するステップを含む、請求項31に記載の方法。
  35. 前記割当てるステップは、前記クラスタにおける前記ノードとは別個のネットワーク上で保持される記憶装置において前記定数ファイルを規定するステップを含む、請求項31に記載の方法。
JP2004557239A 2002-11-27 2003-11-19 クラスタシステムのためのハートビート機構 Withdrawn JP2006508470A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/305,483 US7451359B1 (en) 2002-11-27 2002-11-27 Heartbeat mechanism for cluster systems
PCT/US2003/037172 WO2004051479A2 (en) 2002-11-27 2003-11-19 Heartbeat mechanism for cluster systems

Publications (2)

Publication Number Publication Date
JP2006508470A true JP2006508470A (ja) 2006-03-09
JP2006508470A5 JP2006508470A5 (ja) 2006-12-14

Family

ID=32467763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004557239A Withdrawn JP2006508470A (ja) 2002-11-27 2003-11-19 クラスタシステムのためのハートビート機構

Country Status (8)

Country Link
US (2) US7451359B1 (ja)
EP (1) EP1565823B1 (ja)
JP (1) JP2006508470A (ja)
CN (1) CN1717658A (ja)
AU (1) AU2003294409A1 (ja)
CA (1) CA2505155A1 (ja)
DE (1) DE60328515D1 (ja)
WO (1) WO2004051479A2 (ja)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451359B1 (en) * 2002-11-27 2008-11-11 Oracle International Corp. Heartbeat mechanism for cluster systems
US7739541B1 (en) * 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
JP2005196467A (ja) 2004-01-07 2005-07-21 Hitachi Ltd ストレージシステム、ストレージシステムの制御方法、及びストレージ制御装置
WO2005101837A1 (en) 2004-04-09 2005-10-27 Warner Bros. Entertainment Inc. Motion picture distribution system and related method
WO2006023934A1 (en) * 2004-08-20 2006-03-02 Warner Bros. Entertainment Inc. Video delivery system and related method
US7664994B2 (en) 2004-09-08 2010-02-16 Hewlett-Packard Development Company, L.P. High-availability cluster node removal and communication
DE102004062034A1 (de) * 2004-12-23 2006-07-13 Robert Bosch Gmbh Repeaterknoten für ein Netzwerk
US20060242453A1 (en) * 2005-04-25 2006-10-26 Dell Products L.P. System and method for managing hung cluster nodes
US20070022314A1 (en) * 2005-07-22 2007-01-25 Pranoop Erasani Architecture and method for configuring a simplified cluster over a network with fencing and quorum
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
US9282081B2 (en) 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
WO2007105271A1 (ja) * 2006-03-10 2007-09-20 Fujitsu Limited ネットワーク・システム
US7539755B2 (en) * 2006-04-24 2009-05-26 Inventec Corporation Real-time heartbeat frequency regulation system and method utilizing user-requested frequency
US8122108B2 (en) * 2006-05-16 2012-02-21 Oracle International Corporation Database-less leasing
US7661015B2 (en) * 2006-05-16 2010-02-09 Bea Systems, Inc. Job scheduler
US9384103B2 (en) * 2006-05-16 2016-07-05 Oracle International Corporation EJB cluster timer
US20080201440A1 (en) * 2007-02-15 2008-08-21 Void Communications, Inc. Electronic Messaging Recordlessness Warning and Routing System and Method
US20080281959A1 (en) * 2007-05-10 2008-11-13 Alan Robertson Managing addition and removal of nodes in a network
US8156219B2 (en) * 2007-08-03 2012-04-10 At&T Intellectual Property I, L.P. System and method of health monitoring and fault monitoring in a network system
US8880585B1 (en) 2007-12-27 2014-11-04 Amazon Technologies, Inc. Peer-to-peer quorum sensing
CN101234018B (zh) * 2008-02-26 2010-07-14 中兴通讯股份有限公司 心跳检测方法、系统和中央处理单元
US8010832B2 (en) * 2008-07-25 2011-08-30 International Business Machines Corporation Transitional replacement of operations performed by a central hub
US9128770B2 (en) * 2008-11-25 2015-09-08 Citrix Systems, Inc. Systems and methods for GSLB auto synchronization
US9235448B2 (en) * 2008-11-25 2016-01-12 Citrix Systems, Inc. Systems and methods for batchable hierarchical configuration
US8108712B1 (en) * 2009-10-30 2012-01-31 Hewlett-Packard Development Company, L.P. Method and apparatus for removing a computer from a computer cluster observing failure
US8341231B2 (en) * 2010-01-07 2012-12-25 Fujitsu Limited Systems and methods for processing heartbeat messages
US8694625B2 (en) 2010-09-10 2014-04-08 International Business Machines Corporation Selective registration for remote event notifications in processing node clusters
US20120066694A1 (en) 2010-09-10 2012-03-15 International Business Machines Corporation Event overflow handling by coalescing and updating previously-queued event notification
US8850262B2 (en) * 2010-10-12 2014-09-30 International Business Machines Corporation Inter-processor failure detection and recovery
EP2629399A1 (en) * 2010-10-15 2013-08-21 Sanyo Electric Co., Ltd. Management system and system controller
US8984119B2 (en) 2010-11-05 2015-03-17 International Business Machines Corporation Changing an event identifier of a transient event in an event notification system
DE102010043659B4 (de) * 2010-11-09 2012-06-21 BSH Bosch und Siemens Hausgeräte GmbH Verfahren zum Betreiben eines Bussystems, Bussystem und Haushaltsgerät mit einem Bussystem
US8667126B2 (en) 2010-12-03 2014-03-04 International Business Machines Corporation Dynamic rate heartbeating for inter-node status updating
US8634328B2 (en) 2010-12-03 2014-01-21 International Business Machines Corporation Endpoint-to-endpoint communications status monitoring
US8433760B2 (en) 2010-12-03 2013-04-30 International Business Machines Corporation Inter-node communication scheme for node status sharing
US9063787B2 (en) * 2011-01-28 2015-06-23 Oracle International Corporation System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
US8634330B2 (en) 2011-04-04 2014-01-21 International Business Machines Corporation Inter-cluster communications technique for event and health status communications
US8683170B1 (en) 2011-09-23 2014-03-25 Netapp, Inc. Consistent distributed storage communication protocol semantics in a clustered storage system
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US8930064B2 (en) * 2011-10-27 2015-01-06 Snap-On Incorporated Method and system for automated and manual data capture configuration
CN102325196A (zh) * 2011-10-27 2012-01-18 上海文广互动电视有限公司 分布式集群存储系统
US8769089B2 (en) 2011-11-15 2014-07-01 International Business Machines Corporation Distributed application using diagnostic heartbeating
US8874974B2 (en) * 2011-11-15 2014-10-28 International Business Machines Corporation Synchronizing a distributed communication system using diagnostic heartbeating
US9244796B2 (en) 2011-11-15 2016-01-26 International Business Machines Corporation Diagnostic heartbeat throttling
US8756453B2 (en) 2011-11-15 2014-06-17 International Business Machines Corporation Communication system with diagnostic capabilities
US8903893B2 (en) * 2011-11-15 2014-12-02 International Business Machines Corporation Diagnostic heartbeating in a distributed data processing environment
US20150169598A1 (en) 2012-01-17 2015-06-18 Oracle International Corporation System and method for providing a persistent snapshot of a running system in a distributed data grid
JP6168052B2 (ja) * 2012-05-31 2017-07-26 株式会社ニコン 移動電子機器およびプログラム
US8965921B2 (en) * 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US8756708B2 (en) 2012-07-13 2014-06-17 NETFLIX Inc. System and method for detecting active streams using a heartbeat and secure stop mechanism
DE102012218429A1 (de) 2012-10-10 2014-04-10 Zumtobel Lighting Gmbh System zur Funktionsüberwachung einer Stromschleife
US9742877B2 (en) 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
RU2543316C2 (ru) * 2012-12-25 2015-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ отказоустойчивого выполнения задач по расписанию в распределенных средах
US9178772B2 (en) * 2013-06-25 2015-11-03 Cisco Technology, Inc. Cumulative node heartbeat relay agents in constrained computer networks
US9742685B2 (en) * 2013-09-26 2017-08-22 International Business Machines Corporation Enhanced mechanisms for granting access to shared resources
CN103684929B (zh) * 2013-12-27 2017-01-25 乐视云计算有限公司 服务器状态的监控系统及方法
CN104503871A (zh) * 2014-12-29 2015-04-08 浪潮电子信息产业股份有限公司 一种基于小型机系统全冗余模型的实现方法
CN105991720B (zh) * 2015-02-13 2019-06-18 阿里巴巴集团控股有限公司 配置变更方法、设备及系统
US10810179B2 (en) * 2015-09-25 2020-10-20 Microsoft Technology Licensing, Llc Distributed graph database
US10341252B2 (en) * 2015-09-30 2019-07-02 Veritas Technologies Llc Partition arbitration optimization
CN106936662B (zh) 2015-12-31 2020-01-31 杭州华为数字技术有限公司 一种实现心跳机制的方法、装置及系统
CN106940671B (zh) * 2016-01-05 2020-08-04 阿里巴巴集团控股有限公司 一种集群中任务线程运行的监控方法、装置及系统
CN106027623A (zh) * 2016-03-14 2016-10-12 中国科学院计算技术研究所 分布式集群状态管理的方法及其系统
US10652125B2 (en) * 2016-04-05 2020-05-12 Vmware, Inc. System and method for managing multiple remote-office and branch-office (ROBO) sites
US10417839B2 (en) 2016-05-25 2019-09-17 Navigation Research Company System and method for vehicle assessment and uses thereof
CN106446031A (zh) * 2016-08-31 2017-02-22 天津南大通用数据技术股份有限公司 一种大规模集群数据库快速节点替换方法
US10114633B2 (en) * 2016-12-08 2018-10-30 International Business Machines Corporation Concurrent I/O enclosure firmware/field-programmable gate array (FPGA) update in a multi-node environment
CN106873918A (zh) * 2017-02-27 2017-06-20 郑州云海信息技术有限公司 一种虚拟化系统中的存储设置方法及装置
US11550820B2 (en) 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
US10769019B2 (en) 2017-07-19 2020-09-08 Oracle International Corporation System and method for data recovery in a distributed data computing environment implementing active persistence
US10459782B2 (en) 2017-08-31 2019-10-29 Nxp Usa, Inc. System and method of implementing heartbeats in a multicore system
US10862965B2 (en) 2017-10-01 2020-12-08 Oracle International Corporation System and method for topics implementation in a distributed data computing environment
DE102018101103A1 (de) * 2018-01-18 2019-07-18 Volkswagen Aktiengesellschaft Verfahren und Computerprogramme für eine Überwachungsinstanz und eine Kommunikationskomponente, Überwachungsinstanz, Kommunikationskomponente, System und Fahrzeug
CN108958984B (zh) * 2018-08-13 2022-02-11 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法
US11108730B2 (en) 2018-09-27 2021-08-31 Hewlett Packard Enterprise Development Lp Group heartbeat information in a domain name system server text record
US10826812B2 (en) 2018-10-07 2020-11-03 Hewlett Packard Enterprise Development Lp Multiple quorum witness
US10628242B1 (en) 2018-12-24 2020-04-21 Lendingclub Corporation Message stream processor microbatching
US10819622B2 (en) * 2018-12-24 2020-10-27 Lendingclub Corporation Batch checkpointing for inter-stream messaging system
US10778530B2 (en) * 2018-12-27 2020-09-15 Intel Corporation Device discovery using heartbeat signals
CN109857344B (zh) * 2019-01-30 2022-05-20 平安科技(深圳)有限公司 基于共享内存的心跳状态判断方法、装置和计算机设备
CN110018932B (zh) * 2019-03-26 2023-12-01 中国联合网络通信集团有限公司 一种容器磁盘的监控方法及装置
CN110677493B (zh) * 2019-10-11 2022-04-01 深圳市网心科技有限公司 服务状态确定方法及装置、计算机装置及存储介质
US11457065B1 (en) * 2020-09-25 2022-09-27 Amazon Technologies, Inc. Service fleet rate adjustment
US11397632B2 (en) * 2020-10-30 2022-07-26 Red Hat, Inc. Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
CN114143175B (zh) * 2021-10-15 2024-08-02 湖南麒麟信安科技股份有限公司 主备集群实现方法及系统
CN114167845B (zh) * 2021-12-23 2023-12-05 广东嘉腾机器人自动化有限公司 一种plc与设备的通讯离线诊断方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US5890154A (en) * 1997-06-06 1999-03-30 International Business Machines Corp. Merging database log files through log transformations
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US6393485B1 (en) 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6405274B1 (en) 1998-12-30 2002-06-11 Oracle Corporation Anticipatory lock mode conversions in a lock management system
US6321218B1 (en) 1999-02-24 2001-11-20 Oracle Corporation Automatically determining data that is best suited for index tuning
US6779039B1 (en) * 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
US6754171B1 (en) * 2000-05-18 2004-06-22 Enterasys Networks, Inc. Method and system for distributed clock failure protection in a packet switched network
US6553836B2 (en) * 2000-07-21 2003-04-29 John T. Williams Surface acoustic wave (SAW) accelerometer
US7076553B2 (en) * 2000-10-26 2006-07-11 Intel Corporation Method and apparatus for real-time parallel delivery of segments of a large payload file
US7016946B2 (en) * 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers
US20030061340A1 (en) * 2001-09-25 2003-03-27 Mingqiu Sun Network health monitoring through real-time analysis of heartbeat patterns from distributed agents
US7451359B1 (en) * 2002-11-27 2008-11-11 Oracle International Corp. Heartbeat mechanism for cluster systems

Also Published As

Publication number Publication date
CN1717658A (zh) 2006-01-04
WO2004051479A3 (en) 2004-11-11
CA2505155A1 (en) 2004-06-17
US7590898B2 (en) 2009-09-15
AU2003294409A1 (en) 2004-06-23
US7451359B1 (en) 2008-11-11
EP1565823B1 (en) 2009-07-22
WO2004051479A2 (en) 2004-06-17
DE60328515D1 (ja) 2009-09-03
EP1565823A2 (en) 2005-08-24
US20090043887A1 (en) 2009-02-12

Similar Documents

Publication Publication Date Title
JP2006508470A (ja) クラスタシステムのためのハートビート機構
US7069349B2 (en) IPMI dual-domain controller
US6934878B2 (en) Failure detection and failure handling in cluster controller networks
JP4618654B2 (ja) 並列処理コンピュータ・システムにおけるデータ通信方法
US6065037A (en) Multiple software-facility component operating system for co-operative processor control within a multiprocessor computer system
JPH11316748A (ja) 並列処理コンピュ―タ・システムにおけるデ―タの転送方法
JPH11316746A (ja) 拡張可能な並列処理コンピュ―タ・システムにおけるデ―タ通信方法
US20040243769A1 (en) Tree based memory structure
JPH11316749A (ja) デ―タ・ストレ―ジ・システムにおける冗長デ―タの識別方法
US20030158933A1 (en) Failover clustering based on input/output processors
JPH11328135A (ja) 並列処理コンピュ―タ・システム
JP2000187560A (ja) メモリ・システムの構成方法
KR20060040684A (ko) 인피니밴드(InfiniBand)분산형 시스템-영역네트워크 집중 관리 제공 방법, 시스템, 컴퓨터 프로그램제품
US8103754B1 (en) Reserving a shared volume in a multiple node data storage system
US7409432B1 (en) Efficient process for handover between subnet managers
JP4653490B2 (ja) 相互接続を有するクラスタリングシステムおよび方法
US6823397B2 (en) Simple liveness protocol using programmable network interface cards
US7499987B2 (en) Deterministically electing an active node
US8819200B2 (en) Automated cluster node configuration
JP2004199682A (ja) 高可用性クラスタにおける活性判定用通信ネットワークとしての記憶媒体の使用
CN112527192A (zh) 数据获取方法、装置及服务设备
US7284001B2 (en) Data file system, data access node, brain node, data access program storage medium and brain program storage medium
KR100361076B1 (ko) 이중화 시스템의 메모리 공유 방법 및 이를 이용한 이중화 시스템
Farazdel et al. Understanding and using the SP Switch
US20030182479A1 (en) Implementing clustering in raid controllers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20081016