JP5851055B2 - データ格納方法および装置 - Google Patents

データ格納方法および装置 Download PDF

Info

Publication number
JP5851055B2
JP5851055B2 JP2014560227A JP2014560227A JP5851055B2 JP 5851055 B2 JP5851055 B2 JP 5851055B2 JP 2014560227 A JP2014560227 A JP 2014560227A JP 2014560227 A JP2014560227 A JP 2014560227A JP 5851055 B2 JP5851055 B2 JP 5851055B2
Authority
JP
Japan
Prior art keywords
data
sub
state
data block
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014560227A
Other languages
English (en)
Other versions
JP2015509635A (ja
Inventor
▲愛▼民 林
▲愛▼民 林
炯 唐
炯 唐
▲軍▼▲帥▼ 王
▲軍▼▲帥▼ 王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2015509635A publication Critical patent/JP2015509635A/ja
Application granted granted Critical
Publication of JP5851055B2 publication Critical patent/JP5851055B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、コンピュータ技術に関し、より詳しくは、データを格納するための方法および装置に関する。
コンピュータ技術の発達とともに、ゲーム技術は急速に発達しており、ゲームに参加する人の数は、一人から多人数に増加している。人の数が増加するにつれて、ゲーム中に生成されるデータ量は増加し、したがって、サービス論理はより複雑になっている。より良いサービスをユーザーに提供するために、サービス論理によって生成されるデータを効果的に格納することがゲーム製造業者にとって重要である。
従来の解決策では、サービス論理によって生成されたデータが格納されるとき、サービス論理によって生成されたデータは、ネットワークを介してネットワーク記憶装置に送られて、ネットワーク記憶装置上のデータベースに格納される。バッファ空間がネットワーク記憶装置に確立され、高い交換頻度を有するデータは、データ交換の速度を改善するために、バッファ空間に格納される。
しかしながら、ゲーム技術では、データは頻繁に更新され、サービス論理によって生成されたデータがネットワーク記憶装置のバッファ空間に格納されるかまたはネットワーク記憶装置のデータベースに格納されるかにかかわりなく、ネットワークを介してネットワーク記憶装置に繰り返しアクセスすることが必要とされる。ネットワークを介してネットワーク記憶装置にアクセスする手順は、格納効率を低減することもあり、その後のデータ交換の効率に影響を及ぼすこともある。加えて、データベースのデータ構造が固定され、拡張可能でない場合、サービス論理によって必要とされるようなデータ構造変化の要件は満たされないことになる。
本開示の実施態様は、データ構造の拡張可能性を改善しながらデータ格納効率を改善し、サービス論理の要件を満たすように、データを格納するための方法および装置を提供する。
データを格納するための方法は、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するステップであって、二次元データバッファアレイが複数の論理データブロックを含み、複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、ステップと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納するステップとを含む。
データを格納するための装置は、
所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するように構成された構成モジュールであって、二次元データバッファアレイが複数の論理データブロックを含み、複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、構成モジュールと、
サービス論理の要件に従って、ネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納するように構成されたローディングモジュールとを含む。
データは、所定の構成ポリシに従って拡張可能な二次元データバッファアレイをローカル共有メモリに構成し、サービス論理の要件に従ってネットワーク記憶装置上のデータをそのデータに対応するサブデータブロックに格納することによってローカルで格納され、それによってデータ格納およびデータ交換の効率を改善する。データを格納するための二次元データバッファアレイが拡張可能であるので、データ構造の拡張可能性が改善され、したがって、サービス論理の要件は満たされる。加えて、ローカル共有メモリおよびネットワーク記憶装置のデータは、データブロックのデータが変更された後、変更されたデータにネットワーク記憶装置を同期させることによって同期され、したがって、データ損失が回避される。
本開示の実施形態の技術的解決策を明瞭に述べるために、本開示の実施形態で使用される添付の図面が、以下で説明される。添付の図面は、本開示の実施形態の一部である。他の図面が、本開示の添付の図面に基づいて創造的な労力なしに当業者によって得られてもよい。
本開示の一実施形態によるデータを格納するための方法を例示する概略流れ図である。 本開示の一実施形態によるデータを格納するためのシステムの構造を例示する概略図である。 本開示の別の実施形態によるデータを格納するための方法を例示する概略流れ図である。 本開示の一実施形態によるデータ状態の変換を例示する概略図である。 本開示の一実施形態による論理データブロックを例示する概略図である。 本開示の一実施形態による対応関係表を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。 本開示の一実施形態によるデータを格納するための装置を例示する概略図である。
本開示の目的、技術的解決策、および利点をより明らかにするために、本開示は、添付の図面および具体的な実施形態を参照して以下で詳細に例示されることになる。
本開示の一実施形態によると、データを格納するための方法が提供される。図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 更新モジュール

Claims (18)

  1. データを格納するための方法であって、
    所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するステップであって、前記二次元データバッファアレイが複数の論理データブロックを含み、前記複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、ステップと、
    前記複数のサブデータブロックのそれぞれのデータ格納状況に従って、前記複数のサブデータブロックのそれぞれにデータ状態を設定するステップであって、前記データ状態が、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの1つを含む、ステップと、
    サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納するステップと
    サービス論理に従って、あるサブデータブロックに格納されたデータを変更するステップと、
    変更された前記データに前記ネットワーク記憶装置を同期させるステップと
    を有することを特徴とする方法。
  2. 変更された前記データに前記ネットワーク記憶装置を同期させる前記ステップが、
    前記複数のサブデータブロックのそれぞれのデータ状態を定期的にポーリングするステップと、
    あるサブデータブロックのデータ状態が変更状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップと
    を含むことを特徴とする請求項に記載の方法。
  3. 当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップの後に、
    当該サブデータブロックの前記データ状態を変更状態から通常状態に変更するステップをさらに有することを特徴とする請求項に記載の方法。
  4. サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納する前記ステップの後に、
    サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップと、
    当該サブデータブロックに対応する共有メモリを解放するステップと
    をさらに有することを特徴とする請求項に記載の方法。
  5. サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップが、
    前記複数のサブデータブロックのそれぞれのデータ状態を問い合わせるステップと、
    あるサブデータブロックのデータ状態が除去指示状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるステップを含むことを特徴とする請求項に記載の方法。
  6. 当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させる前記ステップの後に、
    当該サブデータブロックの前記データ状態を除去指示状態から通常状態に変更するステップをさらに有することを特徴とする請求項に記載の方法。
  7. サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納する前記ステップが、
    前記複数のサブデータブロックのすべてから、空き状態のデータ状態を有するサブデータブロックを選択するステップと、
    前記サービス論理の前記要件に従って、前記ネットワーク記憶装置上の前記データを選択された前記サブデータブロックに格納するステップと
    を含むことを特徴とする請求項に記載の方法。
  8. 前記ネットワーク記憶装置上の前記データを選択された前記サブデータブロックに格納する前記ステップの後に、
    選択された前記サブデータブロックの前記データ状態を空き状態から読込み状態に変更するステップと、
    前記データの読込みが完了した後、選択された前記サブデータブロックの前記データ状態を読込み状態から通常状態に変更するステップと
    をさらに有することを特徴とする請求項に記載の方法。
  9. 所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成する前記ステップの後に、
    前記二次元データバッファアレイと前記ネットワーク記憶装置との間の対応関係表を確立するステップと、
    前記二次元データバッファアレイ中のサブデータブロックのデータ変化に従って、前記対応関係表を更新するステップと
    をさらに有し、
    前記対応関係表は、前記ネットワーク記憶装置に格納され、前記二次元データバッファアレイの前記複数のサブデータブロックのそれぞれのデータ格納状況を記録し、
    前記二次元データバッファアレイの前記複数の論理データブロックのそれぞれが、1つの対応関係表に対応し、
    前記論理データブロックの前記複数のサブデータブロックのそれぞれが、前記対応関係表の1つのレコードに対応することを特徴とする請求項1からのいずれか一項に記載の方法。
  10. データを格納するための装置であって、
    所定の構成ポリシに従って、拡張可能な二次元データバッファアレイをローカル共有メモリに構成するように構成された構成モジュールであって、前記二次元データバッファアレイが複数の論理データブロックを含み、前記複数の論理データブロックのそれぞれがデータを格納するための複数のサブデータブロックを含む、構成モジュールと、
    前記複数のサブデータブロックのそれぞれのデータ格納状況に従って、前記複数のサブデータブロックのそれぞれにデータ状態を設定するように構成された設定モジュールであって、前記データ状態が、空き状態、読込み状態、通常状態、変更状態、除去状態、および除去指示状態のうちの1つを含む、設定モジュールと、
    サービス論理の要件に従って、ネットワーク記憶装置上のデータを該データに対応するサブデータブロックに格納するように構成されたローディングモジュールと
    サービス論理に従って、あるサブデータブロックに格納されたデータを変更するように構成された変更モジュールと、
    前記変更モジュールによって変更された前記データに前記ネットワーク記憶装置を同期させるように構成された変更同期モジュールと
    を具備することを特徴とする装置。
  11. 前記変更同期モジュールが、
    前記複数のサブデータブロックのそれぞれのデータ状態を定期的にポーリングするように構成されたポーリングユニットと、
    前記ポーリングユニットによってポーリングされたサブデータブロックのデータ状態が変更状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された変更同期ユニットと
    を含むことを特徴とする請求項10に記載の装置。
  12. 前記変更同期モジュールが、
    当該サブデータブロックの前記データ状態を変更状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項11に記載の装置。
  13. サービス論理に従って、あるサブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された解放同期モジュールと、
    前記解放同期モジュールが、前記サービス論理に従って、当該サブデータブロックの前記データに前記ネットワーク記憶装置を同期させた後、当該サブデータブロックに対応する共有メモリを解放するように構成された解放モジュールと
    をさらに含むことを特徴とする請求項10に記載の装置。
  14. 前記解放同期モジュールが、
    前記複数のサブデータブロックのそれぞれのデータ状態を問い合わせるように構成された問い合わせユニットと、
    前記問い合わせユニットによって問い合わされたサブデータブロックのデータ状態が除去指示状態である場合、当該サブデータブロックのデータに前記ネットワーク記憶装置を同期させるように構成された解放同期ユニットと
    を含むことを特徴とする請求項13に記載の装置。
  15. 前記解放同期モジュールが、
    当該サブデータブロックの前記データ状態を除去指示状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項14に記載の装置。
  16. 前記ローディングモジュールが、
    前記複数のサブデータブロックのすべてから、空き状態のデータ状態を有するサブデータブロックを選択するように構成された選択ユニットと、
    前記サービス論理の前記要件に従って、前記ネットワーク記憶装置上の前記データを前記選択ユニットによって選択された前記サブデータブロックに格納するように構成されたローディングユニットと
    を含むことを特徴とする請求項10に記載の装置。
  17. 前記ローディングモジュールが、
    前記選択ユニットによって選択された前記サブデータブロックの前記データ状態を空き状態から読込み状態に変更し、前記データの読込みが完了した後、前記選択ユニットによって選択された前記サブデータブロックの前記データ状態を読込み状態から通常状態に変更するように構成された状態変更ユニットをさらに含むことを特徴とする請求項16に記載の装置。
  18. 前記二次元データバッファアレイと前記ネットワーク記憶装置との間の対応関係表を確立するように構成された確立モジュールと、
    前記二次元データバッファアレイ中のサブデータブロックのデータ変化に従って、前記対応関係表を更新するように構成された更新モジュールと
    をさらに具備し、
    前記対応関係表は、前記ネットワーク記憶装置に格納され、前記二次元データバッファアレイの前記複数のサブデータブロックのそれぞれのデータ格納状況を記録し、
    前記二次元データバッファアレイの前記複数の論理データブロックのそれぞれが、1つの対応関係表に対応し、
    前記論理データブロックの前記複数のサブデータブロックのそれぞれが、前記対応関係表の1つのレコードに対応することを特徴とする請求項10から17のいずれか一項に記載の装置。
JP2014560227A 2012-03-09 2013-03-01 データ格納方法および装置 Active JP5851055B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210061555.8 2012-03-09
CN201210061555.8A CN103309818B (zh) 2012-03-09 2012-03-09 存储数据的方法及装置
PCT/CN2013/072042 WO2013131443A1 (zh) 2012-03-09 2013-03-01 存储数据的方法及装置

Publications (2)

Publication Number Publication Date
JP2015509635A JP2015509635A (ja) 2015-03-30
JP5851055B2 true JP5851055B2 (ja) 2016-02-03

Family

ID=49115942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014560227A Active JP5851055B2 (ja) 2012-03-09 2013-03-01 データ格納方法および装置

Country Status (9)

Country Link
US (1) US20150006486A1 (ja)
EP (1) EP2824893B1 (ja)
JP (1) JP5851055B2 (ja)
KR (1) KR101663215B1 (ja)
CN (1) CN103309818B (ja)
BR (1) BR112014021885B1 (ja)
MX (1) MX352050B (ja)
PH (1) PH12014501932A1 (ja)
WO (1) WO2013131443A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL235729A (en) * 2014-11-17 2017-06-29 Kaluzhny Uri A device and method for securely storing information
CN107040396A (zh) * 2016-02-03 2017-08-11 博雅网络游戏开发(深圳)有限公司 配置信息获取方法和装置
CN107346307B (zh) * 2016-05-04 2021-02-26 北京京东尚科信息技术有限公司 分布式缓存系统及方法
CN107562775B (zh) 2017-07-14 2020-04-24 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107608627B (zh) * 2017-08-21 2020-10-02 云宏信息科技股份有限公司 一种远端数据分级存储方法、电子设备及存储介质
CN108073687B (zh) * 2017-11-17 2020-09-08 阿里巴巴集团控股有限公司 随机游走、基于集群的随机游走方法、装置以及设备
CN108566552B (zh) * 2018-04-20 2021-05-25 四川长虹网络科技有限责任公司 适用于数字机顶盒的多媒体播放方法及系统
CN109284236B (zh) * 2018-08-28 2020-04-17 北京三快在线科技有限公司 数据预热方法、装置、电子设备及存储介质
CN112448983B (zh) * 2019-09-02 2023-09-19 广州彩熠灯光股份有限公司 一种将多个物理设备集群为一逻辑设备的方法
CN113971195A (zh) * 2020-07-23 2022-01-25 北京字节跳动网络技术有限公司 同步数据方法、装置、电子设备和介质
CN115617770B (zh) * 2022-11-17 2023-03-28 达芬骑动力科技(北京)有限公司 一种用于车辆状态信号数据存储的数据磁盘存储管理方法
CN116107517B (zh) * 2023-04-11 2023-06-09 远江盛邦(北京)网络安全科技股份有限公司 数据同步方法、装置、电子设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269608B2 (en) * 2001-05-30 2007-09-11 Sun Microsystems, Inc. Apparatus and methods for caching objects using main memory and persistent memory
JP2005004282A (ja) * 2003-06-09 2005-01-06 Nec Corp ディスクアレイ装置、ディスクアレイ装置の管理方法及び管理プログラム
CN1279455C (zh) * 2003-11-14 2006-10-11 清华大学 光纤通道-存储区域网络系统的逻辑单元号高速缓存方法
US7117310B2 (en) * 2004-02-18 2006-10-03 Lsi Logic Corporation Systems and methods for cache synchronization between redundant storage controllers
US7272687B2 (en) * 2005-02-01 2007-09-18 Lsi Corporation Cache redundancy for LSI raid controllers
JP4819369B2 (ja) * 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
US8035650B2 (en) * 2006-07-25 2011-10-11 Qualcomm Incorporated Tiled cache for multiple software programs
US20080091895A1 (en) * 2006-10-11 2008-04-17 Inventec Corporation Cache data backup method and system for computer clustering systems
CN101329657A (zh) * 2007-06-19 2008-12-24 瑞达信息安全产业股份有限公司 一种用于多应用间的安全共享动态内存系统和方法
JP4430092B2 (ja) * 2007-08-28 2010-03-10 富士通株式会社 Raid装置、raid装置の制御部およびraid装置のライトバック制御方法
CN101398821A (zh) * 2007-09-26 2009-04-01 新奥特硅谷视频技术有限责任公司 基于本地缓存和虚拟文件系统技术的网络存储方法及系统
CN101431525B (zh) * 2007-11-06 2012-08-29 北京傲游天下科技有限公司 网络内容加载的加速方法、系统及其服务器和终端
CN101330510A (zh) * 2008-06-19 2008-12-24 腾讯数码(深圳)有限公司 下发目录树数据的方法、系统和服务器,以及一种客户端
US8868838B1 (en) * 2008-11-21 2014-10-21 Nvidia Corporation Multi-class data cache policies
WO2011149564A1 (en) * 2010-05-28 2011-12-01 Tetris Online, Inc. Interactive hybrid asynchronous computer game infrastructure
CN102035881B (zh) * 2010-11-19 2013-01-16 清华大学 一种云端存储系统的数据缓存方法
CN103609117B (zh) * 2011-06-16 2017-07-04 飞思卡尔半导体公司 编码和解码图像的方法及装置

Also Published As

Publication number Publication date
BR112014021885A2 (ja) 2017-06-20
US20150006486A1 (en) 2015-01-01
CN103309818A (zh) 2013-09-18
WO2013131443A1 (zh) 2013-09-12
EP2824893A1 (en) 2015-01-14
MX2014010780A (es) 2014-10-14
PH12014501932B1 (en) 2014-11-24
EP2824893B1 (en) 2018-06-13
KR20140133603A (ko) 2014-11-19
MX352050B (es) 2017-11-06
EP2824893A4 (en) 2015-05-27
KR101663215B1 (ko) 2016-10-14
PH12014501932A1 (en) 2014-11-24
BR112014021885B1 (pt) 2022-05-17
JP2015509635A (ja) 2015-03-30
CN103309818B (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
JP5851055B2 (ja) データ格納方法および装置
US11023448B2 (en) Data scrubbing method and apparatus, and computer readable storage medium
CN105426439B (zh) 一种元数据的处理方法和装置
TWI746511B (zh) 資料表連接方法及裝置
CN106603319B (zh) 一种故障处理的方法、管理服务器以及逻辑服务器
CN108319623A (zh) 一种数据重分布方法、装置及数据库集群
CN107623703A (zh) 全局事务标识gtid的同步方法、装置及系统
CN105681426B (zh) 异构系统
CN108664520A (zh) 维护数据一致性的方法、装置、电子设备和可读存储介质
US20140351210A1 (en) Data processing system, data processing apparatus, and storage medium
EP2378434A1 (en) Mehtod and device of multiple disks grouping hot standby in distributed file system
WO2023155591A1 (zh) 进度信息管控方法、微服务装置、电子设备及存储介质
CN102917036A (zh) 一种基于Memcached的分布式缓存数据同步实现方法
CN112052104A (zh) 基于多机房实现的消息队列的管理方法及电子设备
CN106775846A (zh) 用于物理服务器的在线迁移的方法及装置
US9432476B1 (en) Proxy data storage system monitoring aggregator for a geographically-distributed environment
CN113672591A (zh) 数据迁移方法、系统、存储介质及电子设备
JP2003318897A (ja) 通信システム、コネクション管理サーバ装置及びプログラム
CN112148222B (zh) 数据库硬盘的配置方法、装置、存储介质及电子装置
CN111124275A (zh) 一种分布式块存储系统的监控服务优化方法及装置
CN114900456B (zh) 一种mac地址管理装置及方法
CN105573815B (zh) 一种虚拟机迁移的方法及装置
WO2021168618A1 (zh) redis集群扩容方法、装置、电子设备以及存储介质
WO2023246241A1 (zh) 数据处理系统、数据处理方法、装置及相关设备
US20210004475A1 (en) Computer apparatus, data sharing system, and data access method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151201

R150 Certificate of patent or registration of utility model

Ref document number: 5851055

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250