【手続補正書】
【提出日】平成24年8月30日(2012.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データの少なくとも１つのパーティションのレプリカを格納するように各ノードが構成された複数のノードを有する分散データベースシステムを扱う方法であって、
格納されるデータをｐ個のパーティションに分割するステップ（Ｓ−００５）と、
各パーティションをｒ個のレプリカに複製するステップ（Ｓ−０１０）と、
各パーティションについて、前記ｒ個のレプリカを前記複数のノードの中から選択された対応するｒ個のノードに分配するステップ（Ｓ−０１５、Ｓ−０２０）と、
相互にアドレスを指定するために使用可能である他のノードの識別子のリストを各ノードに設定するステップ（Ｓ−０１７、Ｓ−０２０）と、
前記複数のノードの中から２つ以上のノードを起動するステップ（Ｓ−０３０、Ｓ−０３５、Ｓ−０６０、Ｓ−０７０）と、
各アクティブノードにおいて、各レプリカの最新の更新と、レプリカ状態と、各レプリカを担当するローカルリソースの状態と、各レプリカの接続状態とのうちから選択された少なくとも１つのイベントを監視するステップ（Ｓ−０５０、Ｓ−０５５、Ｓ−０９０、Ｓ−０９５）と、
前記複数のノードの中のノードの起動又は停止の際に、前記アクティブノードの中のどのノードが各パーティションについての現在のマスタノード（２１０５）であり、当該パーティションについての現在のマスタレプリカを担当するとみなされるかを決定するステップ（Ｓ−１０５、Ｓ−１１５）と、
前記分散データベースシステム内のデータの読み出し／書き込みを行うことの、ノードにおいて受信された（Ｓ−１５０；Ｓ−１６０）任意のリクエストについて、当該データが属するパーティション（１１、１２）と当該パーティションについての現在のマスタレプリカを担当する現在のマスタノード（２１０５）とを決定し、当該リクエストを当該現在のマスタノードへルーティングする（Ｓ−１５１、Ｓ−１５２、Ｓ−１５３；Ｓ−１６１）ステップと
を有することを特徴とする方法。
【請求項２】
前記アクティブノードの中のどのノードが各パーティションについての前記マスタノードであり、当該パーティションについての現在のマスタレプリカを担当するとみなされるかを決定する前記ステップは、前記アクティブノードの中から選択された少なくとも１つのノードにおいて、
各レプリカの最新の更新と、レプリカ状態と、各レプリカを担当するローカルリソースの状態と、各レプリカの接続状態とのうちから選択された前記少なくとも１つのイベントに関する情報を各アクティブノードから収集するステップと、
各レプリカについての前記収集されたイベントに依存して、前記アクティブノード内の各レプリカの優先順位を決めるための事前に設定されたルールを適用するステップと、
各パーティションについて最高のレプリカ優先度を有する特定のノード内のレプリカを選択するステップであって、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノードであるとみなされるステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
各パーティションについて、前記ｒ個のレプリカを対応するｒ個のノードに分配する前記ステップは、他の基準が同一のレプリカ優先度を生み出す場合に適用されるデフォルトレプリカ優先度を各レプリカに設定するステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記アクティブノードの中のどのノードが各パーティションについてのマスタノードであり、当該パーティションについての現在のマスタレプリカを担当するとみなされるかを決定する前記ステップは、前記アクティブノードの中から選択された少なくとも１つのノードにおいて、
パーティションについての所与のデフォルトレプリカ優先度が設定されていることに関する情報を少なくとも１つのアクティブノードから収集するステップと、
各パーティションについて最高のデフォルトレプリカ優先度を有する特定のノード内のレプリカを選択するステップであって、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノードであるとみなされるステップと
を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記複数のノードの中のノードの起動又は停止の際に、前記アクティブノードが起動された順序を決定するステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項６】
最初に起動されたアクティブノードは、
各レプリカの最新の更新と、レプリカ状態と、各レプリカを担当するローカルリソースの状態と、各レプリカの接続状態とのうちから選択された前記少なくとも１つのイベントに関する情報を各アクティブノードから収集するステップと、
各レプリカについての前記収集されたイベントに依存して、前記アクティブノード内の各レプリカの優先順位を決めるための事前に設定されたルールを適用するステップと、
各パーティションについて最高のレプリカ優先度を有する特定のノード内のレプリカを選択するステップであって、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノードであるとみなされるステップと、
各パーティションについて選択された前記マスタレプリカと当該マスタレプリカを保持する前記マスタノードとに関して他のアクティブノードへ通知するステップと
の実行を担当するシステムマスタモニタであるとみなされることを特徴とする請求項５に記載の方法。
【請求項７】
最初に起動されたアクティブノードは、
パーティションについての所与のデフォルトレプリカ優先度が設定されていることに関する情報を少なくとも１つのアクティブノードから収集するステップと、
各パーティションについて最高のデフォルトレプリカ優先度を有する特定のノード内のレプリカを選択するステップであって、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノードであるとみなされるステップと、
各パーティションについて選択された前記マスタレプリカと当該マスタレプリカを保持する前記マスタノードとに関して他のアクティブノードへ通知するステップと
の実行を担当するシステムマスタモニタであるとみなされることを特徴とする請求項５に記載の方法。
【請求項８】
各パーティションについて各アクティブノードにおいて前記現在のマスタレプリカの内容を、当該パーティションについての前記現在のマスタレプリカ（１１２、１２１、１３２、１４２）を担当する前記現在のマスタノード（１０５）からコピーするステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項９】
各アクティブノードにおいてコピーされた各レプリカについて、行われた前記最新の更新と、レプリカ状態と、前記レプリカを担当するローカルリソースの状態と、前記レプリカの接続状態とのうちの少なくとも１つを作成するステップをさらに有することを特徴とする請求項８に記載の方法。
【請求項１０】
データの少なくとも１つのパーティションのレプリカを格納するように各ノード（２）が構成された複数のノード（１、２、３、４）を有する分散データベースシステムであって、各ノードは、
格納されるデータの少なくとも１つのデータパーティション（１１２、１２３、１４３）のレプリカ（２１０１）を格納するとともに、相互にアドレスを指定するために使用可能である他のノードの識別子（１５２）を格納するためのデータ記憶装置（１５）と、
前記分散データベースシステムの他のノード（１、３、４）と通信するとともに、前記分散データベースシステムにおける読み出し／書き込み動作を要求するクライアント（５）と通信するための入出力部（３０）と、
各レプリカの最新の更新（２１０３）と、レプリカ状態（２１２、２２３、２４３）と、各レプリカを担当するローカルリソースの状態と、各レプリカ（１１２、１２３、１４３）の接続状態（３１２、３２３、３４３）とのうちから選択された少なくとも１つのイベントを監視するための監視部（６０）と、
前記データ記憶装置、前記監視部及び前記入出力部と連携して、前記分散データベースシステム内のアクティブノードの中のどのノードが各パーティションについての現在のマスタノードであり、当該パーティションについての現在のマスタレプリカを担当するとみなされるかを決定し、前記分散データベースシステム内のデータの読み出し／書き込みを行うことの、受信された任意のリクエストについて、当該データが属するパーティションと当該パーティションについての現在のマスタレプリカを担当する現在のマスタノードとを決定し、当該リクエストを当該現在のマスタノードへルーティングするための制御部（２０）と
を含むことを特徴とする分散データベースシステム。
【請求項１１】
各ノードの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、
各レプリカの最新の更新（１１０３、２１０３、３１０３、４１０３）と、レプリカ状態（２１２、２２３、２４３）と、各レプリカを担当するローカルリソースの状態と、各レプリカの接続状態（３１２、３２３、３４３）とのうちから選択された少なくとも１つのイベントに関する情報を前記分散データベースシステムの各アクティブノードから収集し、
各レプリカについての前記収集されたイベントに依存して、前記アクティブノード内の各レプリカの優先順位を決めるための事前に設定されたルールを適用し、
各パーティションについて最高のレプリカ優先度を有する特定のノード内のレプリカを選択し、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノード（２１０５、４１０５）であるとみなされる
ように構成されることを特徴とする請求項１０に記載の分散データベースシステム。
【請求項１２】
各ノードの前記データ記憶装置（１５）は、他の基準が同一のレプリカ優先度を生み出す場合に適用されるデフォルトレプリカ優先度を示すようにレプリカごとに設定されたインジケータ（２１０２）を格納するように構成されることを特徴とする請求項１１に記載の分散データベースシステム。
【請求項１３】
各ノードの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、
パーティションについての所与のデフォルトレプリカ優先度が設定されていることに関する情報を少なくとも１つのアクティブノードから収集し、
各パーティションについて最高のデフォルトレプリカ優先度を有する特定のノード内のレプリカを選択し、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノードであるとみなされる
ようにさらに構成されることを特徴とする請求項１２に記載の分散データベースシステム。
【請求項１４】
各ノードの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、前記分散データベースシステムの各アクティブノードから、前記アクティブノードが起動された順序を決定するための情報（１１０４、２１０４、３１０４、４１０４）を収集するように構成されることを特徴とする請求項１０に記載の分散データベースシステム。
【請求項１５】
最初に起動されたアクティブノードはシステムマスタモニタであるとみなされ、前記システムマスタモニタの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、
各レプリカの最新の更新と、レプリカ状態と、各レプリカを担当するローカルリソースの状態と、各レプリカの接続状態とのうちから選択された少なくとも１つのイベントに関する情報を各アクティブノードから収集し、
各レプリカについての前記収集されたイベントに依存して、前記アクティブノード内の各レプリカの優先順位を決めるための事前に設定されたルールを適用し、
各パーティションについて最高のレプリカ優先度を有する特定のノード内のレプリカを選択し、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノード（２１０５、４１０５）であるとみなされ、
各パーティションについて選択されたマスタレプリカと当該マスタレプリカを保持するマスタノードとに関して他のアクティブノードへ通知する
ように構成されることを特徴とする請求項１４に記載の分散データベースシステム。
【請求項１６】
最初に起動されたアクティブノードはシステムマスタモニタであるとみなされ、前記システムマスタモニタの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、
パーティションについての所与のデフォルトレプリカ優先度が設定されていることに関する情報を少なくとも１つのアクティブノードから収集し、
各パーティションについて最高のデフォルトレプリカ優先度を有する特定のノード内のレプリカを選択し、このレプリカが前記マスタレプリカであるとみなされ、この特定のノードが前記パーティションについての前記マスタノード（２１０５、４１０５）であるとみなされ、
各パーティションについて選択された前記マスタレプリカと当該マスタレプリカを保持する前記マスタノードとに関して他のアクティブノードへ通知する
ようにさらに構成されることを特徴とする請求項１４に記載の分散データベースシステム。
【請求項１７】
各ノードの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、各パーティションについて各アクティブノードにおいて前記現在のマスタレプリカの内容を、当該パーティションについての前記現在のマスタレプリカ（１１２、１２１、１３２、１４２）を担当する前記現在のマスタノード（２１０５、４１０５）からコピーするようにさらに構成されることを特徴とする請求項１０に記載の分散データベースシステム。
【請求項１８】
各ノードの前記処理部（２０）、前記監視部（６０）、前記データ記憶装置（１５）及び前記入力部（３０）は、各アクティブノードにおいてコピーされた各レプリカについて、行われた前記最新の更新と、レプリカ状態と、各レプリカを担当するローカルリソースの状態と、前記レプリカの接続状態とを作成するようにさらに構成されることを特徴とする請求項１７に記載の分散データベースシステム。
【請求項１９】
入出力部と処理部とを有するコンピュータの内部メモリにロード可能なコンピュータプログラムであって、前記コンピュータで動作する場合に請求項１乃至９の何れか１項に記載の方法を実行するように構成された実行可能なコードを含むことを特徴とするコンピュータプログラム。
【請求項２０】
コンピュータにおいて読み出し可能であり、請求項１９に記載のコンピュータプログラムを含む記録媒体。