(57)【要約】  本発明は、各コンピュータノード（１１０）が少なくとも１つのデータ処理コンポーネント及びメインメモリを有した、並列データ処理用の複数のコンピュータノード（１１０）を有する高可用性コンピュータシステム（１００）に関する。コンピュータシステム（１００）は更に、各ストレージノード（１３０）が少なくとも１つの不揮発性大容量記憶装置を有した複数のストレージノード（１３０）を有する。複数のコンピュータノード（１１０）は、複数のコンピュータグループ（１２０）へとパーティショニングされ、複数のコンピュータグループ（１２０）の各々は、少なくとも１つの冗長コンピュータノード（１１０）を有する。各コンピュータグループ（１２０）は、該コンピュータグループ（１２０）に割り当てられたローカル接続構造を有し、該構造は、該コンピュータグループ（１２０）に割り当てられたストレージノード（１３０）を、該コンピュータグループ（１２０）のコンピュータノード（１１０）に接続する。本発明は更に、高可用性コンピュータシステム（１００）の動作方法、及び高可用性コンピュータシステム（１００）の用途に関する。
2015528962.tif 000002
【特許請求の範囲】
【請求項１】
並列データ処理用の複数のコンピュータノードであり、各コンピュータノードが、少なくとも１つのデータ処理コンポーネント及びメインメモリを有する、複数のコンピュータノードと、
複数のストレージノードであり、各ストレージノードが、少なくとも１つの不揮発性大容量記憶装置を有する、複数のストレージノードと、
前記複数のコンピュータノードにアクセスするための少なくとも１つのデータネットワークと
を有し、
前記複数のコンピュータノードが、複数のコンピュータグループへとパーティショニングされ、
前記複数のコンピュータグループの各々が、少なくとも１つの冗長コンピュータノードを有し、
前記複数のストレージノードの各ストレージノードが、前記複数のコンピュータグループのうちの、まさに１つのコンピュータグループに割り当てられ、
各コンピュータグループが、該コンピュータグループに割り当てられたローカル接続構造を有し、前記構造は、該コンピュータグループに割り当てられた前記ストレージノードを、該コンピュータグループのコンピュータノードに接続する、
高可用性コンピュータシステム。
【請求項２】
当該コンピュータシステムは、並列処理データベースを提供するように構成され、前記データベースのデータが、独立して問合せ可能な複数のデータベースセグメントへと分割され、当該コンピュータシステムの動作において、各データベースセグメントが、前記複数のコンピュータノードのうちの１つのコンピュータノードに割り当てられ、且つ該割り当てられたコンピュータノードの前記メインメモリに格納される、請求項１に記載の高可用性コンピュータシステム。
【請求項３】
第１の数のコンピュータノードを有する少なくとも１つの第１のコンピュータグループに、第２の数のデータベースセグメントが割り当てられ、前記第２の数は前記第１の数より少なく、前記第２の数のデータベースセグメントに割り当てられた前記データベースのデータが、前記第１のコンピュータグループに割り当てられた前記ストレージノードのうちの少なくとも１つに永続的に格納される、請求項２に記載の高可用性コンピュータシステム。
【請求項４】
前記第１のコンピュータグループの各コンピュータノードが、前記第１のコンピュータグループに割り当てられた少なくとも１つのストレージノードに、データベース変化を永続的に格納するように構成されることで、前記第１のコンピュータグループの第１のコンピュータノードが機能しなくなった場合に、前記第１のコンピュータグループの前記少なくとも１つの冗長コンピュータノードが、当該冗長コンピュータノードにローカルに接続されたストレージノードから、前記第１のコンピュータノードに割り当てられたデータセグメントのデータ、及び／又は前記第１のコンピュータノードの前記データベース変化をロードすることによって、機能しなくなった前記第１のコンピュータノードのタスクを引き継ぐことができるようにされている、請求項３に記載の高可用性コンピュータシステム。
【請求項５】
それぞれのコンピュータグループに割り当てられた少なくとも１つの前記ローカル接続構造は、前記複数のコンピュータノードにアクセスするための前記少なくとも１つのデータネットワークの帯域幅より高い帯域幅を有する、請求項１乃至４の何れか一項に記載の高可用性コンピュータシステム。
【請求項６】
少なくとも１つの第１のコンピュータグループの前記ローカル接続構造は、前記第１のコンピュータグループの前記コンピュータノードの、前記第１のコンピュータグループに割り当てられた前記ストレージノードへの、互いに並列な複数の接続経路を介した選択的な接続のための、少なくとも１つの並列スイッチングファブリックを有する、請求項１乃至５の何れか一項に記載の高可用性コンピュータシステム。
【請求項７】
第１のコンピュータグループの各コンピュータノードが、並列接続経路を介して、前記第１のコンピュータグループに割り当てられた前記ストレージノードの各々に接続され、前記並列接続経路の並列化度は、２より大きく、好ましくは４であり、且つ／或いは前記第１のコンピュータグループのコンピュータノード数より大きい、請求項１乃至６の何れか一項に記載の高可用性コンピュータシステム。
【請求項８】
少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノードは、サーバシステムの第１のモジュール内に配置され、前記第１のコンピュータグループに割り当てられた少なくとも１つの第１のストレージノードは、前記サーバシステムの第２のモジュール内に配置され、且つ少なくとも１つのダイレクトアタッチトストレージ（ＤＡＳ）接続を介して相互接続される、請求項１乃至７の何れか一項に記載の高可用性コンピュータシステム。
【請求項９】
前記少なくとも１つのＤＡＳ接続は、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）規格及び／又はＰＣＩエクスプレス（ＰＣＩｅ）規格に従った、特にシリアル接続ＳＣＳＩ（ＳＡＳ）規格及び／又はＳＣＳＩオーバーＰＣＩｅ（ＳＯＰ）規格に従った、少なくとも１つのデータ接続を有する、請求項８に記載の高可用性コンピュータシステム。
【請求項１０】
少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノード、及び前記第１のコンピュータグループに割り当てられた少なくとも１つの第１のストレージノードは、特にインフィニバンド（登録商標）規格に従った、少なくとも１つのシリアル高速ラインを介して相互接続される、請求項１乃至７の何れか一項に記載の高可用性コンピュータシステム。
【請求項１１】
第１のコンピュータグループの少なくとも２つの第１のコンピュータノードが、第１のコンピュータノードがリモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルに従って直接的に第２のコンピュータノードの前記メインメモリのコンテンツにアクセスすることができるように、該コンピュータグループに割り当てられた前記ローカル接続構造を介して相互接続される、請求項１乃至１０の何れか一項に記載の高可用性コンピュータシステム。
【請求項１２】
少なくとも１つの第１のストレージノードは、該ストレージノードに割り当てられたコンピュータグループの複数のコンピュータノードへの同時接続のための複数のアクセスポートを備えたコントローラであり、且つ／或いは、コンピュータグループの少なくとも１つの第１のコンピュータノードは、該コンピュータグループに割り当てられた複数のストレージノードへの同時接続のための複数のアクセスポートを備えたホストバスアダプタを有する、請求項１乃至１１の何れか一項に記載の高可用性コンピュータシステム。
【請求項１３】
少なくとも１つの第１のストレージノードは、少なくとも１つの半導体大容量記憶装置を有する、請求項１乃至１２の何れか一項に記載の高可用性コンピュータシステム。
【請求項１４】
並列データ処理用の第１の数のコンピュータノードを有した特に請求項１乃至１３の何れか一項に記載の高可用性コンピュータシステムの動作方法であって、
並列に処理されるべきデータが、第２の数のデータセグメントへと分割され、前記第１の数のコンピュータノードが、第３の数のコンピュータグループへとパーティショニングされ、前記第２の数は、前記第１の数と前記第３の数との間の差以下であり、前記第３の数は２以上である、
動作方法。
【請求項１５】
少なくとも、第１のコンピュータグループに割り当てられたコンピュータノードによって処理されるデータセグメント、の処理されるべきデータが、前記第１のコンピュータグループに割り当てられ且つ前記第１のコンピュータグループの前記コンピュータノードにローカルに接続された少なくとも１つのストレージノードに、永続的に格納される、請求項１４に記載の動作方法。
【請求項１６】
前記第１のコンピュータグループの各コンピュータノードが、前記第１のコンピュータグループに割り当てられ且つ前記第１のコンピュータグループの前記コンピュータノードにローカルに接続された少なくとも１つのストレージノードに、データベース変化を永続的に格納することで、前記第１のコンピュータグループの第１のコンピュータノードが機能しなくなった場合に、前記第１のコンピュータグループの少なくとも１つの冗長な第２のコンピュータノードが、当該冗長なコンピュータノードにローカルに接続されたストレージノードから、前記データセグメントに割り当てられたデータ、及び／又はデータベース変化をロードすることによって、前記機能しなくなったコンピュータノードのタスクを引き継ぐことができるようにされる、請求項１５に記載の動作方法。
【請求項１７】
特にオンライン分析処理（ＯＬＡＰ）若しくはオンライントランザクション処理（ＯＬＴＰ）データベース機器又はインメモリデータベース機器である、データベース装置での、請求項１乃至１３の何れか一項に記載の高可用性コンピュータシステム及び／又は請求項１４乃至１６の何れか一項に記載の動作方法の使用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各コンピュータノードが少なくとも１つのデータ処理コンポーネント及びメインメモリを有した、並列データ処理用の複数のコンピュータノードを有する高可用性（ハイアベイラビリティ）コンピュータシステムに関する。本発明は更に、この種のコンピュータシステムの動作方法に関する。
に関する。
【背景技術】
【０００２】
高可用性コンピュータシステムは、一般に、コンピュータシステムの少なくとも１つの単一コンポーネントが機能しなくなっても、ユーザによって必要とされるタスクが全体として実行され続けることができるように、一部又は全てのコンポーネントが冗長であるように設計されているコンピュータシステムであると理解される。この種のコンピュータシステムは、電子データ処理の分野において特に重要且つ／或いはタイムクリティカルなタスクに使用されている。
【０００３】
１つの考え得るアプリケーションは、例えば、インメモリデータベースにおいて、すなわち、処理されるべきデータの少なくとも大部分をコンピュータシステムの１つ以上のメインメモリに格納するデータベースにおいて発生するタイプの並列データ処理で構成される。この種のデータベースは、場合により、メインメモリ常駐型データベースとしても知られており、とりわけ、従来型データベースにおいてのようにデータのサイズに関係なく特にはハードディスクドライブである永続的な記憶装置での記憶に合わせてではなく、メインメモリでの記憶に合わせてデータが最適化されることを特徴とする。
【０００４】
複数のコンピュータノードを備えた並列データ処理用のコンピュータシステムの既知の構成は、通常、何れかのコンピュータノードが故障してもその故障コンピュータノードの作業を引き継ぐことができる少なくとも１つの冗長コンピュータノードを有する。そして、冗長コンピュータノードは基本的に、ユーザの視点からは高可用性コンピュータシステムがなおも同じ全体コンピュータ性能を有するよう、故障したコンピュータノードと同じコンピュータ性能を提供する。しかしながら、特にインメモリデータベースが使用される場合に、この種の構成に伴う問題は、故障したコンピュータによってそれまでに処理されたデータを冗長コンピュータノードのメインメモリにロードすることに起因して、かなりの遅延時間が発生し得ることである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の１つの目的は、性能及び可用性が更に向上される上述の種類の高可用性コンピュータシステムを提供することである。好ましくは、個々のコンピュータの万一の故障の場合の待ち時間の短縮を達成することが意図される。この種の高可用性コンピュータシステムは、特に、インメモリデータベースの高速且つ高可用性の実装に適していることが意図される。さらに、この種のコンピュータシステムの好適な動作方法を提供することが意図される。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、各コンピュータノードが少なくとも１つのデータ処理コンポーネント及びメインメモリを有した、並列データ処理用の複数のコンピュータノードを有する高可用性コンピュータシステムが開示される。この高可用性コンピュータシステムは更に、各ストレージノードが少なくとも１つの不揮発性大容量記憶装置を有した複数のストレージノードと、上記複数のコンピュータノードにアクセスするための少なくとも１つのデータネットワークとを有する。上記複数のコンピュータノードは、複数のコンピュータグループへとパーティショニング（区分け）され、これら複数のコンピュータグループの各々は、少なくとも１つの冗長コンピュータノードを有する。上記複数のストレージノードの各ストレージノードが、上記複数のコンピュータグループのうちの、まさに１つのコンピュータグループに割り当てられ、各コンピュータグループは、そのコンピュータグループに割り当てられたローカル接続構造を有し、該構造は、そのコンピュータグループに割り当てられたストレージノードを、そのコンピュータグループのコンピュータノードに接続する。
【０００７】
各コンピュータグループが、少なくとも１つの冗長コンピュータノードと、そのコンピュータグループに割り当てられたローカル接続構造及びそのコンピュータグループに割り当てられた少なくとも１つのストレージノードとを有した、複数のコンピュータグループへの、複数のコンピュータノードの分割により、ストレージノードとそれらに接続されたコンピュータノードとの間のデータ伝送速度を高めることができる。特に、これは、機能しなくなったコンピュータノードを置き換えるために、機能しなくなったコンピュータノードのデータを、ローカルに接続されたストレージノードから冗長コンピュータノードへとロードすることで、中央記憶装置を用いる既知のアーキテクチャにおいてより迅速に冗長コンピュータノードの使用準備が整うようにすることを可能にする。
【０００８】
更なる１つの利点は、コンピュータシステムが始動されるときに、グループごとに互いに分離された、多数の独立したストレージノード及び接続構造を用いて、データをロードすることができることである。
【０００９】
そしてまた、複数のコンピュータノードのうちの１つのコンピュータノードのメインメモリのデータの、ローカルストレージノードでの何らかの永続的なバックアップ及び復元が高速化され、このことは、特に結合型のオンライン分析処理（ＯＬＡＰ）及びオンライントランザクション処理（ＯＬＴＰ）の場合に有利である。
【００１０】
記載される分割により、既知のシステムより低い、“ファンアウト”としても知られる分岐度と、より短いライン経路とが、実際に、相当数のコンピュータノードを用いて可能にされる。結果として、互いに分離されたローカル接続構造においては、例えば、個々のデータライン上での信号遅延若しくは歪み、又は、“スキュー”とも呼ばれる複数の並列データライン若しくはデータ経路での信号のオフセットなどの悪影響が、より少なく発生する。
【００１１】
また、光接続構造の使用では、ローカル接続構造を短縮することが有利である。何故なら、こうすることは、データ伝送に並列使用される異なる波長の分散を生じさせず、あるいはほんの少ししか生じさせないからである。
【００１２】
有利な一設計によれば、コンピュータシステムは、並列処理データベースを提供するように構成され、データベースのデータが、独立して問合せ可能な複数のデータベースセグメントへと分割される。コンピュータシステムの動作において、各データベースセグメントが、複数のコンピュータノードのうちの１つのコンピュータノードに割り当てられ、且つこの割り当てられたコンピュータノードのメインメモリに格納される。この種のコンピュータシステムは、特にデータマイニング及びその他の高性能データベースアプリケーション使用されるタイプの、インメモリデータベースの実装に特に好適である。互いに独立に調べられることができるデータセグメントへの、データベースのデータのセグメンテーションにより、それらのストレージ、とりわけ、コンピュータグループのコンピュータノードにローカルに接続されたストレージノードにおけるそれらのストレージが可能にされる。並列化及びローカルストレージにより、格納されたデータにアクセスする時間が短縮され、データベースの応答時間及び可能なデータレートが、通常動作において、及びまた個々のノードの故障の場合において（“フェイルオーバ”）の双方で、全体として高められる。
【００１３】
有利な一設計によれば、第１の数のコンピュータノードを有する少なくとも１つの第１のコンピュータグループに、第２の数のデータベースセグメントが割り当てられ、第２の数は第１の数より少なく、第２の数のデータベースセグメントに割り当てられたデータベースデータが、第１のコンピュータグループに割り当てられたストレージノードに永続的に格納される。処理されるデータセグメントより多くのコンピュータノードがコンピュータグループに割り当てられる場合、そのコンピュータグループに割り当てられたデータセグメントを問い合わせるための冗長な置換ノードとして少なくとも１つのコンピュータノードが利用可能であることが保証される。
【００１４】
有利な更なる一設計によれば、第１のコンピュータグループの各コンピュータノードが、第１のコンピュータグループに割り当てられた少なくとも１つのストレージノードに、データベース変化を永続的に格納するように構成されることで、第１のコンピュータグループの第１のコンピュータノードが機能しなくなった場合に、第１のコンピュータグループの少なくとも１つの冗長コンピュータノードが、当該冗長コンピュータノードにローカルに接続されたストレージノードから、第１のコンピュータノードに割り当てられたデータセグメントのデータ、及び／又は第１のコンピュータノードのデータベース変化をロードすることによって、機能しなくなった第１のコンピュータノードのタスクを引き継ぐことができるようにされる。冗長コンピュータノードにローカルに接続されたストレージノードからデータベースセグメント又はデータベース変化をロードすることにより、第１のコンピュータノードの故障と、そのタスクの冗長コンピュータノードによる引き継ぎとの間の引き継ぎ時間を短縮することができる。
【００１５】
有利な一設計によれば、少なくとも１つのローカル接続構造は、第１のコンピュータグループのコンピュータノードの、第１のコンピュータグループに割り当てられたストレージノードへの、互いに並列な複数の接続経路を介した選択的な接続のための、並列スイッチングファブリックを有する。並列ネットワークファブリック又はスイッチングファブリックは、例えば特にイーサネット（登録商標）規格に従ったローカルネットワークなどの、その他の接続トポロジに対して相当な性能利点を有し、とりわけ、互いに並列な複数の接続の構築を可能にする。
【００１６】
有利な更なる一設計によれば、少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノードは、例えばブレードサーバシステム又はラックサーバシステムといったサーバシステムの第１のモジュール内に配置され、第１のコンピュータグループに割り当てられた第１のストレージノードは、サーバシステムの第２のモジュール内に配置される。第１のコンピュータノードと第１のストレージノードは、少なくとも１つのダイレクトアタッチトストレージ（ＤＡＳ）接続を介して相互接続される。例えば従来からの１９”ラックハウジングにねじ留めされたラックサーバ及び共有ラックサーバシステムの記憶装置においての、高可用性コンピュータシステムのコンポーネントの空間的に隣接した配置は、比較的短いライン経路を有するＤＡＳ接続の使用を可能にし、それにより、一般的なネットワーク接続と比較して、高められたデータ伝送速度、短縮された待ち時間、そして意味がある場合には、より多数の並列接続が可能にされる。
【００１７】
ＤＡＳ接続は、例えば、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）規格及び／又はＰＣＩエクスプレス（ＰＣＩｅ）規格に従ったデータ接続、特に、シリアル接続ＳＣＳＩ（ＳＡＳ）規格及び／又はＳＣＳＩオーバーＰＣＩｅ（ＳＯＰ）規格に従ったデータ接続である。
【００１８】
他の一設計によれば、少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノード、及び第１のコンピュータグループに割り当てられた少なくとも１つの第１のストレージノードは、特にインフィニバンド（登録商標）規格に従った、少なくとも１つのシリアルコード式の高速ラインを介して相互接続される。インフィニバンド規格又は技術的に同様のシリアルコード式の高速ラインはまた、例えば２．５、５、１０、２０又はそれより高いＧｂｉｔ／ｓといった特に高いスピードでの、１つ以上のコンピュータノードへのストレージノードの接続を可能にする。共通クロック信号に関するシリアルコーディングにかかわらず、この種の接続は、意味がある場合には、互いに並列な複数のデータラインを有し得る。
【００１９】
有利な更なる一設計によれば、第１のコンピュータグループの少なくとも２つの第１のコンピュータノードが、第１のコンピュータノードがリモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルに従って直接的に第２のコンピュータノードのメインメモリのコンテンツにアクセスすることができるように、該コンピュータグループに割り当てられたローカル接続構造を介して相互接続される。例えば、インフィニバンド（登録商標）Ｖｅｒｂｓ層、インターネットワイドエリアＲＤＭＡプロトコル（ｉＷＡＲＰ）、ＲｏＣＥ（RDMA  over  Converged  Ethernet（登録商標））、及び例えばhttp://www.openfabrics.orgに記載されるものなどのその他のＲＤＭＡ規格などの、ＲＤＭＡプロトコルに従った接続の使用は、第１のコンピュータノードのメモリがなおもアクセスされることが可能である限り、コンピュータのデータの冗長コンピュータノードへの更に高速な転送を可能にする。この種の設計は、とりわけ、各コンピュータノードがストレージノードとして組み込み不揮発性大容量記憶装置を有する高可用性コンピュータシステムに好適である。
【００２０】
有利な更なる一設計によれば、少なくとも１つの第１のストレージノードは、該ストレージノードに割り当てられたコンピュータグループの複数のコンピュータノードへの同時接続のための複数のアクセスポートを備えたコントローラを有する。代わりに、あるいは加えて、コンピュータグループの第１のコンピュータノードは、そのコンピュータグループに割り当てられた複数のストレージノードへの同時接続のための複数のアクセスポートを備えたホストバスアダプタを有する。この種のコンピュータノード又はストレージノードの構成は、相互に割り当てられたコンピュータノード及びストレージノードのグループの間に複数の直接接続を構築することに適している。
【００２１】
少なくとも１つの第１のストレージノードが、少なくとも１つの半導体大容量記憶装置を有する場合、高可用性コンピュータシステムの性能を更に向上させることができる。特に、半導体大容量記憶装置がストレージノードの不揮発性大容量記憶装置として使用される場合、既知のネットワークテクノロジ及びトポロジから知られているデータ伝送速度では、多数のコンピュータノードの同時接続を用いると、記憶媒体の最大データ伝送速度を利用するのに十分でないことが通常である。しかしながら、互いに独立したローカル接続構造を有する互いに部分的に独立な複数のコンピュータグループへの、本発明によるコンピュータシステムの分割により、半導体大容量記憶装置によって提供されるデータ伝送速度を、既知の技術を用いて、完全あるいは大いに活用することができる。
【００２２】
本発明の第２の態様によれば、例えば第１の態様に従ったものである高可用性コンピュータシステムの動作方法が開示される。高可用性コンピュータシステムは、並列データ処理用の第１の数のコンピュータノードを有する。この動作方法において、並列に処理されるべきデータが、第２の数のデータセグメントへと分割され、第１の数のコンピュータノードが、第３の数のコンピュータグループへとパーティショニングされる。第２の数は、第１の数と第３の数との間の差より小さいか等しいかであり、第３の数は２より大きいか等しいかである。
【００２３】
この種の動作方法によって、並列処理されるデータを、多数のコンピュータノードに、より良く分配することができる。これを行うため、既存の第１の数のコンピュータノードが、冗長コンピュータノードを各々が有する第３の数のコンピュータグループへとパーティショニングされ、処理されるデータが、対応する第２の数のデータセグメントへと分割される。並列データ処理に使用されるｎ個のコンピュータノードと、冗長に保持される１つのコンピュータノードとを有する通常のｎ＋１構成に代えて、全体としてｎ＋ｍ構成が作り出されるように、各々が１つ（以上）の冗長コンピュータノードを有するｍ個のコンピュータグループが提供される。各グループに１つの冗長コンピュータノードが保持される場合、ｍ個の冗長コンピュータノード（ｍ個のコンピュータグループの各々に１つのコンピュータノード）を差し引いた後、全部でｎ個のコンピュータノードのうち、ｎ−ｍ個のコンピュータノードがなおも並列データ処理に利用可能である。すると、最大でｎ−ｍ個のデータセグメントへの、処理されるデータの対応するパーティショニングは、コンピュータグループ当たり１つの冗長コンピュータノードを保持することができるように個々のデータセグメントをコンピュータノードに割当てることを可能にする。
【００２４】
有利な一設計によれば、少なくとも、第１のコンピュータグループに割り当てられたコンピュータノードによって処理されるデータセグメント、の処理されるべきデータが、第１のコンピュータグループに割り当てられ且つ第１のコンピュータグループのコンピュータノードにローカルに接続された少なくとも１つのストレージノードに、永続的に格納される。第１のコンピュータグループのストレージノードでのデータセグメントのローカルストレージにより、格納されたデータセグメントがこのコンピュータグループのコンピュータノードによってアクセスされるときのデータ伝送速度及び待ち時間を改善することができる。
【００２５】
有利な更なる一設計によれば、第１のコンピュータグループの各コンピュータノードが、第１のコンピュータグループに割り当てられ且つ第１のコンピュータグループのコンピュータノードにローカルに接続された少なくとも１つのストレージノードに、データベース変化を永続的に格納することで、第１のコンピュータグループの第１のコンピュータノードが機能しなくなった場合に、第１のコンピュータグループの少なくとも１つの冗長な第２のコンピュータノードが、当該冗長なコンピュータノードにローカルに接続されたストレージノードから、データセグメントに割り当てられたデータ、及び／又はデータベース変化をロードすることによって、機能しなくなったコンピュータノードのタスクを引き継ぐことができるようにされる。この種の動作方法は、特にトランザクション指向システムにおけるタスクの引き継ぎを高速化する。
【００２６】
本発明の第３の態様によれば、第１の態様に従った高可用性コンピュータシステム、及び／又は第２の態様に従った動作方法が、データベース装置で使用され、特に、オンライン分析処理（ＯＬＡＰ）若しくはオンライントランザクション処理（ＯＬＴＰ）データベース機器又はインメモリデータベース機器で使用される。
【００２７】
ハードウェア及びソフトウェアが互いにとりわけ密接に揃えられるこの種の機器すなわち装置は、例えば、データマイニング又は通信ネットワーク及び装置における並列問合せ能力を有するハイエンドデータベースに適したものなどの、特に高性能なデータベースアプリケーションの実行を可能にする。
【００２８】
本発明の有利な更なる設計が、添付の特許請求の範囲及び以下の実施形態例の詳細な説明に開示される。
【００２９】
以下、添付図面を参照して、実施形態例により本発明を詳細に説明する。同じコンポーネント又は同じ種類のコンポーネントは、同じ参照符号によって示す。より良い識別性のために、同じコンポーネント又は同じ種類のコンポーネントの異なるインスタンスは、アルファベットの添え字によって示すが、記述においてそれぞれのコンポーネントの全てのインスタンスを参照する場合には添え字を省略する。
【図面の簡単な説明】
【００３０】
【図１】高可用性コンピュータシステムを模式的に表現する図である。
【図２】高可用性コンピュータシステムの第１の設計を示す図である。
【図３】高可用性コンピュータシステムの第２の設計を示す図である。
【図４】高可用性コンピュータシステムの第３の設計を示す図である。
【図５】高可用性コンピュータシステムを初期化する方法を示すフロー図である。
【図６】高可用性コンピュータシステムの動作方法を示すフロー図である。
【発明を実施するための形態】
【００３１】
図１は、高可用性コンピュータシステム１００を模式的に示している。コンピュータシステム１００は、図示の実施形態例においては２つのコンピュータグループ１２０ａ及び１２０ｂにパーティショニング（区分け）されている複数のコンピュータノード１１０ａ−１１０ｈを有している。
【００３２】
パーティショニングは、以下では、コンピュータノード１１０の全量の複数のサブグループへの重なり合わない分割を意味すると理解される。図１に示される各々が４つのコンピュータノード１１０を有する２つのグループ１２０への８個のコンピュータノード１１０の分割に代えて、例えば、各々が２つのコンピュータノード１１０を有する４つのグループ１２０への分割、又は、各々が３つのコンピュータノード１１０を有する２つのコンピュータグループと２つのコンピュータノード１１０を有する第３のコンピュータグループ１２０への分割も考えられる。明らかなことには、現在のデータ処理要求には必要でないコンピュータノード１１０が何れのコンピュータグループ１２０にも割り当てられない分割も、原理的に考えられる。
【００３３】
図１に示されるコンピュータグループ１２０ａ及び１２０ｂは更に、各々、それぞれ２つのストレージノード１３０ａと１３０ｂ及び１３０ｃと１３０ｄを有している。ストレージノード１３０は、例えば、コンピュータノード１１０にローカルに接続されたダイレクトアタッチト（直接接続）ストレージ（ＤＡＳ）装置である。記載の実施形態例において、ストレージノード１３０ａ及び１３０ｃは、各々、ハードディスクの形態の複数の磁気式大容量記憶（マスストレージ）ドライブを有するラックモジュールである。一方、ストレージノード１３０ｂ及び１３０ｄは、複数の不揮発性半導体大容量記憶装置すなわちソリッドステートディスク（ＳＳＤ）を有するラックモジュールである。他の例では、ストレージノード１３０ａ−１３０ｄはまた、各々、ハードディスクドライブの形態の磁気式大容量記憶ドライブのみ、不揮発性半導体大容量記憶装置、又はハイブリッド大容量記憶装置を有していてもよい。
【００３４】
第１のグループ１２０ａ及び第２のグループ１２０ｂそれぞれの第１のストレージノード１３０ａ及び１３０ｃは、それぞれ、少なくとも論理的な意味で一緒になってデータベース１５０を形成するデータベースセグメント１４０ａ−１４０ｃ及び１４０ｄ−１４０ｆを格納する役割を果たす。データベース１５０は、その中に保管されるデータがそっくりそのまま、図１に示されるストレージノード１３０ａ−１３０ｄの何れかに格納されるわけではないので、図１による表現では破線によって示されている。そうとはいえ、個々のデータベースセグメント１４０ａ−１４０ｆの組み合わせが、ユーザにとっては一律に問合せ可能なデータベース１５０を作り出す。実際には、データベースセグメント１４０ａ−１４０ｆの組み合わせは好ましくは、アクティブストレージノード１１０の、例えば５分毎に作成される、メモリ抜粋又は“スナップショット”である。通常、動作上の信頼性の理由で、複数のバージョンが保持される。図１に点線で示されて後述されるログファイル１９０の“ロールフォワード”の情報と一緒になって、後者が現在のデータベースを作成する。明らかなことには、一部又は全てのストレージノード１３０におけるデータベースセグメント１４０の部分的あるいは全体的に重なり合った記憶も可能である。結果として、特に、１つ以上のストレージノード１３０が機能しなくなった場合の冗長性を作り出すことができる。同様に、データベース１５０のうちの一部又は全てのコンテンツを、図１に示されない外部の大容量ストレージシステムに格納することができる。
【００３５】
図１に示されるデータベース１５０は、１つ以上のクライアントコンピュータ１６０によって問い合わされることができる。これを行うため、図１に示されるクライアントコンピュータ１６０は、データネットワーク１７０を介して個々のコンピュータノード１１０に接続される。典型的に、個々のコンピュータノード１１０の間でのクエリの分割が、１つ以上の中央管理コンポーネントによって実行される。しかしながら、明瞭にするため、それらは図１に示していない。論理的な視点からは、故に、クライアントコンピュータ１６０が、自身のクエリを、２つのコンピュータグループ１２０ａ及び１２０ｂの全てのコンピュータノード１１０に並列に送信し、各々の各コンピュータノード１１０が、それに割り当てられたデータベースセグメント１４０に関係する部分的なクエリ（部分クエリ）のみを処理する。
【００３６】
データをメインメモリにロードするため、また、意味がある場合には、部分クエリのその後の処理のため、第１のコンピュータグループ１２０ａの４つのコンピュータノード１１０ａ−１１０ｄは各々スイッチングファブリック１８０ａを介して２つのストレージノード１３０ａ及び１３０ｂに直接的に接続される。同じようにして、第２のコンピュータグループ１２０ｂのコンピュータノード１１０ｅ−１１０ａは各々スイッチングファブリック１８０ｂを介してストレージノード１３０ｃ及び１３０ｄに接続される。
【００３７】
図１に示される構成において、第１のコンピュータグループ１２０ａのコンピュータノード１１０ａ−１１０ｃは各々、１つのデータセグメント１４０ａ−１４０ｃを処理する。コンピュータノード１１０ｅ−１１０ｇは各々、データベースセグメント１４０ｄ−１４０ｆに関係するデータベースクエリを処理する。それぞれの第４のコンピュータノード１１０ｄ及び１１０ｈは、それぞれ、第１のコンピュータグループ１２０ａ及び第２のコンピュータグループ１２０ｂの冗長置換コンピュータノードとして保持される。例えば中央ＮＡＳシステムといった共有記憶装置及び／又は例えばローカルイーサネット（登録商標）ネットワークといった共有接続構造の使用とは対照的に、コンピュータノード１１０ａ−１１０ｃ及び１１０ｅ−１１０ｇの各々は、自身が処理すべきそれぞれデータベースセグメント１４０ａ−１４０ｃ及び１４０ｄ−１４０ｆを、それぞれスイッチングファブリック１８０ａ及び１８０ｂを介して、それぞれローカルなストレージノード１３０ａ及び１３０ｃから検索することができるので、全てのコンピュータノード１１０に関して、達成可能なデータ伝送速度が高められ、且つ達成可能な待ち時間が短縮される。
【００３８】
スイッチングファブリック１８０は、比較的短い接続経路を介して、コンピュータノード１１０をローカルストレージノード１３０に接続する。これは、例えば、組み込み大容量記憶装置を備えたラックサーバ内のケーブル接続、ブレードシステム内のミッドプレーンの導電体経路、又は空間的に隣接してセットされる従来からの１９”ラックシステムの内部の、あるいはそれへの、バックプレーン接続を伴い得る。これらの配線経路は、典型的に２５ｍより短く、好ましくは２ｍより短く、より好ましくは１ｍより短く、更に好ましくは５０ｃｍより短い。短い配線経路のおかげで、有意な信号遅延、待ち時間、反射又は歪みは配線経路内で殆ど発生せず、それ故に、変わりがない伝送技術を用いたとしても、例えば多数のコンピュータノード１１０を備えた第１のラックシステムから多数のストレージノード１３０を備えた第２のラックシステムまでといった、より長距離にわたる接続の場合よりも高い伝送帯域幅を普通に達成することができる。
【００３９】
スイッチングファブリック１８０ａ及び１８０ｂ内の短い接続経路により、とりわけ高いデータ伝送速度を達成することができる。個々のコンピュータノード１１０が、例えば、１Ｇｂｉｔ／ｓ又は１０Ｇｂｉｔ／ｓの総（グロス）帯域幅を有するイーサネット（登録商標）プロトコルファミリのＩＥＥＥ８０２．３ｘに基づくローカルネットワークを介して接続される場合、グループ１２０のコンピュータノード１１０とストレージノード１３０との間の接続は、例えば１６Ｇｂｉｔ／ｓ若しくは３２Ｇｂｉｔ／ｓ又はそれ以上の総帯域幅を有するＳＡＳ、ＰＣＩｅ、インフィニバンド（登録商標）、又はファイバチャネル接続を用いて、有意にいっそう高速に構築されることができる。専用のストレージ接続は通常、例えばＩＥＥＥ８０２．３ｘｘ又はＴＣＰ／ＩＰなどの一般的なネットワークプロトコルよりも小さいプロトコルオーバヘッドを要するのみであるので、それぞれの正味（ネット）の帯域幅の間の差は相対的に更に大きくなる。
【００４０】
グループ１２０のコンピュータノード１１０同士の間の接続の正味帯域幅及び／又は総帯域幅は、故に、異なるグループ１２０ａ及び１２０ｂのコンピュータノード１１０の接続の正味帯域幅又は総帯域幅より高い。グループ１２０内のストレージ接続の帯域幅は、グループ１２０間の接続の帯域幅より、好ましくは２倍高く、より好ましくは４倍高い。
【００４１】
帯域幅は、ここでは、“二部分間（バイセクショナル）帯域幅”、すなわち、ネットワーク化されたシステム全体のうちの２つの部分間の接続の帯域幅を意味するよう好ましく理解される。この定義の意味の範囲内で、例えばコンピュータノード１１０ａ及び１１０ｃとコンピュータノード１１０ｂ及び１１０ｄとの間といった、１つのグループ１２０内でのコンピュータシステム１００の分割の場合の二部分間帯域幅は、例えばコンピュータノード１１０ａ−１１０ｄとコンピュータノード１１０ｅ−１１ｈとの間といった、２つのグループ１２０間でのコンピュータシステム１００の分割の場合の二部分間帯域幅より高い。第２のグループ１２０ｂのノード１１０も、原理的には、第１のグループ１２０ａの故障したコンピュータノード１１０のタスクを引き継ぎ得るが、より低い二部分間帯域幅のために、第１のグループ１２０ａのコンピュータノード１１０による引き継ぎと比較して、コンピュータシステム１００全体としての性能の実質的な損失をもたらすことになる。
【００４２】
以上の記載の意味の範囲内で、帯域幅は、単一の、厳密に順序付けられた接続の伝送帯域幅、すなわち、送信者の一連のパケット又はクエリシーケンスが受信側でも常にそのまま保証される接続の伝送帯域幅であると考えられる。この種の厳密に順序付けられた接続の例は、例えば、複数の並列データラインを有するＰＣＩエクスプレス接続（例えば、伝送方向当たり、すなわち、送信に１つ且つ伝送に１つ（“デュアルシンプレックス”）の、１６並列の電気的差動データラインを有する１つのｘ１６ＰＣＩｅ接続）であり、その中では、ネットワーククエリの個々のビット又はバイトが順序の喪失（“ストリッピング”）なく個々のデータラインの間に分配される。明らかなことには、電気的なデータラインに代えて、光接続、特に、波長分割多重（ＷＤＭ）によって互いに物理的に独立な複数の伝送周波数又はキャリア波長を用いる光導波路接続も使用されることができる。特に、この種の厳密に順序付けられた並列接続は、故に、複数の物理的に独立な接続の単なる並列接続（これは、追加のプロトコルオーバヘッド又はその他の管理オーバヘッドなしでは、厳密な順序の喪失をもたらし得る）とは異なる。この種の非順序付け接続構成の一例は、複数のギガビットイーサネット（登録商標）接続の相互接続（“トランキング”）である。
【００４３】
故に、グループ１２０内での、より低い分岐度はまた、個々の接続の並列性を高めることを可能にする。これは、一方で、短い接続経路それ自体によって達成される。何故なら、例えば、独立した伝送経路を介して伝送される異なる輸送遅延の信号によって伝送される並列伝送電気信号の同期の喪失、又は複数の異なるキャリア波長による光伝送中の分散、などの問題が生じないからである。１つのグループ内での接続の並列化度は、好ましくは４以上である。
【００４４】
また、必要とされる接続構造それ自体、特にスイッチング要素の実装は、実質的に単純化され、あるいは最初に可能にされる。例えば、市場で現在入手可能なＰＣＩエクスプレススイッチングモジュールは、各ＰＣＩエクスプレスレーンに対して、すなわち、単一のデータラインに対して、例えば９６といった、固定された所定数の切換可能な接続を有する。この９６接続を用いて、アップリンクで１６接続を介してｘ１６  ＰＣＩｅによって接続された１つのストレージノード１３０に８０個のコンピュータノード１１０を接続する場合、コンピュータノード当たり１つの単一の接続（ｘ１  ＰＣＩｅによるダウンリンクに相当する）のみが利用可能ということになる。逆に、コンピュータノード１１０が、５個のコンピュータノード１１０を各々が有する複数のグループ１２０へと分割される場合、各グループ１２０内で各コンピュータノード１１０に対して１６接続（ｘ１６  ＰＣＩｅに相当する）が利用可能である。接続当たりの並列化度は、好ましくは２より大きく、より好ましくは４より大きく、更に好ましくは分岐度すなわちグループ１２０の個数より大きい。
【００４５】
原理的には、相当な並列化度を達成するために多数のスイッチングコンポーネントを使用することも可能であるように見える。しかしながら、これは実際には不可能であることが多い。何故なら、完全な並列接続のために必要とされるデータラインの数が、コンピュータノード１１０の数と並列化度とに比例して増大することになるからである。しかし、コンピュータシステム１００のバックプレーン若しくはミッドプレーン上、又はラックシステムのケーブル敷設エリア内で利用可能な空間は、例えば２０個より多いコンピュータノード１１０といった多数のコンピュータノードの場合に、例えばコンピュータノード１１０当たり４つ以上のデータラインといった所望の並列化度に十分な数のデータラインを構成するのには十分でない。また、高い並列化度で多数の接続を製作するコストは、見合わないものである。
【００４６】
処理を更に高速化するため、コンピュータノード１１０は各々、自身が処理するデータベースセグメント１４０を、例えばダイナミック揮発性半導体メモリである自身のメインメモリ内に完全に保持する。斯くして、通常、ストレージノード１３０のうちの１つへの如何なるアクセスも、データベースクエリに回答するのに必要とされない。また、ハードディスクベースのデータベースシステムから知られている行指向型処理とともに、メインメモリのコンテンツへのランダムアクセスが更に、あるいは代替的に、データベース１５０のデータの列指向型処理を可能にし、これは、実行されるタスクに応じて、特に圧縮を通じて、メモリ内でのより効率的な提示をしばしば可能にし、それ故に、処理速度の更なる向上を可能にする。
【００４７】
コンピュータノード１１０のうちの１つ（例えば、第１のコンピュータグループ１２０ａのコンピュータノード１１０ａ）が機能しなくなる場合、それぞれのコンピュータグループ１２０の冗長コンピュータノード（故に、記載の例では、コンピュータグループ１２０ａのコンピュータノード１１０ｄ）が、先ほど故障したコンピュータノード１１０のタスクを引き継ぐ。この目的のため、コンピュータノード１１０ｄは、データベースセグメント１４０ａを自身のメインメモリにロードして、場合により進行中のユーザクエリ、又はその後のユーザクエリの処理を引き継ぐ。冗長ノード１１０ｄは、故障したコンピュータノード１１０ａと同じコンピュータグループ１２０ａ内に置かれているので、コンピュータノード１１０ｄも、第１のコンピュータノード１１０ａと同じ速度でローカルストレージノード１３０ａにアクセスすることができる。
【００４８】
コンピュータノード１１０ａによって場合によって作成済みの部分結果を引き継ぐこと、又はその他のステータス情報を故障コンピュータノード１１０ａから冗長コンピュータノード１１０ｄに転送することを可能にするため、コンピュータグループ１２０の全てのコンピュータノード１１０が、現在のメモリ抜粋（“メモリスナップショット”）、ステータスデータ及び／又はトランザクションデータ、又はその他のデータベース変化を、ログファイル内に、あるいは別の好適なデータ構造上に格納する。性能上の理由により、図１に従った設計においては、３つのデータベースセグメント１４０ａ−１４０ｃに関するログファイルは、第２のストレージノード１３０ｂの対応するログファイル１９０ａ−１９０ｃに格納されている。第２のストレージノード１３０ｂは、上述のように、記憶媒体として不揮発性半導体大容量記憶装置をしているので、スイッチングファブリック１８０を介して第２のストレージノード１３０ｂに対して達成可能なデータ伝送速度及びデータアクセス時間は、第１のストレージノード１３０ａのそれらより更に良好である。従って、第１のコンピュータノード１１０ａが機能しなくなる場合、冗長コンピュータノード１１０ｄを、コンピュータノード１１０ａが機能不全前に有していたのと同じ動作状態へと、とりわけ迅速に切り換えることができる。
【００４９】
図２は、第１の実施形態例による高可用性コンピュータシステム２００の具体的構成を示している。図示の実施形態例においては、複数のコンピュータグループが各々、１２個のＨＡＮＡサーバ２１０を有している。しかし、明瞭さの理由から、そのうち各々４つのＨＡＮＡサーバのみを図示している。ＳＡＰ  ＡＧ社のデータベーステクノロジに従った“高性能分析機器（High  Performance  Analytic  Appliance）”で使用されるコンピュータノードを、ＨＡＮＡサーバ２１０として参照している。それぞれ１２個のＨＡＮＡサーバ２１０が各々一緒になって、本質的に冗長なフェイルオーバ（障害迂回）グループ２２０を形成している。
【００５０】
フェイルオーバグループ２２０のＨＡＮＡサーバ２１０は各々冗長に、互いに対して冗長であるＳＡＳスイッチ２８０を介して、２つの記憶装置２３０に接続される。ＳＡＳスイッチ２８０と記憶装置２３０との間の個々の接続の接続帯域幅又は並列性は好ましくは、ＳＡＳスイッチ２８０に接続されたＨＡＮＡサーバ２１０が可能な限りその通信帯域幅全体を利用することができるように、フェイルオーバグループ２２０のサイズとともに増大すべきであるとともに、それに合わせて適応されるべきである。２つの記憶装置２３０には、各々４つのデュアルホスト式ストレージシステムが、データベースセグメント１４０又はログファイル１９０を格納するために、ＪＢＯＤ（“Just  a  Bunch  Of  Disks”）構成で収容されている。記憶装置２３０の記憶容量は、ブロック群にて、その中に格納されたデータへの高速アクセスに適応される。記憶装置２３０に使用されるローカルストレージシステムの各々は、それぞれの大容量記憶装置を２つのスイッチ２８０に接続するための２つのポートを有する。各ＨＡＮＡサーバ２１０は、スイッチ２８０のうちの１つを介した記憶装置２３０へのランダムな間接アクセスのためのホストアダプタ２４０を有している。斯くして、何れのＨＡＮＡサーバ２１０又はスイッチ２８０のうちの１つの不具合をも、フェイルオーバグループ２２０内で捕捉することができる。記載の実施形態例において、データそれ自体も２つの記憶装置２３０に冗長に格納される。
【００５１】
さらに、ＨＡＮＡサーバ２１０の各々は、ＨＡＮＡサーバ２１０のオペレーティングシステムを格納する１つ以上のローカルな大容量記憶装置２５０を有している。意味がある場合には、メインメモリに格納されたデータセグメントのスナップショットも、該ローカルな大容量記憶装置に格納されることができる。そしてまた、ＨＡＮＡサーバ２１０は、ユーザクエリを受信して結果を戻すために、また意味がある場合には更なる制御タスクのために、ＨＡＮＡサーバ２１０をデータネットワーク１７０に接続する１つ以上のネットワークインタフェース２６０を有している。
【００５２】
図２に従った構成において、ＨＡＮＡサーバの形態のコンピュータノードの数、又は記憶装置２３０の形態のストレージノード若しくはそれにより提供される大容量記憶装置の数は、ＳＡＳスイッチ２８０の形態のローカル接続構造のスイッチポートの数によって制限される。この実施形態例において、ＳＡＳスイッチ２８０は、１２個のＨＡＮＡサーバ２１０と、回転する磁気記憶媒体を有する従来型ハードディスクを備えた、最大で８個のＪＢＯＤストレージシステムとを接続するように構成される。図２の実施形態例に従った構成は、故に、１２個のコンピュータノードという比較的大きいグループを有する並列データベースの比較的低コストでの実装を可能にする。
【００５３】
高可用性コンピュータシステム２００の他の一設計において、記憶装置２３０の個々の一部又は全ての大容量記憶装置は、不揮発性半導体大容量記憶装置として設計される。例えば、並列データベースシステムのログファイル１９０を格納するために使用される大容量記憶装置は、半導体大容量記憶装置として設計されることができる一方で、データベースセグメント１４０を格納する役割を果たす大容量記憶装置は、従来型の磁気式ハードディスクドライブとして設計される。この種の構成は、一方で高可用性コンピュータシステム２００の最大動作速度に関して、他方で構築されるコンピュータシステムのコストに関して、良好な折衷策を表す。
【００５４】
図３は、第２の設計による高可用性コンピュータシステム３００の更なる具体的構成を示している。図３に従った設計においては、共通のフェイルオーバグループ３２０の各々内に２つのＨＡＮＡサーバ３１０のみが置かれている。各フェイルオーバグループ３２０が唯一のアクティブＨＡＮＡサーバ３１０と１つの冗長ＨＡＮＡサーバ３１０とを有するので、相当数ｎのアクティブノードは、対応したいっそう多い総数のコンピュータノードをもたらす。これは、故に、各々が１つのアクティブＨＡＮＡサーバ３１０を有するｎ個のフェイルオーバグループ３１０にて、２ｎ個のＨＡＮＡサーバ３１０のシステムを作り出す。
【００５５】
高可用性コンピュータシステム３００は、データベース１５０のデータベースセグメント１４０を格納するための従来型ハードディスクドライブ又は特に高性能の半導体大容量記憶装置を有する記憶装置３３０を、フェイルオーバグループ３２０ごとに１つ有する。ＨＡＮＡサーバ３１０及び記憶装置３３０は好ましくは、共通ラック内に配置される。図２を参照して上述したのとは異なる手法で、個々のＨＡＮＡサーバ３１０は、ＪＢＯＤ構成のホストアダプタ３４０を介して直接的に記憶装置３３０のデータにアクセスする。逆に、データベースシステムのログファイル１９０のデータは、複数の半導体大容量記憶装置（各々、ＨＡＮＡサーバ３２０への接続用の２つのアクセスポートを有する）を各々が有する外部ＰＣＩｅストレージボックス３４０に格納される。フェイルオーバグループ３２０の２つのＨＡＮＡサーバ３１０の各々は、１つ以上のＰＣＩｅレーンすなわち差動高速ラインを介して、２つのＰＣＩｅストレージボックス３４０又はそれに収容された半導体大容量記憶装置に直接的に接続される。
【００５６】
ＳＡＳホストアダプタを介したアクセスと比較して、元々はコンピュータ内部バスとして使用されるＰＣＩｅバスを介したアクセスは、やはり、有意に高められたデータ伝送速度を可能にする。さらに、フェイルオーバグループ３２０当たり２つのＨＡＮＡサーバ３１０のみという縮小されたグループサイズにより、記憶装置３３０又はＰＣＩｅストレージボックス３４０にアクセスする際に、より少ない問題が生じるのみである。何故なら、通常動作において、各々１つのみのＨＡＮＡサーバ３１０が、対応する記憶リソースにアクセスし、故に、ローカル接続構造の帯域幅全体を使用することができるからである。そしてまた、異なる物理的記憶媒体及びローカル接続構造の間でのデータベースセグメント１４０及びログファイル１９０の記憶の分割により、データ伝送の更なる並列化が可能にされる。全体として、図３に示される高可用性コンピュータシステム３００の構成は、故に、図２を参照して説明した構成より更に高い全体性能を可能にする。
【００５７】
図４は、第３の設計による高可用性コンピュータシステム４００の更なる構成を示している。図３に従った設計においてのように、ここでもまた、共通のフェイルオーバグループ４２０の各々内に２つのＨＡＮＡサーバ４１０のみが置かれている。図３においてのように、ＨＡＮＡサーバ４１０からのログファイル１９０は、ＰＣＩｅ接続を介してＨＡＮＡサーバ４１０に永続的に接続された、半導体大容量記憶装置を内部に配置したＰＣＩｅストレージボックス４４０に格納される。
【００５８】
しかしながら、図３に従った設計と異なり、図４に従った設計においては、データベースセグメント１４０自体も、同じ又は更なるＰＣＩｅストレージボックス４４０に格納され、それ故に、ＨＡＮＡサーバ４１０は、データセグメント１４０自体にも特に高い速度でアクセスすることができる。特に高性能なＰＣＩｅストレージボックス４４０及びその中に組み込まれる半導体大容量記憶装置に関連して負うコストのために、図４に示されるシステムは、特に、それによって負うコストにかかわらずに最大性能が要求される状況に適している。
【００５９】
図２−４に示した具体的な構成を介することで、並列化、ひいては、多量のデータを多数のコンピュータノード１１０にロードする際のデータアクセスの高速化、を可能にするように、比較的小さいグループのコンピュータノード１１０が好適なローカル接続構造を介して１つ以上のローカルストレージノード１３０に接続されるという更なるコンピュータ構成も考えられる。
【００６０】
図５は、例えば図１に従ったコンピュータシステム１００といった高可用性コンピュータシステムを初期化する方法５００を模式的に示している。
【００６１】
方法５００は、コンピュータシステム１００内で利用可能なコンピュータノード１１０の総数ｎを定めることを有するステップ５１０と、必要とされるコンピュータグループ１２０の数ｍを定めることを有するステップ５２０とで開始する。コンピュータグループ１２０の数ｍは、例えば、コンピュータシステム１００のハードウェア構成によって、あるいはＩＴサービスプロバイダのサービス内容合意書すなわち契約上の合意によって指定される。グループの形成においては、共通のローカル接続構造を有するコンピュータノード１１０及びストレージノード１３０のみが１つのコンピュータグループ１２０を形成することができるということを考慮に入れなければならない。
【００６２】
続くステップ５３０にて、高可用性コンピュータシステム１００によって処理されるべきデータセグメントの数ｓが定められる。ここで言及しなければならないことには、各コンピュータグループ１２０は、高い可用性を構築するために、少なくとも１つの冗長コンピュータノード１１０を有するべきである。例えば、４つのコンピュータノード１１０を各々が有する５つのコンピュータグループ１２０でトータル２０個のコンピュータノード１１０が利用可能である場合、処理されるデータは、故に、最大で５×３すなわち１５個のデータセグメントへと分割されることができる。残りの５つのコンピュータノード１１０は、５つのコンピュータグループ１２０の冗長ノードを形成する。
【００６３】
ステップ５４０にて、処理されるデータＤが、データセグメントｄ１−ｄｓへと分割される。この分割は、それぞれのアプリケーションの要求に応じて実行され、故に、ここでは詳細に説明しない。例えば、大規模データベース１５０を、後にクエリ全体のそれぞれの部分結果を決定するために異なるコンピュータノード１１０によって個別に問合せ可能な１つ又は複数のテーブル、列及び／又は行を各々が有するデータベースセグメント１４０へと分割することができる。
【００６４】
続くステップ５５０ａ−５５０ｓにて、必要数の冗長コンピュータノード１１０が各コンピュータグループ１２０の内に残るようにして、部分クエリを処理するために必要なデータセグメントｄ１−ｄｓがコンピュータノード１１０に割り当てられる。故に、上述の部分では、各グループ４つのコンピュータノード１１０に、３つのみのデータセグメントｄが割り当てられる。そして、割り当てられたデータセグメントｄは、その部分クエリを実行するコンピュータノード１１０を含んだ、それぞれのコンピュータグループ１２０に割り当てられたストレージノード１３０に格納される。ステップ５５０ａ−５５０ｓは、互いに並列あるいは順次に実行されることができる。
【００６５】
図６は、例えば図１に示したコンピュータシステム１００に関して図５に従った方法で初期化された、動作方法６００を模式的に示している。
【００６６】
方法６００は、クエリＱの受信を有するステップ６１０で開始する。例えば、クエリＱは、インメモリデータベース１５０に対するデータベースクエリとし得る。ステップ６１０にて、全体クエリＱが、高可用性コンピュータシステム１００の個々のコンピュータノード１１０によって別々に処理されることが可能な複数の部分クエリｑ１−ｑｓへと分割される。
【００６７】
部分クエリｑ１−ｑｓがステップ６２０ａ−６２０ｓにて実行され、ステップ６２０ａ−６２０ｓは、対応するデータセグメント１４０に割り当てられたコンピュータノード１１０によって互いに並列に実行される。例えば、第１のコンピュータグループ１２０ａの第１のコンピュータノード１１０ａが、第１のテーブルを有した、あるいは大規模データベース１５０のテーブルの第１の部分セグメントを有した、第１のデータベースセグメントｄ１により、第１の部分クエリｑ１を実行し、関連する部分応答ａ１を決定する。同じようにして、ｍ番目のコンピュータグループ１２０ｍのコンピュータノード１１０ｓが、更なるテーブルを有した、あるいは大規模データベース１５０の更なる部分セグメントを有した、データセグメントｄｓにより、クエリｑｓの実行を引き受けて、ｓ番目の部分応答ａｓを決定する。
【００６８】
個々の部分クエリｑ１−ｑｓが個々のコンピュータノード１１０によって首尾良く処理されることができる場合、ステップ６５０にて、例えば中央制御コンピュータによって、あるいは好適なクライアントコンピュータ１６０によって、全体応答Ａが部分応答ａ１−ａｓから定められ、そして、要求元のユーザ又は要求元のアプリケーションに送り返される。
【００６９】
図６は更に、障害６６０が発生するときの方法６００のプロセスを示している。例えば、ステップ６２０ａにて、第１の部分クエリｑ１の実行が、第１のコンピュータノード１１０ａの例えばハードウェア欠陥又はソフトウェアクラッシュの場合に中断されると、ステップ６３０にて、冗長コンピュータノード１１０が、コンピュータノード１１０ａによってそれまでに処理されたデータセグメントｄ１をロードする。代わりに、あるいは加えて、冗長コンピュータノード１１０はまた、例えば、上述のログファイル１９０を評価することによって、機能しなくなったコンピュータノード１１０ａのメモリコンテンツを引き継ぐことができる。冗長コンピュータノード１１０によるデータの再ロードは、他のコンピュータグループ１２０のコンピュータノード１１０による他の部分クエリｑの並列実行を全く妨げず、また、同じコンピュータグループ１２０のコンピュータノード１１０による他の部分クエリｑの並列実行を全く、あるいは殆ど妨げない。何故なら、コンピュータノード１１０及び付随するストレージノード１３０は常に高性能ローカル接続構造を介して相互接続されているからである。
【００７０】
そして、続くステップ６４０にて、冗長コンピュータノード１１０が、データセグメントｄ１によりクエリｑ１を実行して、要求される部分結果ａ１を得る。冗長コンピュータノード１１０によって決定された部分結果ａ１は、その後、ステップ６５０にて上述のように、全体応答Ａを作り出すように他のコンピュータノードの部分結果と結び付けられる。故に、個々のコンピュータノード１１０の不具合は、ユーザにとって、長めの応答時間の形態でのみ知覚可能である。
【００７１】
本発明による高可用性コンピュータシステム１００、並びにそれに好適な動作方法５００及び６００を、並列インメモリデータベースを参照して記述してきたが、そこに記載されたアーキテクチャはまた、特に、グリッドコンピューティング、大規模シミュレーション、データマイニングで発生するタイプの電子データ処理の多数の異なるコンピューティング問題及び／又はデータ集約型問題、並びに電子データ処理の同様の問題を解決することにも好適である。
【００７２】
記載されたアーキテクチャ及び動作方法の１つの要素は、とりわけ、単一プールの複数のコンピュータノード１１０の、各コンピュータグループ１２０が少なくとも１つの冗長コンピュータノード１１０を含んだ複数のそれぞれ冗長なコンピュータグループ１２０への分割にある。使用されるコンピュータノード１１０の総数ｎと比較して削減された数への、コンピュータグループ１２０のサイズの縮小により、例えば切換式ＰＣＩｅ接続を介した、特には小さい待ち時間及び高い帯域幅を有するダイレクトアタッチトストレージ接続又はインフィニバンド（登録商標）接続である、比較的少数の分岐（“ファンアウト”）を有するローカル接続構造の使用が可能になる。代わりに、あるいは加えて、ＲＤＭＡ規格に従った、コンピュータグループ１２０の個々のコンピュータノード１１０の間でのメインメモリへのダイレクトアクセスが可能である。
【００７３】
例えば特に半導体大容量記憶装置などの、より最近の設計の大容量記憶装置の、例えば１Ｇｂｉｔ／ｓ及びそれ以上といった極めて高い入力／出力データレートを、この種のパーティショニングによって、冗長コンピュータグループ１２０内で必要な冗長性を失うことなく、十分に活用することができる。しかしながら、パーティショニングに起因して、保持されるように要求される冗長コンピュータノード１１０の数は、使用されるコンピュータグループ１２０の数ｍに従って増加される。
【００７４】
本発明は、故に、多数のコンピュータノード１１０を備えた、特に高性能の並列実行型の高可用性コンピュータシステム１００に特に好適である。複数のコンピュータノード１１０が一緒になって、大規模データを処理するために、例えば１ＴＢ以上といった記憶容量の、非常に大きいメインメモリを有する。例えば、数十又は数百のコンピュータノード１１０を有するコンピュータシステム１００を、各グループがその中に１つ以上の冗長コンピュータノード１１０を含んだ、例えば２、４、８又は１６個のコンピュータノード１１０からなる、複数のコンピュータグループ１２０へとパーティショニングすることができる。
【００７５】
図１−６に示されて実施形態例の記述にて詳細に説明された個々のシステム及び方法の特徴は、それぞれ記載された利点を達成するために、多様に互いに組み合わされることができる。
【符号の説明】
【００７６】
１００  高可用性コンピュータシステム
１１０  コンピュータノード
１２０  コンピュータグループ
１３０  ストレージノード
１４０  データベースセグメント
１５０  データベース
１６０  クライアントコンピュータ
１７０  データネットワーク
１８０  スイッチングファブリック
１９０  ログファイル
２００  高可用性コンピュータシステム
２１０  ＨＡＮＡサーバ
２２０  フェイルオーバグループ
２３０  記憶装置
２４０  ホストアダプタ
２５０  ローカル大容量記憶装置
２６０  ネットワークインタフェース
２８０  ＳＡＳスイッチ
３００  高可用性コンピュータシステム
３１０  ＨＡＮＡサーバ
３２０  フェイルオーバグループ
３３０  記憶装置
３４０  ＰＣＩｅストレージボックス
４００  高可用性コンピュータシステム
４１０  ＨＡＮＡサーバ
４２０  フェイルオーバグループ
４４０  ＰＣＩｅストレージボックス
５００  初期化方法
５１０−５５０  方法ステップ
６００  動作方法
６１０−６５０  方法ステップ
【図１】
2015528962.tif 000003
【図２】
2015528962.tif 000004
【図３】
2015528962.tif 000005
【図４】
2015528962.tif 000006
【図５】
2015528962.tif 000007
【図６】
2015528962.tif 000008
【手続補正書】
【提出日】平成27年4月7日(2015.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列処理データベースを提供するように構成された高可用性コンピュータシステムであって、前記データベースのデータが、独立して問合せ可能な複数のデータベースセグメントへと分割され、当該システムは、
並列データ処理用の複数のコンピュータノードであり、各コンピュータノードが、少なくとも１つのデータ処理コンポーネント及びメインメモリを有する、複数のコンピュータノードと、
複数のストレージノードであり、各ストレージノードが、少なくとも１つの不揮発性大容量記憶装置を有する、複数のストレージノードと、
前記複数のコンピュータノードにアクセスするための少なくとも１つのデータネットワークと
を有し、
前記複数のコンピュータノードが、複数のコンピュータグループへとパーティショニングされ、
前記複数のコンピュータグループの各々が、少なくとも１つの冗長コンピュータノードを有し、
前記複数のストレージノードの各ストレージノードが、前記複数のコンピュータグループのうちの、まさに１つのコンピュータグループに割り当てられ、
各コンピュータグループが、該コンピュータグループに割り当てられたローカル接続構造を有し、前記構造は、該コンピュータグループに割り当てられた前記ストレージノードを、該コンピュータグループのコンピュータノードに接続し、
各データベースセグメントが、前記複数のコンピュータノードのうちの１つのコンピュータノードに割り当てられ、且つ該割り当てられたコンピュータノードの前記メインメモリに格納される、
高可用性コンピュータシステム。
【請求項２】
第１の数のコンピュータノードを有する少なくとも１つの第１のコンピュータグループに、第２の数のデータベースセグメントが割り当てられ、前記第２の数は前記第１の数より少なく、前記第２の数のデータベースセグメントに割り当てられた前記データベースのデータが、前記第１のコンピュータグループに割り当てられた前記ストレージノードのうちの少なくとも１つに永続的に格納され、
前記第１のコンピュータグループの各コンピュータノードが、前記第１のコンピュータグループに割り当てられた少なくとも１つのストレージノードに、データベース変化を永続的に格納するように構成されることで、前記第１のコンピュータグループの第１のコンピュータノードが機能しなくなった場合に、前記第１のコンピュータグループの前記少なくとも１つの冗長コンピュータノードが、当該冗長コンピュータノードにローカルに接続されたストレージノードから、前記第１のコンピュータノードに割り当てられたデータセグメントのデータ、及び／又は前記第１のコンピュータノードの前記データベース変化をロードすることによって、機能しなくなった前記第１のコンピュータノードのタスクを引き継ぐことができるようにされている、
請求項１に記載の高可用性コンピュータシステム。
【請求項３】
それぞれのコンピュータグループに割り当てられた少なくとも１つの前記ローカル接続構造は、前記複数のコンピュータノードにアクセスするための前記少なくとも１つのデータネットワークの帯域幅より高い帯域幅を有する、請求項１に記載の高可用性コンピュータシステム。
【請求項４】
少なくとも１つの第１のコンピュータグループの前記ローカル接続構造は、前記第１のコンピュータグループの前記コンピュータノードの、前記第１のコンピュータグループに割り当てられた前記ストレージノードへの、互いに並列な複数の接続経路を介した選択的な接続のための、少なくとも１つの並列スイッチングファブリックを有する、請求項１に記載の高可用性コンピュータシステム。
【請求項５】
第１のコンピュータグループの各コンピュータノードが、並列接続経路を介して、前記第１のコンピュータグループに割り当てられた前記ストレージノードの各々に接続され、前記並列接続経路の並列化度は、２より大きく、好ましくは４であり、且つ／或いは前記第１のコンピュータグループのコンピュータノード数より大きい、請求項１に記載の高可用性コンピュータシステム。
【請求項６】
少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノードは、サーバシステムの第１のモジュール内に配置され、前記第１のコンピュータグループに割り当てられた少なくとも１つの第１のストレージノードは、前記サーバシステムの第２のモジュール内に配置され、且つ特に小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）規格及び／又はＰＣＩエクスプレス（ＰＣＩｅ）規格に従った、特にシリアル接続ＳＣＳＩ（ＳＡＳ）規格及び／又はＳＣＳＩオーバーＰＣＩｅ（ＳＯＰ）規格に従った、少なくとも１つのダイレクトアタッチトストレージ（ＤＡＳ）接続を介して相互接続される、請求項１に記載の高可用性コンピュータシステム。
【請求項７】
少なくとも１つの第１のコンピュータグループの少なくとも１つの第１のコンピュータノード、及び前記第１のコンピュータグループに割り当てられた少なくとも１つの第１のストレージノードは、特にインフィニバンド（登録商標）規格に従った、少なくとも１つのシリアル高速ラインを介して相互接続される、請求項１に記載の高可用性コンピュータシステム。
【請求項８】
第１のコンピュータグループの少なくとも２つの第１のコンピュータノードが、第１のコンピュータノードがリモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルに従って直接的に第２のコンピュータノードの前記メインメモリのコンテンツにアクセスすることができるように、該コンピュータグループに割り当てられた前記ローカル接続構造を介して互いに相互接続される、請求項１に記載の高可用性コンピュータシステム。
【請求項９】
少なくとも１つの第１のストレージノードは、該ストレージノードに割り当てられたコンピュータグループの複数のコンピュータノードへの同時接続のための複数のアクセスポートを備えたコントローラであり、且つ／或いは、コンピュータグループの少なくとも１つの第１のコンピュータノードは、該コンピュータグループに割り当てられた複数のストレージノードへの同時接続のための複数のアクセスポートを備えたホストバスアダプタを有する、請求項１に記載の高可用性コンピュータシステム。
【請求項１０】
少なくとも１つの第１のストレージノードは、少なくとも１つの半導体大容量記憶装置を有する、請求項１に記載の高可用性コンピュータシステム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
データをメインメモリにロードするため、また、意味がある場合には、部分クエリのその後の処理のため、第１のコンピュータグループ１２０ａの４つのコンピュータノード１１０ａ−１１０ｄは各々スイッチングファブリック１８０ａを介して２つのストレージノード１３０ａ及び１３０ｂに直接的に接続される。同じようにして、第２のコンピュータグループ１２０ｂのコンピュータノード１１０ｅ−１１０ｈは各々スイッチングファブリック１８０ｂを介してストレージノード１３０ｃ及び１３０ｄに接続される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
帯域幅は、ここでは、“二部分間（バイセクショナル）帯域幅”、すなわち、ネットワーク化されたシステム全体のうちの２つの部分間の接続の帯域幅を意味するよう好ましく理解される。この定義の意味の範囲内で、例えばコンピュータノード１１０ａ及び１１０ｃとコンピュータノード１１０ｂ及び１１０ｄとの間といった、１つのグループ１２０内でのコンピュータシステム１００の分割の場合の二部分間帯域幅は、例えばコンピュータノード１１０ａ−１１０ｄとコンピュータノード１１０ｅ−１１０ｈとの間といった、２つのグループ１２０間でのコンピュータシステム１００の分割の場合の二部分間帯域幅より高い。第２のグループ１２０ｂのノード１１０も、原理的には、第１のグループ１２０ａの故障したコンピュータノード１１０のタスクを引き継ぎ得るが、より低い二部分間帯域幅のために、第１のグループ１２０ａのコンピュータノード１１０による引き継ぎと比較して、コンピュータシステム１００全体としての性能の実質的な損失をもたらすことになる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
図３は、第２の設計による高可用性コンピュータシステム３００の更なる具体的構成を示している。図３に従った設計においては、共通のフェイルオーバグループ３２０の各々内に２つのＨＡＮＡサーバ３１０のみが置かれている。各フェイルオーバグループ３２０が唯一のアクティブＨＡＮＡサーバ３１０と１つの冗長ＨＡＮＡサーバ３１０とを有するので、相当数ｎのアクティブノードは、対応したいっそう多い総数のコンピュータノードをもたらす。これは、故に、各々が１つのアクティブＨＡＮＡサーバ３１０を有するｎ個のフェイルオーバグループ３２０にて、２ｎ個のＨＡＮＡサーバ３１０のシステムを作り出す。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
高可用性コンピュータシステム３００は、データベース１５０のデータベースセグメント１４０を格納するための従来型ハードディスクドライブ又は特に高性能の半導体大容量記憶装置を有する記憶装置３３０を、フェイルオーバグループ３２０ごとに１つ有する。ＨＡＮＡサーバ３１０及び記憶装置３３０は好ましくは、共通ラック内に配置される。図２を参照して上述したのとは異なる手法で、個々のＨＡＮＡサーバ３１０は、ＪＢＯＤ構成のホストアダプタ３４０を介して直接的に記憶装置３３０のデータにアクセスする。逆に、データベースシステムのログファイル１９０のデータは、複数の半導体大容量記憶装置（各々、ＨＡＮＡサーバ３１０への接続用の２つのアクセスポートを有する）を各々が有する外部ＰＣＩｅストレージボックス３４０に格納される。フェイルオーバグループ３２０の２つのＨＡＮＡサーバ３１０の各々は、１つ以上のＰＣＩｅレーンすなわち差動高速ラインを介して、２つのＰＣＩｅストレージボックス３４０又はそれに収容された半導体大容量記憶装置に直接的に接続される。
【国際調査報告】
2015528962.tif 000009
2015528962.tif 000010
2015528962.tif 000011
2015528962.tif 000012
2015528962.tif 000013
2015528962.tif 000014
2015528962.tif 000015
2015528962.tif 000016