JP2013088920A - 計算機システム及びデータ管理方法 - Google Patents
計算機システム及びデータ管理方法 Download PDFInfo
- Publication number
- JP2013088920A JP2013088920A JP2011227046A JP2011227046A JP2013088920A JP 2013088920 A JP2013088920 A JP 2013088920A JP 2011227046 A JP2011227046 A JP 2011227046A JP 2011227046 A JP2011227046 A JP 2011227046A JP 2013088920 A JP2013088920 A JP 2013088920A
- Authority
- JP
- Japan
- Prior art keywords
- value
- file
- information
- storage area
- storage
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】分散メモリキャッシュに配置されるキー・バリュー型データにおいて、複数のアプリケーションが同一のバリューを共有できるように管理する。
【解決手段】データを格納する複数の第1の計算機と、複数の第1の計算機の各々に格納されるデータを管理する第2の計算機とを備える計算機システムであって、計算機システムは、複数の第1の計算機が提供する記憶領域を統合して生成されたストレージを備え、ストレージは、第1のアクセス情報と第1の検索キーとを含む第1の分割データ、及び、第1のファイルのバリューを格納し、第2の計算機は、アプリケーションから第1のファイルの分割データの配置要求を受け付けた場合に、第2の検索キーを生成し、第1のファイルのバリューが共有バリューであるか否かを判定し、共有バリューであると判定された場合、第2の検索キーと第1のアクセス情報とを含む第2の分割データをストレージに格納する。
【選択図】図1
【解決手段】データを格納する複数の第1の計算機と、複数の第1の計算機の各々に格納されるデータを管理する第2の計算機とを備える計算機システムであって、計算機システムは、複数の第1の計算機が提供する記憶領域を統合して生成されたストレージを備え、ストレージは、第1のアクセス情報と第1の検索キーとを含む第1の分割データ、及び、第1のファイルのバリューを格納し、第2の計算機は、アプリケーションから第1のファイルの分割データの配置要求を受け付けた場合に、第2の検索キーを生成し、第1のファイルのバリューが共有バリューであるか否かを判定し、共有バリューであると判定された場合、第2の検索キーと第1のアクセス情報とを含む第2の分割データをストレージに格納する。
【選択図】図1
Description
本発明は、データを分散して配置するストレージを備える計算機システム及びデータ管理方法に関する。
近年、計算機システムにおいてアプリケーションプログラムが処理すべきデータ量は爆発的に増えてきている。計算機システムが扱うデータ量の増大に伴う処理時間の増加によって、バッチジョブなどの処理が所定の時間内に終わらないといった問題が生じてきている。このため、大量のデータを高速に処理することが要求されており、これを実現するために、例えば、多数のサーバに大量のデータを並列処理させることによって処理の高速化を図る要求が増大してきている。
従来のアプリケーションプログラムでは、一般に、データをファイル形式またはデータベース(DB)の表形式で扱っている。アプリケーションプログラム毎に、ファイル及び表の使い方が異なっている。特に、メインフレームが使われるような基幹業務処理では、プログラミング言語としてCOBOLを用いて、アプリケーションプログラムが作成される。前述したようなアプリケーションプログラムでは、ファイル及び表をレコードの集合としてデータが扱われる。
レコードは、アプリケーションプログラムが処理するデータの基本単位であり、アプリケーションプログラムは、レコード単位でデータの入出力を行う。1件のレコードには、一連の関連する情報が格納されており、当該情報の各項目はフィールドと呼ばれる。金融機関で扱われるような情報を例にすると、1件の取引情報がレコードに、口座番号、店番号、及び商品コードといった各項目がフィールドに相当する。
アプリケーションプログラムは、ファイルからレコードを1件ずつ順次読み出して所定の処理を実行する。従来のアプリケーションプログラムが前述したような形式のデータを並列して処理する場合、データをレコード単位で分割して処理を実行させる方法が考えられる。
データを分割する理由としては、アプリケーションプログラムはレコードを一件ずつ読み出して処理を実行するため、単にデータの複製を生成し、複数のサーバが当該データを処理するだけでは、各サーバの処理量は変わらないためである。
レコード単位のデータの分割という観点では、データベースをキーによってレコード単位で分割する分散データベース技術がある(例えば、特許文献1参照)。特許文献1には、キーレンジによってデータベースに格納されるデータをレコード毎に分割し、処理の並列化を実現する技術が記載されている。
また、データの並列処理に関する技術として、各サーバが共有するディスク上で稼動する非共有データベースシステムにおいて負荷の平準化を行う技術がある(例えば、特許文献2参照)。特許文献2には、複数のデータベースサーバから構成され、データ領域を細分化し、データベースサーバへの各データ領域の割り当てを変えることによってデータベースサーバ間でのデータの受渡しを可能とし、データ処理の並列性を高める技術が記載されている。
一方、大量のデータを、多数のサーバを使って高速に処理するための技術として、例えば、非特許文献1に示されるような分散メモリキャッシュ技術が提案されている。分散メモリキャッシュ技術は、複数のサーバのメモリを統合して、大量のデータを格納するメモリ空間を構成する技術である。データの分割配置による処理の並列化と、メモリにデータを保持することによる入出力の高速化とを実現することを目的としている。
分散メモリ技術では、大量のデータを複数のサーバに分散させるために、キー・バリュー型データ形式が採用される。キー・バリュー型データは、データの識別子であるキーと、データの本体であるバリュー(値)とを対応づけたデータ構造であり、[キー、バリュー]の組み合わせで管理される。一つのキー・バリュー型データをエントリとも記載する。
分散メモリ技術では、キーの範囲(キーレンジ)に応じてデータを複数のサーバに分割配置し、分割配置されたデータを各サーバ上で稼動するアプリケーションが並列に処理することによって処理を高速化する。
"GemFire Enterprise" Technical White Paper 2007GemStone Systems Inc.
データソースが表形式又はレコードから構成されるファイルのような構造のデータの場合、アプリケーションプログラム毎に、キーとするフィールドが異なる。例えば、店番号に着目したアプリケーションプログラムは店番号をキーとするキー・バリュー型データを扱うのに対して、口座番号に着目したアプリケーションプログラムは口座番号をキーとするキー・バリュー型データを扱う。
したがって、同一レコードでも、キー・バリュー型データとしては、アプリケーション毎に異なるデータとなる。このとき、あるアプリケーションプログラムからバリューが更新された場合に、他のアプリケーションが扱うキー・バリュー型データのバリューに当該更新が反映されない場合がある。バリューの更新を反映するためには、更新されたエントリに対応するデータソースへバリューの更新を反映し、さらに、当該レコードを参照するアプリケーションプログラムに対して、キーとする別のフィールドを指定して、エントリを生成し直す必要がある。
また、二つのアプリケーションプログラムが同一レコードのそれぞれ異なるレコードのフィールドを更新したとき、データソースへの書き戻し時に、一つのアプリケーションプログラムによって更新されたフィールドが上書きされてしまう場合がある。
本発明の代表的な一例を示せば以下の通りである。すなわち、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、データを格納する複数の第1の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記複数の第1の計算機の各々に格納されるデータを管理する第2の計算機と、を備える計算機システムであって、前記計算機システムは、前記複数の第1の計算機が提供する記憶領域を統合して生成されたストレージを備え、前記第2の計算機は、複数のレコードを含むファイルを分割して、検索キーと、前記レコードの内容を示すバリューとを対応づけた分割データを前記ストレージに分散して格納するローダ処理部、及び、前記ファイルを格納するファイル格納部を有し、前記ストレージを構成する前記記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データと前記ファイルとの対応関係を管理する対応情報を格納し、前記複数の第1の計算機の各々は、ファイルデータ単位のデータを処理するアプリケーション、及び、前記ストレージを管理するストレージ管理部を有し、前記分割データを管理する分割データ管理情報を格納し、前記ストレージは、第1のファイルのバリューにアクセスするための第1のアクセス情報と、第1の検索キーとを含む第1の分割データ、及び、前記第1のファイルのバリューを格納し、前記第2の計算機は、前記アプリケーションから、第2の検索キーの情報を含む第1のファイルの前記分割データの配置要求を受け付けた場合に、前記アプリケーションから指定された前記第2の検索キーを生成し、前記第1のファイルのバリューが複数の前記アプリケーションによって共有される共有バリューであるか否かを判定し、前記第1のファイルのバリューが共有バリューであると判定された場合、前記第2の検索キーと前記第1のアクセス情報とを含む第2の分割データを前記ストレージに格納することを特徴とする。
本発明によれば、複数のアプリケーションによって生成されるエントリにおいて、同一のバリューを共有できるようにエントリを構成することによって、ファイルからエントリを生成し直す必要がない。また、同一のバリューを共有できるため、一つのエントリの更新が他のアプリケーションが参照する他のエントリにも反映できる。
[第1の実施形態]
図1は、本発明の第1の実施形態における計算機システムの構成例を示すブロック図である。
図1は、本発明の第1の実施形態における計算機システムの構成例を示すブロック図である。
第1の実施形態の計算機システムは、ホストコンピュータ101、複数のホストコンピュータ102、ストレージ装置103及び共有ストレージ装置105から構成される。
ホストコンピュータ101は、ネットワーク104を介してホストコンピュータ102と接続される。また、各ホストコンピュータ102は共有ストレージ装置105と接続される。ネットワーク104は、LAN及びWAN等が考えられるが、本発明はネットワーク104の種別に限定されない。なお、共有ストレージ装置105は、ネットワーク104を介して接続されてもよい。
本実施形態では、計算機システムが備える記憶領域を統合して分散メモリキャッシュが生成される。本実施形態の分散メモリキャッシュは、各ホストコンピュータ102が備えるメモリ領域から生成される分散領域171と、共有ストレージ装置105の記憶領域から生成される共有領域172とから構成される。
分散メモリキャッシュには、キー・バリュー型データ(エントリ191)が格納される。本実施形態では、分散領域171にエントリ191が格納される。エントリ191には、少なくともキーが含まれ、バリューは必ずしも含まれない。この場合、エントリ191は、バリュー192にアクセスするための情報を含む。本実施形態では、バリュー192は、分散領域171又は共有領域172のいずれかに格納される。なお、エントリ191の詳細については後述する。
分散メモリキャッシュは、ホストコンピュータ102から共有デバイスと同様にアクセスすることが可能である。処理対象となるデータを分散メモリキャッシュに格納することによって、データがストレージ装置103に格納される場合と比較して入出力処理が高速になる。
また、ホストコンピュータ101は、ストレージ装置103と接続される。ストレージ装置103には、処理対象となるデータソース117が格納される。ストレージ装置103は、データソース117を永続的に保持できるものであればどのようなものでもよい。ストレージ装置103は、例えば、HDD等の記憶媒体を複数備えるストレージシステム、フラッシュメモリを記憶媒体として用いた半導体ディスク装置及び光ディスク装置等が考えられる。
また、本実施形態では、処理の対象とされるデータソース117は、ファイル及びDBのテーブルを使用するものとして説明する。ただし、本発明はデータソース117の格納形式に限定されず、キー・バリュー・ストア(KVS)など永続的にデータを保持することができれば、データの格納形式は特に問わない。
ホストコンピュータ101は、プロセッサ111、メモリ113、及びインタフェース(I/F)115A、115Bを備える。ホストコンピュータ101は、インタフェース115Aを介してストレージ装置103と接続され、また、ホストコンピュータ101は、インタフェース115Bを介してホストコンピュータ102と接続される。
プロセッサ111は、メモリ113に格納されるプログラムを実行する。プロセッサ111が、メモリ113に格納されるプログラムを実行することによって、後述するホストコンピュータ101の機能が実現される。
メモリ113は、プロセッサ111が実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。メモリ113は、例えば、DRAMのような半導体メモリが考えられ、ストレージ装置103に比べ高速にアクセスすることができる。
本実施形態のメモリ113は、データソース管理部121及びローダ部131を実現するためのプログラムを格納し、また、分散メモリキャッシュ構成情報181、データソース情報182、及び対応情報183を格納する。
データソース管理部121は、ストレージ装置103に格納されたデータソース117を管理し、データソース117に対する入出力処理を実行する。
ローダ部131は、データソース管理部121と協調して、ストレージ装置103に格納されるデータソース117を分散メモリキャッシュへ分散配置し、また、分散メモリキャッシュに格納されるキー・バリュー型データ(エントリ191)をストレージ装置103へ格納する。ローダ部131は、分散メモリキャッシュ構成情報181、データソース情報182、及び対応情報183を参照して前述した処理を実行する。
以下では、ストレージ装置103に格納されるデータソース117を分散メモリキャッシュに分散して配置する処理をロード処理と記載する。また、分散メモリキャッシュに格納されるキー・バリュー型データを、ストレージ装置103へ格納する処理をアンロード処理と記載する。
分散メモリキャッシュ構成情報181は、分散メモリキャッシュを構成する分散領域171及び共有領域172に関する情報を格納する。分散メモリキャッシュ構成情報181の詳細については、図3を用いて後述する。
データソース情報182は、ファイル及びDBの表などのデータソース117に関する情報を格納する。データソース情報182の詳細については、図4を用いて後述する。
対応情報183は、データソース117と、分散メモリキャッシュに配置されたエントリ191との対応関係に関する情報を格納する。対応情報183の詳細については、図5を用いて後述する。
なお、メモリ113に格納されるプログラム及びデータは、常にメモリ113上に格納される必要はなく、ストレージ装置103又は図示しない外部記憶装置等に格納されてもよい。この場合、必要に応じて、プログラム又はデータがストレージ装置103又は外部記憶装置からメモリ113に読み出される。なお、データを読み出す場合には、データの一部又は全部を読み出すことができる。
なお、データソース管理部121及びローダ部131は、プログラムによって実現しているが本発明はこれに限定されない。例えば、専用のハードウェアを用いてデータソース管理部121及びローダ部131が備える機能を実現してもよい。
ホストコンピュータ102は、プロセッサ112、メモリ114、及びインタフェース(I/F)116を備える。ホストコンピュータ102は、インタフェース116Aを介してホストコンピュータ101及び他のホストコンピュータ102と接続される。また、ホストコンピュータ102は、インタフェース116Bを介して共有ストレージ装置105と接続される。
ここでは、ホストコンピュータ102は同一の構成であるものとして説明するが、以下に説明する機能及び処理を実現できるものであれば、必ずしも同一の構成でなくてもよい。
プロセッサ112は、メモリ114に格納されるプログラムを実行する。プロセッサ112が、メモリ114に格納されたプログラムを実行することによって後述するホストコンピュータ102の機能が実現される。
メモリ114は、プロセッサ112が実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。メモリ114は、例えば、DRAMのような半導体メモリが考えられ、ストレージ装置103に比べ高速にアクセスすることができる。
本実施形態のメモリ114は、分散メモリキャッシュ管理部141を実現するためのプログラム、及びアプリケーションプログラム(UAP)161を格納する。また、メモリ114は、分散メモリキャッシュを構成する分散領域171を含む。
分散メモリキャッシュ管理部141は、他のホストコンピュータ102の分散メモリキャッシュ管理部141と協調して、分散メモリキャッシュを構成する分散領域171及び共有領域172を管理する。また分散メモリキャッシュ管理部141は、分散メモリキャッシュへのアクセスを制御する。
分散メモリキャッシュ管理部141は、エントリ配置管理部142、共有領域アクセス管理部143、共有バリュー管理情報144、及び共有領域管理情報145を含む。また、図示していないが、分散メモリキャッシュ管理部141は、エントリ191の配置場所を管理するための情報であるファイル管理情報を含む。
分散メモリキャッシュ管理部(図示省略)は、分散メモリキャッシュの管理機能を提供する。エントリ配置管理部142は、エントリ191が格納される記憶領域を管理する。共有領域アクセス管理部143、共有領域172へのアクセスを管理する。
共有バリュー管理情報144は、共有領域172に格納されるバリュー192に関する情報を格納する。なお、共有バリュー管理情報144の詳細については、図9を用いて後述する。共有領域管理情報145は、共有領域172の管理情報を格納する。なお、共有領域管理情報145の詳細については、図10を用いて後述する。また、図示していないファイル管理情報には、データソースの識別子及びエントリの格納位置を示す情報などが格納される。
なお、メモリ114に格納されるプログラム及びデータは、常にメモリ114上に格納される必要はなく、図示しないストレージ装置、又は図示しない外部記憶装置等に格納されてもよい。この場合、必要に応じて、プログラム又はデータがディスク装置又は外部記憶装置からメモリ114に読み出される。なお、データを読み出す場合には、データの一部又は全部を読み出すことができる。
前述したデータソース管理部121及び分散メモリキャッシュ管理部141は、図示しないオペレーティングシステム(OS)の一部、又は、図示しないユーザアプリケーションプログラムによって使用される入出力ライブラリとして提供されてもよい。また、専用のハードウェアを用いてデータソース管理部121及び分散メモリキャッシュ管理部141が備える機能を実現してもよい。
共有ストレージ装置105は、記憶媒体としてフラッシュメモリを用いた半導体ディスク装置等、通常のディスク装置よりランダムアクセス特性に優れた装置を用いるものとするが、物理的又は論理的に共有可能なストレージ装置であれば、記憶媒体の種類は問わない。本実施形態では、共有ストレージ装置105の記憶領域に、分散メモリキャッシュを構成する共有領域172が確保される。
なお、図1のホストコンピュータ102は、物理的な計算機である必要はなく、論理計算機でもよい。この場合、プロセッサ112、メモリ114、及びインタフェース116等の計算機リソースは、仮想化プログラム(図示省略)等によって論理的な計算機リソースとして論理計算機に割り当てられる。
図2は、本発明の第1の実施形態におけるデータソース117の構成例を示す説明図である。図2では、データソース117がファイルである場合について説明する。
ファイル2100は、UAP161によって処理されるデータの基本単位となる複数のレコードから構成される。図2に示す例では、ファイル2100は、レコード2101、レコード2102、レコード2103、レコード2104を含む。
各レコード2101、2102、2103、2104は、一連の関連する情報を格納する複数のフィールド2111、2112、2113から構成される。図2に示す例では、各レコードは、フィールド2111、フィールド2112、及びフィールド2113を含む。
一般に、システムの制約の範囲内において、1つのファイルは任意の数のレコードを含むことができ、また、1つのレコードは任意の数のフィールドを含むことができる。例えば、商品取引業務で用いられるようなデータの場合、1件の取引における取引情報からレコードが構成され、口座番号、店番号、及び商品コード等の個々の情報(データ)がフィールドに記録される。
UAP161は、レコードを処理単位としてI/O処理を実行し、ファイルに対してレコードを1件ずつ入出力することによって処理を実行する。本実施形態では、ファイル2100は、任意のフィールドをキーとして、レコード単位に分割される。なお、レコードは、UAP161が実行する処理に適合するように分割される。
分割されたファイル2100のデータ、すなわち、キー・バリュー型データは、複数のホストコンピュータ102上のUAP161にそれぞれ割り当てられ、各UAP161が、割り当てられたキー・バリュー型データを用いて処理を実行する。前述したように、複数のUAP161が、一つのファイル2100が分割されたキー・バリュー型データを並列に処理することによって、1つのUAP161が処理するデータ量を削減することができる。したがって、処理の高速化を実現できる。
図3は、本発明の第1の実施形態における分散メモリキャッシュ構成情報181の構成例を示す説明図である。
分散メモリキャッシュ構成情報181は、総サイズ201、分散領域サイズ202、分散領域使用率203、共有領域サイズ204及び共有領域使用率205を含む。
総サイズ201は、分散メモリキャッシュ全体のサイズを格納する。具体的には、分散領域171のサイズと、共有領域172のサイズとの総和が格納される。本実施形態では、分散領域サイズ202及び共有領域サイズ204を足し合わせた値が分散メモリキャッシュのサイズとなる。
分散領域サイズ202は、分散メモリキャッシュを構成する全ての分散領域171の総サイズを格納する。具体的には、分散領域サイズ202には、各ホストコンピュータ102の分散領域171のサイズの総和が格納される。分散領域使用率203は、分散領域171の使用率を格納する。
共有領域サイズ204は、共有領域172のサイズを格納する。共有領域使用率205は、共有領域172の使用率を格納する。
分散メモリキャッシュ構成情報181は、ロード処理の実行時に、十分な記憶領域があるか否かの判定するために用いられる。詳細には述べないが、十分な記憶領域がない場合には、記憶領域を確保するための処理が実行される。記憶領域を確保するための処理としては、例えば、アンロード処理、及び、分散領域171と共有領域172との間のエントリ191の移行処理などが考えられる。
図4は、本発明の第1の実施形態におけるデータソース情報182の構成例を示す説明図である。
データソース情報182は、データソース識別情報301、レコード定義情報302及び配置指定情報303を含む。
データソース識別情報301は、ストレージ装置103に格納される複数のデータソース117を一意に識別するための識別情報を格納する。データソース識別情報301には、データソース117を一意に識別できる情報であればどのような情報が格納されてもよい。例えば、データソース識別情報301には、フルパスのファイル名又はDBにおけるテーブル名などが格納される。
なお、データソース117の管理方法によっては、データソース117を保持するストレージ装置103及びホストコンピュータ101の識別情報が必要な場合がある。前述のような場合には、データソース識別情報301に、ストレージ装置103及びホストコンピュータ101の識別情報が含まれる。
なお、データソース117に対応するデータソース情報182が一意に特定できればよいため、データソースの属性など、データソースと1対1で対応づけられるように管理されている場合には、データソース識別情報301は必要ない。
レコード定義情報302は、データソース117におけるレコードの構造に関する情報を格納する。なお、レコード定義情報302の詳細については、図6用いて後述する。
配置指定情報303は、ロード処理の実行時に、配置先の記憶領域を指定するための情報を格納する。配置指定情報303には、例えば、「分散領域」、「共有領域」又は「指定なし」などの情報が格納される。
「分散領域」が格納される場合、エントリ191のキーにしたがって、所定のキーレンジのエントリ191を管理するホストコンピュータ102の分散領域171に当該エントリ191及びバリュー192が優先的に配置される。「共有領域」が格納される場合、所定のホストコンピュータ102の分散領域171にエントリ191が配置され、共有領域172にバリュー192が優先的に配置される。また、「指定なし」が格納される場合、格納先の記憶領域が指定されていないことを示す。
図5は、本発明の第1の実施形態における対応情報183の構成例を示す説明図である。
対応情報183は、データソース識別情報401、参照数402、領域利用情報403及びロード識別情報404を含む。
データソース識別情報401は、データソース117を一意に識別するための識別情報を格納する。データソース識別情報401は、データソース識別情報301と同一ものである。
参照数402は、データソース117が分散メモリキャッシュにロードされた回数を格納する。すなわち、参照数402は、UAP161によって扱われるキー・バリュー型データの数を示す。本実施形態では、参照数402に基づいて1つのデータソースが複数のUAP161によって共有されているか否かが判定される。
領域利用情報403は、バリュー192が格納される記憶領域の種別を格納する。すなわち、領域利用情報403には、バリュー192が分散領域171又は共有領域172のいずれに格納されているかを示す情報が格納される。
ロード識別情報404は、ロード処理が実行される毎に、ローダ部131が返す識別情報を格納する。本実施形態では、アンロード処理を実行する場合に、ロード識別情報405に基づいて、分散メモリキャッシュに格納されるエントリ191のうち、どのエントリ191がアンロード処理の対象であるかが判定される。
図6は、本発明の第1の実施形態におけるレコード定義情報302の構成例を示す説明図である。
レコード定義情報302は、データソース117におけるレコードを構造に関する情報を格納する。本実施形態では、レコード定義情報302に基づいて、データソース117をレコード単位に分割できる。レコード定義情報302は、レコード構成501及びフィールド構成502を含む。
レコード構成501は、データソース117におけるレコード構造を把握するための情報を格納し、レコードデリミタ511、レコード種別512及びレコード長513を含む。
レコードデリミタ511は、レコードと他のレコードとの間を区切る文字コードを示す情報を格納する。レコードデリミタ511には、例えば、改行を表す文字コードなどを用いることが考えられる。
レコード種別512は、データソース117におけるレコードが固定長レコード又は可変長レコードのいずれであるかを示す情報を格納する。レコード種別512に固定長レコードを示す情報が格納される場合、データソース117は、同一かつ所定の長さのレコードから構成される。レコード種別512に可変長レコードを示す情報が格納される場合、データソース117は、レコードの長さがそれぞれ異なるレコードから構成される。
レコード長513は、レコード種別512に固定長レコードを示す情報が格納される場合に、1つのレコードの長さを示す情報を格納する。
なお、レコード構成501にはレコードの構造を把握することができる情報が含まれていればよく、レコードデリミタ511、レコード種別512、及びレコード長513のすべての情報を含む必要はない。例えば、固定長のレコードである場合、レコードデリミタ511はレコード構成501に含まれていなくてもよい。
フィールド構成502は、レコードに含まれるフィールドを識別するための情報を格納するものであり、フィールドデリミタ521、フィールド数522、及びフィールド情報523を含む。
フィールドデリミタ521は、フィールドと他のフィールドとの間を区切る文字コードを示す情報を格納する。フィールドデリミタ521には、例えば、空白を表す文字コードなどを用いることが考えられる。
フィールド数522は、1つのレコードに含まれるフィールドの数を格納する。
フィールド情報523は、対応するフィールドに記録されるデータに関する情報を格納し、フィールド種別531、フィールド長532及び記述形式533を含む。
フィールド種別531は、レコード種別512に可変長レコードを示す情報が格納される場合、対応するフィールドが可変長フィールド又は固定長フィールドのいずれであるかを示す情報を格納する。
フィールド長532は、対応するフィールドの大きさを示す情報を格納する。記述形式533は、ASCII、バイナリ等、対応するフィールドに記録されたデータの記述形式を格納する。
なお、フィールド構成502は、レコードに含まれるフィールドを把握することができればよいため、フィールドデリミタ521、フィールド数522、及びフィールド情報523のすべての情報を含む必要はない。例えば、フィールド情報523のフィールド長532が指定されていれば、フィールドデリミタ521の情報はフィールド構成502に含まれなくてもよい。
データソース117が固定長レコードから構成される場合、レコード長513に設定された値によって個々のレコードを認識することができる。一方、データソース117が可変長レコードから構成される場合、各レコードの先頭には、そのレコードの大きさを記録するフィールドが設けられ、当該フィールドに基づいてレコードの区切れを判定することができる。レコードが可変長レコードである場合、フィールド構成502に格納される情報に基づいて最初のフィールドが識別され、レコードサイズを算出することができる。レコードが認識された後は、フィールド構成502のフィールド数522、及びフィールド情報523のフィールド長532を参照することによってフィールドを把握できる。
図7は、本発明の第1の実施形態におけるUAP161のソースプログラムの一例を示す説明図である。
図7は、COBOL言語を用いて記述されたUAP161のソースコードを示す。COBOL言語を用いて記述されたUAP161では、プログラム中にデータソースとしてのファイルのレコード構造が定義される。
図7に示す例では、DATA DIVISIONのFILE SECTION602においてファイルの構造が定義される。プログラムに用いられる各ファイルは、一つのファイル記述項(FD)と、それに続く一つ以上のレコード記述項とによって定義される。本実施形態において、レコード定義情報302のレコード構成501及びフィールド構成502には、FILE SECTION602に記述された情報が格納される。
図8は、本発明の第1の実施形態におけるエントリ191のデータ構成の一例を示す説明図である。
エントリ191は、分散メモリキャッシュ管理部141が、UAP161によって指定されたキーに対応するバリュー192を取得するための情報を格納する。エントリ191は、キー701、領域利用情報702、格納位置情報703、及び共有バリュー管理情報ポインタ705を含む。
キー701は、エントリ191におけるキーを格納する。
領域利用情報702は、エントリ191に対応するバリュー192が配置される記憶領域に関する情報を格納する。本実施の形態では、領域利用情報702には、「分散領域」又は「共有領域」のいずれかが格納される。領域利用情報702は、ローダ部131がバリュー192を配置する場合、又は、分散メモリキャッシュ管理部141がバリュー192の配置場所を変更する場合に設定される。
領域利用情報702に「分散領域」が格納される場合、バリュー192が分散領域171に格納されることを示す。すなわち、同一のデータソース117を扱うUAP161が存在しないことを示す。一方、領域利用情報702に「共有領域」が格納される場合、バリュー192が共有領域172に格納されることを示す。すなわち、複数のUAP161が同一のデータソース117を扱うことを示す。
なお、エントリ191の論理的なデータ構造については、図11、図12及び図13を用いて後述する。
格納位置情報703は、バリューにアクセスするための情報、すなわち、バリューの格納位置を示す情報を格納する。
領域利用情報702に「分散領域」が格納される場合、格納位置情報703には、自ホストコンピュータ102の分散領域171に格納されるバリュー192、又は、分散領域171に格納されるバリュー192の格納位置を示す情報が格納される。バリュー192の格納位置を示す情報としては、メモリアドレス等が考えられる。
領域利用情報702に「共有領域」が格納される場合、格納位置情報703には、共有領域172に格納されるバリュー192の格納位置を示す情報が格納される。
共有バリュー管理情報ポインタ704は、共有領域172に格納されるバリュー192を管理する共有バリュー管理情報144へのポインタを格納する。
以下では、共有領域に格納されるバリュー192を共有バリュー192とも記載する。
図9は、本発明の第1の実施形態における共有バリュー管理情報144の構成例を示す説明図である。
共有バリュー管理情報144は、ロード処理においてエントリ191が生成される時に生成される。また、共有バリュー管理情報144は、分散メモリキャッシュからエントリ191が消去される時に削除される。
共有バリュー管理情報144は、データソース識別情報801、レコード識別情報802、格納位置情報803、共有数804、エントリポインタ805及び共有領域管理情報ポインタ806を含む。
データソース識別情報801及びレコード識別情報802は、エントリ191と、データソース117のレコードとを対応付けるための情報である。具体的には、データソース識別情報801は、ストレージ装置103に格納される複数のデータソース117を一意に識別するための識別情報を格納する。データソース識別情報801は、データソース識別情報301と同一の情報である。
レコード識別情報802は、データソース117のレコードを識別するための情報を格納する。レコード識別情報802には、例えば、データソース117に含まれるレコードのレコード番号又は行番号などを用いることが考えられるが、レコードを識別できればどのような情報が格納されてもよい。
格納位置情報803は、エントリ191のバリュー192の格納位置を示す情報を格納する。格納位置情報803は、格納位置情報703と同一のものである。
共有数804は、バリュー192を共有するUAP161の数を格納する。
エントリポインタ805は、エントリ191の格納位置を示すポインタを格納する。
共有領域管理情報ポインタ806は、共有領域172に格納されたバリュー192の一貫性を制御するための情報である共有領域管理情報145へのポインタを格納する。
図10は、本発明の第1の実施形態における共有領域管理情報145の構成例を示す説明図である。
共有領域管理情報145は、共有領域172に格納されたバリュー192の一貫性を保つために必要な情報を格納する。共有領域管理情報145は、格納位置情報901、共有バリュー管理情報ポインタ902、更新権管理情報903及び参照権管理情報904を含む。
格納位置情報901は、共有バリュー192の格納位置を示す情報を格納する。具体的には、共有領域172に格納されるバリュー192の格納位置を示す情報が格納される。
共有バリュー管理情報ポインタ902は、共有バリュー管理情報144へのポインタを格納する。共有バリュー管理情報ポインタ902は、共有バリュー管理情報ポインタ704と同一のものである。
更新権管理情報903は、共有バリュー192の更新処理の権限を有するホストコンピュータ102の識別情報を格納する。参照権管理情報904は、共有バリュー192の参照処理の権限を有するホストコンピュータ102の識別情報を格納する。更新権管理情報903及び参照権管理情報904には、例えば、ホストコンピュータ102のIPアドレス、マックアドレスなどが格納される。なお、ホストコンピュータ102を識別できるものであれば、更新権管理情報903及び参照権管理情報904にはどのような情報が格納されてもよい。
なお、本実施形態では、共有領域管理情報145は共有バリュー管理情報144からポイントされているが、共有バリュー192の一貫性を保つことができるデータ構造であればどのようなものであってもよい。この場合、分散メモリキャッシュ管理部141が管理する必要はない。例えば、共有ストレージ装置105に構築された共有ファイルシステムを用いて、共有バリュー192と共有ファイルシステムのファイルとを対応付けることによって、共有ファイルシステムの管理プログラムが共有バリュー192の一貫性制御を行う方法が考えられる。
以下、本発明におけるエントリ191の構造について説明する。
図11、図12及び図13は、本発明の第1の実施形態におけるエントリ191の論理的なデータ構成の一例を示す説明図である。
図11は、バリュー192が分散領域171に格納される場合におけるエントリ191の論理的なデータ構成を示す。図11に示す例では、エントリ191は、キー701、領域利用情報702、及びバリュー192を一つの組としたデータとして認識される。
分散メモリキャッシュ管理部141は、UAP161から指定されたキー701を含むアクセス要求を受信した場合に、指定されたキーに対応するエントリ191の領域利用情報702を参照することによって、バリュー192が分散領域171に格納されていると判定する。さらに、分散メモリキャッシュ管理部141は、所定のバリュー192にアクセスして、UAP161に応答する。
図12は、バリュー192が共有領域172に格納される場合におけるエントリ191の論理的なデータ構成を示す。図12に示す例では、エントリ191は、キー701、領域利用情報702、共有バリュー格納位置情報1103、及び共有バリュー192を一つの組としてデータとして認識される。
分散メモリキャッシュ管理部141は、UAP161から指定されたキー701を含むアクセスを受信した場合に、指定されたキーに対応するエントリ191の領域利用情報702を参照することによって、バリュー192が共有領域172に格納されていると判定する。さらに、分散メモリキャッシュ管理部141は、共有バリュー格納位置情報1103を参照して共有バリュー192の格納位置を特定し、共有バリュー192にアクセスして、UAP161に応答する。共有バリュー格納位置情報1103としては、例えば、共有ストレージ装置105におけるデータの格納場所を示すブロックアドレス及びバリューのサイズ情報などが考えられる。ただし、共有バリュー192の格納位置を一意に識別できるものであれば、共有バリュー格納位置情報1103はどのような情報であってもよい。
図13は、共有領域172に格納される場合におけるエントリ191の論理的なデータ構成を示す。図13に示すエントリでは、共有バリュー格納位置情報1103の代わりに、共有バリューを一意に識別する共有バリュー識別情報1203を用いる点が異なる。
共有バリュー識別情報1203としては、例えば、共有ストレージ装置105上に構築された共有ファイルシステムにおけるファイル名又はデータソース識別情報301と、データソース117におけるレコード番号(又は行番号)とを組み合わせたものが考えられる。
図13に示すように、共有バリュー192についても、キー・バリュー型データのエントリ191となるように分散メモリキャッシュに格納することによって、同一のデータ構造のエントリ191を分散領域171及び共有領域172に格納することができる。
図14は、本発明の第1の実施形態におけるロード処理の詳細を説明するフローチャートである。
ローダ処理は、ローダ部131によって実行される。ローダ部131は、データソース117から分散メモリキャッシュへデータをロードする場合に、以下で説明するローダ処理を開始する。
なお、ロード処理の実行時には、ロード対象のデータソース117と、キーとすべき情報とが指定される。キーとすべき情報は、UAP161が何に着目して処理を行うかに依存する。例えば、図2に示すファイル2100を例にすると、キーとすべきフィールドを指定することが考えられる。
ローダ部131は、指定されたロード対象のデータソース117及び指定されたキーとすべき情報に基づいて、エントリを生成する(ステップS1401)。具体的には、以下のような処理が実行される。
ローダ部131は、指定されたデータソース117の識別情報に基づいてデータソース情報182を特定し、データソース情報182のレコード定義情報302を参照することによってデータソース117のレコード構造を把握する。
ローダ部131は、把握したレコード構造に基づいてキーが生成し、また、エントリ191を生成する。ローダ部131は、エントリ191のキー701に生成されたキーを設定する。以上がステップS1401の処理である。
次に、ローダ部131は、対応情報183の参照数402を更新する(ステップS1402)。具体的には、ローダ部131は、参照数402の値を「1」インクリメントする。ローダ部131は、参照数402の値に基づいて、現在分散メモリキャッシュ上に同一のデータソース117がロードされているか否かを判定できる。
ローダ部131は、指定されたデータソース117の配置場所が指定されているか否かを判定する(ステップS1403)。具体的には、以下のような処理が実行される。
ローダ部131は、データソース情報182の配置指定情報303を参照して、配置場所が指定されているか否かを判定する。配置指定情報303に「分散領域」又は「共有領域」が格納される場合には、指定されたデータソース117の配置場所が指定されていると判定される。一方、配置指定情報303に「指定なし」が格納される場合、指定されたデータソース117の配置場所が指定されていないと判定される。
指定されたデータソース117の配置場所が指定されていないと判定された場合、ローダ部131は、参照数402が「2」以上であるか否かを判定する(ステップS1404)。これは、配置場所が指定されていない場合には、ローダ部131がデータソース117の配置場所を決定するための処理である。
参照数402が「2」より小さい場合、複数のUAP161によってバリュー192が共有されないため、配置場所として分散領域171が選択される。一方、参照数402が「2」以上である場合、複数のUAP161によってバリュー192が共有されるため、配置場所として共有領域172が選択される。
参照数402が「2」以上であると判定された場合、ローダ部131は、バリュー192が共有領域172に格納済みであるか否かを判定する(ステップS1405)。具体的には、ローダ部131は、対応情報183の領域利用情報403を参照して、バリュー192が共有領域172に格納されているか否かを判定する。
バリュー192が共有領域172に格納済みであると判定された場合、ローダ部131は、エントリ191を分散領域171に配置し(ステップS1407)、処理を終了する。具体的には、以下のような処理が実行される。
ローダ部131は、エントリ191の領域利用情報702に「共有領域」を設定し、また、エントリ191の格納位置情報703に共有バリュー192を参照するための情報を設定する。格納位置情報703には、共有バリュー格納位置情報1103、又は、共有バリュー識別情報1203を用いることが考えられる。
さらに、ローダ部131は、キーの範囲にしたがって、所定のホストコンピュータ102の分散領域171に生成されたエントリ191を配置する。また、ローダ部131は、共有バリュー管理情報144及び共有領域管理情報145を生成して、各ホストコンピュータ102に送信する。以上がステップS1407の処理である。
バリュー192が共有領域172に格納済みでないと判定された場合、ローダ部131は、共有領域172にバリュー192を配置し、さらに、分散領域171にエントリ191を配置して(ステップS1406)、処理を終了する。具体的には、以下のような処理が実行される。
まず、ローダ部131は、共有領域172にバリューを格納するための領域を確保する。ローダ部131は、データソース117からデータを読み出して、共有領域172に共有バリュー192をロードする。
さらに、ローダ部131は、エントリ191の領域利用情報702に「共有領域」を設定し、また、格納位置情報703に共有バリュー192を参照するための情報を設定する。さらに、ローダ部131は、キーの範囲にしたがって、所定のホストコンピュータ102の分散領域171に生成されたエントリ191を配置する。また、ローダ部131は、共有バリュー管理情報144及び共有領域管理情報145を生成して、各ホストコンピュータ102に送信する。
なお、既に、同一のバリュー192を共有するエントリ191が分散領域171に存在する場合、ローダ部131は、分散領域171から共有領域172へ当該エントリ191が共有するバリュー192をコピーする。その後、ローダ部131は、既存のエントリ191に対応するバリュー192が格納されていた分散領域171の領域を無効化する。さらに、新規エントリ191、及び、既存のエントリ191の領域利用情報702に「共有領域」を設定し、また、格納位置情報703に共有バリュー192を参照するための情報を設定する。なお、新規エントリ191は、キーの範囲にしたがって、所定のホストコンピュータ102の分散領域171に配置される。
ステップS1403において、指定されたデータソース117の配置場所が指定されていると判定された場合、ローダ部131は、指定された配置場所が共有領域172であるか否かを判定する(ステップS1408)。具体的には、ローダ部131は、データソース情報182の配置指定情報303に「共有領域」が格納されているか否かを判定する。
指定された配置場所が共有領域172であると判定された場合、ローダ部131は、ステップS1405に進む。
指定された配置場所が共有領域172でないと判定された場合、ローダ部131は、分散領域171にエントリ191及びバリュー192を配置し(ステップS1409)、処理を終了する。このとき、ローダ部131は、エントリ191の領域利用情報702に「分散領域」を設定し、また、格納位置情報703にバリュー192にアクセスするための情報が設定される。
なお、配置場所として分散領域171が指定された場合には、データソース117がロードされた数にかかわらず、エントリ191を分散領域171にロードする。これによって、従来の分散メモリキャッシュと同様に、複数のUAP161間でバリュー192を共有しないエントリ191を利用することができる。
なお、ロード処理終了後に、ローダ部131が返り値として応答する識別情報が、対応情報183のロード識別情報405に格納される。
なお、ステップS1406及びステップS1407では、ローダ部131が必要な情報をホストコンピュータ102に送信し、分散メモリキャッシュ管理部141が共有バリュー管理情報144及び共有領域管理情報145を生成してもよい。
エントリ191へのアクセス方法については、従来のアクセス方法と同一のものであるため説明を省略する。
図15A及び図15Bは、本発明の第1の実施形態におけるアンロード処理の詳細を説明するフローチャートである。
分散メモリキャッシュからデータソース117へデータをアンロードする場合に、ローダ部131が以下で説明するアンロード処理を実行する。ホストコンピュータ102上のUAP161がデータ処理を実行した後に、分散メモリキャッシュからストレージ装置103のデータソース117へアンロードするときに、ホストコンピュータ101上のローダ部131が実行される。
なお、アンロード処理の実行時には、対応情報183のロード識別情報404に格納される情報が指定される。これによって、ローダ部131は、アンロード対象のエントリ191を識別できる。さらに、ローダ部131は、対応情報183のデータソース識別情報401を参照して、アンロード対象となるデータソース117を特定できる。
ローダ部131は、データソース情報182の配置指定情報303を参照して、指定されたデータソース117の配置場所が指定されているか否かを判定する(ステップS1501)。
例えば、配置指定情報303に「分散領域」又は「共有領域」が格納される場合には、指定されたデータソース117の配置場所が指定されていると判定される。一方、配置指定情報303に「指定なし」が格納される場合、指定されたデータソース117の配置場所が指定されていないと判定される。
データソース117の配置場所が指定されていると判定された場合、ローダ部131は、指定された配置場所が共有領域172であるか否かを判定する(ステップS1502)。具体的には、ローダ部131は、データソース情報182の配置指定情報303に「共有領域」が格納されているか否かを判定する。
指定された配置場所が共有領域172でないと判定された場合、ローダ部131は、対応するデータソース117に、分散領域171に格納されるバリュー192の値を反映する(ステップS1503)。具体的には、ローダ部131は、更新されたバリュー192の値を対応するデータソース117に書き込む。なお、バリュー192が更新されていない場合には、当該処理を省略することができる。
ローダ部131は、対応情報183の参照数402を更新する(ステップS1504)。具体的には、ローダ部131は、参照数402の値を「1」デクリメントする。これによって、現在のロード回数を管理できる。
さらに、ローダ部131は、エントリ191を分散メモリキャッシュから削除し(ステップ1505)、処理を終了する。このとき、分散領域171に格納されるバリュー192も合わせて削除される。
ステップS1502において、指定された配置場所が共有領域172であると判定された場合、ローダ部131は、参照数402が「1」以下であるか否かを判定する(ステップS1509)。
参照数402が「1」以下であると判定された場合、ローダ部131はステップS1503に進み、参照数402が「1」より大きいと判定された場合、ローダ部131はステップS1504に進む。
ステップS1501において、データソース117の配置場所が指定されていないと判定された場合、ローダ部131は、配置場所の変換処理を実行する(ステップS1506〜ステップS1508)。
まず、ローダ部131は、参照数402が「1」以下であるか否かを判定する(ステップS1506)。
参照数402が「1」以下であると判定された場合、当該アンロード処理によって、同一のデータソース117から生成されたエントリ191が分散メモリキャッシュから全てが削除される。したがって、ローダ部131は、バリュー192の更新を反映するためにステップS1503に進む。なお、ステップS1504において、ローダ部131は、共有バリュー管理情報144及び共有領域管理情報145の削除命令を各ホストコンピュータ102に通知する。
参照数402が「1」より大きいと判定された場合、ローダ部131は、参照数402が「3」以上であるか否かを判定する(ステップS1507)。
参照数402が「3」以上であると判定された場合、ローダ部131は、エントリ191を削除するためにステップS1504に進む。
参照数402が「3」より小さい、すなわち、参照数402が「2」であると判定された場合、ローダ部131は、共有バリュー192を共有領域172から分散領域171に移行し(ステップS1508)、ステップS1504に進む。これは、指定されたエントリ191が削除された後、共有バリュー192は、1つのUAP161からのみ参照されるため共有領域172に格納する必要がないためである。
なお、このとき、ローダ部131は、バリュー192の移行に伴ってエントリ191を更新する。すなわち、図12又は図13に示すようなエントリ191から、図11に示すようなエントリ191に変換する。具体的には、領域利用情報702に「分散領域」が格納され、共有バリュー管理情報ポインタ705が削除される。また、格納位置情報703には、分散領域171におけるバリュー192の格納位置を示す情報が格納される。
また、ステップS1504において、ローダ部131は、共有バリュー管理情報144及び共有領域管理情報145の削除命令を各ホストコンピュータ102に通知する。
なお、第1の実施形態では、ホストコンピュータ101が、ローダ部131等を備えるものとして説明したが、本発明はこれに限定されない。例えば、少なくとも一つのホストコンピュータ102が、ストレージ装置103と接続され、また、ローダ部131、及びデータソース管理部121等を備えていてもよい。
第1の実施形態によれば、異なるアプリケーションによって同一のレコードから生成されたキー・バリュー型データ(エントリ)に対して、複数のアプリケーションがバリューを共有できるようにデータを管理できる。これによって、同一のデータソースからエントリを作成し直す必要なく、一つのアプリケーションによってバリューが更新された場合に、他のアプリケーションがアクセスするエントリにも反映することが可能になる。したがって、分散メモリキャッシュにおけるデータの一貫性を保つことができる。
[第2の実施形態]
第1の実施形態では、ホストコンピュータ102に接続される共有ストレージ装置105上に共有領域172を構成していたが、第2の実施形態では、各ホストコンピュータ102のメモリ114上に共有領域172を構成する点が異なる。以下、第1の実施形態との差異を中心に第2の実施形態について説明する。
第1の実施形態では、ホストコンピュータ102に接続される共有ストレージ装置105上に共有領域172を構成していたが、第2の実施形態では、各ホストコンピュータ102のメモリ114上に共有領域172を構成する点が異なる。以下、第1の実施形態との差異を中心に第2の実施形態について説明する。
図16は、本発明の第2の実施形態における計算機システムの構成例を示すブロック図である。
ホストコンピュータ101の構成は、第1の実施形態と同一であるため説明を省略する。
第2の実施形態における計算機システムは、共有ストレージ装置105を備えていない。第2の実施形態では、ホストコンピュータ102が、メモリ114上に共有領域1601を構成する。ここで、分散領域171及び共有領域1601に格納される情報は、それぞれ、第1の実施形態における分散領域171及び共有領域172に格納される情報と同一である。なお、図13に示すエントリ191の共有バリュー識別情報1203と共有バリュー1104とから構成されるキー・バリュー型データを共有領域1601に格納することがより望ましい。
通常のキー701に加え、共有バリュー識別情報1203を、共有バリュー192を一意に識別するキーとして利用することによって、キー・バリュー型データを実現するフレームワークにおいて、第1の実施形態よりも容易に共有バリュー192を管理することが可能になる。
バリュー192の共有が必要のないキー・バリュー型データは分散領域171に、バリュー192の共有が必要なキー・バリュー型データは共有領域1601に配置される。このとき、分散領域171には通常のキーを第一段階のキーとしたエントリを配置し、共有領域1601には共有バリュー識別情報1203を第二段階のキーとしたエントリを配置することによって、多段のキー構造でバリュー192の共有が実現できる。すなわち、共有領域1601に格納されるバリューについてもエントリ191と同様の構成にすることができる。
また、本実施形態では、分散領域171及び共有領域172を別々に構成しているが、本発明はこれに限定されず、一つの領域においてエントリ191とバリュー192とを管理してもよい。すなわち、図12及び図13のようなエントリ191を生成できれば、共有バリュー192がどのような記憶領域に格納していてもよい。
なお、その他の構成、及び処理は、第1の実施形態と同一であるため説明を省略する。
第2の実施形態によれば、共有ストレージ装置105を利用することなく、複数のアプリケーションによって共有されるバリューを認識することによって、同一のデータソースを介してエントリを作成し直す必要なく、一つのアプリケーションから生成されたエントリへの更新が、他のアプリケーションがアクセスするエントリへ反映することが可能になる。
[第3の実施形態]
第3の実施形態では、ホストコンピュータ102のメモリ114の分散メモリキャッシュ管理部141が、分散メモリキャッシュにおけるエントリ191のアクセス統計情報を取得し、当該情報に基づいて分散領域171と共有領域172との間の移行条件を判定する処理を含む点が第1の及び第2の実施形態と異なる。
第3の実施形態では、ホストコンピュータ102のメモリ114の分散メモリキャッシュ管理部141が、分散メモリキャッシュにおけるエントリ191のアクセス統計情報を取得し、当該情報に基づいて分散領域171と共有領域172との間の移行条件を判定する処理を含む点が第1の及び第2の実施形態と異なる。
以下、第1の実施形態との差異を中心に第3の実施形態について説明する。
図17は、本発明が第3の実施形態における計算機システムの構成例を示すブロック図である。
分散メモリキャッシュ管理部141が、アクセス統計情報1701及び移行条件情報1702を含む点が第1の実施形態と異なる。
アクセス統計情報1701は、分散メモリキャッシュにおけるエントリ191へのアクセスに関する統計情報を格納する。移行条件情報1702は、バリュー192を共有領域172に移行するための判定基準、及び、共有バリュー192を分散領域171に移行するための判定基準に関する情報を格納する。
他の構成は、第1の実施形態と同一であるため説明を省略する。
図18は、本発明の第3の実施形態におけるエントリ191の構成例を示す説明図である。
第3の実施形態の共有バリュー管理情報144は、新たにアクセス統計情報ポインタ1801を含む。アクセス統計情報ポインタ1801は、アクセス統計情報1701へのポインタを格納する。アクセス統計情報1701にエントリ191ごとのアクセス情報を格納することによって、エントリ単位のバリュー192の配置場所の変更ができる。
図19は、本発明の第3の実施形態におけるアクセス統計情報1701の構成例を示す説明図である。
アクセス統計情報1701は、アクセス回数1901及び更新回数1902を含む。
アクセス回数1901は、対応するエントリ191への参照及び更新などのアクセス回数を格納する。更新回数1902は、対応するエントリ191への更新に関するアクセス回数を格納する。なお、本実施形態では、アクセス統計情報1701に格納される情報として、アクセス回数1901と更新回数1902とを用いているが、本発明はこれに限定されない。
図20は、本発明の第3の実施形態における移行条件情報1602の構成例を示す説明図である。
移行条件情報1602は、共有領域移行条件2001及び分散領域移行条件2002を含む。
共有領域移行条件2001は、バリュー192が分散領域171に格納されている場合に、共有領域172に移行させるための条件を格納する。
例えば、共有領域移行条件2001には、アクセス統計情報1701に含まれる更新回数1902の閾値が格納される。この場合、設定された閾値を超えるとバリュー192が分散領域171から共有領域172に移行される。また、共有領域移行条件2001にアクセス回数に対する更新回数の比率の閾値を格納しもよい。
分散領域移行条件2002は、バリュー192が共有領域172に格納されている場合に、分散領域171に移行させるための条件を格納する。
例えば、分散領域移行条件2002には、アクセス統計情報1701に含まれるアクセス回数1901に対する更新回数1902の比率の閾値を格納する。この場合、設定された閾値を下回ると共有バリュー192が共有領域172から分散領域171に移行される。
図21は、本発明の第3の実施形態におけるデータ移行処理を説明するフローチャートである。
データ移行処理は、キー・バリュー型データのエントリがロードされるとき、エントリがデータソース117にアンロードされるときに、エントリ配置管理部142によって実行される。また、データ移行処理は、エントリのロード及びアンロードのときに限らず、ジョブネット実行時のジョブ実行の合間や、周期的に実行されてもよい。
エントリ配置管理部142は、対象とするエントリ191のバリュー192が共有領域172に格納されているか否かを判定する(ステップS2101)。具体的には、エントリ配置管理部142は、エントリ191の領域利用情報702を参照して、バリュー192が共有領域172に格納されているか否かを判定する。
バリューが共有領域172に格納されていると判定された場合、エントリ配置管理部142は、エントリ191を参照してアクセス統計情報1701を取得し、共有領域移行条件を満たすか否かを判定する(ステップS2102)。
具体的には、エントリ配置管理部142は、エントリ191のアクセス統計情報ポインタ1801を参照してアクセス統計情報1701を取得する。エントリ配置管理部142は、移行条件情報1702と、取得された1701とを参照して、共有領域移行条件を満たすか否かを判定する。これは、仮に共有領域移行条件と、分散領域移行条件とが同時に満たされた場合に、現在格納されている共有領域172を優先して使用するための判定処理である。
共有領域移行条件を満たすと判定された場合、エントリ配置管理部142は、処理を終了する。
共有領域移行条件を満たさないと判定された場合、エントリ配置管理部142は、エントリ191を参照してアクセス統計情報1701を取得し、分散領域移行条件を満たすか否かを判定する(ステップS2103)。ステップS2103の処理は、ステップS2102の処理と同様の処理であるため説明を省略する。
分散領域移行条件を満たさないと判定された場合、エントリ配置管理部142は、処理を終了する。
分散領域移行条件を満たすと判定された場合、エントリ配置管理部142は、バリュー192を共有領域172から分散領域171に移行する(ステップS2104)。このとき、エントリ配置管理部142には、エントリ191にバリュー192が設定される。なお、エントリ191にバリュー192が設定されなくてもよい。この場合、エントリ配置管理部142が、分散領域171に格納されるバリュー192へのポインタを生成し、生成されたポインタをエントリ配置管理部142に設定してもよい。
エントリ配置管理部142は、アクセス統計情報1701のリセット処理を実行して(ステップS2105)、処理を終了する。なお、アクセス統計情報1701のリセット処理は必ず実行する必要は無く、必要な場合にのみ実行すればよい。
ステップS2101において、バリューが共有領域172に格納されていないと判定された場合、エントリ配置管理部142は、エントリ191を参照してアクセス統計情報1701を取得し、分散領域移行条件を満たすか否かを判定する(ステップS2106)。
具体的には、エントリ配置管理部142は、エントリ191のアクセス統計情報ポインタ1801を参照してアクセス統計情報1701を取得する。エントリ配置管理部142は、移行条件情報1702と、取得されたアクセス統計情報1701とを参照して、分散領域移行条件を満たすか否かを判定する。これは、仮に分散領域移行条件と、共有領域移行条件とが同時に満たされた場合に、現在格納されている分散領域171を優先して使用するための判定処理である。
分散領域移行条件を満たすと判定された場合、エントリ配置管理部142は、処理を終了する。
分散領域移行条件を満たさないと判定された場合、エントリ配置管理部142は、エントリ191を参照してアクセス統計情報1701を取得し、共有領域移行条件を満たすか否かを判定する(ステップS2107)。ステップS2107の処理は、ステップS2106の処理と同様の処理であるため説明を省略する。
共有領域移行条件を満たさないと判定された場合、エントリ配置管理部142は、処理を終了する。
共有領域移行条件を満たすと判定された場合、エントリ配置管理部142は、バリュー192を分散領域171から共有領域172に移行し(ステップS2108)、ステップS2105に進む。このとき、エントリ配置管理部142は、共有領域172に格納された共有バリュー192へアクセスするための情報を生成し、エントリ191の格納位置情報703に生成された情報を設定する。
以上の処理によって、同一のデータソースのレコードから生成されたエントリ191が複数ある場合に、エントリ191の利用状況に応じて最適な分散メモリキャッシュに配置することが可能になる。
第3の実施形態におけるエントリの移行を実現するための構成としては以下のようなものが考えられる。
図22及び図23は、本発明の第3の実施形態におけるエントリ191の論理的なデータ構成の一例を示す説明図である。
図22は、同一のデータソース117のレコードから生成されたエントリが二つあり、かつ、バリューが共有されない場合のエントリ191のデータ構成を示す。図23は、同一のデータソースのレコードから生成されたエントリが二つあり、かつ、バリューが共有されている場合のエントリ191のデータ構成を示す説明図である。
なお、図22及び図23に示すようなエントリ191の生成方法は、第1の実施形態におけるロード処理と同一であるため説明を省略する。
第3の実施形態によれば、分散メモリキャッシュにおけるエントリへのアクセス統計情報に基づいて、分散領域と共有領域との間のバリューの移行処理を自動化することができる。これによって、バリューの配置場所が設定されていない場合であっても、適切な記憶領域にバリューを配置することができる。
101 ホストコンピュータ
102 ホストコンピュータ
103 ストレージ装置
104 ネットワーク
105 共有ストレージ装置
121 データソース管理部
131 ローダ部
141 分散メモリキャッシュ管理部
142 エントリ配置管理部
143 共有領域アクセス管理部
144 共有バリュー管理情報
145 共有領域管理情報
161 アプリケーションプログラム(UAP)
171 分散領域
172 共有領域
181 分散メモリキャッシュ構成情報
182 データソース情報
183 対応情報
191 エントリ
192 バリュー
1701 アクセス統計情報
1702 移行条件情報
102 ホストコンピュータ
103 ストレージ装置
104 ネットワーク
105 共有ストレージ装置
121 データソース管理部
131 ローダ部
141 分散メモリキャッシュ管理部
142 エントリ配置管理部
143 共有領域アクセス管理部
144 共有バリュー管理情報
145 共有領域管理情報
161 アプリケーションプログラム(UAP)
171 分散領域
172 共有領域
181 分散メモリキャッシュ構成情報
182 データソース情報
183 対応情報
191 エントリ
192 バリュー
1701 アクセス統計情報
1702 移行条件情報
Claims (15)
- 第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、データを格納する複数の第1の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記複数の第1の計算機の各々に格納されるデータを管理する第2の計算機と、を備える計算機システムであって、
前記計算機システムは、前記複数の第1の計算機が提供する記憶領域を統合して生成されたストレージを備え、
前記第2の計算機は、
複数のレコードを含むファイルを分割して、検索キーと、前記レコードの内容を示すバリューとを対応づけた分割データを前記ストレージに分散して格納するローダ処理部、及び、前記ファイルを格納するファイル格納部を有し、
前記ストレージを構成する前記記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データと前記ファイルとの対応関係を管理する対応情報を格納し、
前記複数の第1の計算機の各々は、
ファイルデータ単位のデータを処理するアプリケーション、及び、前記ストレージを管理するストレージ管理部を有し、
前記分割データを管理する分割データ管理情報を格納し、
前記ストレージは、第1のファイルのバリューにアクセスするための第1のアクセス情報と、第1の検索キーとを含む第1の分割データ、及び、前記第1のファイルのバリューを格納し、
前記第2の計算機は、
前記アプリケーションから、第2の検索キーの情報を含む第1のファイルの前記分割データの配置要求を受け付けた場合に、前記アプリケーションから指定された前記第2の検索キーを生成し、
前記第1のファイルのバリューが複数の前記アプリケーションによって共有される共有バリューであるか否かを判定し、
前記第1のファイルのバリューが共有バリューであると判定された場合、前記第2の検索キーと前記第1のアクセス情報とを含む第2の分割データを前記ストレージに格納することを特徴とする計算機システム。 - 前記ストレージは、前記複数の第1の計算機の各々が管理する第1のストレージ領域と、前記全ての第1の計算機によって共有される第2のストレージ領域とを含み、
前記第2の計算機は、
前記分割データを前記第1のストレージ領域に格納し、
前記ファイルのバリューが共有バリューでない場合には、前記分割データのソースであるファイルのバリューを前記第1のストレージ領域に格納し、
前記ファイルのバリューが共有バリューである場合には、前記分割データのソースであるファイルのバリューを前記第2のストレージ領域に格納することを特徴とする請求項1に記載の計算機システム。 - 前記第2の計算機は、
前記第1の分割データ、及び、前記第1のファイルのバリューが前記第1のストレージ領域に格納され、前記第1のファイルのバリューが共有バリューであると判定された場合に、前記第1のファイルのバリューを前記第1のストレージ領域から前記第2のストレージ領域に移行し、
前記第2のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第2のアクセス情報を生成し、
前記第1の分割データの前記第1のアクセス情報を前記第2のアクセス情報に更新し、
前記第2の検索キーと前記第2のアクセス情報とを含む前記第2の分割データを前記第1のストレージ領域に格納することを特徴とする請求項2に記載の計算機システム。 - 前記複数の第1の計算機の各々は、前記バリューに対するアクセスを監視するアクセス統計情報と、前記ファイルのバリューの格納場所の移行条件に関する移行条件情報とを格納し、
前記複数の第1の計算機の各々は、
前記第1のファイルのバリューが前記第1のストレージ領域に格納されている場合に、前記第1のファイルのバリューに対応する前記アクセス統計情報を取得し、
前記移行条件情報と前記取得されたアクセス統計情報とに基づいて、前記第1のファイルのバリューを前記第2のストレージ領域に移行するか否かを判定し、
前記第1のファイルのバリューを前記第2のストレージ領域に移行すると判定された場合に、前記第1のファイルのバリューを前記第2のストレージ領域に移行し、
移行後の前記第2のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第3のアクセス情報を生成し、前記第1の分割データの前記第1のアクセス情報を前記第3のアクセス情報に更新することを特徴とする請求項3に記載の計算機システム。 - 前記複数の第1の計算機の各々は、
前記第1のファイルのバリューが前記第2のストレージ領域に格納されている場合に、前記第1のファイルのバリューに対応する前記アクセス統計情報を取得し、
前記移行条件情報と前記取得されたアクセス統計情報とに基づいて、前記第1のファイルのバリューを前記第1のストレージ領域に移行するか否かを判定し、
前記第1のファイルのバリューを前記第1のストレージ領域に移行すると判定された場合に、前記第1のファイルのバリューを前記第1のストレージ領域に移行し、
移行後の前記第1のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第4のアクセス情報を生成し、前記第1の分割データの前記第2のアクセス情報を前記第4のアクセス情報に更新することを特徴とする請求項4に記載の計算機システム。 - 前記第2の計算機は、
前記第1のアプリケーションから、前記第1の分割データの削除要求を受信した場合に、前記第1のファイルのバリューが共有バリューであるか否かを判定し、
前記第1のファイルのバリューが共有バリューでないと判定された場合、前記第1のファイルのバリューの更新結果を前記ファイル格納部に格納される前記第1のファイルに反映し、
前記第1のストレージ領域に格納される前記第1の分割データ及び第1のファイルバリューを削除し、
前記第1のファイルのバリューが共有バリューであると判定された場合、前記第1のストレージ領域から前記第1の分割データを削除することを特徴とする請求項3に記載の計算機システム。 - 前記第1のファイルのバリューが共有バリューであると判定された場合に、さらに、前記第1のファイルのバリューが一つの前記アプリケーションからのみアクセスされるか否かを判定し、
前記第1のファイルのバリューが一つの前記アプリケーションからのみアクセスされると判定された場合には、前記第1のファイルのバリューを前記第2のストレージ領域から前記第1のストレージ領域に移行し、
移行後の前記第1のストレージ領域に格納された前記第1ファイルのバリューにアクセスするための第5のアクセス情報を生成し、他の前記分割データの前記第2のアクセス情報を前記第5のアクセス情報に更新することを特徴とする請求項6に記載の計算機システム。 - 前記第1のファイルのバリューが前記共有バリューであるか否かを判定する場合に、前記配置要求に前記第1のファイルのバリューの格納先として前記第2のストレージ領域が指定されているか否かを判定することを特徴とする請求項2に記載の計算機システム。
- 前記計算機システムは、全ての前記第1の計算機が接続可能な外部記憶装置を備え、
前記外部記憶装置上に前記第2のストレージ領域が構成されることを特徴とする請求項2に記載の計算機システム。 - 前記第2のストレージ領域に格納された前記バリューにアクセスするためのアクセス情報は、前記共有バリューの識別情報であり、
前記第2のストレージ領域には、前記共有バリューの識別情報と前記共有バリューとが対応づけられた前記分割データが格納されることを特徴とする請求項2に記載の計算機システム。 - 第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、データを格納する複数の第1の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記複数の第1の計算機の各々に格納されるデータを管理する第2の計算機と、を備える計算機システムにおけるデータ管理方法であって、
前記計算機システムは、前記複数の第1の計算機が提供する記憶領域を統合して生成されたストレージを備え、
前記第2の計算機は、
複数のレコードを含むファイルを分割して、検索キーと、前記レコードの内容を示すバリューとを対応づけた分割データを前記ストレージに分散して格納するローダ処理部、及び、前記ファイルを格納するファイル格納部を有し、
前記ストレージを構成する前記記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データと前記ファイルとの対応関係を管理する対応情報を格納し、
前記複数の第1の計算機の各々は、
ファイルデータ単位のデータを処理するアプリケーション、及び、前記ストレージを管理するストレージ管理部を有し、
前記分割データを管理する分割データ管理情報を格納し、
前記ストレージは、第1のファイルのバリューにアクセスするための第1のアクセス情報と、第1の検索キーとを含む第1の分割データ、及び、前記第1のファイルのバリューを格納し、
前記方法は、
前記第2の計算機が、前記アプリケーションから、第2の検索キーの情報を含む第1のファイルの前記分割データの配置要求を受け付けた場合に、前記アプリケーションから指定された前記第2の検索キーを生成する第1のステップと、
前記第2の計算機が、前記第1のファイルのバリューが複数の前記アプリケーションによって共有される共有バリューであるか否かを判定する第2のステップと、
前記第2の計算機が、前記第1のファイルのバリューが共有バリューであると判定された場合、前記第2の検索キーと前記第1のアクセス情報とを含む第2の分割データを前記ストレージに格納する第3のステップと、
を含むことを特徴とするデータ管理方法。 - 前記ストレージは、前記複数の第1の計算機の各々が管理する第1のストレージ領域と、前記全ての第1の計算機によって共有される第2のストレージ領域とを含み、
前記第1のストレージ領域に前記分割データが格納され、
前記ファイルのバリューが共有バリューでない場合には、前記第2の計算機によって前記第1のストレージ領域に、前記分割データのソースであるファイルのバリューが格納され、
前記ファイルのバリューが共有バリューである場合には、前記第2の計算機によって前記第2のストレージ領域に、前記分割データのソースであるファイルのバリューが格納されることを特徴とする請求項11に記載のデータ管理方法。 - 前記第3のステップは、
前記第1の分割データ、及び、前記第1のファイルのバリューが前記第1のストレージ領域に格納され、前記第1のファイルのバリューが共有バリューであると判定された場合に、前記第1のファイルのバリューを前記第1のストレージ領域から前記第2のストレージ領域に移行するステップと、
前記第2のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第2のアクセス情報を生成するステップと、
前記第1の分割データの前記第1のアクセス情報を前記第2のアクセス情報に更新するステップと、
前記第2の検索キーと前記第2のアクセス情報とを含む前記第2の分割データを前記第1のストレージ領域に格納するステップと、
を含むことを特徴とする請求項12に記載のデータ管理方法。 - 前記複数の第1の計算機の各々は、前記バリューに対するアクセスを監視するアクセス統計情報と、前記ファイルのバリューの格納場所の移行条件に関する移行条件情報とを格納し、
前記方法は、さらに、
前記複数の第1の計算機の各々が、前記第1のファイルのバリューが前記第1のストレージ領域に格納されている場合に、前記第1のファイルのバリューに対応する前記アクセス統計情報を取得するステップと、
前記複数の第1の計算機の各々が、前記移行条件情報と前記取得されたアクセス統計情報とに基づいて、前記第1のファイルのバリューを前記第2のストレージ領域に移行するか否かを判定するステップと、
前記複数の第1の計算機の各々が、前記第1のファイルのバリューを前記第2のストレージ領域に移行すると判定された場合に、前記第1のファイルのバリューを前記第2のストレージ領域に移行するステップと、
前記複数の第1の計算機の各々が、移行後の前記第2のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第3のアクセス情報を生成し、前記第1の分割データの前記第1のアクセス情報を前記第3のアクセス情報に更新するステップと、
を含み、
前記複数の第1の計算機の各々が、前記第1のファイルのバリューが前記第2のストレージ領域に格納されている場合に、前記第1のファイルのバリューに対応する前記アクセス統計情報を取得するステップと、
前記複数の第1の計算機の各々が、前記移行条件情報と前記取得されたアクセス統計情報とに基づいて、前記第1のファイルのバリューを前記第1のストレージ領域に移行するか否かを判定するステップと、
前記複数の第1の計算機の各々が、前記第1のファイルのバリューを前記第1のストレージ領域に移行すると判定された場合に、前記第1のファイルのバリューを前記第1のストレージ領域に移行するステップと、
前記複数の第1の計算機の各々が、移行後の前記第1のストレージ領域に格納される前記第1のファイルのバリューにアクセスするための第4のアクセス情報を生成し、前記第1の分割データの前記第2のアクセス情報を前記第4のアクセス情報に更新するステップと、
を含むことを特徴とする請求項13に記載のデータ管理方法。 - 前記方法は、さらに、
前記第2の計算機が、前記第1のアプリケーションから前記第1の分割データの削除要求を受信した場合に、前記第1のファイルのバリューが共有バリューであるか否かを判定するステップと、
前記第2の計算機が、前記第1のファイルのバリューが共有バリューでないと判定された場合、前記第1のファイルのバリューの更新結果を前記ファイル格納部に格納される前記第1のファイルに反映するステップと、
前記第2の計算機が、前記第1のストレージ領域に格納される前記第1の分割データ及び第1のファイルバリューを削除するステップと、
前記第2の計算機が、前記第1のファイルのバリューが共有バリューであると判定された場合、前記第1のファイルのバリューが一つの前記アプリケーションからのみアクセスされるか否かを判定するステップと、
前記第2の計算機が、前記第1のファイルのバリューが一つの前記アプリケーションからのみアクセスされると判定された場合には、前記第1のファイルのバリューを前記第2のストレージ領域から前記第1のストレージ領域に移行するステップと、
前記第2の計算機が、移行後の前記第1のストレージ領域に格納された前記第1ファイルのバリューにアクセスするための第5のアクセス情報を生成し、他の前記分割データの前記第2のアクセス情報を前記第5のアクセス情報に更新するステップと、
前記第2の計算機が、前記第1のストレージ領域から前記第1の分割データを削除するステップと、
を含むことを特徴とする請求項13に記載のデータ管理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011227046A JP2013088920A (ja) | 2011-10-14 | 2011-10-14 | 計算機システム及びデータ管理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011227046A JP2013088920A (ja) | 2011-10-14 | 2011-10-14 | 計算機システム及びデータ管理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2013088920A true JP2013088920A (ja) | 2013-05-13 |
Family
ID=48532797
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011227046A Pending JP2013088920A (ja) | 2011-10-14 | 2011-10-14 | 計算機システム及びデータ管理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2013088920A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015069269A (ja) * | 2013-09-27 | 2015-04-13 | 日本電気株式会社 | 情報記憶システム、情報記憶方法、プログラム |
| WO2015097774A1 (ja) * | 2013-12-25 | 2015-07-02 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
| US9659048B2 (en) | 2013-11-06 | 2017-05-23 | International Business Machines Corporation | Key-Value data storage system |
-
2011
- 2011-10-14 JP JP2011227046A patent/JP2013088920A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015069269A (ja) * | 2013-09-27 | 2015-04-13 | 日本電気株式会社 | 情報記憶システム、情報記憶方法、プログラム |
| US9659048B2 (en) | 2013-11-06 | 2017-05-23 | International Business Machines Corporation | Key-Value data storage system |
| US10740308B2 (en) | 2013-11-06 | 2020-08-11 | International Business Machines Corporation | Key_Value data storage system |
| WO2015097774A1 (ja) * | 2013-12-25 | 2015-07-02 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
| JP6034512B2 (ja) * | 2013-12-25 | 2016-11-30 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
| US9934248B2 (en) | 2013-12-25 | 2018-04-03 | Hitachi, Ltd. | Computer system and data management method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12314254B2 (en) | Batch data ingestion in database systems | |
| US10901796B2 (en) | Hash-based partitioning system | |
| JP5765416B2 (ja) | 分散ストレージシステムおよび方法 | |
| US10853242B2 (en) | Deduplication and garbage collection across logical databases | |
| KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
| US10178174B2 (en) | Migrating data in response to changes in hardware or workloads at a data store | |
| US20080010325A1 (en) | Data migration apparatus, method, and program | |
| JP5439236B2 (ja) | 計算機システムおよびアプリケーションプログラムの実行方法 | |
| JP6269140B2 (ja) | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 | |
| CN107368260A (zh) | 基于分布式系统的存储空间整理方法、装置及系统 | |
| CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
| EP2332081A2 (en) | Storage tiers for database server system | |
| US9934248B2 (en) | Computer system and data management method | |
| CN112334891A (zh) | 用于搜索服务器的集中式存储 | |
| US20140304226A1 (en) | Storage system | |
| CN108132759A (zh) | 一种文件系统中管理数据的方法和装置 | |
| JP2013088920A (ja) | 計算機システム及びデータ管理方法 | |
| US10838949B2 (en) | Shared resource update apparatus and shared resource update method | |
| JP6707754B2 (ja) | データベース管理システム及び方法 | |
| US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
| WO2024197789A1 (zh) | 一种细粒度文件系统以及文件读写方法 | |
| JP6251121B2 (ja) | サーバ、データ管理方法、データ管理プログラム、および、分散Key−Valueストア | |
| US12530318B2 (en) | Grouping data to conserve storage capacity | |
| CN121412179A (zh) | 面向微内核操作系统的快速目录解析文件系统 |