(57)【特許請求の範囲】
【請求項１】
負荷に基づく動的統合を促進するコンピュータ実施方法であって、
インクリメントデータの量が閾値に達するまで、第１の計算装置のメモリ装置内に前記インクリメントデータを記憶することであって、前記インクリメントデータは、第２の計算装置内の記憶装置内の参照データに関連する更新データを含む、記憶することと、
前記インクリメントデータの前記量が前記閾値よりも大きいか否かを判断することと、
前記インクリメントデータの前記量が前記閾値よりも大きいことに応答して、前記インクリメントデータの統合のために、複数のサーバ群から第１のサーバ群を選択することであって、前記第２の計算装置は前記第１のサーバ群に属する、選択することと、
前記参照データのためのデータアクセス要求を前記第１のサーバ群から前記複数のサーバ群内の第２のサーバ群に移行することと、
前記第１の計算装置の前記メモリ装置からの前記インクリメントデータを前記第２の計算装置内の前記記憶装置に統合することと
を含む、方法。
【請求項２】
前記参照データは複数のタブレットに分割され、タブレットは、前記参照データの非重複セグメントである、請求項１に記載の方法。
【請求項３】
前記複数のサーバ群の各サーバ群は、前記参照データの各タブレットのコピーを含む、請求項２に記載の方法。
【請求項４】
前記複数のサーバ群から前記第１のサーバ群を選択することは、一連のサーバ群から前記第１のサーバ群を識別することを含む、請求項１に記載の方法。
【請求項５】
前記インクリメントデータの前記統合が、各サーバ群で実行されたか否かを判断することと、
前記インクリメントデータの前記統合がまだ実行されていないサーバ群を選択することと
を更に含む、請求項４に記載の方法。
【請求項６】
前記複数のサーバ群の各サーバ群のデータアクセス要求トラフィック率を含むトラフィック制御テーブルを保持することと、
前記第１のサーバ群の前記トラフィック率が、前記トラフィック制御テーブル内の閾値に達したか否かを判断することと、
前記判断に応答して、前記第１のサーバ群が統合可能であると判断することと
を更に含む、請求項１に記載の方法。
【請求項７】
前記統合が前記第１のサーバ群で完了したか否かを判断することと、
前記判断に応答して、データアクセス要求を前記第２のサーバ群から前記第１のサーバ群に復帰させることと
を更に含む、請求項１に記載の方法。
【請求項８】
前記第１のサーバ群が、前記インクリメントデータの前記統合中、データアクセス要求に対応する必要があるか否かを判断することと、
前記第１のサーバ群内の計算装置によるリソース消費が条件を満たすか否かを判断することと
を更に含む、請求項１に記載の方法。
【請求項９】
前記第１のサーバ群が対応した前記データアクセス要求に関連付けられた性能レベルを判断することと、
前記性能レベルが閾値を下回ることに応答して、前記インクリメントデータの前記統合を一時停止することと
を更に含む、請求項８に記載の方法。
【請求項１０】
前記データアクセス要求に対応するために、前記インクリメントデータの前記統合により占められたリソースを解放することを更に含む、請求項９に記載の方法。
【請求項１１】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサにより実行されると、前記プロセッサに、負荷に基づく動的統合を促進する方法を実行させ、前記方法は、
インクリメントデータの量が閾値に達するまで、第１の計算装置のメモリ装置内に前記インクリメントデータを記憶することであって、前記インクリメントデータは、第２の計算装置内の記憶装置内の参照データに関連する更新データを含む、記憶することと、
前記インクリメントデータの前記量が前記閾値よりも大きいか否かを判断することと、
前記インクリメントデータの前記量が前記閾値よりも大きいことに応答して、前記インクリメントデータの統合のために、複数のサーバ群から第１のサーバ群を選択することであって、前記第２の計算装置は前記第１のサーバ群に属する、選択することと、
前記参照データのためのデータアクセス要求を前記第１のサーバ群から前記複数のサーバ群内の第２のサーバ群に移行することと、
前記第１の計算装置の前記メモリ装置からの前記インクリメントデータを前記第２の計算装置内の前記記憶装置に統合することと
を含む、非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記参照データは複数のタブレットに分割され、タブレットは、前記参照データの非重複セグメントである、請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記複数のサーバ群の各サーバ群は、前記参照データの各タブレットのコピーを含む、請求項１２に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記複数のサーバ群から前記第１のサーバ群を選択することは、一連のサーバ群から前記第１のサーバ群を識別することを含む、請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記方法は、
前記インクリメントデータの前記統合が、各サーバ群で実行されたか否かを判断することと、
前記インクリメントデータの前記統合がまだ実行されていないサーバ群を選択することと
を更に含む、請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記方法は、
前記複数のサーバ群の各サーバ群のデータアクセス要求トラフィック率を含むトラフィック制御テーブルを保持することと、
前記第１のサーバ群の前記トラフィック率が、前記トラフィック制御テーブル内の閾値に達したか否かを判断することと、
前記判断に応答して、前記第１のサーバ群が統合可能であると判断することと
を更に含む、請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記方法は、
前記統合が前記第１のサーバ群で完了したか否かを判断することと、
前記判断に応答して、データアクセス要求を前記第２のサーバ群から前記第１のサーバ群に復帰させることと
を更に含む、請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記方法は、
前記第１のサーバ群が、前記インクリメントデータの前記統合中、データアクセス要求に対応する必要があるか否かを判断することと、
前記第１のサーバ群内の計算装置によるリソース消費が条件を満たすか否かを判断することと
を更に含む、請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記方法は、
前記第１のサーバ群が対応した前記データアクセス要求に関連付けられた性能レベルを判断することと、
前記性能レベルが閾値を下回ることに応答して、前記インクリメントデータの前記統合を一時停止することと
を更に含む、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記方法は、前記データアクセス要求に対応するために、前記インクリメントデータの前記統合により占められたリソースを解放することを更に含む、請求項１９に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
負荷に基づく動的統合を促進する計算システムであって、
プロセッサと、
前記プロセッサに結合され、命令を記憶するメモリ装置と、を含み、
前記命令は、前記プロセッサにより実行されると、前記プロセッサに方法を実行させ、前記方法は、
インクリメントデータの量が閾値に達するまで、第１の計算装置のメモリ装置内に前記インクリメントデータを記憶することであって、前記インクリメントデータは、第２の計算装置内の記憶装置内の参照データに関連する更新データを含む、記憶することと、
前記インクリメントデータの前記量が前記閾値よりも大きいか否かを判断することと、
前記インクリメントデータの前記量が前記閾値よりも大きいことに応答して、前記インクリメントデータの統合のために、複数のサーバ群から第１のサーバ群を選択することであって、前記第２の計算装置は前記第１のサーバ群に属する、選択することと、
前記参照データのためのデータアクセス要求を前記第１のサーバ群から前記複数のサーバ群内の第２のサーバ群に移行することと、
前記第１の計算装置の前記メモリ装置からの前記インクリメントデータを前記第２の計算装置内の前記記憶装置に統合することと
を含む、計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
米国特許法第１１９条の下で、本願は、２０１４年８月２７日に出願された中国特許出願第２０１４１０４２９６１６．０号の利益及び優先権を主張するものである。
【０００２】
分野
本願は、コンピュータ技術の分野に関し、特に、データ管理の方法及びシステムに関する。
【背景技術】
【０００３】
関連技術
コンピュータ及びネットワーク技術の進歩に伴い、異なるアプリケーションからのユーザにより実行される様々な動作が、大きな記憶割り振りに繋がる。例えば、複数のユーザは、異なるプラットフォームで実行中のモバイルアプリケーション及び異なるオペレーティングシステム内の異なるブラウザで実行中のウェブインタフェース等の異なるアプリケーションを介して電子商取引ウェブサイト上で同時に買い物し得る。対応するショッピング記録は、電子商取引サービスを促進するシステムの記憶装置（例えば、データベース内）に記憶される。
【０００４】
しかし、異なるアプリケーションがシステムに同時にアクセスすると、ユーザ活動数が増大することになり得、その結果、システムに記憶されているユーザ記録量が増大する。多数のこれらの記録には、記録が更新中にユーザによりアクセスされることがある。したがって、システムに記憶されたデータは、ユーザのアクセス及び更新の頻度に基づいて常時管理する必要がある。記憶データのこの管理は、ユーザのデータアクセスへの影響が低減されるように、書き込み動作をデータ記憶装置に割り振ることを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
システムにおいてデータを管理する幾つかの方法が利用可能であるが、同時アプリケーションでの効率的な記憶管理には幾つかの問題がなお存在する。
【課題を解決するための手段】
【０００６】
概要
本発明の一実施形態は、負荷に基づく動的統合を促進するシステムを提供する。動作中、システムは、第１の計算装置のメモリ内のインクリメントデータを識別する。インクリメントデータは、第２の計算装置内の記憶装置内の参照データへの更新を含む。インクリメントデータのサイズが閾値よりも大きい場合、システムは、複数のサーバ群から第１のサーバ群を選択する。第２の計算装置は、この第１のサーバ群に属する。次に、システムは、データアクセス要求を第１のサーバ群から複数のサーバ群内の他のサーバ群に移行し、第１の計算装置のメモリ内のインクリメントデータを第２の計算装置内の記憶装置と統合させる。統合することは、第２の計算装置の記憶装置へのバッチシーケンシャルディスク書き込みを含む。
【０００７】
この実施形態の変形では、参照データは複数のタブレットに分割され、タブレットは、参照データの非重複セグメントである。
【０００８】
更なる変形では、複数のサーバ群の各サーバ群は、参照データの各タブレットのコピーを含む。
【０００９】
この実施形態の変形では、複数のサーバ群から第１のサーバ群を選択することは、一連のサーバ群から第１のサーバ群を識別することを含む。
【００１０】
更なる変形では、システムは、インクリメントデータの統合が、各サーバ群で実行されたか否かを判断し、インクリメントデータの統合がまだ実行されていないサーバ群を選択する。
【００１１】
この実施形態の変形では、システムは、複数のサーバ群の各サーバ群のデータアクセス要求トラフィック率を含むトラフィック制御テーブルを保持し、第１のサーバ群のトラフィック率が、トラフィック制御テーブル内の閾値に達したか否かを判断する。達したと判断される場合、システムは、第１のサーバ群が統合可能であると判断する。
【００１２】
この実施形態の変形では、システムは、統合が第１のサーバ群で完了したか否かを判断する。完了したと判断される場合、システムは、データアクセス要求を他のサーバ群から第１のサーバ群に復帰させる。
【００１３】
この実施形態の変形では、システムは、第１のサーバ群が、インクリメントデータの統合中、データアクセス要求に対応する必要があるか否かを判断し、第１のサーバ群内の計算装置によるリソース消費が条件を満たすか否かを判断する。
【００１４】
更なる変形では、システムは、第１のサーバ群が対応したデータアクセス要求に関連付けられた性能レベルを判断する。性能レベルが閾値を下回る場合、システムはインクリメントデータの統合を一時停止する。
【００１５】
更なる変形では、システムは、データアクセス要求に対応するために、インクリメントデータの統合により占められたリソースを解放する。
【００１６】
図面の簡単な説明
本明細書に組み込まれ、本明細書の一部をなす添付図面は、本願の幾つかの例示的な実施形態を示し、説明と共に、本願への限定として解釈されず、本願を例示する役割を果たす。
【図面の簡単な説明】
【００１７】
【図１Ａ】本願の実施形態による、インクリメントデータ及び参照データに基づく例示的なデータ管理を示す。
【図１Ｂ】本願の実施形態による、更新及び記憶サーバに基づく例示的なデータ管理システムを示す。
【図２】本願の実施形態による、参照データの例示的なタブレットを示す。
【図３Ａ】本願の実施形態による、統合プロセスを開始するデータ管理システムを示すフローチャートを提示する。
【図３Ｂ】本願の実施形態による、データ管理システムのオフピーク統合プロセスを示すフローチャートを提示する。
【図３Ｃ】本願の実施形態による、データ管理システムの動的制御される統合プロセスを示すフローチャートを提示する。
【図４】本願の実施形態による、例示的なデータ管理システムの概略構造図である。
【発明を実施するための形態】
【００１８】
図中、同様の参照符号は同じ図要素を指す。
【００１９】
詳細な説明
本発明の実施形態は、データ更新を、アクセス中の記憶サーバから逸らすことにより、データアクセスを効率的に管理するという問題を解決する。データアクセスがそれらの記憶サーバに対して不可避である場合、記憶サーバでのリソースが空いているとき、記憶サーバからのデータは更新される。
【００２０】
既存の技術では、データは通常、ログ構造統合ツリー（ＬＳＭツリー）に記憶される。ＬＳＭツリーでは、データは一般に、システムのメモリ及び記憶ディスクで複数のレベルに分割される。データが更新される（例えば、ユーザ動作に起因して）場合、そのデータは、システムのメモリに書き込まれる。しかし、メモリ内のデータは揮発性である。したがって、システムは、統合プロセスを介して、メモリの更新データをディスクファイルに書き込む。この統合プロセスは通常、データアクセス（すなわち、データ読み取り）と並列して実行される。統合プロセスはバッチシーケンシャルディスク書き込みである。しかし、そのような統合プロセスは通常、大量の入／出力（Ｉ／Ｏ）リソースを消費し、記憶システムの通常動作（例えば、オンラインサービス）のスループット及び応答時間に直接影響する。オンラインサービスとは、システムが動作可能な状態に保つサービスである。例えば、ユーザの購入記録の可用性及びアクセス可能性である。
【００２１】
この問題を解決するために、本発明の実施形態は、データアクセスと更新動作とを分離し、データアクセストラフィックを現在更新中の記憶サーバから自動的に逸らすことにより、負荷に基づく動的統合プロセスのシステムを提供する。システムは、データ更新（例えば、書き込み動作）及びデータアクセス（例えば、読み取り動作）のそれぞれで、データを２つのデータセット：参照データ及びインクリメントデータに分割する。インクリメントデータは、更新サーバのメモリに存在し、更新動作はインクリメントデータに対して実行される。他方、参照データは記憶サーバのディスクに記憶される。参照データは通常、複数の記憶サーバに複数のコピーを有して、高可用性を促進する。更新サーバのメモリに書き込まされたデータ量が閾値に達すると、統合プロセスがトリガーされる。メモリ内のインクリメントデータは、対応する記憶サーバのディスク上の参照データと統合される。
【００２２】
さらに、統合プロセスからのデータアクセスの分離を保証するために、システムは、それぞれが参照データ全体を保持する、記憶サーバの少なくとも２つのサーバ群を保持する。統合プロセスが第１の群に対して実行される場合、データアクセス要求は第２のグループにより対応される。第１の群の統合プロセスが完了すると、データアクセス要求は第１の群に逸らされ、統合プロセスが第２の群に対して実行される。その結果、統合プロセス中、記憶サーバからのデータアクセスの性能は妨げられない。幾つかの状況では、多量のデータアクセストラフィック又は時間切れイベントに起因して、幾つかのデータアクセス要求は、現在統合中の群により対応することができる。そのような状況下では、統合プロセスの影響を低減するために、システムは、記憶サーバの負荷をモニタリングし、負荷が低い場合のみ、統合プロセスを継続できるようにする。その他の場合、システムは過負荷回避モードを開始し、統合プロセスを一時停止して、統合プロセスに割り振られたリソース（例えば、ネットワーク、処理、及びＩ／Ｏリソース）を復元する。
【００２３】
図１Ａは、本願の実施形態による、インクリメントデータ及び参照データに基づく例示的なデータ管理を示す。この例では、負荷に基づく動的データ統合のデータ管理システム１００が開発されて、データアクセスと更新動作との分離を促進する。データがインクリメントデータ１２２を含み、インクリメントデータ１２２は更新サーバ１０２のメモリ１１２に存在する、と想定する。幾つかの実施形態では、インクリメントデータ１２２はＢツリーに編成することができる。他方、参照データ１２４は、記憶サーバ１０４及び１０６のそれぞれのディスク１１４及び１１６に存在する。参照データは、ディスクに記憶される永続データであり、インクリメントデータは、参照データへの更新（例えば、変更、追加、削除等）である。記憶サーバ１０４及び１０６は、参照データ１２４の重複しない参照データブロック１２６及び１２８をそれぞれホストすることができる。データブロック１２６及び１２８は共に、参照データ１２４を全体的に表す。
【００２４】
システム１００は、メモリ１１２上の参照データ１２４への更新（例えば、書き込み動作）を実行して、インクリメントデータ１２２を生成する。その結果、更新プロセス中、書き込み動作は記憶サーバ１０４及び１０６に直接適用されない。したがって、記憶サーバ１０４及び１０６は、データ更新に関連付けられた書き込み動作の影響を低減しながら、クライアント装置へのデータアクセスを促進することができる。更新サーバ１０２のメモリ１１２に書き込まれたデータ量が閾値に達すると、システム１００は統合プロセスをトリガーする。統合プロセスは、ディスク１１４及び／又は１１６へのバッチシーケンシャルディスク書き込みである。したがって、統合プロセスは、メモリ１１２内の更新データを記憶サーバ１０４及び／又は１０６のディスク１１４及び／又は１１６内の参照データブロック１２６及び／又は１２８にそれぞれ統合する。統合プロセス後、インクリメントデータ１２２の更新は参照データ１２４の部分になる。システム１００は、メモリ１２２への任意の後続更新を実行する。
【００２５】
幾つかの実施形態では、統合プロセスからのデータアクセスの分離を保証するために、システム１００は、それぞれが参照データ１２４全体を保持する少なくとも２つの記憶サーバ群を保持する。図１Ｂは、本願の実施形態による、更新サーバ及び記憶サーバに基づく例示的なデータ管理システムを示す。システム１００は、記憶サーバ１０４及び１０６をサーバ群１４２に群化することができる。システム１００は、記憶サーバ１３４及び１３６を含む別のサーバ群１４４を保持することができる。群１４２及び１４４は両方とも、参照データ１２４全体をホストする。これにより、負荷を群間で平衡させることができ、データアクセスを統合プロセスから分離する。幾つかの実施形態では、群１４２及び１４４は、ネットワーク１５０（例えば、ローカル又はワイドエリアネットワーク）により隔てられた別個のロケーションにあることができる。更新サーバ１０２は、ネットワーク１５０を介して群１４２及び１４４に結合することができる。
【００２６】
システム１００は、群１４２と１４４との間でのデータアクセス及び統合プロセスの分離を保証する。システム１００は、群１４２及び１４４を統合プロセスの制御ユニットとして使用し、統合プロセスを異なる時間に実行する。統合プロセスの準備段階において、システム１００は、統合プロセスの群を選択し、データアクセストラフィック（例えば、データアクセス要求及び／又は対応するデータ）をその他の群に移行する。このようにして、統合プロセス及びオンラインサービスは互いに分離される。システム１００は、群１４２の統合プロセスを実行する際、データアクセストラフィックを群１４４に逸らす。例えば、クライアント装置１６０がデータアクセス要求（例えば、顧客記録要求）を送信する場合、そのデータアクセス要求は群１４４により対応される（例えば、対応する記憶サーバが要求されたデータを提供する）。システム１００は、群１４２の統合プロセスを完了した後、データアクセストラフィックを群１４２に移行し、群１４４の統合プロセスを開始する。クライアント装置１６０からの続くデータアクセス要求は、群１４２により対応される。この統合プロセスはオフピーク統合プロセスと呼ぶことができる。オフピーク統合プロセスは、オンラインサービスの性能に対するインクリメントデータ統合の影響（例えば、記憶サーバがデータアクセス要求に応えるためにかかる時間）を低減する。
【００２７】
幾つかの実施形態では、システム１００は、トラフィック制御テーブルに基づいて群１４２と１４４との間で切り替えを行い、トラフィック制御テーブルは、群１４２と１４４との間のデータアクセストラフィック率を含む。クライアント装置（例えば、クライアント装置１６０）からのデータアクセス要求は、比率に基づいて群１４２及び１４４に分配される。システム１００は、データアクセストラフィックをある群から別の群に徐々に移行する。このようにして、トラフィック率は、ある群で増大し続け、別の群で低減し続ける。例えば、所与のあるとき、比率が５０：５０である場合、システム１００は、データアクセス要求の５０％を群１４２に転送し、残りの５０％を群１４４に転送する。統合プロセスが必要な場合、システム１００は、シーケンス（例えば、群１４２が先で、群１４４がその次）に基づいて、データアクセストラフィックをある群から別の群に移行し始める。その結果、群１４２と１４４との間のトラフィック率は変わり続ける。ある群のトラフィック率がゼロになると、その群は統合プロセス可能な状態になる。例えば、群１４２のトラフィック率がゼロになると、システム１００は、各データアクセス要求を群１４４に転送する。したがって、群１４２は統合プロセス可能な状態になる。
【００２８】
同様にして、システム１００は、群１４２の統合プロセスを完了すると、データアクセストラフィックを群１４４から群１４４に徐々に移行する。その結果、群１４２と１４４との間のトラフィック率は逆方向に変化し始める。群１４４のトラフィック率がゼロになると、システム１００は各データアクセス要求を群１４２に転送する。したがって、群１４４は統合プロセス可能な状態になる。幾つかの実施形態では、更新サーバ１０２は、インクリメントデータ１２２が各群（この例では、群１４２及び１４４）内の参照データ１２４に統合したか否かを判断する。インクリメントデータ１２２が群１４２及び１４４のうちの１つ又は複数内の参照データ１２４にまだ統合されていない場合、システム１００は、現在、統合が必要な群を選択する。統合プロセスが群１４２で完了し、群１４４で完了していないと想定する。その場合、システム１００は、統合に群１４４を選択する。インクリメントデータ１２２が両群１４２及び１４４内の参照データ１２４と統合されると、システム１００は、インクリメントデータ１２２を更新サーバ１０２のメモリ１１２から除去することができる。
【００２９】
幾つかの状況では、オフピーク統合プロセスは適用可能ではない。そのような一状況では、群の統合プロセスに時間切れイベントが発生することができる。例えば、群１４２の統合プロセスに割り振られた時間は、統合プロセスが完了することなく経過し得る。その結果、システム１００は、トラフィックを群１４４から群１４２に逸らし始め得る。別のそのような状況では、群１４２の統合プロセス中、群１４４は、全てのデータアクセス要求には対応することができないことがある。したがって、システム１００は、統合プロセス中であっても、幾つかのデータアクセス要求を群１４２に転送して、オンラインサービスの最大可用性（例えば、データのアクセス可能性）を保証し得る。
【００３０】
これらの２つの状況では、データアクセス及び統合プロセスは、群１４２と１４４との間で分離されないことがある。幾つかの実施形態では、システム１００は、データアクセスへの統合プロセスの影響を効率的に低減するために、各群の記憶サーバの負荷をモニタリングする。負荷が閾値に達した場合、システムは過負荷回避モードを開始する。このモードでは、システム１００は、統合プロセスを一時停止し、統合プロセスに割り振られたリソースを解放する。例えば、統合プロセスが統合スレッドにより実行される場合、システム１００は、スレッドの動作を一時停止し、そのスレッドに割り振られた、ネットワーク、処理、及びＩ／Ｏリソース等のリソースを解放する。システム１００は、負荷が低くなったことを検出する場合、統合プロセスを再開することができる。このようにして、システム１００は、統合動作よりも高い優先度をオンラインサービスに提供し、それにより、クライアント装置のデータアクセス要求へのサービス品質（ＱｏＳ）を保証する。
【００３１】
図２は、本願の実施形態による参照データの例示的なタブレットを示す。この例では、参照データ１２４は、複数の非重複データセグメントに分割される。そのようなデータセグメントはタブレットと呼ぶことができる。記憶サーバ内のデータブロックは、１つ又は複数のタブレットを含むことができる。例えば、参照データ１２４のタブレット２０２、２０６、及び２０８は、記憶サーバ１０４内でホストされるデータブロック１２６内にあり、参照データ１２４のタブレット２０４、２１０、及び２１２は、記憶サーバ１０６内でホストされるデータブロック１２８内にある。
【００３２】
統合プロセスの高可用性及び分離を保証するために、これらのタブレットは群１４４内でもホストされる。タブレット２０２及び２１０は、記憶サーバ１３４内でホストされるデータブロック２２２内にあり、タブレット２０４、２０６、２０８、及び２１２は、記憶サーバ１３６内でホストされるデータブロック２２４内にある。換言すれば、参照データ１２４は全体的に、重複しないタブレット２０２、２０４、２０６、２０８、２１０、及び２１２に分割され、各タブレットは、異なる群内の複数の記憶サーバに記憶される。各群は参照データ１２４の各タブレットを含むが、群はタブレットの１つのコピーをホストし得ることを理解されたい。その結果、群は、全てのタブレットの全てのコピーのセットのうちの１つのサブセットを含むことができる。
【００３３】
幾つかの実施形態では、システム１００は、競合状況を回避するために更新データ（すなわち、書き込み動作）の区画化を使用する。更新サーバ１０２のメモリ１１２に書き込まれたデータ量が閾値に達する場合、システム１００は、任意の後続更新から、統合プロセスのデータ量を分離する。このようにして、統合プロセス中、システム１００は、同じ更新セットが、各群内の参照データ１２４に統合されることを保証する。システム１００は、分配コミットを使用して、群間での競合状況を回避することもできる。統合プロセスが完了すると、システム１００は、対応する記憶サーバから、そのサーバの統合プロセスが完了したことの確認を受信する。群１４２及び１４４の両方内の各記憶サーバから確認を受信すると、システム１００は各記憶サーバへの更新をコミットする。その他の場合、システム１００は、各記憶サーバ内で前にコミットされた参照データにロールバックすることができる。これは、統合プロセスの不成功に起因して記憶サーバと群とのデータ不一致を回避する。
【００３４】
図３Ａは、本願の実施形態による、統合プロセスを開始するデータ管理システムを示すフローチャートを提示する。動作中、システムは、更新サーバ内のインクリメントデータをモニタリングする（動作Ｓ３０１）。システムは、更新サーバのメモリに書き込まれたインクリメントデータが、閾値以上である（又は閾値を超える）か否かをチェックする（動作Ｓ３０２）。インクリメントデータの量は、メモリに書き込まれたバイト数に基づくことができる。インクリメントデータが、閾値未満である場合、システムは、インクリメントデータを引き続きモニタリングする（動作Ｓ３０１）。インクリメントデータが閾値以上である場合、インクリメントデータは統合プロセス可能な状態である。次に、システムは、オフピーク統合プロセスが可能であるか否かをチェックする（動作Ｓ３０３）。
【００３５】
システムは、各群の記憶サーバへの負荷及び前の統合動作の時間切れイベントをチェックして、オフピーク統合プロセスが可能か否かを判断する。オフピーク統合プロセスが可能な場合、システムは、更新サーバから対応する記憶サーバへのオフピーク統合プロセスを開始する（動作Ｓ３０４）。その他の場合、システムは、更新サーバから対応する記憶サーバへの動的制御される統合プロセスを開始する（動作Ｓ３０５）。図３Ａは統合プロセスの１つのみの反復を示すが、システムは、統合プロセスの完了後、更新サーバ内のインクリメントデータをモニタリングし続ける（動作Ｓ３０１）ことに留意されたい。これは、メモリに書き込まれたデータ量が閾値に達した場合は常に、システムが統合プロセスを開始することを保証する。
【００３６】
図３Ｂは、本願の実施形態による、データ管理システムのオフピーク統合プロセスを示すフローチャートを提示する。動作中、システムは、統合サーバ群の統合シーケンス（又は統合順序）を決定する（動作Ｓ３３１）。図１Ｂの例では、統合シーケンスは群１４２が先で、群１４４がその次であるか、又は群１４４が先で、群１４２がその次であることができる。次に、システムは続けて、シーケンスから群を選択する（動作Ｓ３３２）。例えば、シーケンスが群１４２を先に示す場合、システム１００は群１４２を選択する。システムは、データアクセストラフィックを他の群（例えば、群１４４）に徐々に移行する(動作Ｓ３３３）。
【００３７】
システムは、選択された群が統合可能な状態であるか否かをチェックする（動作Ｓ３３４）。幾つかの実施形態では、システムは、各群のデータアクセストラフィック率を含むトラフィック制御テーブルを保持する。選択された群のトラフィック率がゼロになる場合、システムは、選択された群が統合プロセス可能な状態であると見なす。選択された群が統合可能な状態ではない場合、システムは、データアクセストラフィックを他の群に徐々に移行し続ける（動作Ｓ３３３）。選択された群が統合可能な状態である場合、システムは、選択された群内の記憶サーバを識別する（動作Ｓ３３５）。システムは、識別された記憶サーバ内の対応するタブレットにインクリメントデータを統合する（動作Ｓ３３６）。例えば、インクリメントデータ１２２の部分が、タブレット２０２内の参照データセグメントへの更新を含む場合、システム１００は、インクリメントデータ１２２のその部分を記憶サーバ１０４内のタブレット２０２に統合する。
【００３８】
システムは、選択された群の統合プロセスが完了したか否かをチェックする（動作Ｓ３３７）。例えば、インクリメントデータ１２２の部分が、タブレット２０２、２０４、２１０、及び２１２内の参照データセグメントへの更新を含む場合、システム１００が、群１４２（又は群１４４）でホストされるタブレット２０２、２０４、２１０、及び２１２とのインクリメントデータ１２２の統合を完了するとき、群１４２の統合プロセスは完了する。統合プロセスが完了していない場合、システムは、インクリメントデータの現在のセットを、識別された記憶サーバ内の対応するタブレットに引き続き統合する（動作Ｓ３３６）。これにより、統合動作中のインクリメントデータの区画化が可能である。任意の後続インクリメントデータは、次の統合プロセスで統合される。統合プロセスが完了する場合、システムは、データアクセストラフィックを選択された群に徐々に復帰させる（動作Ｓ３３８）。次に、システムは、全ての群が統合したか否かをチェックする（動作Ｓ３３９）。まだ全ての群が統合されていない場合、システムは続けて、シーケンスから次の群を選択する（動作Ｓ３３２）。
【００３９】
図３Ｃは、本願の実施形態による、データ管理システムの動的制御される統合プロセスを示すフローチャートを提示する。動作中、システムは、選択された群の記憶サーバを識別する（動作Ｓ３５１）。システムは、現在のトラフィック負荷又は利用可能なリソースに基づいて群を選択することができる。システムは、記憶サーバのリソース消費をチェックし（動作Ｓ３５２）、リソース消費が統合プロセスの開始条件を満たすか否かをチェックする（動作Ｓ３５３）。開始条件は、リソース消費が閾値に一致するか否かであることができる。そのようなリソースの例としては、ネットワークリソース、処理リソース（例えば、中央演算処理装置（ＣＰＵ）サイクル）、及びＩ／Ｏリソースが挙げられるが、これらに限定されない。
【００４０】
リソース消費が開始条件を満たさない場合、システムは、記憶サーバのリソース消費を引き続きチェックする（動作Ｓ３５２）。リソース消費が開始条件を満たす場合、システムは統合するインクリメントデータの現在セットを識別する（動作Ｓ３５４）。統合プロセスは、インクリメントデータの現在セットのみに対して行われるため、統合プロセスのリソース割り振りは、その現在セットに対して行われる。例えば、統合プロセスが、統合スレッドを使用して実行される場合、統合スレッドは、インクリメントデータの現在セットのみに対して発行され、システムは、リソースをそのセットのみに割り振る。システムは、インクリメントデータの次のセットへの次の統合スレッドを発行し、それに従って、その次のスレッドにリソースを割り振る。この「１つずつ」手法は、記憶サーバへの負荷が低い場合のみ、次の統合スレッドが発行されることを保証する。
【００４１】
統合するインクリメントデータの現在セットが識別されると、システムは、識別された記憶サーバへのインクリメントデータの現在セットの統合プロセスを開始する（動作Ｓ３５５）。システムは、オンラインサービスの性能に関するデータを収集する（動作Ｓ３５６）。そのようなデータの例としては、要求スループット、応答待ち時間、及び要求キュー配置が挙げられるが、これらに限定されない。システムは、オンラインサービスの性能レベルが対応する閾値レベルを下回るか否かをチェックする（動作Ｓ３５７）。例えば、システムは、応答待ち時間が閾値時間を超えるか否か、及び／又は要求キューの長さが閾値長を超えるか否かをチェックすることができる。
【００４２】
性能レベルが閾値レベルを下回る場合、システムは、過負荷回避モードを開始し、統合プロセスを一時停止し（動作Ｓ３５８）、オンラインサービスの性能に関するデータを引き続き収集する（動作Ｓ３５６）。幾つかの実施形態では、システムは、過負荷回避モードにおいて統合プロセスを終了する。性能レベルが閾値レベルを下回らない場合、統合プロセスはオンラインサービスの性能レベルを深刻には妨げていない。その場合、システムは、インクリメントデータの現在セットに対する統合プロセスを完了させる（例えば、再開する）（動作Ｓ３５９）。しかし、システムが、過負荷回避モードにおいて統合プロセスを終了した場合、オンラインサービスの性能レベルが閾値レベルをもはや下回らなくなるとき、システムは統合プロセスを再開することができる。
【００４３】
図４は、本願の実施形態による、例示的なデータ管理システムの概略構造図である。データ管理システム４００は、プロセッサ４０２、メモリ４０４、及び記憶装置４２０を含む。記憶装置４２０は通常、命令を記憶し、当該命令は、上述した方法を実行するために、メモリ４０４にロードされ、プロセッサ４０２により実行されることができる。一実施形態では、記憶装置４２０内の命令は、選択モジュール４２２、移行モジュール４２４、統合モジュール４２６、及び制御モジュール４２８を実施することができ、これらは全て、様々な手段を通して互いと通信することができる。
【００４４】
幾つかの実施形態では、モジュール４２２、４２４、４２６、及び４２８は部分的又は全体的に、ハードウェアにおいて実施することができ、プロセッサ４０２の部分であることができる。さらに、幾つかの実施形態では、システムは、別個のプロセッサ及びメモリを含まなくてもよい。代わりに、それぞれの特定のタスクを実行することに加えて、モジュール４２２、４２４、４２６、及び４２８は別個に、又は協働して、専用計算エンジンの部分であり得る。
【００４５】
記憶装置４２０は、プロセッサ４０２により実行されるプログラムを記憶する。特に、記憶装置４２０は、負荷に基づく動的統合を使用してデータを効率的に管理するシステム（アプリケーション）を実施するプログラムを記憶する。動作中、アプリケーションプログラムは、記憶装置４２０からメモリ４０４にロードし、プロセッサ４０２により実行することができる。その結果、システム４００は、上述した機能を実行することができる。システム４００は、任意選択的なディスプレイ４１２、キーボード４１４、及びポインティングデバイス４１６にさらに結合することができ、１つ又は複数のネットワークインタフェースを介してネットワーク４１０に結合することができる。
【００４６】
動作中、選択モジュール４２２は、一連の群を保持し、一連の群から一つの群を選択する。選択モジュール４２２は、統合プロセスが必要な記憶サーバを選択する。選択モジュール４２２は、群に統合プロセスが実行されたことがあるか否かも判断する。移行モジュール４２４は、データアクセストラフィックを選択された群から他の群に移行する。幾つかの実施形態では、移行モジュール４２４は、群のトラフィック制御テーブルを保持する。群のトラフィック率がゼロになる場合、移行モジュール４２４は、群が移行プロセス可能な状態であると判断する。移行プロセスが完了すると、移行モジュール４２４は、データアクセストラフィックを元の群に復帰させる。
【００４７】
統合モジュール４２６は、データアクセストラフィックが、選択された群から移行された後、インクリメントデータを更新サーバから記憶サーバ内の参照データの１つ又は複数のタブレットに統合する。制御モジュール４２８は、統合プロセス中、現在統合中の群により任意のデータアクセストラフィックを処理すべきか否かを判断する。制御モジュール４２８は、リソース消費状況が開始条件を満たす場合、図３Ｃと併せて説明したように、その群の動的制御される統合プロセスを開始することができる。例えば、制御モジュール４２４は、必要に応じて統合プロセスを一時停止（又は終了）し、再開（又は再び開始）することができる。
【００４８】
この詳細な説明に記載されるデータ構造及びコンピュータ命令は通常、コンピュータ可読記憶媒体に記憶され、コンピュータ可読記憶媒体は、コンピュータシステムにより使用されるコード及び／又はデータを記憶することができる任意の装置又は媒体であり得る。コンピュータ可読媒体は、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスク又はデジタルビデオディスク）等の磁気及び光学記憶装置、又は現在既知であるか、若しくは後に開発されるコンピュータ可読媒体を記憶可能な任意の他の媒体を含むが、これらに限定されない。
【００４９】
詳細な説明のセクションに記載される方法及びプロセスは、コード及び／又はデータとして実施することができ、コード及び／又はデータは、上述したようにコンピュータ可読記憶媒体に記憶することができる。コンピュータシステムは、コンピュータ可読記憶媒体に記憶されたコード及び／又はデータを読み出し実行すると、データ構造及びコードとして実施され、コンピュータ可読記憶媒体内に記憶された方法及びプロセスを実行する。
【００５０】
さらに、本明細書に記載される方法及びプロセスは、ハードウェアモジュール又は装置に含めることができる。これらのモジュール又は装置は、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュール又はコードを実行する専用又は共有プロセッサ、及び／又は現在既知であるか、又は後に開発される他のプログラマブル論理デバイスを含み得るが、これらに限定されない。ハードウェアモジュール又は装置は、アクティブ化されると、内部に含まれる方法及びプロセスを実行する。
【００５１】
上記説明は、当業者が実施形態を作成し使用できるようにするために提示され、特定の用途及びその要件の状況で提供される。開示される実施形態への様々な変更が当業者に容易に明らかであり、本明細書に定義される一般原理は、本開示の趣旨及び範囲から逸脱せずに他の実施形態及び用途に適用し得る。したがって、本発明は、示される実施形態に限定されず、本明細書に開示される原理及び特徴に一致する最も広い範囲に従うべきである。
【図１Ａ】
0006412244.tif 000002
【図１Ｂ】
0006412244.tif 000003
【図２】
0006412244.tif 000004
【図３Ａ】
0006412244.tif 000005
【図３Ｂ】
0006412244.tif 000006
【図３Ｃ】
0006412244.tif 000007
【図４】
0006412244.tif 000008