(57)【特許請求の範囲】
【請求項１】
データを格納するための方法であって、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するステップであって、前記二次元データバッファアレイが複数の論理データブロックを含み、前記複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、ステップと、
前記複数のサブデータブロックのそれぞれのデータ格納状況に従って、前記複数のサブデータブロックのそれぞれにデータ状態を設定するステップであって、前記データ状態が、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの１つを含む、ステップと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納するステップと、
サービス論理に従って、あるサブデータブロックに格納されたデータを変更するステップと、
変更された前記データに前記ネットワーク記憶装置を同期させるステップと
を有することを特徴とする方法。
【請求項２】
変更された前記データに前記ネットワーク記憶装置を同期させる前記ステップが、
前記複数のサブデータブロックのそれぞれのデータ状態を定期的にポーリングするステップと、
あるサブデータブロックのデータ状態が変更状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップの後に、
当該サブデータブロックの前記データ状態を変更状態から通常状態に変更するステップをさらに有することを特徴とする請求項２に記載の方法。
【請求項４】
サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納する前記ステップの後に、
サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップと、
当該サブデータブロックに対応する共有メモリを解放するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項５】
サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップが、
前記複数のサブデータブロックのそれぞれのデータ状態を問い合わせるステップと、
あるサブデータブロックのデータ状態が除去指示状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップの後に、
当該サブデータブロックの前記データ状態を除去指示状態から通常状態に変更するステップをさらに有することを特徴とする請求項５に記載の方法。
【請求項７】
サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納する前記ステップが、
前記複数のサブデータブロックのすべてから、空き状態のデータ状態を有するサブデータブロックを選択するステップと、
前記サービス論理の前記要件に従って、前記ネットワーク記憶装置上の前記データを選択された前記サブデータブロックに格納するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ネットワーク記憶装置上の前記データを選択された前記サブデータブロックに格納する前記ステップの後に、
選択された前記サブデータブロックの前記データ状態を空き状態から読込み状態に変更するステップと、
前記データの読込みが完了した後、選択された前記サブデータブロックの前記データ状態を読込み状態から通常状態に変更するステップと
をさらに有することを特徴とする請求項７に記載の方法。
【請求項９】
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成する前記ステップの後に、
前記二次元データバッファアレイと前記ネットワーク記憶装置との間の対応関係表を確立するステップと、
前記二次元データバッファアレイ中のサブデータブロックのデータ変化に従って、前記対応関係表を更新するステップと
をさらに有し、
前記対応関係表は、前記ネットワーク記憶装置に格納され、前記二次元データバッファアレイの前記複数のサブデータブロックのそれぞれのデータ格納状況を記録し、
前記二次元データバッファアレイの前記複数の論理データブロックのそれぞれが、１つの対応関係表に対応し、
前記論理データブロックの前記複数のサブデータブロックのそれぞれが、前記対応関係表の１つのレコードに対応することを特徴とする請求項１から８のいずれか一項に記載の方法。
【請求項１０】
データを格納するための装置であって、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するように構成された構成モジュールであって、前記二次元データバッファアレイが複数の論理データブロックを含み、前記複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、構成モジュールと、
前記複数のサブデータブロックのそれぞれのデータ格納状況に従って、前記複数のサブデータブロックのそれぞれにデータ状態を設定するように構成された設定モジュールであって、前記データ状態が、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの１つを含む、設定モジュールと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納するように構成されたローディングモジュールと、
サービス論理に従って、あるサブデータブロックに格納されたデータを変更するように構成された変更モジュールと、
前記変更モジュールによって変更された前記データに前記ネットワーク記憶装置を同期させるように構成された変更同期モジュールと
を具備することを特徴とする装置。
【請求項１１】
前記変更同期モジュールが、
前記複数のサブデータブロックのそれぞれのデータ状態を定期的にポーリングするように構成されたポーリングユニットと、
前記ポーリングユニットによってポーリングされたサブデータブロックのデータ状態が変更状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された変更同期ユニットと
を含むことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記変更同期モジュールが、
当該サブデータブロックの前記データ状態を変更状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項１１に記載の装置。
【請求項１３】
サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された解放同期モジュールと、
前記解放同期モジュールが、前記サービス論理に従って、当該サブデータブロックの前記データに前記ネットワーク記憶装置を同期させた後、当該サブデータブロックに対応する共有メモリを解放するように構成された解放モジュールと
をさらに含むことを特徴とする請求項１０に記載の装置。
【請求項１４】
前記解放同期モジュールが、
前記複数のサブデータブロックのそれぞれのデータ状態を問い合わせるように構成された問い合わせユニットと、
前記問い合わせユニットによって問い合わされたサブデータブロックのデータ状態が除去指示状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された解放同期ユニットと
を含むことを特徴とする請求項１３に記載の装置。
【請求項１５】
前記解放同期モジュールが、
当該サブデータブロックの前記データ状態を除去指示状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項１４に記載の装置。
【請求項１６】
前記ローディングモジュールが、
前記複数のサブデータブロックのすべてから、空き状態のデータ状態を有するサブデータブロックを選択するように構成された選択ユニットと、
前記サービス論理の前記要件に従って、前記ネットワーク記憶装置上の前記データを前記選択ユニットによって選択された前記サブデータブロックに格納するように構成されたローディングユニットと
を含むことを特徴とする請求項１０に記載の装置。
【請求項１７】
前記ローディングモジュールが、
前記選択ユニットによって選択された前記サブデータブロックの前記データ状態を空き状態から読込み状態に変更し、前記データの読込みが完了した後、前記選択ユニットによって選択された前記サブデータブロックの前記データ状態を読込み状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項１６に記載の装置。
【請求項１８】
前記二次元データバッファアレイと前記ネットワーク記憶装置との間の対応関係表を確立するように構成された確立モジュールと、
前記二次元データバッファアレイ中のサブデータブロックのデータ変化に従って、前記対応関係表を更新するように構成された更新モジュールと
をさらに具備し、
前記対応関係表は、前記ネットワーク記憶装置に格納され、前記二次元データバッファアレイの前記複数のサブデータブロックのそれぞれのデータ格納状況を記録し、
前記二次元データバッファアレイの前記複数の論理データブロックのそれぞれが、１つの対応関係表に対応し、
前記論理データブロックの前記複数のサブデータブロックのそれぞれが、前記対応関係表の１つのレコードに対応することを特徴とする請求項１０から１７のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ技術に関し、より詳しくは、データを格納するための方法および装置に関する。
【背景技術】
【０００２】
コンピュータ技術の発達とともに、ゲーム技術は急速に発達しており、ゲームに参加する人の数は、一人から多人数に増加している。人の数が増加するにつれて、ゲーム中に生成されるデータ量は増加し、したがって、サービス論理はより複雑になっている。より良いサービスをユーザーに提供するために、サービス論理によって生成されるデータを効果的に格納することがゲーム製造業者にとって重要である。
【０００３】
従来の解決策では、サービス論理によって生成されたデータが格納されるとき、サービス論理によって生成されたデータは、ネットワークを介してネットワーク記憶装置に送られて、ネットワーク記憶装置上のデータベースに格納される。バッファ空間がネットワーク記憶装置に確立され、高い交換頻度を有するデータは、データ交換の速度を改善するために、バッファ空間に格納される。
【０００４】
しかしながら、ゲーム技術では、データは頻繁に更新され、サービス論理によって生成されたデータがネットワーク記憶装置のバッファ空間に格納されるかまたはネットワーク記憶装置のデータベースに格納されるかにかかわりなく、ネットワークを介してネットワーク記憶装置に繰り返しアクセスすることが必要とされる。ネットワークを介してネットワーク記憶装置にアクセスする手順は、格納効率を低減することもあり、その後のデータ交換の効率に影響を及ぼすこともある。加えて、データベースのデータ構造が固定され、拡張可能でない場合、サービス論理によって必要とされるようなデータ構造変化の要件は満たされないことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の実施態様は、データ構造の拡張可能性を改善しながらデータ格納効率を改善し、サービス論理の要件を満たすように、データを格納するための方法および装置を提供する。
【課題を解決するための手段】
【０００６】
データを格納するための方法は、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するステップであって、二次元データバッファアレイが複数の論理データブロックを含み、複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、ステップと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納するステップとを含む。
【０００７】
データを格納するための装置は、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するように構成された構成モジュールであって、二次元データバッファアレイが複数の論理データブロックを含み、複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、構成モジュールと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納するように構成されたローディングモジュールとを含む。
【０００８】
データは、所定の構成ポリシに従って拡張可能な二次元データバッファアレイをローカル共有メモリに構成し、サービス論理の要件に従ってネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納することによってローカルで格納され、それによってデータ格納およびデータ交換の効率を改善する。データを格納するための二次元データバッファアレイが拡張可能であるので、データ構造の拡張可能性が改善され、したがって、サービス論理の要件は満たされる。加えて、ローカル共有メモリおよびネットワーク記憶装置のデータは、データブロックのデータが変更された後、変更されたデータにネットワーク記憶装置を同期させることによって同期され、したがって、データ損失が回避される。
【０００９】
本開示の実施形態の技術的解決策を明瞭に述べるために、本開示の実施形態で使用される添付の図面が、以下で説明される。添付の図面は、本開示の実施形態の一部である。他の図面が、本開示の添付の図面に基づいて創造的な労力なしに当業者によって得られてもよい。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態によるデータを格納するための方法を例示する概略流れ図である。
【図２】本開示の一実施形態によるデータを格納するためのシステムの構造を例示する概略図である。
【図３】本開示の別の実施形態によるデータを格納するための方法を例示する概略流れ図である。
【図４】本開示の一実施形態によるデータ状態の変換を例示する概略図である。
【図５】本開示の一実施形態による論理データブロックを例示する概略図である。
【図６】本開示の一実施形態による対応関係表を例示する概略図である。
【図７】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図８】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図９】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図１０】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図１１】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図１２】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【図１３】本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
【発明を実施するための形態】
【００１１】
本開示の目的、技術的解決策、および利点をより明らかにするために、本開示は、添付の図面および具体的な実施形態を参照して以下で詳細に例示されることになる。
【００１２】
本開示の一実施形態によると、データを格納するための方法が提供される。図1を参照すると、本方法は、次の処理を含む。
【００１３】
ステップ101において、拡張可能な二次元データバッファアレイが、プリセット構成ポリシに従ってローカル共有メモリに構成される。二次元データバッファアレイは、複数の論理データブロックを含み、複数の論理データブロックのそれぞれは、データを格納するための複数のサブデータブロックを含む。
【００１４】
ステップ102において、ネットワーク記憶装置上のデータが、サービス論理の要件に従ってそのデータに対応するサブデータブロックに格納される。
【００１５】
一実施形態によると、拡張可能な二次元データバッファアレイが、プリセット構成ポリシに従ってローカル共有メモリに構成された後、次の処理がさらに含まれる。複数のサブデータブロックのそれぞれのデータ格納状況に従って、複数サブデータブロックのそれぞれに対して、データ状態が構成される。データ状態は、空き(free)状態、読込み(loading)状態、通常(normal)状態、変更(modify)状態、除去(remove)状態、および除去指示(tick_remove)状態のうちの1つである。
【００１６】
一実施形態によると、ネットワーク記憶装置上のデータがサービス論理の要件に従ってそのデータに対応するサブデータブロックに格納された後、次の処理がさらに含まれる。サービス論理に対応するサブデータブロックに格納されたデータは、変更され、変更されたデータは、ネットワーク記憶装置と同期される。一実施形態によると、次の処理は、変更されたデータをネットワーク記憶装置と同期するときに行われ、複数のサブデータブロックのそれぞれのデータ状態が定期的にポーリングされ、サブデータブロックのデータ状態が変更状態であるとき、このサブデータブロックのデータは、ネットワーク記憶装置と同期される。さらに、このサブデータブロックのデータがネットワーク記憶装置と同期された後、このサブデータブロックのデータ状態は、通常状態に変更される。
【００１７】
一実施形態によると、ネットワーク記憶装置上のデータがサービス論理の要件に従ってそのデータに対応するサブデータブロックに格納された後、次の処理がさらに含まれる。サービス論理に対応するサブデータブロックに格納されたデータは、ネットワーク記憶装置と同期され、サブデータブロックに対応する共有メモリは除去される。一実施形態によると、次の処理は、サービス論理に対応するサブデータブロックに格納されたデータをネットワーク記憶装置と同期するときに行われ、複数のサブデータブロックのそれぞれのデータ状態が問い合わされ、除去指示状態のサブデータブロックのデータは、ネットワーク記憶装置と同期される。さらに、除去指示状態のサブデータブロックのデータがネットワーク記憶装置と同期された後、除去指示状態のサブデータブロックのデータ状態は、空き状態に変更される。
【００１８】
一実施形態によると、ネットワーク記憶装置上のデータをサービス論理の要件に従ってそのデータに対応するサブデータブロックに格納するとき、空き状態のサブデータブロックは、複数のサブデータブロックのすべてから選択され、ネットワーク記憶装置上のデータは、サービス論理の要件に従って選択されたサブデータブロックに格納される。さらに、ネットワーク記憶装置上のデータが選択されたサブデータブロックに格納された後、選択されたサブデータブロックのデータ状態は、空き状態から読込み状態に変更される。データのローディングが完了した後、選択されたサブデータブロックのデータ状態は、読込み状態から通常状態に変更される。
【００１９】
一実施形態によると、拡張可能な二次元データバッファアレイがプリセット構成ポリシに従ってローカル共有メモリに構成された後、二次元データバッファアレイとネットワーク記憶装置との対応関係表が確立され、二次元データバッファアレイのサブデータブロックのデータの変化に従って更新される。対応関係表は、ネットワーク記憶装置に格納され、二次元データバッファアレイのサブデータブロックのそれぞれのデータ格納状況を記録する。二次元データバッファアレイの論理データブロックのそれぞれは、1つの対応関係表に対応し、論理データブロックのサブデータブロックのそれぞれは、対応関係表のレコードに対応する。
【００２０】
本実施形態による方法を使用することによって、拡張可能な二次元データバッファアレイが、プリセット構成ポリシに従ってローカル共有メモリに構成され、ネットワーク記憶装置上のデータが、サービス論理の要件に従ってそのデータに対応するサブデータブロックに格納される。したがって、データはローカルで格納され、データ格納およびデータ交換の効率は改善される。データ構造の拡張可能性は、データを格納するための二次元データバッファアレイが拡張可能であるので改善され、したがって、サービス論理の要件は満たされる。加えて、サブデータブロックのデータが変更された後、変更されたデータは、ネットワーク記憶装置に送られ、その結果、ローカル共有メモリおよびネットワーク記憶装置のデータは同期され、したがって、データ損失が回避される。
【００２１】
本開示の別の実施形態によると、データを格納するための方法が提供される。本方法によると、拡張可能な二次元データバッファアレイがローカル共有メモリに構成され、システムが動作するにつれて連続的に変化するデータは、ネットワーク記憶装置と二次元データバッファアレイのサブデータブロックとの両方に格納される。説明の便宜上、本方法は、図2で示されるデータ記憶システムを参照して述べられることになる。図3を参照すると、本方法は次の処理を含む。
【００２２】
ステップ301において、拡張可能な二次元データバッファアレイが、プリセット構成ポリシに従ってローカル共有メモリに構成される。二次元データバッファアレイは、複数の論理データブロックを含み、複数の論理データブロックのそれぞれは、データを格納するための複数のサブデータブロックを含む。
【００２３】
一実施形態によると、プリセット構成ポリシは、二次元データバッファアレイの論理データブロックの数を構成し、論理データブロックのそれぞれのサブデータブロックの数および容量を構成するために使用され、それによってデータ構造を拡張する。本開示の一実施形態では、データ構造の拡張は、二次元データバッファアレイの論理データブロックの数を増減すること、ならびに論理データブロックのそれぞれのサブデータブロックの数および容量を増減することを含む。構成ポリシは、実際の要件に従って設定されてもよい。一実施形態においては、構成ポリシで構成される論理データブロックの数ならびにサブデータブロックの数および容量は、サービス論理によって必要とされるデータ構造に従って設定されてもよく、または他の方式で設定されてもよい。構成ポリシで構成される論理データブロックの数ならびにサブデータブロックの数および容量は、本実施形態では制限されない。ローカル共有メモリは、複数のプロセッサを有するコンピュータシステムで異なる中央処理ユニット(CPU)によってアクセスされてもよい大容量メモリを指す。ローカル共有メモリは、直接読み書きされてもよく、それによってプロセッサの処理効率を改善する。
【００２４】
ステップ301において、図2で示されるデータ記憶システムの構造と併せて、プロセスが、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するために呼び出されてもよく、そのプロセスは、最初に開始されるサービス論理プロセスおよびデータ同期プロキシプロセスのうちの1つである。一実施形態においては、サービス論理プロセスがデータ同期プロキシプロセスよりも先に立ち上げられる場合、拡張可能な二次元データバッファアレイは、プリセット構成ポリシに従ってローカル共有メモリにサービス論理プロセスによって構成されてもよく、かつデータ同期プロキシプロセスがサービス論理プロセスよりも先に立ち上げられる場合、拡張可能な二次元データバッファアレイは、プリセット構成ポリシに従ってローカル共有メモリにデータ同期プロキシプロセスによって構成されてもよい。その構成を行うために使用されるプロセスにかかわらず、プリセット構成ポリシによるローカル共有メモリのための適用が最初に行われ、次いで二次元データバッファアレイが適用されたローカル共有メモリに構成される。構成された二次元データバッファアレイは、複数の論理データブロックを含み、論理データブロックのそれぞれは、データを格納するための複数のサブデータブロックを含む。サブデータブロックは、異なる論理データブロックのサブデータブロックを区別するために、座標方式で識別されてもよい。図2で示されるように、一実施形態において、構成された二次元データバッファアレイは、N個の論理データブロックを含み、各論理データブロックは、n個のサブデータブロックを含み、N番目の論理データブロックのn番目のサブデータブロックは、二次元データ座標(N, n)を用いて識別されてもよい。
【００２５】
一実施形態によると、サブデータブロックを識別するために使用される方式にかかわらず、サブデータブロックのそれぞれは、データを格納するために使用されてもよい。二次元データバッファアレイの論理データブロックは、論理機能に従って、動的論理データブロックと静的論理データブロックとに分類されてもよい。動的論理データブロックのサブデータブロックは、動的データを格納するために使用され、静的論理データブロックのサブデータブロックは、静的データを格納するために使用される。動的データは、動的にロードされ、除去され、かつ同期されてもよいデータを含み、動的データを格納するためのサブデータブロックに対応する共有メモリ空間は、繰り返し使用されてもよい。一実施形態としてサービス論理でゲームプレーヤのロールデータを取り込むとき、ロールのオンラインおよびオフラインは、プル(pulling)および記憶を同期するデータに関係する。静的データは、共有メモリに格納され、静的データがロードされても除去されず、その結果、静的データを格納するためのサブデータブロックに対応する共有メモリ空間を解放する必要がなく、ゲームの市場ホール(market hall)のデータなどの静的データは、タイミング機構を使用してネットワーク記憶装置と同期される。論理データブロックは、本実施形態の動的論理データブロックまたは静的論理データブロックに限定されず、実際には、論理データブロックは、構成ポリシに従って構成されてもよい。
【００２６】
一実施形態によると、二次元データバッファアレイが構成された後、二次元データバッファアレイは、共有メモリに構成され、論理データブロックのアドレスおよびサブデータブロックのアドレスは、共有メモリの物理アドレスであり、一方サービス論理プロセスのアドレスおよびデータ同期プロキシプロセスのアドレスは両方とも、論理アドレスである。したがって、二次元データバッファアレイのメモリ空間は、二次元データバッファアレイを構成するプロセスのメモリ空間にマッピングされる、すなわち物理アドレスは、論理アドレスに翻訳されることが必要とされ、その結果、構成された二次元データバッファアレイのデータは、サービス論理プロセスおよび/またはデータ同期プロキシプロセスによってその後に操作されてもよい。二次元データバッファアレイのメモリ空間は、二次元データバッファアレイを構成するために使用されない他のプロセスのメモリ空間に、このプロセスが立ち上げられた後にマッピングされてもよい。
【００２７】
二次元データバッファアレイが構成された後、二次元データバッファアレイおよび二次元データバッファアレイに格納されたデータは、システムが電源を切らず、メモリが手動で削除されないまたは損なわれない限り連続して、かつ個別に維持されることに留意すべきである。換言すれば、二次元データバッファアレイの構成が完了すると、二次元データバッファアレイのデータ構造およびその中のデータは、システムが電源を切られず、メモリが存在する場合には、常に存在する。システムが電源を切られるか、またはメモリが、削除されるかまたは損なわれる場合、二次元データバッファアレイは、再構成されなければならない。システムが電源を切られるか、およびメモリが変更されるかまたは損なわれるかにかかわりなく、サービス論理プロセスまたはデータ同期プロキシプロセスが再始動される場合、物理アドレスと論理アドレスとの間の翻訳は、再度行われる必要がある。
【００２８】
ステップ302において、データ状態が、複数のサブデータブロックのそれぞれのデータ格納状況に従って、サブデータブロックのそれぞれに対して構成される。データ状態は、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの1つである。
【００２９】
一実施形態によると、二次元データバッファアレイが、ステップ301において構成された後、複数のサブデータブロックのそれぞれのデータ状態は、サブデータブロックのそれぞれのデータ格納状況に従って設定され、サブデータブロックのそれぞれのデータ状態は、次の6つのデータ状態を含むが、それらに限定はされない。
1.空き(free):データが割り当てられることになる。
2.読込み(loading):データがロードされている。
3.通常(normal):データがロードされる。
4.変更(modify):データが変更される。
5.除去(remove):データが格納されかつ除去されている。
6.除去指示(tick_remove):データ除去に失敗する場合、サブデータブロックのデータ状態がこの状態として構成され、その結果、データは、除去に成功するまで定期的制御によって定期的に除去されてもよい。
【００３０】
データを格納し、更新する手順では、サブデータブロックのデータ状態は、図4で示されるように、上述の6つの状態の間で変化することもある。二次元データバッファアレイが最初に構成されるとき、データは、二次元データバッファアレイのサブデータブロックに格納されず、したがって、サブデータブロックのデータ状態は、空き状態であり、その後にデータ記憶の変化に従って適時に更新されてもよい。
【００３１】
サブデータブロックのそれぞれのデータ状態が構成された後、二次元データバッファアレイの構成が完了する。二次元データバッファアレイの論理データブロックのそれぞれは、全体的ヘッドおよびサブデータブロックから成ってもよい。一実施形態として図5で示される論理データブロックの構造を参照すると、論理データブロックの全体的ヘッドは、論理データブロックに格納されたデータの長さを記録するために4バイトを含む。サブデータブロックのそれぞれは、ヘッド構造およびデータから成り、サブデータブロックのヘッド構造は、次の通りであってもよい。
header
{
Key    //データに対応するキー値
Ver    //データのバージョン番号
Time    //データの変更時刻
Status //データの状態
}
【００３２】
サブデータブロックのデータのキー値は、ネットワーク記憶装置のデータのキーと同一である。したがって、データがローカル共有メモリに格納されるかまたはネットワーク記憶装置に格納されるかにかかわりなく、各データのためのキーは変わらず、そのことが異なる場所に格納されたデータを探すことを容易にする。二次元データバッファアレイが構成された後、サブデータブロックがデータを割り当てられると、サブデータブロックのヘッド構造のキー(Key)、バージョン(Ver)、時刻(Time)、および状態(Status)の値がそれに応じて変更され、サブデータブロックは、サブデータブロックのデータが除去されかつサブデータブロックの状態が空き状態でない限り、再度データを割り当てられないことになる。サブデータブロックのデータが除去されると、サブデータブロックのデータが、それに応じて削除され、サブデータブロックのヘッド構造のキー、バージョン、時刻、および状態の値が、変更される。
【００３３】
一実施形態によると、二次元データバッファアレイのサブデータブロックが、データを格納するために使用されるので、ローカル共有メモリのデータとネットワーク記憶装置のデータとの同期を維持するために、次の処理が、二次元データバッファアレイを構成した後に行われる。
【００３４】
二次元データバッファアレイとネットワーク記憶装置との対応関係表が、確立され、対応関係表は、二次元データバッファアレイのサブデータブロックのデータ変化に従って更新される。対応関係表は、ネットワーク記憶装置に格納され、二次元データバッファアレイのサブデータブロックのそれぞれのデータ格納状況を記録する。
【００３５】
一実施形態によると、二次元データバッファアレイの論理データブロックのそれぞれは、1つの対応関係表に対応し、論理データブロックのサブデータブロックのそれぞれは、マッピング関係表の1つのレコードに対応する。
【００３６】
図6は、本開示の一実施形態による対応関係表を例示する概略図である。図6で示されるように、二次元データバッファアレイの1つの論理データブロックは、データベースに格納された1つの対応関係表に対応し、対応関係表は、論理データブロックの構造を記録する。論理データブロックのサブデータブロックのそれぞれは、対応関係表の1つのレコードに対応し、各データのサイズは、固定され、論理データブロックのサブデータブロックの構造のサイズに対応する。加えて、サブデータブロックのデータは、時には変更されることもあるので、サブデータブロックに対応する対応関係表のレコードは、それに応じて更新されてもよい。一実施形態によると、対応関係表が確立された後、対応関係表は、サブデータブロックのデータ変化に従って更新される必要がある。
【００３７】
したがって、ローカルデータの格納および相互作用は、ステップ301からステップ302において行われる構成操作によって確保される。
【００３８】
ステップ303において、空き状態の少なくとも1つのサブデータブロックが、複数のサブデータブロックのすべてから選択され、ネットワーク記憶装置に格納されたデータが、選択されたサブデータブロックにサービス論理の要件に従って格納される。
【００３９】
この処理では、データを格納し、データ交換を行うたびにネットワークを介してネットワーク記憶装置に接続することによって引き起こされる低効率問題を解決するために、ネットワーク記憶装置に格納されたデータは、ローカル共有メモリの二次元データバッファアレイに格納され、したがって、ローカルデータ格納を達成する。ネットワーク記憶装置に格納されたデータがローカル共有メモリに格納されることになるときは、空きメモリがあるかどうかが最初に決定されることになる。サブデータブロックのそれぞれのデータ格納状況は、データ状態によって識別されるので、したがって、そのデータ状態が空き状態であるサブデータブロックが、サブデータブロックのすべてから選択されてもよく、選択されたサブデータブロックに格納すべきネットワーク記憶装置に格納されたデータは、サービス論理に従って決定されてもよい。この処理のローディング手順は、図2で示されるデータを格納するためのシステムの構造と併せて述べられることになる。
【００４０】
図2では、共有メモリの物理アドレスは、二次元データバッファアレイの構成中にサービス論理プロセスおよびデータ同期プロキシプロセスのそれぞれの論理アドレスに翻訳され、したがって、二次元データバッファアレイのサブデータブロックのそれぞれのアドレスは、サービス論理プロセスおよびデータ同期プロキシプロセスによって取得されてもよい。ネットワーク記憶装置上のデータがサービス論理に従ってローカル共有メモリに格納されるべきと決定されると、サービス論理プロセスは、サービス論理プロセスが置かれる装置のデータインターフェースを介してサブデータブロックのすべてから空き状態の少なくとも1つのサブデータブロックを選択し、データがロードされることになるサブデータブロックの座標(N, n)を取得する。次いで、データローディングメッセージが、サービス論理プロセスが置かれる装置のデータインターフェースを介してメッセージ待ち行列によってデータ同期プロキシプロセスに送られる。データローディングメッセージは、少なくとも選択されたサブデータブロックの座標、操作タイプ、およびロードすべきデータのための識別子を運び、その結果、データ同期プロキシプロセスは、何の操作がどのサブデータブロックに行われるべきかを知ることになる。この処理は、データをロードするためのものであり、したがって、データローディングメッセージで運ばれる操作タイプは、「ローディング」であり、ロードすべきデータのための識別子は、ロードすべきネットワーク記憶装置のデータを識別するために使用される。本実施形態では、データが、ネットワーク記憶装置に格納されるかまたはローカル共有メモリに格納されるかにかかわりなく、キー値は、各データのための識別子として取り込まれる。
【００４１】
データローディングメッセージを受け取った後、データ同期プロキシプロセスは、スレッドプールの待機スレッドを選択し、次いでロードすべきデータが、データローディングメッセージで運ばれるロードすべきデータのキー値に従って待機スレッドを介してネットワーク記憶装置から取得される。本実施形態では、ネットワーク記憶装置は、すべてのデータをデータベースに格納する。データ格納およびデータ交換の効率を改善するために、本実施形態では、データベースのデータの呼び出し頻度があらかじめ決定され、次いで、データがより高い呼び出し頻度からより低い呼び出し頻度までなどの呼び出し頻度に従って格納され、高い呼び出し頻度を有するデータは、バッファ空間に格納され、したがって、ロードすべきデータは、バッファ空間から直接データ同期プロキシプロセスのスレッドによって読み取られてもよく、それによってデータを読み取る効率を改善する。一実施形態によると、データ同期プロキシプロセスのスレッドはまた、システム性能によって可能であり、本実施形態によって制限されない場合、データベースを直接操作してもよい。
【００４２】
ロードすべきデータを取得しながら、データ同期プロキシプロセスのスレッドは、データローディングメッセージによって運ばれるロードすべきデータのキー値に従って、ロードすべきデータについてバッファ空間を探す。バッファ空間がロードすべきデータを含む場合、スレッドは、バッファ空間とデータ同期プロキシプロセスとの間のデータ同期インターフェースを介してロードすべきデータをデータ同期プロキシプロセスに送る。バッファ空間がロードすべきデータを含まない場合、スレッドは、ロードすべきデータについてデータベースを探し、ロードすべきデータをバッファ空間に格納し、バッファ空間とデータ同期プロキシプロセスとの間のデータ同期インターフェースを介してロードすべきデータをデータ同期プロキシプロセスに送る。バッファ空間から直接見いだされたかまたはデータベースから見いだされたロードすべきデータを受け取った後、データ同期プロキシプロセスは、データ同期プロキシプロセスのデータインターフェースを介して、ロードすべきデータを対応するサブデータブロック、すなわちデータローディングメッセージによって運ばれる座標に対応するサブデータブロックに書き込む。ローディングプロセス中に、データがロードされているサブデータブロックのデータ状態は、空き状態から読込み状態に変更される。ローディングプロセスが完了した後、データ状態は、読込み状態から通常状態に変更される。したがって、ネットワーク記憶装置に格納されたデータをローカル共有メモリにロードする手順は終了する。データが、その後に呼び出されるまたは操作される必要がある場合、それは、ネットワークを介してネットワーク記憶装置にアクセスすることによって行われるのではなく、ローカルで行われてもよい。ローカル共有メモリにロードされたデータがサービス論理に従って変更される必要がある場合、変更プロセスは、次の通りである。
【００４３】
ステップ304において、サブデータブロックのデータが、サービス論理に従って変更される。
【００４４】
一実施形態によると、ローカル共有メモリに格納されたデータは、システムが動作するにつれて連続的に変化するので、データは、その後のデータ交換中に更新されることになる可能性が高く、したがって、サブデータブロックに格納されたデータは、変更されることが多い。本実施形態では、データの変更のためのトリガ条件は限定されない。一実施形態においては、サブデータブロックに格納されたデータは、ゲームプレーヤのロールが変わるときまたはロールの状態がオンラインとオフラインとの間で切り替えられるときにサービス論理に従って変更されてもよい。データが変更されると、サービス論理プロセスは、サービス論理プロセスが置かれる装置のデータインターフェースを介してサブデータブロックに格納されたデータを変更されたデータに置き換えてもよい。変更が完了した後、サブデータブロックのデータ状態は、通常状態から変更状態に変更される。
【００４５】
ステップ305において、複数のサブデータブロックのそれぞれのデータ状態が、定期的にポーリングされ、サブデータブロックのデータのデータ状態が変更状態である場合、データは、ネットワーク記憶装置と同期される。
【００４６】
一実施形態によると、二次元データバッファアレイのサブデータブロックのデータが、変更された後、ローカル共有メモリとネットワーク記憶装置との間のデータ同期を保持し、したがって、データ損失を効果的に防止するために、サブデータブロックのそれぞれのデータ状態は、データ同期プロキシプロセスによって定期的にポーリングされ、サブデータブロックのデータのデータ状態が変更状態である場合、データは、ネットワーク記憶装置と同期される。一実施形態によると、データ同期プロキシプロセスは、データ同期プロキシプロセスが置かれる装置のデータインターフェースを介して各サブデータブロックのヘッド構造のデータ状態を定期的にポーリングする。サブデータブロックのデータ状態が変更状態である場合、そのことは、サブデータブロックのデータが変更されたデータであることを意味し、データ同期プロキシプロセスは、データ同期プロキシプロセスが置かれる装置のデータインターフェースを介してサブデータブロックから変更されたデータおよび変更されたデータのキー値を取得し、スレッドプールから待機スレッドを選択する。変更されたデータのキー値と同じキー値を有するバッファ空間のデータは、待機スレッドを介して変更されたデータに置き換えられる。その後、ネットワーク記憶装置は、バッファ空間の変更されたデータをデータベースとすぐに同期してもよく、またはバッファ空間で更新されたデータを検査し、ある時間間隔で変更されたデータをデータベースと一度に同期してもよい。
【００４７】
一実施形態によると、同一の変更されたデータが、その後の処理でネットワーク記憶装置と繰り返し同期されるという場合を防止するために、データ状態が変更状態であるサブデータブロックのデータをネットワーク記憶装置と同期した後、データ同期プロキシプロセスは、データ状態が変更状態であったサブデータブロックのデータ状態を通常状態に変更する。
【００４８】
さらに、一実施形態によると、二次元データバッファアレイのサブデータブロックのデータが頻繁に変更されるとき、データは、ネットワーク記憶装置と頻繁に同期される必要がある。データ同期プロキシプロセスが応答するのに十分な時間を有さない場合、時間超過現象がデータを同期するときに生じることもある。この問題を解決するために、一実施形態によると、データ同期時間超過の時間が所定の構成ポリシに従って構成され、データを同期するときにデータ同期プロキシプロセスによって費やされる時間が監視される。データを同期するときにデータ同期プロキシプロセスによって費やされる時間がデータ同期時間超過の時間を超える場合、データサービス時間超過状態コードが、サービス論理プロセスが置かれる装置のデータインターフェースを介してサービス論理プロセスに返されてもよく、サービス論理プロセスは、データを再度同期するべきかどうかを決定することができる。
【００４９】
加えて、サブデータブロックのデータの変更によって引き起こされるデータ同期操作の他に、サービス論理によると、二次元データバッファアレイのサブデータブロックのデータはもはや、システムが動作するにつれて変化しないこともあり、したがって、データの恒久記憶が必要とされる。データの恒久記憶を達成するために、次のデータ同期操作が必要とされる。
【００５０】
ステップ306において、サブデータブロックのデータが、サービス論理に従ってネットワーク記憶装置と同期され、サブデータブロックに対応する共有メモリが解放される。
【００５１】
ステップ306における同期操作は、ステップ305における同期操作と異なる。ステップ305における同期操作は、ローカル共有メモリとネットワーク記憶装置との間のデータ整合性を保持するために、二次元データバッファアレイのサブデータブロックのデータの変更によって引き起こされる。ステップ306における同期操作は、二次元データバッファアレイのサブデータブロックのデータがもはや、システムが動作するにつれて変化せず、データの恒久記憶が必要とされるということが、サービス論理に従って決定される場合に引き起こされる。データは、システムが動作するにつれて変化しないことになるので、したがって、そのようなデータによって占有される共有メモリは解放されてもよい。
【００５２】
一実施形態によると、図2で示されるように、サービス論理がメモリ空間を解放する必要があるとき、除去すべきデータを格納するサブデータブロックのデータ状態は、サービス論理プロセスによって呼び出されるサービス論理プロセスが置かれる装置のデータインターフェースを介して変更され、すなわち、除去すべきデータを格納するサブデータブロックのデータ状態は、通常状態から除去状態に変更され、次いで、データ同期解放メッセージが、データインターフェースを介してメッセージ待ち行列を通じてデータ同期プロキシプロセスに送られる。データ同期解放メッセージは、除去すべきデータを格納するサブデータブロックの座標、操作タイプ、および除去すべきデータの識別子を運び、その結果、データ同期プロキシプロセスは、何の操作がどのサブデータブロックに対して行われるべきかを決定することができる。この操作は、同期解放操作であるので、データ同期解放メッセージで運ばれる操作タイプは、「除去(remove)」であり、除去すべきデータの識別子は、二次元データバッファアレイのサブデータブロックの除去すべきデータを識別するために使用される。一実施形態によると、データがネットワーク記憶装置に格納されるかまたはローカル共有メモリに格納されるかにかかわりなく、キー値は、各データの識別子として取り込まれる。
【００５３】
データ同期解放メッセージを受け取った後、データ同期プロキシプロセスは、データ同期プロキシプロセスが置かれる装置のデータインターフェースを呼び出すことによってデータ同期解放メッセージで運ばれる座標に対応するサブデータブロックからデータを取得して、スレッドプールの待機スレッドを選択し、その結果、サブデータブロックから取得されたデータは、待機スレッドを介してネットワーク記憶装置のデータベースと同期され、長期間にわたってデータベースによって格納される。
【００５４】
一実施形態によると、データ同期プロキシプロセスによって行われるデータ同期解放操作中に、サービス論理プロセスが置かれる装置のデータインターフェースは、データが完全に除去されるかどうかを定期的に検出する。データ同期解放メッセージで運ばれる座標に対応するサブデータブロックにデータが含まれていないことが検出される場合、除去は完了していると決定される、すなわち、サブデータブロックによって占有される共有メモリが解放される。サブデータブロックのデータ状態は、除去状態から空き状態に変更され、したがって、サブデータブロックは、データをロードするために再び割り当てられてもよい。データ同期解放メッセージで運ばれる座標に対応するサブデータブロックがデータを含む場合、除去は完了していないと決定される。除去が所定の期間の後も完了していない場合、除去は失敗していると決定される、すなわち、サブデータブロックによって占有される共有メモリは、首尾よく解放されず、サブデータブロックのデータ状態は、除去状態から除去指示状態に変更される。所定の期間は、本実施形態では限定されない。
【００５５】
一実施形態によると、サブデータブロックのデータ状態が除去指示である場合、サブデータブロックによって占有される共有メモリを首尾よく解放するために、各サブデータブロックのデータ状態は、データ同期プロキシプロセスによって定期的に問い合わされる。除去指示のデータ状態を有するサブデータブロックが見いだされる場合、データ同期プロキシプロセスによって行われるサブデータブロックのデータをネットワーク記憶装置と同期する処理が引き起こされる。サービス論理プロセスが置かれる装置のデータインターフェースが、除去指示状態のデータ状態を有するサブデータブロックのデータが首尾よく除去されることを検出した後、サブデータブロックのデータ状態は、除去指示状態から空き状態に変更され、その結果、サブデータブロックは、データをロードするために再び割り当てられてもよい。
【００５６】
本開示の実施形態によって提供される方法によると、データは、プリセット構成ポリシに従って拡張可能な二次元データバッファアレイをローカル共有メモリに構成し、サービス論理の要件に従ってネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納することによってローカルで格納され、それによってデータ格納およびデータ交換の効率を改善する。データ構造の拡張可能性は、データを格納するための二次元データバッファアレイが拡張可能であるので改善され、したがって、サービス論理の要件は満たされる。加えて、ローカル共有メモリおよびネットワーク記憶装置のデータは、データブロックのデータが変更された後に変更されたデータをネットワーク記憶装置と同期することによって同期され、それによってデータ損失が回避される。
【００５７】
本開示の一実施形態によると、データを格納するための装置が提供される。本装置は、上記の実施形態によるデータを格納するための方法を行うために使用される。図7を参照すると、本装置は、構成モジュール701と、ローディングモジュール702とを含む。
【００５８】
構成モジュール701は、プリセット構成ポリシに従って拡張可能な二次元データバッファアレイをローカル共有メモリに構成するためのものである。二次元データバッファアレイは、複数の論理データブロックを含み、複数の論理データブロックのそれぞれは、データを格納するための複数のサブデータブロックを含む。
【００５９】
ローディングモジュール702は、サービス論理の要件に従ってネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納するためのものである。
【００６０】
ローカル共有メモリは、複数のプロセッサを有するコンピュータシステムの異なるCPUによってアクセスされてもよい大容量メモリを指す。ローカル共有メモリは、直接読み書きされてもよく、それによってプロセッサの処理効率を改善する。拡張可能な二次元データバッファアレイをローカル共有メモリに構成するために構成モジュール701によって行われる操作は、上記の実施形態のステップ301における処理を指してもよく、その詳細は、本明細書では説明されない。
【００６１】
図8を参照すると、本装置はさらに、設定モジュール703を含んでもよい。設定モジュール703は、複数のサブデータブロックのそれぞれのデータ格納状況に従って、複数のサブデータブロックのそれぞれに対してデータ状態を設定するためのものである。データ状態は、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの1つである。データ状態を設定するために設定モジュール703によって行われる操作は、上記の実施状態で述べられるステップ302における処理を指してもよく、その詳細は、本明細書では説明されない。
【００６２】
図9を参照すると、本装置は、変更モジュール704と、変更同期モジュール705とをさらに含んでもよい。変更モジュール704は、サービス論理に従ってサブデータブロックに格納されたデータを変更するためのものである。変更同期モジュール705は、変更モジュール704によって変更されたデータをネットワーク記憶装置と同期するためのものである。
【００６３】
図10を参照すると、変更同期モジュール705は、ポーリングユニット7051と、変更同期ユニット7052とを含む。ポーリングユニット7051は、複数のサブデータブロックのそれぞれのデータ状態を定期的にポーリングするためのものである。変更同期ユニット7052は、ポーリングユニット7051によってポーリングされた変更状態のデータ状態を有するサブデータブロックのデータをネットワーク記憶装置と同期するためのものである。一実施形態によると、変更同期モジュール705は、サブデータブロックのデータ状態を変更状態から通常状態に変更するための状態変更ユニット7053をさらに含む。サブデータブロックのデータ状態をポーリングするために変更同期モジュール705のポーリングユニットによって行われる操作およびデータを変更するために変更同期ユニット7052によって行われる操作は、上記の実施形態のステップ304における処理を指してもよく、その詳細は、本明細書では繰り返して説明されない。
【００６４】
図11を参照すると、本装置は、解放同期モジュール706と、解放モジュール707とをさらに含んでもよい。
【００６５】
解放同期モジュール706は、サービス論理に従ってサブデータブロックのデータをネットワーク記憶装置と同期するためのものである。解放モジュール707は、解放同期モジュール706がサービス論理に従ってサブデータブロックのデータをネットワーク記憶装置と同期した後、サブデータブロックに対応する共有メモリを除去するためのものである。
【００６６】
さらに、図11を参照すると、解放同期モジュール706は、問い合わせユニット7061と、解放同期ユニット7062とを含む。問い合わせユニット7061は、複数のサブデータブロックのそれぞれのデータ状態を問い合わせるためのものである。解放同期ユニット7062は、問い合わせユニットによって問い合わされた除去指示状態のデータ状態を有するサブデータブロックのデータをネットワーク記憶装置と同期するためのものである。さらに、解放同期モジュール706は、除去指示状態のデータ状態を有するサブデータブロックのデータ状態を通常状態に変更するための状態変更ユニット7063をさらに含む。データ状態を問い合わせるために問い合わせユニット7061によって行われる操作および解放同期ユニット7062によって行われる操作は、上記の実施形態のステップ305における処理を指してもよく、その詳細は、本明細書では説明されない。
【００６７】
図12を参照すると、ローディングモジュール702は、選択ユニット7021と、ローディングユニット7022とを含む。選択ユニット7021は、空き状態のデータ状態を有するサブデータブロックを複数のサブデータブロックのすべてから選択するためのものである。ローディングユニット7022は、サービス論理の要件に従ってネットワーク記憶装置に格納されたデータを選択ユニット7021によって選択されたサブデータブロックに格納するためのものである。さらに、ローディングモジュール702は、選択されたサブデータブロックのデータ状態を空き状態から読込み状態に変更するための状態変更ユニット7023をさらに含む。状態変更ユニット7023は、データのローディングが完了した後、選択されたサブデータブロックのデータ状態を読込み状態から通常状態に変更するためのものである。サブデータブロックを選択するために選択ユニット7021によって使用される方式およびデータをロードするためにローディングユニット7022によって行われる操作は、上記の実施形態のステップ303における処理を指してもよく、その詳細は、本明細書では説明されない。
【００６８】
図13を参照すると、本装置は、確立モジュール708と、更新モジュール709とをさらに含む。確立モジュール708は、二次元データバッファアレイとネットワーク記憶装置との間の対応関係表を確立し、二次元データバッファアレイのサブデータブロックのそれぞれのデータ格納状況を記録するためのものである。対応関係表は、ネットワーク記憶装置に格納される。更新モジュール709は、二次元データバッファアレイのサブデータブロックのデータ変化に従って対応関係表を更新するためのものである。二次元データバッファアレイの論理データブロックのそれぞれは、1つの対応関係表に対応し、論理データブロックのサブデータブロックのそれぞれは、対応関係表の1つのレコードに対応する。
【００６９】
本開示の実施形態によって提供される装置によると、データは、プリセット構成ポリシに従って拡張可能な二次元データバッファアレイをローカル共有メモリに構成し、サービス論理の要件に従ってネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納することによってローカルで格納され、それによってデータ格納およびデータ交換の効率を改善する。データ構造の拡張可能性は、データを格納するための二次元データバッファアレイが拡張可能であるので改善され、したがって、サービス論理の要件は満たされる。加えて、ローカル共有メモリおよびネットワーク記憶装置のデータは、データブロックのデータが変更された後に変更されたデータをネットワーク記憶装置と同期することによって同期され、したがって、データ損失が回避される。
【００７０】
データを格納するとき、本実施形態によるデータを格納するための装置は、実施形態だけのために機能モジュールに分けられることに留意すべきである。実際には、その機能は、要求に応じて異なる機能モジュールによって行われてもよく、すなわち、本装置の内部構造は、上述のすべてのまたは一部の機能を行うための異なる機能モジュールに分けられてもよい。加えて、本実施形態によるデータを格納するための装置およびデータを格納するための方法は、一般概念に属し、そのような装置に関連する実施形態は、本明細書では説明されない。
【００７１】
本明細書で述べられる方法、モジュール、および装置は、ハードウェア、機械可読命令、またはハードウェアと機械可読命令との組み合わせによって実施されてもよい。本明細書で開示される実施形態で使用される機械可読命令は、ハードドライブ、CD-ROM、DVD、コンパクトディスク、フロッピー(登録商標)ディスク、磁気テープドライブ、RAM、ROM、またはその他の適切な記憶装置などの、複数のプロセッサによって読み取ることができる記憶媒体に格納されてもよい。または、機械可読命令の少なくとも一部は、カスタム集積回路、ゲートアレイ、FPGA、PLD、および特定目的コンピュータ等などの、特定目的ハードウェアによって置き換えられてもよい。
【００７２】
機械可読記憶媒体もまた提供され、それは、本明細書で述べられるような方法を機械に実行させるための命令を格納するためのものである。具体的には、上記の実施形態のいずれかの機能を実施するための機械可読プログラムコードを格納し、記憶媒体に格納されたプログラムコードをシステムまたは装置(またはCPUもしくはMPU)に読み取らせて実行させることができる記憶媒体を有するシステムまたは装置である。
【００７３】
その場合、記憶媒体から読み取られるプログラムコードは、上記の実施形態のいずれか1つを実施してもよく、したがって、プログラムコードおよびプログラムコードを格納する記憶媒体は、技術的構想の一部である。
【００７４】
プログラムコードを提供するための記憶媒体は、フロッピー(登録商標)ディスク、ハードドライブ、光磁気ディスク、コンパクトディスク(CD-ROM、CR-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RWなど)、磁気テープドライブ、フラッシュカード、ROM等を含んでもよい。オプションとして、プログラムコードは、通信ネットワークを介してサーバーコンピュータからダウンロードされてもよい。
【００７５】
プログラムコードがコンピュータによって実行されることの別法として、プログラムコードによって行われる操作の少なくとも一部は、上記の実施形態のいずれかの技術的構想を実現するために、プログラムコードに基づく命令に従うコンピュータで動作するオペレーティングシステムによって実施されてもよい。
【００７６】
加えて、記憶媒体から実施されるプログラムコードは、コンピュータに挿入された拡張ボードの記憶装置またはコンピュータに接続された拡張ユニットの記憶装置に書き込まれる。この実施形態では、拡張ボードまたは拡張ユニットのCPUは、上記の実施形態のいずれかの技術的構想を実現するために、プログラムコードに基づく命令に従って操作の少なくとも一部を実行する。
【００７７】
本開示の全体にわたって具体的な説明がなされたが、本開示の代表的な実施形態は、広範囲の応用にわたって有用性を有し、上記の記載は、限定することを意図せず、限定すると解釈されるべきでなく、ただ本開示の態様の例示的議論として提供される。
【符号の説明】
【００７８】
701  構成モジュール
702  ローディングモジュール
7021  選択ユニット
7022  ローディングユニット
7023  状態変更ユニット
703  設定モジュール
704  変更モジュール
705  変更同期モジュール
7051  ポーリングユニット
7052  変更同期ユニット
7053  状態変更ユニット
706  解放同期モジュール
7061  問合せユニット
7062  解放同期ユニット
7063  状態変更ユニット
707  解放モジュール
708  確立モジュール
709  更新モジュール
【図１】
0005851055.tif 000002
【図２】
0005851055.tif 000003
【図３】
0005851055.tif 000004
【図４】
0005851055.tif 000005
【図５】
0005851055.tif 000006
【図６】
0005851055.tif 000007
【図７】
0005851055.tif 000008
【図８】
0005851055.tif 000009
【図９】
0005851055.tif 000010
【図１０】
0005851055.tif 000011
【図１１】
0005851055.tif 000012
【図１２】
0005851055.tif 000013
【図１３】
0005851055.tif 000014