【手続補正書】
【提出日】平成24年10月15日(2012.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
構造化ストレージが１つまたは複数のテーブルによって表される、構造化ストレージシステム内の１つまたは複数のコンピュータデバイスによって実施される方法であって、各テーブルは複数の行を含み、各行は前記構造化ストレージシステムによって格納されているデータエンティティを表し、前記行を特定するための１つまたは複数のキーを含んでおり、前記複数の行は複数のパーティションの間で分割され、各パーティションは前記テーブル内の前記複数の行からのある範囲の行を含み、前記複数のパーティションは複数のテーブルサーバに格納され、テーブルマスタが前記複数のテーブルサーバへのパーティションの割り当てを制御し、前記方法はパーティションを子パーティションに分割し、
前記パーティションについての負荷情報に基づいて分割するための前記パーティションを特定することであって、前記負荷情報は、前記パーティションのうちの２又はそれ以上の部分の各々の読み込み及び書き出しの要求を特定する情報を含むことと、
前記テーブルマスタによって、前記パーティションの前記２又はそれ以上の部分の各々の前記負荷に基づいて前記パーティションを分割するための分割比を決定することと、
前記分割比に対応する前記パーティション内の実際の位置を示しているキー情報についてテーブルサーバにクエリを行うことと、
前記テーブルサーバから前記テーブルマスタにおいてキー情報を受信することであって、前記キー情報は、前記分割比に対応する前記パーティション内の前記実際の位置を示すことと、
前記テーブルマスタから前記テーブルサーバに分割要求を送信することであって、前記分割要求は、前記キー情報に基づいて前記パーティションを分割するよう指示することと、
前記キー情報に対応する位置で前記パーティションを分割して前記子パーティションを作成することと、
前記テーブルマスタに分割の完了を通知することと、
前記子パーティションに分割されている前記パーティションに基づいてパーティションマップを更新することであって、前記パーティションマップは、前記複数のパーティションと前記複数のパーティションにサービスを提供している前記複数のテーブルサーバとの間のマッピングを格納することと、
を含むことを特徴とする方法。
【請求項２】
前記テーブルマスタにおいて、前記子パーティションのうちの少なくとも１つについてのストリームを構築することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記パーティションを分割することは、
前記テーブルサーバから前記パーティションにサービスを提供するのを止めることと、
前記パーティションから前記子パーティションを構築することと、
前記テーブルサーバから前記子パーティションをロードしてサービスを提供することを含み、
前記パーティションにサービスを提供するのを止めることは、前記パーティションのチェックポイントを作成してパーティションの再ロードの間にリプレイされるべきログの量を減らすことであって、前記パーティションの前記チェックポイントを作成することは、
アトミックに、新しいログストリームを作成し、前記チェックポイントの後に古いログストリームから新しいログストリームへエクステントをハードリンクし、前記古いログストリームを削除し、前記新しいログストリームの名前を前記古いログストリームの名前に変えることにより、チェックポイントの間にログストリームを効率的に打ち切ること、を含むこと、
を特徴とする請求項１に記載の方法。
【請求項４】
前記パーティションから前記子パーティションを構築することは、費用のかかるデータコピーを行うことなしに、前記パーティションのストリームから、エクステントをアトミ
ックにハードリンクすることによって、前記子パーティションのストリームを効率的に構
築することを含むことを特徴とする請求項３に記載の方法。
【請求項５】
第２のテーブルサーバに前記子パーティションのうちの少なくとも１つを割り当てることと、パーティションマップを更新して前記子パーティションのうちの少なくとも１つが前記第２のテーブルサーバに位置することを示すことと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
マージすることによって前記負荷情報に基づく前記パーティションのうちの２つ以上の部分の境界を調整すること、または負荷監視目的のために前記パーティションのうちの２つ以上の部分のうちの少なくとも１つのサブセットを分割すること、をさらに含むことを特徴とする請求項１記載の方法。
【請求項７】
１つまたは複数のテーブルにより表された構造化ストレージシステムを管理する方法を実行するためのコンピュータ使用可能命令を格納する１つまたは複数のコンピュータ記憶媒体であって、各テーブルは複数の行を含み、各行は前記構造化ストレージシステムによって格納されるデータエンティティを表し、前記行を特定するための１つまたは複数のキーを含んでおり、前記複数の行は複数のパーティションの間で分けられ、各パーティションは前記テーブル内の前記複数の行からの所定の範囲の行を含み、前記複数のパーティションは複数のテーブルサーバに格納され、テーブルマスタは前記複数のテーブルサーバへのパーティション割り当てを制御し、前記方法は、前記テーブルのうちの少なくとも２つのパーティションをマージされたパーティションへとマージする方法であって、
前記複数のテーブルサーバの前記複数のパーティションについての負荷情報を追跡することであって、前記負荷情報は前記テーブルサーバにおける前記パーティションのそれぞれに対する読み込み及び書き出しの要求を示すことと、
前記テーブルマスタによって、前記負荷情報に基づいてマージするための前記少なくとも２つのパーティションを特定することと、
前記テーブルマスタによって、前記マージされたパーティションについてのメタデータストリームを作成するステップと、
前記少なくとも２つのパーティションにサービスを提供している少なくとも１つのテーブルサーバから前記少なくとも２つのパーティションをアンロードすることと、
前記テーブルマスタによって、前記マージされたパーティションを前記複数のテーブルサーバから選択されたテーブルサーバに割り当てることと、
前記選択されたテーブルサーバにおいて前記マージされたパーティションをロードしてサービスを提供することと、
を含むことを特徴とする１つまたは複数のコンピュータ記憶媒体。
【請求項８】
前記少なくとも２つのパーティションは、同じテーブルサーバに格納されることを特徴とする請求項７に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項９】
前記選択されたテーブルサーバは、前記少なくとも２つのパーティションのうちの少なくとも１つが、前記マージされたパーティションへとマージされる前に存在していたテーブルサーバを備えることを特徴とする請求項７に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項１０】
前記マージされたパーティションにマージされている少なくとも２つのパーティションに基づいてパーティションマップを更新することであって、前記パーティションマップは、前記複数のパーティションと前記複数のパーティションにサービスを提供している前記複数のテーブルサーバとの間のマッピングを格納すること、をさらに含むことを特徴とする請求項７に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項１１】
前記テーブルマスタから前記少なくとも２つのパーティションにサービスを提供している前記少なくとも１つのテーブルサーバにマージを準備せよというメッセージを送信するステップであって、前記マージを準備せよというメッセージは、前記マージされたパーティションについてのロード時間を減らすために、マージする前に、前記少なくとも１つのテーブルサーバに、前記少なくとも２つのパーティションを圧縮させることをさらに含むことを特徴とする請求項７に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項１２】
１つまたは複数のテーブルにより表された構造化ストレージシステムを管理する方法を実行するためのコンピュータ使用可能命令を格納する１つまたは複数のコンピュータ記憶媒体であって、各テーブルは複数の行を含み、各行は前記構造化ストレージシステムによって格納されるデータエンティティを表し、前記行を特定するための１つまたは複数のキーを含んでおり、前記複数の行は複数のパーティションの間で分割され、各パーティションは前記テーブル内の前記複数の行からの行の連続的な範囲を含んでいて、前記複数のパーティションは複数のテーブルサーバに格納され、テーブルマスタが前記複数のテーブルサーバへのパーティションの割り当てを制御し、前記方法は、前記テーブルのパーティションを少なくとも２つの子パーティションに分割し、
前記複数のテーブルサーバの前記複数のパーティションについての負荷情報を追跡することであって、前記負荷情報は、パーティションの読み込み及び書き出しの要求を含むことと、
前記テーブルマスタによって、前記負荷情報に基づいて前記パーティションを分割するために特定することであって、前記パーティションについての前記負荷情報は、前記パーティションの異なる部分の異なる負荷を特定することと、
前記テーブルマスタにおいて、前記パーティションを分割するための分割比を決定することであって、前記分割比は負荷情報に基づいて特定され、前記パーティション内のポイントを表し、前記パーティションにおいて、前記パーティションの前記第１の部分は第１の負荷の量を含み、前記パーティションの第２の部分は第２の負荷の量を含むことと、
前記テーブルマスタから前記テーブルサーバに、前記分割比に対応して、前記パーティション内の実際の位置を特定するキー情報の要求を送信することと、
前記テーブルサーバによって、前記分割比に対応する前記パーティションの前記実際の場所を特定している前記キー情報を決定することと、
前記テーブルサーバから前記テーブルマスタへ前記キー情報を伝えることと、
前記テーブルマスタにおいて、前記子パーティションの各々についてのメタデータスト
リームを構築することと、
前記テーブルマスタから前記テーブルサーバに分割要求を送信することと、
前記テーブルサーバにおいて、前記パーティションから前記子パーティションを構築することと、
前記テーブルサーバにおいて、前記パーティションにサービスを提供するのを止めることと、
前記テーブルサーバにおいて、前記子パーティションをロードしてサービスを提供することと、
前記テーブルサーバから前記テーブルマスタへ分割の完了通知を送信することと、
前記子パーティションに分割されている前記パーティションに基づいてパーティションマップを更新することであって、前記パーティションマップは、前記複数のパーティションと前記複数のパーティションにサービスを提供する前記複数のテーブルサーバとの間のマッピングを格納することと、
を含むことを特徴とする１つまたは複数のコンピュータ記憶媒体。
【請求項１３】
前記子パーティションのうちの少なくとも１つを第２のテーブルサーバに割り当てることと、前記パーティションマップを更新して前記子パーティションのうちの少なくとも１つが前記第２のテーブルサーバに位置することを示すことと、をさらに含むことを特徴とする請求項１２に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項１４】
前記パーティションにサービスを提供するのを止めることは、前記パーティションのチェックポイントを作成してパーティションの再ロードの間にリプレイされるべきログの前記量を減らすことを備え、前記パーティションの前記チェックポイントを作成することは、アトミックに、新しいログストリームを作成し、前記チェックポイントの後に古いログストリームから前記新しいログストリームへエクステントをハードリンクし、前記古いログストリームを削除し、前記新しいログストリームの名前を前記古いログストリームの名前に変えることにより、チェックポイントの間にログストリームを効果的に打ち切ることを含むことを特徴とする請求項１２に記載の１つまたは複数のコンピュータ記憶媒体。
【請求項１５】
前記パーティションから前記子パーティションを構築することは、費用のかかるデータコピーを行うことなしに、前記パーティションのストリームからエクステントをアトミックにハードリンクすることによって、前記子パーティションのストリームを効率的に構築することを含むことを特徴とする請求項に１２記載の１つまたは複数のコンピュータ記憶媒体。