JP5991141B2 - データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム - Google Patents

データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム Download PDF

Info

Publication number
JP5991141B2
JP5991141B2 JP2012239812A JP2012239812A JP5991141B2 JP 5991141 B2 JP5991141 B2 JP 5991141B2 JP 2012239812 A JP2012239812 A JP 2012239812A JP 2012239812 A JP2012239812 A JP 2012239812A JP 5991141 B2 JP5991141 B2 JP 5991141B2
Authority
JP
Japan
Prior art keywords
cache
key
over
information
invalid
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
JP2012239812A
Other languages
English (en)
Other versions
JP2014089627A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012239812A priority Critical patent/JP5991141B2/ja
Publication of JP2014089627A publication Critical patent/JP2014089627A/ja
Application granted granted Critical
Publication of JP5991141B2 publication Critical patent/JP5991141B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ読み込み装置、分散システム、方法、及びプログラムに関する。
分散システムにおいて、キーに対応づけてデータを格納するデータ格納領域が利用される。分散システムが有するノードは、データ格納領域からキーに対応するデータを取得し、又は、データ格納領域に対してキーに対応するデータの書き込みを行う。ここでノードとは、例えばPC(Personal Computer)やサーバなどである。
データの読み出し又は書き込みにかかる時間を短くするために、データ格納領域から取得したデータの複製を、そのデータが格納されているデータ格納領域とは別の記憶領域に格納する場合がある。以下、上記データ格納領域に格納されている複製元のデータをソースデータと表記し、上記データ格納領域とは異なる記憶領域に格納されるソースデータの複製をキャッシュと表記する。また、ソースデータを格納しているデータ格納領域をソースデータ格納領域と表記し、キャッシュを格納している記憶領域をキャッシュ格納領域と表記する。
ソースデータ格納領域に格納されているソースデータが更新された場合、そのソースデータと同一のキーに対応づけられているキャッシュの内容を、更新されたソースデータの内容に変更する必要がある。このように、同一のキーに対応づけられているソースデータとキャッシュの内容が同一になるように管理することを、キャッシュ一貫性管理と呼ぶ。
キャッシュ一貫性管理の方法の一つに、リリースコンシステンシと呼ばれる方法がある。リリースコンシステンシとは、排他制御のためのロックの獲得/解放を行うタイミングで、キャッシュの内容を、そのキャッシュと同一のキーに対応づけられているソースデータの内容と同一にする方法である。各ノードは、一貫性を保証したいソースデータの複製であるキャッシュにアクセスする前に、排他制御のためのロックを取得する。ノードは、ロックを獲得した時点で、無効なキャッシュを示す情報を取得する。ここで、無効なキャッシュとは、キャッシュの内容と、そのキャッシュと同一のキーに対応づけられているソースデータの内容とが異なっているキャッシュである。さらにノードは、ロックを解放する前に、ロックを獲得している間に更新したソースデータと同一のキーに対応づけられているキャッシュが無効であることを示す情報を生成する。
データを読み込むノードは、データを読み込む際、キャッシュ領域に格納されているキャッシュを読み込むか、ソースデータ格納領域に格納されているソースデータを読み込むかを判断する必要がある。そのため、データを読み込むノードは、どのキャッシュが無効であるかを把握する必要がある。
そこで、データを読み込むノードは、無効なキャッシュを示す情報を取得する。ここで一般に、分散システムにおいては、ネットワークの通信負荷を低くすることが望ましい。したがって、無効なキャッシュを示す情報を、データ量が少ないデータ構造で示すことが望ましい。
非特許文献1記載のシステムは、Bloom Filterというデータ構造を用いて、CPUの各キャッシュラインに格納されているキャッシュが無効か否かを判定している。Bloom Filterは、表したい集合の上位集合を表すことができる。Bloom Filterに対しては、所定の方法に従った値の投入と、ある値がBloom Filterに入っているか否かの判別とが行える。ここで、Bloom Filterに入っている値を個別に取得することはできない。また、Bloom Filterに入っている値を個別に削除することもできない。
Bloom Filterへの値の投入には、例えば複数のハッシュ関数が利用される。例えばNビットで構成されるBloom Filterがあるとする。この場合、出力が1〜Nのいずれかとなる複数のハッシュ関数それぞれに対し、Bloom Filterに投入する値を入力する。そして、Bloom Filterの各ビットのうち、ハッシュ関数の出力値に該当するビットを1とする。例えば、3つのハッシュ関数を利用し、それぞれの出力が1、3、及び5であった場合は、Bloom Filterの1ビット目、3ビット目、及び5ビット目を1とする。
Bloom Filterにある値が入っているか否かを判定するためには、値の投入に用いたハッシュ関数を利用する。具体的には、判定を行いたい値を各ハッシュ関数に入力し、その出力値に該当するビットが1であるか否かをチェックする。各ハッシュ関数の出力値に該当するビットが全て1であれば、判定を行った値はBloom Filterに含まれている。一方、ハッシュ関数の出力値に該当するビットのいずれかが0であれば、判定を行った値は、Bloom Filterに含まれていない。
非特許文献1記載のシステムは、CPUのキャッシュラインに格納されているキャッシュが無効か否かをBloom Filterを用いて判定するためのハードエア機構を、キャッシュラインごとに備えている。そして、排他制御のためのロックを獲得した際に、全てのキャッシュラインについて並行に、キャッシュが無効か否かをチェックする。
Thomas J. Ashby, Pedro Diaz, and Marcelo Cintra、「Software-Based Cache Coherence with Hardware-Assisted Selective Self-Invalidations Using Bloom Filters」、IEEE Transactions on Computers、VOL. 60、NO. 4、2011年4月
非特許文献1のシステムは、分散システムにおけるキャッシュの一貫性管理に利用されることを考慮していない。一般に分散システムにおいて、キャッシュはソフトウエアで管理される。そのため、非特許文献1のように、各キャッシュが無効か否かを判定するハードウエア機構を、キャッシュを読み込むノードに備えることは難しい。また、分散システムでは、上記キャッシュをソフトウエアで管理するため、キャッシュが無効か否かの判定にかかる時間が長い。そのため、非特許文献1のように、ある時点において、キャッシュが無効か否かの判定を全てのキャッシュ格納領域について行うと、その時点以降の処理が大きく遅延されてしまう。
本発明の目的は、キャッシュが無効であるか否かの判定を短い時間で行うデータ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラムを提供することである。
本発明が提供するデータ読み込み装置は、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込む。当該データ読み込み装置は、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含むキー集合を受信するキー情報受信手段と、前記キー情報受信手段が受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納手段と、前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納手段から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段とを有する。前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表す。前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が当該データ読み込み装置に対して送信された時点、又はそのキー集合が当該データ読み込み装置によって受信された時点を表す。
本発明が提供するプログラムは、上記データ読み込み装置が有する各機能構成部を実現する各機能を、コンピュータに持たせるプログラムである。
本発明が提供する方法は、コンピュータが、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置として動作する方法である。当該方法は、前記コンピュータが、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納ステップと、前記コンピュータが、無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含むキー集合を受信するキー情報受信ステップと、前記コンピュータが、前記キー情報受信手段が受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納ステップと、前記コンピュータが、前記キーを取得し、前記キャッシュ情報格納ステップで格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納ステップで格納した前記キー情報から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定ステップとを有する。前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表す。前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が前記コンピュータに対して送信された時点、又はそのキー集合が前記コンピュータによって受信された時点を表す。
本発明が提供する分散システムは、キーに対応するソースデータを格納しているソースデータ格納領域に対して前記ソースデータを書き込むデータ書き込み装置と、前記ソースデータの複製であるキャッシュを、該ソースデータに対応するキーと対応づけて格納しているキャッシュ格納領域から、前記キャッシュを読み込むデータ読み込み装置と、前記キャッシュの一貫性を管理する一貫性管理装置とを有する。前記データ書き込み装置は、前記ソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み手段と、書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含むキー集合を生成するキー集合生成部と、前記キー集合を前記一貫性管理装置へ送信するキー集合送信部とを有する。前記データ読み込み装置は、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、無効な前記キャッシュに対応する前記キーを前記所定の方法で変換した値である前記キー変換値を含むキー集合を前記一貫性管理装置から受信するキー情報受信手段と、前記キー情報受信手段が受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納手段と、前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納手段から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段とを有する。前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表す。前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が前記データ読み込み装置に対して送信された時点、又はそのキー集合が前記データ読み込み装置によって受信された時点を表す。前記一貫性管理装置は、前記キー集合を格納するキー集合格納手段と、前記データ書き込み装置から前記キー集合を受信し、受信した該キー集合を前記キー集合格納手段に格納するキー集合受信手段と、前記データ読み込み装置に対し、前記キー格納手段に格納されている前記キー集合を送信するキー集合送信部とを有する。
本発明が提供するデータ書き込み装置は、本発明が提供する分散システムが有するデータ書き込み装置である。
本発明によれば、キャッシュが無効であるか否かの判定を短い時間で行うことができるデータ読み込み装置、データ書き込み装置、分散システム、方法、プログラムを提供できる。
実施形態1に係るデータ読み込み装置を示すブロック図である。 実施形態1に係るデータ読み込み装置の動作を概念的に示した図である。 無効キー集合にBloom Filterを用いた場合における、実施形態1に係るデータ読み込み装置の動作を概念的に示す図である。 キャッシュ情報テーブルの構成を示す図である。 無効キー情報テーブルの構成を示す図である。 実施形態1のキャッシュ有効性判定部が行うキャッシュ有効性判定処理の流れの一例を示すフローチャートである。 実施形態2に係るデータ読み込み装置を示すブロック図である。 実施形態3に係るデータ読み込み装置を示すブロック図である。 実施形態4に係るデータ書き込み装置を示すブロック図である。 実施形態5に係る分散システムを示すブロック図である。 実施形態6に係る分散システムを示すブロック図である。 実施形態1に係るデータ読み込み装置のハードウエア構成を示す図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[実施形態1]
<概要>
図1は、実施形態1に係るデータ読み込み装置2000を示すブロック図である。図1において、矢印は情報の流れを表している。また、図1において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
データ読み込み装置2000は、キーに対応するデータの複製であるキャッシュを格納しているキャッシュ格納領域3000から、キーに対応するキャッシュを取得する。以下、キャッシュの複製元の上記データを、ソースデータと表記する。さらにデータ読み込み装置2000は、キャッシュ格納領域3000から取得したキャッシュが有効であるか否かの判定を、データに対応するキーごとに行う。
キャッシュとは、キーに対応するソースデータの複製である。キャッシュは、例えばレプリカと表記されてもよい。キャッシュ格納領域3000は、キャッシュを格納する領域であり、ソースデータ格納領域以外の領域である。
データ読み込み装置2000は、キャッシュ情報格納部2020を有する。キャッシュ情報格納部2020は、データ読み込み装置2000がキャッシュ格納領域3000から取得したキャッシュに関する情報であるキャッシュ情報を格納する。具体的には、キャッシュ情報は、キーと、そのキーに対応するキャッシュ有効時点とを紐づけた情報である。
キャッシュ有効時点とは、キャッシュが有効であることが確認された時点である。例えば、あるキーに対応するキャッシュ有効情報が示すキャッシュ有効時点は、そのキーに対応するソースデータから複製したキャッシュを生成した時点や、その生成したキャッシュをキャッシュ格納領域に格納した時点である。その他にも例えば、あるキーに対応するキャッシュ有効情報が示すキャッシュ有効時点は、キャッシュ有効性判定部2080が、そのキーに対応するキャッシュが有効であると判定した時点である。
データ読み込み装置2000は、無効キー集合受信部2040を有する。無効キー集合受信部2040は、無効キー集合を受信する。無効キー集合は、無効なキャッシュに対応するキーを所定の方法で変換した値の集合である。以下、キーを所定の方法で変換した値を、キー変換値と表記する。
データ読み込み装置2000は、無効キー情報格納部2060を有する。無効キー情報格納部2060は、無効キー情報を格納する。無効キー情報は、無効キー集合受信部2040が受信した無効キー集合と、キャッシュ無効時点とを対応づけた情報である。
キャッシュ無効時点とは、無効キー集合に含まれるキーに対応するキャッシュが、無効になった時点である。例えば、無効キー集合に対応するキャッシュ無効キー時点は、その無効キー集合が生成された時点である。その他にも例えば、無効キー集合に対応するキャッシュ無効時点は、その無効キー集合が送信された時点や、無効キー集合受信部2040がその無効キー集合を受信した時点である。
データ読み込み装置2000は、キャッシュ有効性判定部2080を有する。キャッシュ有効性判定部2080は、キーに対応するキャッシュが有効であるか否かを判定する。以下、キーに対応するキャッシュが有効であるか否かを判定する処理を、キャッシュ有効性判定処理と表記する。
まずキャッシュ有効性判定部2080は、入力としてキーを取得する。次に、キャッシュ有効性判定部2080は、キャッシュ情報格納部2020から、取得したキーに対応するキャッシュ情報が示すキャッシュ有効時点を取得する。さらに、キャッシュ有効性判定部2080は、無効キー情報格納部2060から、無効キー情報が示すキャッシュ無効時点が、取得したキャッシュ有効時点よりも後の時点を示す無効キー情報に含まれる無効キー集合を取得する。次に、キャッシュ有効性判定部2080は、取得したキーのキー変換値を算出する。そして、キャッシュ有効性判定部2080は、算出したキー変換値が、上記取得した無効キー集合に含まれている場合に、取得したキーに対応するキャッシュが無効であると判定する。
図2を用いて、本実施形態におけるデータ読み込み装置2000の動作を説明する。図2は、本実施形態におけるデータ読み込み装置2000の動作を概念的に示した図である。ここで図2において、キャッシュ情報が示すキャッシュ有効時点、及び無効キー情報が示すキャッシュ無効時点は数値で表されており、数値が大きい方が後の時点を表している。本例において、データ読み込み装置2000は、キーXに対応するキャッシュが有効であるか否かを判定する。
まずキャッシュ有効性判定部2080は、キーがXであるキャッシュ情報が示すキャッシュ有効時点を取得する。図2より、キーがXであるキャッシュ情報のキャッシュ有効時点は20を示している。次に、キャッシュ有効性判定部2080は、無効キー情報格納部2060から、キャッシュ無効時点が20より大きい無効キー情報に含まれる無効キー集合を取得する。結果として、キャッシュ有効性判定部2080は、キャッシュ無効時点が25である無効キー情報に含まれる無効キー集合を取得する。
そして、キャッシュ有効性判定部2080は、キーXのキー変換値が、取得した無効キー集合に含まれているか否かを調べる。ここで、キーXのキー変換値は7であるとする。図2において、キャッシュ無効時点が25である無効キー集合は7を含んでいる。したがって、キャッシュ有効性判定部2080は、キーXに対応するキャッシュは無効であると判定する。
キャッシュ格納領域3000は、データ読み込み装置2000の内部に設けられてもよいし、データ読み込み装置2000の外部にある他の装置に設けられてもよい。キャッシュ格納領域3000がデータ読み込み装置2000の内部に設けられている場合、キャッシュ格納領域3000は、例えばRAM等の一次記憶装置や、ハードディスク等の二次記憶装置に設けられる。
キャッシュ格納領域3000がデータ読み込み装置2000の外部に設けられる場合、キャッシュ格納領域3000は、例えばネットワーク上において、データ読み込み装置2000の近傍に位置する外部装置の一次記憶装置や二次記憶装置に設けられる。ここで、データ読み込み装置2000が複数ある場合、キャッシュ格納領域3000は複数のデータ読み込み装置2000で共有されてもよい。
キャッシュ格納領域3000の実装方法は様々である。例えばキャッシュ格納領域は、OS(Operating System)のバッファキャッシュとして実装される。またキャッシュ格納領域3000は、例えばmemcached等のキーバリューストアや、リレーショナルデータベース等で実装されてもよい。
ソースデータを格納するソースデータ格納領域は、例えばmemcached等のキーバリューストアである。その他にも、ソースデータ格納領域は、リレーショナルデータベース等であっても構わない。
以上により、本実施形態のデータ読み込み装置2000は、キーをキャッシュ有効性判定部2080に入力することで、キーに対応するキャッシュが無効であるか否かを判定することができる。したがって、データ読み込み装置2000は、キーに対応するキャッシュが無効であるか否かを、キーごとに判定することができる。これにより、キャッシュが無効であるか否かの判定が全てのキャッシュについて一度に行われる場合と比較し、キャッシュが無効であるか否かの判定を行う処理にかかる時間が短くなる。
以下、本実施形態の詳細を述べる。
<無効キー集合の詳細>
無効キー集合は、無効なキャッシュに対応するキーを所定の方法で変換した値であるキー変換値の集合である。例えば無効キー集合はBloom Filterで実現される。
キー変換値を算出するための上記所定の方法は、例えばハッシュ関数による変換である。また、上記所定の方法は、無効なキャッシュに対応するキーを複数の方法で変換し、複数のキー変換値を算出してもよい。この場合、上記複数のキー変換値の一部又は全部が無効キー集合に投入される。
図3は、無効キー集合にBloom Filterを用いた場合における、本実施形態のデータ読み込み装置2000の動作を概念的に示す図である。ここで図3において、キャッシュ情報が示すキャッシュ有効時点、及び無効キー情報が示すキャッシュ無効時点は、数値で表されており、数値が大きい方が後の時点を表している。本例において、データ読み込み装置2000は、キーXに対応するキャッシュが有効であるか否かを判定する。
図3において、無効キー集合は、8ビットの2進数で表されるBloom Filterである。また、データ読み込み装置2000は、キーを2つのハッシュ関数h1とh2のそれぞれに入力して、2つのキー変換値を得る。そして、データ読み込み装置2000は、Bloom Filterにおいて、2つのキー変換値が示すビットが両方とも1である場合、キーに対応するキャッシュは無効であると判定する。
まずキャッシュ有効性判定部2080は、キーがXであるキャッシュ情報が示すキャッシュ有効時点を取得する。図3より、キーがXであるキャッシュ情報のキャッシュ有効時点は20を示している。次に、キャッシュ有効性判定部2080は、無効キー情報格納部2060から、キャッシュ無効時点が20より大きい無効キー情報が示す無効キー集合を取得する。結果として、キャッシュ有効性判定部2080は、キャッシュ無効時点が25である無効キー情報が示す無効キー集合を取得する。取得した無効キー集合は、4ビット目、5ビット目、及び7ビット目が1であり、残りのビットが0であるBloom Filterである。
キャッシュ有効性判定部2080は、キーXを2つのハッシュ関数h1及びh2に入力し、2つのキー変換値h1(X)及びh2(X)を得る。ここで、図3が示すように、h1(X)は7であり、h2(X)は5であるとする。図3より、取得したBloom Filterにおいて、7ビット目と5ビット目は両方とも1である。したがって、キャッシュ有効性判定部2080は、キーXに対応するキャッシュは無効であると判定する。
<キャッシュ情報格納部2020の詳細>
キャッシュ情報格納部2020が格納するキャッシュ情報は、例えば図4に示すキャッシュ情報テーブル200で表される。図4は、キャッシュ情報テーブル200の構成を示す図である。キャッシュ情報テーブル200は、キー202及びキャッシュ有効時点204を有する。
データ読み込み装置2000において、時点を示す方法は様々である。例えば、時点は、日時で表される。その他にも例えば、時点は、キャッシュがアクセスされるなどの所定条件が満たされる度に増加又は減少する指標値を用いて表されてもよい。
無効キー情報格納部2060は、例えば無効キー情報を、無効キー情報が示すキャッシュ無効時点の大きさの降順又は昇順にソートして格納してもよい。こうすることで、キャッシュ有効性判定部2080が、キーに対応するキャッシュ情報が示すキャッシュ有効時点と、各無効キー情報が示すキャッシュ無効時点との比較に要する時間を短くすることができる。
例えばデータ読み込み装置2000は、あるキーに対応するキャッシュが有効であると判定した場合に、そのキーと対応づけられているキャッシュ情報のキャッシュ有効時点を更新する。
またデータ読み込み装置2000が、ソースデータ格納領域からソースデータを取得し、そのソースデータの複製であるキャッシュを生成して、キャッシュ格納領域3000に格納する機能を有するとする。この場合、例えばデータ読み込み装置2000は、生成したキャッシュに対応するキーに対応づけられているキャッシュ情報のキャッシュ有効時点を、このキャッシュを生成した時点や、上記ソースデータを取得した時点に更新する。また、生成したキャッシュに対応するキーに対応づけられているキャッシュ情報がキャッシュ情報格納部2020に格納されていない場合、データ読み込み装置2000は、生成したキャッシュに対応するキャッシュ情報を新たに生成する。
<無効キー情報格納部2060の詳細>
無効キー情報格納部2060が格納する無効キー情報は、例えば図5に示す無効キー情報テーブル300で表される。図5は、無効キー情報テーブル300の構成を示す図である。無効キー情報テーブル300は、無効キー集合302及びキャッシュ無効時点304を有する。
キャッシュ情報テーブル200のキャッシュ有効時点204において時点を示す方法と、無効キー情報テーブル300のキャッシュ無効時点304において時点を示す方法は、同じであってもよいし、異なっていてもよい。
<キャッシュ有効性判定部2080の詳細>
キャッシュ有効性判定部2080は、無効キー情報が示すキャッシュ無効時点が、キーに対応するキャッシュ情報が示すキャッシュ有効時点よりも後の時点である無効キー情報が複数ある場合、それら複数の無効キー情報からそれぞれ無効キー集合を取得する。この場合、キャッシュ有効性判定部2080は、取得したキーのキー変換値が無効キー集合に含まれているか否かの判定を、各無効キー集合それぞれについて個別に行ってもよいし、複数の無効キー集合についてまとめて行ってもよい。
キー変換値が無効キー集合に含まれているか否かの判定を、複数の無効キー集合それぞれについて個別に行う場合、キャッシュ有効性判定部2080は、キー変換値が複数の無効キー集合のいずれかに含まれている場合に、キャッシュが無効であると判定する。
キー変換値が無効キー集合に含まれているか否かの判定を複数の無効キー集合についてまとめて行う場合、例えばキャッシュ有効性判定部2080は、まず複数の無効キー集合の和集合を生成する。以下、この和集合を無効キー和集合と表記する。キャッシュ有効性判定部2080は、キー変換値が、生成した無効キー和集合に含まれているか否かを判定する。キャッシュ有効性判定部2080は、キー変換値が上記無効キー和集合に含まれている場合に、取得したキーに対応するキャッシュは無効であると判定する。
キー変換値が無効キー集合に含まれているかの判定を複数の無効キー集合それぞれについて個別に行う場合、キャッシュ有効性判定部2080は、キャッシュの有効性の判定精度を高くすることができる。一方、キー変換値が無効キー集合に含まれているかの判定を複数の無効キー集合についてまとめて行う場合、キャッシュ有効性判定部2080は、キャッシュ有効性判定処理にかかる時間を短くすることできる。
ここで、キャッシュ有効性判定処理の判定精度について説明する。キー変換値の算出方法によっては、キャッシュ有効性判定処理は、キーに対応するキャッシュが有効であるにもかかわらず、キーに対応するキャッシュが無効であると判定する場合がある。以下、このように有効なキャッシュが無効であると判定されることを誤判定と表記する。また、キャッシュ有効性判定処理の判定精度が高いとは、誤判定が起こる確率が低いことを表すとする。
誤判定が起こりうるキー変換値の算出方法は、例えば複数の値について同じ値を算出する可能性がある算出方法である。そのような算出の方法の例として、キーの値を特定の整数で除算した余り(mod)を求めるハッシュ関数を用いる方法がある。
誤判定が起こりうる場合、誤判定が起こる確率は、無効キー集合に含まれる個数が多いほど高くなりやすい。そのため、無効キー集合に含まれる値の個数が少ないほど、キャッシュ有効性判定処理の判定精度が高いといえる。
キャッシュ有効性判定部2080は、キー変換値が無効キー集合に含まれているか否かの判定を行う際、まず複数の無効キー集合についてまとめて判定を行い、キャッシュが無効であると判定された場合のみ、各無効キー集合について個別に判定を行ってもよい。こうすることで、キャッシュ有効性判定部2080は、キャッシュが無効でない場合に、各無効キー集合について個別の判定を行わないため、キャッシュ有効性判定処理にかかる時間が短くなる。また、複数の無効キー集合についてまとめて判定を行い、キャッシュが無効であると判定された場合はその後に各無効キー集合について個別の判定を行うため、キャッシュの有効性の判定精度を高くすることができる。したがって、データ読み込み装置2000は、キャッシュ有効性の判定精度を高くしつつ、キャッシュ有効性判定処理にかかる時間を短くすることができる。例えばこの方法は、キャッシュが有効である可能性が高い状況において採用されることが好ましい。
<無効キー集合の受信について>
データ読み込み装置2000は、外部の装置から無効キー集合を受信する。データ読み込み装置2000に対して無効キー集合を送信する装置は、例えばソースデータ格納領域に格納されているソースデータに対して書き込みを行う装置である。以下、この装置を書き込み装置と表記する。この場合、書き込み装置は、自身が書き込んだソースデータと同一のキーに対応づけられているキャッシュが無効であることを示す無効キー集合を、データ読み込み装置2000へ送信する。
その他にも例えば、キャッシュ有効性判定部2080は、無効キー集合を集中管理する管理装置から無効キー集合を受信してもよい。この管理装置は、例えば上記書き込み装置から無効キー集合を受信する。そして、この管理装置は、受信した無効キー集合をデータ読み込み装置2000へ送信する。
データ読み込み装置2000が無効キー集合を受信するタイミングは様々である。例えばデータ読み込み装置2000は、排他制御のためのロックを獲得するタイミングやバリヤ同期を行うタイミングで、無効キー情報を受信する。その他にも例えばデータ読み込み装置2000は、いずれかのキーに対応するキャッシュを読み込む前に、無効キー集合を受信する。その他にも例えば、データ読み込み装置2000は、上記書き込み装置や管理装置が送信した無効キー集合がデータ読み込み装置2000に到達したタイミングで、その無効キー集合を受信する。
<ハードウエア構成>
図12は、データ読み込み装置2000のハードウエア構成の一例を示す図である。図12において、データ読み込み装置2000は、バス1020、CPU1040、RAM1060、及びストレージ1080を有する。
バス1020は、CPU1040、RAM1060、及びストレージ1080の各ハードウエア間で情報を送受信するための伝送経路である。
CPU1040は、無効キー集合受信部2040が行う処理を実現するプログラムである無効キー集合受信処理1100を実行することで、無効キー集合受信部2040の機能を実現する。また、CPU1040は、キャッシュ有効性判定部2080が行う処理を実現するプログラムであるキャッシュ有効性判定処理1120を実行することで、無効キー集合受信部2040の機能を実現する。
無効キー集合受信処理1100及びキャッシュ有効性判定処理1120は、例えばストレージ1080に格納されている。そして、CPU1040によって、例えばRAM1060に読み出される。無効キー集合受信処理1100やキャッシュ有効性判定処理1120は、RAM1060に格納されていてもよい。また、データ読み込み装置2000がROMを有する場合、無効キー集合受信処理1100やキャッシュ有効性判定処理1120は、このROMに格納されてもよい。
キャッシュ情報格納部2020は、例えばストレージ1080によって実現される。この場合、ストレージ1080はキャッシュ情報1160を格納する。キャッシュ情報格納部2020は、RAM1060によって実現されてもよい。この場合、キャッシュ情報1160はRAM1060に格納される。
無効キー情報格納部2060は、例えばストレージ1080によって実現される。この場合、ストレージ1080は無効キー情報1140を格納する。無効キー情報格納部2060は、RAM1060によって実現されてもよい。この場合、無効キー情報1140はRAM1060に格納される。
ストレージ1080は、例えばハードディスク、USBメモリ、又はSSD(Solid State Drive)などの記憶装置である。また、ストレージ1080は、ROMやRAM等の記憶装置であってもよい。
<キャッシュ有効性判定処理の流れ>
図6は、本実施形態のキャッシュ有効性判定部2080が行うキャッシュ有効性判定処理の流れの一例を示すフローチャートである。
ステップS102において、キャッシュ有効性判定部2080は、キーを取得する。
ステップS104において、キャッシュ有効性判定部2080は、キャッシュ情報格納部2020から、取得したキーに対応するキャッシュ情報が示すキャッシュ有効時点を取得する。
ステップS106において、キャッシュ有効性判定部2080は、無効キー情報格納部2060に格納されている無効キー情報のうち、無効キー情報が示すキャッシュ無効時点が、取得したキャッシュ有効時点よりも前の時点である無効キー情報に含まれる無効キー集合を取得する。
ステップS107において、キャッシュ有効性判定部2080は、取得したキーからキー変換値を算出する。
ステップS108〜ステップS112は、取得した無効キー集合それぞれについて行うループ処理Aである。ステップS108において、キャッシュ有効性判定部2080は、取得した全ての無効キー集合を対象にしてループ処理Aを行ったか否かをチェックする。取得した全ての無効キー集合を対象にしてループ処理Aを行った場合、キャッシュ有効性判定処理は、ステップS116に進む。
まだループ処理Aの対象にしていない無効キー集合がある場合、キャッシュ有効性判定部2080は、まだループ処理Aの対象としていない無効キー集合の中から1つを選択する。ここで、キャッシュ有効性判定部2080が選択した無効キー集合を、無効キー集合iと表記する。そして、キャッシュ有効性判定処理は、ステップS110に進む。
ステップS110において、キャッシュ有効性判定部2080は、算出したキー変換値が、無効キー集合iに含まれているか否かを判定する。算出したキー変換値が無効キー集合iに含まれている場合、キャッシュ有効性判定処理は、ステップS114に進む。そしてステップS114において、キャッシュ有効性判定部2080は、取得したキーに対応するキャッシュは無効であると判定する。
算出したキー変換値が無効キー集合iに含まれていない場合、キャッシュ有効性判定処理は、ステップS112に進む。ステップS112は、ループ処理Aの終端である。そのため、キャッシュ有効性判定処理は、ステップS108に戻る。
ステップS116において、キャッシュ有効性判定部2080は、取得したキーに対応するキャッシュは有効であると判定する。
<作用・効果>
以上により、本実施形態のデータ読み込み装置2000は、キーをキャッシュ有効性判定部2080に入力することで、キーに対応するキャッシュが無効であるか否かを判定する。したがって、データ読み込み装置2000は、キーに対応するキャッシュが無効であるか否かを、キーごとに判定することができる。これにより、キャッシュが無効であるか否かの判定を全てのキャッシュについて一度に行う場合と比較し、キャッシュが無効であるか否かの判定を行う処理にかかる時間を短くすることができる。
[実施形態2]
図7は、本実施形態に係るデータ読み込み装置2000を表すブロック図である。図7が示す機能構成部のうち、図1に同符号の機能構成部があるものは、特に説明しない限り図1における同符号の機能構成部と同じ機能を有する。また、図7において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
本実施形態のデータ読み込み装置2000は、無効キー情報削除部2090を有する。無効キー情報削除部2090は、無効キー情報格納部2060から、以下に示す方法で無効キー情報を削除する。まず無効キー情報削除部2090は、キャッシュ情報格納部2020に格納されているキャッシュ情報が示すキャッシュ有効時点の中から、最も過去の時点を示すキャッシュ有効時点を抽出する。ここで、抽出されたキャッシュ有効時点を、基準キャッシュ有効時点と表記する。
そして、無効キー情報削除部2090は、無効キー情報格納部2060に格納されている無効キー情報のうち、キャッシュ無効時点が基準キャッシュ有効時点より前の時点を示す無効キー情報を、無効キー情報格納部2060から削除する。
<作用・効果>
以上により、本実施形態によれば、データ読み込み装置2000は、無効キー情報格納部2060に格納されている無効キー情報を削除する。無効キー情報削除部2090が削除する無効キー情報は、キャッシュ有効性判定部2080によって利用されることがない無効キー情報である。実施形態1で述べた通り、キャッシュ有効性判定部2080のキャッシュ有効性判定処理は、無効キー情報が示すキャッシュ無効時点が、キーに対応するキャッシュ情報が示すキャッシュ有効時点より後の時点を示す無効キー情報を用いる。したがって、無効キー情報が示すキャッシュ無効時点が、キャッシュ情報が示すキャッシュ有効時点のうち最も過去の時点を示すキャッシュ有効時点(基準キャッシュ有効時点)よりも前を示す無効キー情報は、キャッシュ有効性判定処理に利用されない。
そのため、無効キー情報削除部2090が、上記に示す方法でキャッシュ情報を削除しても、キャッシュ有効性判定処理の精度は下がらない。したがって、本実施形態の2000は、キャッシュ有効性判定処理の精度を下げずに、無効キー情報の格納に要する計算機資源を少なくすることができる。
[実施形態3]
図8は、実施形態3に係るデータ読み込み装置2000を示す図である。図8が示す機能構成部のうち、図1に同符号の機能構成部があるものは、特に説明しない限り図1における同符号の機能構成部と同じ機能を有する。また、図8において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
本実施形態のデータ読み込み装置2000は、読み込み部2100を有する。読み込み部2100は、キーに対応するキャッシュを読み込む時に、そのキーに対応するキャッシュが有効であるか否かの判定を、キャッシュ有効性判定部2080に行わせる。
キャッシュ有効性判定部2080が、キャッシュは有効であると判定した場合、読み込み部2100は、例えばそのキーに対応するキャッシュを取得する。
キャッシュ有効性判定部2080が、キャッシュは無効であると判定した場合、例えば読み込み部2100は、キーに対応するソースデータを、ソースデータ格納領域から取得する。
その他にも例えば、読み込み部2100は、キャッシュが無効である場合、データの読み出しを遅延してもよい。例えば複数のデータ読み込み装置2000が、1つのキャッシュ格納領域3000を共有しているとする。この場合、例えば処理量が多いデータ読み込み装置2000の読み込み部2100はデータの読み出しを遅延し、処理量が少ないデータ読み込み装置2000の読み込み部2100はキャッシュ格納領域3000からデータの読み出しを行うようにする。こうすることで、複数のデータ読み込み装置2000の間で負荷が分散される。
<作用・効果>
以上の構成により、データ読み込み装置2000は、キーに対応するキャッシュが無効であるか否かを、キーに対応するキャッシュを読み込む時に行う。そのため、データ読み込み装置2000は、無効なキャッシュを取得することを防ぎつつ、キーに対応するキャッシュが無効であるか否かの判定を行う回数を少なくすることができる。
[実施形態4]
<概要>
図9は、本実施形態におけるデータ書き込み装置5000を示す図である。図9において、矢印は情報の流れを表している。また、図9において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
本実施形態のデータ書き込み装置5000は、ソースデータ格納領域6000に対し、キーに対応するソースデータの書き込みを行う。
データ書き込み装置5000は、書き込み部2130、無効キー集合生成部2140および無効キー集合送信部2160を有する。書き込み部2130は、キーに対応するソースデータを、ソースデータ格納領域6000に書き込む。
無効キー集合生成部2140は、データ書き込み装置5000が、ソースデータ格納領域6000に対して書き込んだキャッシュが無効であることを示す無効キー集合を生成する。具体的には、無効キー集合生成部2140は、データ書き込み装置5000がソースデータ格納領域6000に対して書き込んだソースデータに対応するキーのキー変換値を算出し、算出したキー変換値を含む無効キー集合を生成する。
無効キー集合送信部2160は、無効キー集合生成部2140が生成した無効キー集合を送信する。無効キー集合送信部2160は、例えばデータ読み込み装置2000や無効キー集合を集中管理する管理装置へ無効キー集合を送信する。
以上のように、本実施形態のデータ書き込み装置5000は、ソースデータ格納領域6000に対して書き込んだソースデータと同一のキーに対応するキャッシュが無効であることを示す無効キー集合を生成する。そして、データ書き込み装置5000は、生成した無効キー集合を送信する。こうすることで、データ書き込み装置5000は、ソースデータの複製であるキャッシュの読み出しを行う装置に対して、キャッシュが無効なデータに対応するキーを示す情報を提供することができる。
以下、本実施形態の詳細を述べる。
<無効キー集合生成部2140の詳細>
例えば無効キー集合生成部2140は、次に示す方法で無効キー集合を生成する。まず無効キー集合生成部2140は、空の無効キー集合を生成する。そして、データ書き込み装置5000がソースデータ格納領域6000に対して書き込んだソースデータに対応するキーのキー変換値を、無効キー集合に追加する。
データ書き込み装置5000がソースデータ格納領域6000に対して複数のソースデータを書き込んだ場合、無効キー集合生成部2140は、それぞれのソースデータについて無効キー集合を生成してもよいし、複数のソースデータについてまとめて無効キー集合を生成してもよい。複数のソースデータについてまとめて無効キー集合を生成する場合、無効キー集合生成部2140は、各ソースデータに対応するキーそれぞれについてキー変換値を算出する。そして、算出した複数のキー変換値を含む無効キー集合を生成する。
無効キー集合生成部2140が無効キー集合を生成するタイミングは様々である。例えば無効キー集合生成部2140は、データ書き込み装置5000がソースデータ格納領域6000に対してソースデータの書き込みを行う度に、そのソースデータと同一のキーに対応するキャッシュが無効であることを示す無効キー集合を生成する。その他にも例えば、データ書き込み装置5000は、他のデータ書き込み装置5000や、ソースデータ格納領域6000に格納されているソースデータの複製であるキャッシュを読み込む装置とバリヤ同期を行うタイミングで、無効キー集合を生成する。
その他にも例えば、無効キー集合生成部2140は、所定期間の間にデータ書き込み装置5000がソースデータ格納領域6000に対して書き込んだソースデータについて、無効キー集合を生成する。上記所定期間とは、例えばデータ書き込み装置5000が排他制御のためのロックを獲得してから、そのロックを解放するまでの間である。
この場合、例えば無効キー集合生成部2140は、データ書き込み装置5000がロックを解放する時に、無効キー集合を生成してもよい。また、無効キー集合生成部2140は、データ書き込み装置5000がロックを獲得した時に空の無効キー集合を生成し、データ書き込み装置5000がソースデータの書き込みを行う度に、そのソースデータに対応するキーのキー変換値を無効キー集合に追加してもよい。
<無効キー集合送信部2160の詳細>
無効キー集合送信部2160が無効キー集合を送信するタイミングは様々である。例えば無効キー集合送信部2160は、排他制御のために獲得したロックを解放する時に、無効キー集合を送信する。その他にも例えば無効キー集合送信部2160は、定期的に無効キー集合を送信してもよい。その他にも例えば、無効キー集合送信部2160は、無効キー集合生成部2140が無効キー集合を生成する度に、無効キー集合生成部2140が生成した無効キー集合を送信してもよい。
<変形例4−1>
実施形態1、2、または3のデータ読み込み装置2000は、本実施形態のデータ書き込み装置5000が有する機能構成部を有してもよい。この場合のデータ読み込み装置2000を、変形例4−1のデータ読み込み装置2000と表記する。変形例4−1のデータ読み込み装置2000は、キャッシュ格納領域3000からのキャッシュの読み出し、及びソースデータ格納領域6000へのソースデータの書き込みを行う。
<変形例4−2>
同様に、本実施形態のデータ書き込み装置5000は、実施形態1、2、または3のデータ読み込み装置2000が有する機能構成部を有してもよい。
<作用・効果>
以上の構成により、本実施形態によれば、データ書き込み装置5000は、ソースデータ格納領域6000に対して書き込んだソースデータと同一のキーに対応するキャッシュが無効であることを示す無効キー集合を生成する。そして、データ書き込み装置5000は、生成した無効キー集合を送信する。こうすることで、データ書き込み装置5000は、キャッシュ格納領域3000からキーに対応するソースデータの複製であるキャッシュの読み込みを行う装置に対して、キャッシュが無効なソースデータに対応するキーを示す情報を提供することができる。
[実施形態5]
図10は、本実施形態に係る分散システム4000を示すブロック図である。図10の機能構成部のうち、図1、7、8又は10に同符号の機能構成部があるものは、特に説明しない限り、図1、7、8、又は10における同符号の機能構成部と同じ機能を有するとする。また、図10において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
分散システム4000は、データ書き込み装置5000及びデータ読み込み装置2000を有する。データ書き込み装置5000は、ソースデータ格納領域6000に対し、キーに対応するソースデータの書き込みを行う。データ読み込み装置2000は、キャッシュ格納領域3000から、キーに対応するソースデータの複製であるキャッシュを読み込む。一貫性管理装置7000は、分散システム4000におけるキャッシュの一貫性を管理する。
データ書き込み装置5000は、例えば図9が示す実施形態4におけるデータ書き出し装置3000と同じ機能構成部を有する。そのため、図10において、データ書き込み装置5000の内部構成は省略している。ただし本実施形態において、データ書き込み装置5000の無効キー集合送信部2160は、一貫性管理装置7000に対して無効キー集合の送信を行う。
データ読み込み装置2000は、例えば図1が示す実施形態1に係るデータ読み込み装置2000、図7が示す実施形態2に係るデータ読み込み装置2000、又は図8が示す実施形態3に係るデータ読み込み装置2000と同じ機能構成部を有する。そのため、図10において、データ読み込み装置2000の内部構成は省略している。ただし、本実施形態のデータ読み込み装置2000の無効キー集合受信部2040は、一貫性管理装置7000から無効キー集合を受信する。
一貫性管理装置7000は、無効キー集合格納部7020、無効キー集合受信部7040、及び無効キー集合送信部7060を有する。無効キー集合格納部7020は、無効キー集合を格納する。無効キー集合受信部7040は、データ書き込み装置5000から無効キー集合を受信し、受信した無効キー集合を無効キー集合格納部7020に格納する。無効キー集合送信部7060は、無効キー集合格納部7020に格納されている無効キー集合を、データ読み込み装置2000へ送信する。
無効キー集合受信部7040が複数の無効キー集合を受信した場合、例えば無効キー集合格納部7020は、その複数の無効キー集合をそれぞれ格納する。これにより、各無効キー集合に含まれるキー変換値の個数が少なくなるため、データ読み込み装置2000が行うキャッシュ有効性判定処理の精度が高くなる。
その他にも例えば、無効キー集合受信部7040が複数の無効キー集合を受信した場合、無効キー集合格納部7020は、受信した複数の無効キー集合の和集合を、一つの無効キー集合として格納してもよい。こうすることで、データ読み込み装置2000に対して送信する無効キー集合の容量を小さくすることができる。
<変形例5−1>
データ書き込み装置5000は、データ読み込み装置2000が有する機能構成部をさらに有してもよい。またこの場合、一貫性管理装置7000は、データ読み込み装置2000が有する機能構成部をさらに有するデータ書き込み装置5000を、データ読み込み装置2000としても扱う。
また、データ読み込み装置2000は、データ書き込み装置5000が有する機能構成部をさらに有してもよい。またこの場合、一貫性管理装置7000は、データ書き込み装置5000が有する機能構成部をさらに有するデータ読み込み装置2000を、データ書き込み装置5000としても扱う。
<作用・効果>
以上の構成により、本実施形態によれば、分散システム4000は、データ書き込み装置5000、データ読み込み装置2000、及び一貫性管理装置7000を有する。そして、一貫性管理装置7000は、データ書き込み装置5000から受信した無効キー集合を格納し、格納している無効キー集合をデータ読み込み装置2000へ送信する。こうすることで、分散システム4000は、一貫性管理装置7000により無効キー集合の集中管理を行うことができる。
一貫性管理装置7000が無効キー集合の集中管理を行うことで、例えば分散システム4000は、データ書き込み装置5000やデータ読み込み装置2000の処理負荷を小さくすることができる。
例えば、データ書き込み装置5000が送信した無効キー集合を一貫性管理装置7000が受信するため、データ読み込み装置2000は、データ書き込み装置5000が無効キー集合を送信する度に無効キー集合を受信する必要がない。したがって、例えば分散システム4000は、データ読み込み装置2000の処理負荷を考慮したタイミングで、データ読み込み装置2000に対して無効キー集合を送信することができる。
その他にも例えば、一貫性管理装置7000が受信した複数の無効キー集合の和集合を格納することで、データ書き込み装置5000やデータ読み込み装置2000が複数の無効キー集合の和集合を生成する処理を行う回数を少なくすることができる。
また、データ書き込み装置5000が送信した無効キー集合を一貫性管理装置7000が受信するため、データ書き込み装置5000とデータ読み込み装置2000は通信できなくてもよい。そのため、分散システム4000は、ネットワークを柔軟に構成することができる。
[実施形態6]
図11は、本実施形態の分散システム4000を示すブロック図である。ここで、図11が示す機能構成部のうち、図10に同符号の機能構成部があるものは、特に説明しない限り図10に示す機能構成部と同じ機能を有するとする。また、図11において、各機能構成部は、ハードウエア単位の構成ではなく、機能単位の構成を示している。
本実施形態における分散システム4000は、データ読み込み装置2000を複数有する。また、本実施形態における一貫性管理装置7000は、無効キー集合削除部7080をさらに有する。無効キー集合削除部7080の機能については後述する。
本実施形態における一貫性管理装置7000の無効キー集合格納部7020は、無効キー集合を、データ読み込み装置2000ごとに格納する。
本実施形態における一貫性管理装置7000の無効キー集合受信部7040は、受信した無効キー集合に含まれる値を、データ読み込み装置2000ごとに格納している無効キー集合それぞれに追加する。これにより、データ読み込み装置2000のIDに紐づけられた無効キー集合は、無効キー集合格納部7020が受信した無効キー集合の和集合となる。
本実施形態における一貫性管理装置7000は、無効キー集合削除部7080を有する。無効キー集合削除部7080は、無効キー集合送信部7060が無効キー集合の送信を行った場合に、無効キー集合格納部7020から、無効キー集合送信部7060が送信した無効キー集合を削除する。
例えば無効キー集合削除部7080は、無効キー集合削除部7080から、無効キー集合送信部7060が無効キー集合を送信した送信先であるデータ読み込み装置2000のIDを取得する。そして、無効キー集合削除部7080は、無効キー集合格納部7020から、取得したIDに紐付いている無効キー集合を削除する。
<変形例6−1>
データ書き込み装置5000は、データ読み込み装置2000が有する機能構成部をさらに有してもよい。またこの場合、一貫性管理装置7000は、データ読み込み装置2000が有する機能構成部をさらに有するデータ書き込み装置5000を、データ読み込み装置2000としても扱う。
また、データ読み込み装置2000は、データ書き込み装置5000が有する機能構成部をさらに有してもよい。またこの場合、一貫性管理装置7000は、データ書き込み装置5000が有する機能構成部をさらに有するデータ読み込み装置2000を、データ書き込み装置5000としても扱う。
無効キー集合受信部7040は、データ読み込み装置2000の機能構成部を有するデータ書き込み装置5000から無効キー集合を受信した場合、そのデータ書き込み装置5000のIDに紐づけられて格納されている無効キー集合に対しては、受信した無効キー集合に含まれる値を追加しなくてもよい。
<作用・効果>
以上の構成により、本実施形態によれば、無効キー集合格納部7020は、無効キー集合を、データ読み込み装置2000のIDに紐付けて格納する。無効キー集合受信部7040は、受信した無効キー集合に含まれる値を、各データ読み込み装置2000のIDに紐づけられた無効キー集合に加える。これにより、データ読み込み装置2000のIDに紐づけられた無効キー集合は、無効キー集合格納部7020が受信した無効キー集合の和集合となる。こうすることで分散システム4000は、一貫性管理装置7000が無効キー集合を格納するための計算機資源を削減することができる。
さらに、無効キー集合削除部7080は、無効キー集合送信部7060が無効キー集合の送信を行った場合に、無効キー集合格納部7020から、無効キー集合送信部7060が送信した無効キー集合を削除する。こうすることで、無効キー集合削除部7080は、各無効キー集合に含まれる値の個数が増加していくことを防ぐ。こうすることで、本実施形態の分散システム4000は、一貫性管理装置7000により、データ読み込み装置2000が行うキャッシュ有効性判定処理の判定精度を高くすることができる。
以上、図面を参照して本発明の実施形態及び変形例について述べたが、これらは本発明の例示であり、上記実施形態及び変形例の組み合わせ、及び上記実施形態及び変形例以外の様々な構成を採用することもできる。
<付記>
(付記1)
キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置であって、
前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、
無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含む無効キー集合を受信する無効キー情報受信手段と、
前記無効キー情報受信手段が受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納手段と、
前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納手段から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段と、
を有するデータ読み込み装置。
(付記2)
前記キャッシュ有効性判定手段は、前記無効キー情報を複数取得した際、複数の前記無効キー情報それぞれが示す前記無効キー集合の和集合である無効キー和集合を生成し、入力として取得した前記キーから前記所定の方法で算出した前記キー変換値が、該無効キー和集合に含まれている場合に、該キーに対応する前記キャッシュが無効であると判定する付記1記載のデータ読み込み装置。
(付記3)
前記キャッシュ情報格納手段に格納されているキャッシュ情報が示すキャッシュ有効時点の中から、最も過去の時点を示す前記キャッシュ有効時点を基準有効時点として抽出し、前記無効キー情報格納手段に格納されている前記無効キー情報が示すキャッシュ無効時点が、前記基準有効時点より前の時点を示す場合は、該無効キー情報を前記無効キー情報格納手段から削除する無効キー情報削除手段をさらに有する付記1又は2記載のデータ読み込み装置。
(付記4)
前記キーに対応する前記キャッシュを取得する時に、該キーを与えて前記キャッシュ有効性判定手段を動作させる読み込み手段をさらに有する付記1乃至3いずれか一項に記載のデータ読み込み装置。
(付記5)
付記1乃至4いずれか一項に記載のデータ読み込み装置であって、
前記ソースデータが格納されているソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み手段と、
書き込んだ前記ソースデータに対応する前記キーを前記所定の方法で変換して前記キー変換値を算出し、算出した前記キー変換値を含む前記無効キー集合を生成する無効キー集合生成手段と、
前記無効キー集合を送信する無効キー集合送信手段と、
をさらに有するデータ読み込み装置。
(付記6)
キーに対応づけてソースデータが格納されているソースデータ格納領域に対して、前記ソースデータの書き込みを行う書き込み手段と、
書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成手段と、
前記無効キー集合を送信する無効キー集合送信手段と、
を有するデータ書き込み装置。
(付記7)
キーに対応するソースデータを格納しているソースデータ格納領域に対して前記ソースデータを書き込むデータ書き込み装置と、前記ソースデータの複製であるキャッシュを、該ソースデータに対応するキーと対応づけて格納しているキャッシュ格納領域から、前記キャッシュを読み込むデータ読み込み装置と、前記キャッシュの一貫性を管理する一貫性管理装置とを有する分散システムであって、
前記データ書き込み装置は、
前記ソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み手段と、
書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成手段と、
前記無効キー集合を前記一貫性管理装置へ送信する無効キー集合送信手段と、
を有し、
前記データ読み込み装置は、
前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、
無効な前記キャッシュに対応する前記キーを前記所定の方法で変換した値である前記キー変換値を含む無効キー集合を前記一貫性管理装置から受信する無効キー情報受信手段と、
前記無効キー情報受信手段が受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納手段と、
前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納手段から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段と、
を有し、
前記一貫性管理装置において、
前記無効キー集合を格納する無効キー集合格納手段と、
前記データ書き込み装置から前記無効キー集合を受信し、受信した該無効キー集合を前記無効キー集合格納手段に格納する無効キー集合受信手段と、
前記データ読み込み装置に対し、前記無効キー格納手段に格納されている前記無効キー集合を送信する無効キー集合送信手段と、
を有する分散システム。
(付記8)
付記7記載の分散システムであって、
複数のデータ読み込み装置を有し、
前記一貫性管理装置は、
前記無効キー集合格納手段は、前記無効キー集合を前記データ読み込み装置のIDと紐づけ、複数の前記データ読み込み装置ごとに前記無効キー集合を格納し、
前記無効キー集合受信手段は、
受信した前記無効キー集合に含まれる値を、前記無効キー集合格納手段に格納されている前記無効キー集合それぞれに加え、
前記無効キー集合送信手段は、前記データ読み込み装置に対し、該データ読み込み装置のIDに紐づいている前記無効キー集合を送信し、
前記無効キー集合送信手段が前記データ読み込み装置に対して前記無効キー集合を送信した場合に、該無効キー集合を前記無効キー集合格納手段から削除する無効キー集合削除手段をさらに有すること、
を特徴とする分散システム。
(付記9)
コンピュータが、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置として動作する方法であって、
前記コンピュータが、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納ステップと、
前記コンピュータが、無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含む無効キー集合を受信する無効キー情報受信ステップと、
前記コンピュータが、前記無効キー情報受信ステップで受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納ステップと、
前記コンピュータが、前記キーを取得し、前記キャッシュ情報格納ステップで格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納ステップで格納した前記無効キー情報から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定ステップと、
を有する方法。
(付記10)
前記キャッシュ有効性判定ステップは、前記コンピュータが、前記無効キー情報を複数取得した際、複数の前記無効キー情報それぞれが示す前記無効キー集合の和集合である無効キー和集合を生成し、入力として取得した前記キーから前記所定の方法で算出した前記キー変換値が、該無効キー和集合に含まれている場合に、該キーに対応する前記キャッシュが無効であると判定する付記9記載の方法。
(付記11)
前記コンピュータが、前記キャッシュ情報格納ステップで格納したキャッシュ情報が示すキャッシュ有効時点の中から、最も過去の時点を示す前記キャッシュ有効時点を基準有効時点として抽出し、前記無効キー情報格納ステップで格納した前記無効キー情報が示すキャッシュ無効時点が、前記基準有効時点より前の時点を示す場合は、該無効キー情報を削除する無効キー情報削除ステップをさらに有する付記9又は10記載の方法。
(付記12)
前記コンピュータが、前記キーに対応する前記キャッシュを取得する時に、該キーを与えて前記キャッシュ有効性判定ステップを動作させる読み込みステップをさらに有する付記9乃至11いずれか一項に記載の方法。
(付記13)
付記9乃至12いずれか一項に記載の方法であって、
前記コンピュータが、前記ソースデータが格納されているソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込みステップと、
前記コンピュータが、書き込んだ前記ソースデータに対応する前記キーを前記所定の方法で変換して前記キー変換値を算出し、算出した前記キー変換値を含む前記無効キー集合を生成する無効キー集合生成ステップと、
前記コンピュータが、前記無効キー集合を送信する無効キー集合送信ステップと、
をさらに有する方法。
(付記14)
コンピュータが、キーに対応づけてソースデータが格納されているソースデータ格納領域に対して、前記ソースデータの書き込みを行うデータ書き込み装置として動作する方法であって、
前記コンピュータが、前記ソースデータ格納領域に対して、前記ソースデータの書き込みを行う書き込みステップと、
前記コンピュータが、書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成ステップと、
前記コンピュータが、前記無効キー集合を送信する無効キー集合送信ステップと、
を有する方法。
(付記15)
キーに対応するソースデータを格納しているソースデータ格納領域に対して前記ソースデータを書き込むデータ書き込み装置と、前記ソースデータの複製であるキャッシュを、該ソースデータに対応するキーと対応づけて格納しているキャッシュ格納領域から、前記キャッシュを読み込むデータ読み込み装置と、前記キャッシュの一貫性を管理する一貫性管理装置とを有する分散システムを制御する方法であって、
前記データ書き込み装置が、前記ソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込みステップと、
前記データ書き込み装置が、書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成ステップと、
前記データ書き込み装置が、前記無効キー集合を前記一貫性管理装置へ送信する無効キー集合送信ステップと、
前記データ読み込み装置が、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納ステップと、
前記データ読み込み装置が、無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含む無効キー集合を、前記一貫性管理装置から受信する無効キー情報受信ステップと、
前記コンピュータが、前記無効キー情報受信ステップが受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納ステップと、
前記コンピュータが、前記キーを取得し、前記キャッシュ情報格納ステップで格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納ステップで格納した前記無効キー情報から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定ステップと、
前記一貫性管理装置が、前記無効キー集合を格納する無効キー集合格納ステップと、
前記一貫性管理装置が、前記データ書き込み装置から前記無効キー集合を受信し、受信した該無効キー集合を前記無効キー集合格納ステップで格納する無効キー集合受信ステップと、
前記一貫性管理装置が、前記データ読み込み装置に対し、前記無効キー格納ステップで格納した前記無効キー集合を送信する無効キー集合送信ステップと、
を有する方法。
(付記16)
付記15記載の方法であって、
前記分散システムは、複数のデータ読み込み装置を有し、
前記無効キー集合格納ステップは、前記一貫性管理装置が、前記無効キー集合を前記データ読み込み装置のIDと紐づけ、複数の前記データ読み込み装置ごとに前記無効キー集合を格納し、
前記無効キー集合受信ステップは、前記一貫性管理装置が、受信した前記無効キー集合に含まれる値を、前記無効キー集合格納ステップで格納した前記無効キー集合それぞれに加え、
前記無効キー集合送信ステップは、前記一貫性管理装置が、前記データ読み込み装置に対し、該データ読み込み装置のIDに紐づいている前記無効キー集合を送信し、
前記無効キー集合送信ステップで、前記データ読み込み装置に対して前記無効キー集合を送信した場合に、該無効キー集合を削除する無効キー集合削除ステップをさらに有すること、
を特徴とする方法。
(付記17)
コンピュータに、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納機能と、
無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含む無効キー集合を受信する無効キー情報受信機能と、
前記無効キー情報受信機能が受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納機能と、
前記キーを取得し、前記キャッシュ情報格納機能が格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納機能が格納した前記無効キー情報から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定機能と、
を持たせるプログラム。
(付記18)
前記キャッシュ有効性判定機能は、前記無効キー情報を複数取得した際、複数の前記無効キー情報それぞれが示す前記無効キー集合の和集合である無効キー和集合を生成し、入力として取得した前記キーから前記所定の方法で算出した前記キー変換値が、該無効キー和集合に含まれている場合に、該キーに対応する前記キャッシュが無効であると判定する付記17記載のプログラム。
(付記19)
前記コンピュータに、前記キャッシュ情報格納機能で格納したキャッシュ情報が示すキャッシュ有効時点の中から、最も過去の時点を示す前記キャッシュ有効時点を基準有効時点として抽出し、前記無効キー情報格納機能で格納した前記無効キー情報が示すキャッシュ無効時点が、前記基準有効時点より前の時点を示す場合は、該無効キー情報を削除する無効キー情報削除機能をさらに持たせる付記17又は18記載のプログラム。
(付記20)
前記コンピュータに、前記キーに対応する前記キャッシュを取得する時に、該キーを与えて前記キャッシュ有効性判定機能を動作させる読み込み機能をさらに持たせる付記17乃至19いずれか一項に記載の方法。
(付記21)
付記17乃至20いずれか一項に記載のプログラムであって、前記コンピュータに、
前記ソースデータが格納されているソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み機能と、
書き込んだ前記ソースデータに対応する前記キーを前記所定の方法で変換して前記キー変換値を算出し、算出した前記キー変換値を含む前記無効キー集合を生成する無効キー集合生成機能と、
前記無効キー集合を送信する無効キー集合送信機能と、
をさらに持たせるプログラム。
(付記22)
コンピュータを、キーに対応づけてソースデータが格納されているソースデータ格納領域に対して、前記ソースデータの書き込みを行うデータ書き込み装置として機能させるプログラムであって、前記コンピュータに、
前記ソースデータ格納領域に対して、前記ソースデータの書き込みを行う書き込み機能と、
書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換してキー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成機能と、
前記無効キー集合を送信する無効キー集合送信機能と、
を持たせるプログラム。
(付記23)
キーに対応するソースデータを格納しているソースデータ格納領域に対して前記ソースデータを書き込むデータ書き込み装置と、前記ソースデータの複製であるキャッシュを、該ソースデータに対応するキーと対応づけて格納しているキャッシュ格納領域から、前記キャッシュを読み込むデータ読み込み装置と、前記キャッシュの一貫性を管理する一貫性管理装置とを有する分散システムを制御するプログラムであって、
前記データ書き込み装置に、
前記ソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み機能と、
前記書き込み機能が書き込んだ前記ソースデータに対応する前記キーを、所定の方法で変換し、キー変換値を算出し、算出した前記キー変換値を含む無効キー集合を生成する無効キー集合生成機能と、
前記無効キー集合を前記一貫性管理装置へ送信する無効キー集合送信機能と、
を持たせ、
前記データ読み込み装置に、
前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納機能と、
無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含む無効キー集合を、前記一貫性管理装置から受信する無効キー情報受信機能と、
前記無効キー情報受信機能が受信した前記無効キー集合と、該無効キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報である無効キー情報を格納する無効キー情報格納機能と、
前記キーを取得し、前記キャッシュ情報格納機能で格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記無効キー情報格納機能で格納した前記無効キー情報から、前記無効キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記無効キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該無効キー情報が示す前記無効キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定機能と、
を持たせ、
前記一貫性管理装置に、
前記無効キー集合を格納する無効キー集合格納機能と、
前記データ書き込み装置から前記無効キー集合を受信し、受信した該無効キー集合を前記無効キー集合格納機能で格納する無効キー集合受信機能と、
前記データ読み込み装置に対し、前記無効キー格納機能で格納した前記無効キー集合を送信する無効キー集合送信機能と、
を持たせるプログラム。
(付記24)
付記23記載のプログラムであって、
前記分散システムは、複数のデータ読み込み装置を有し、
前記無効キー集合格納機能は、前記一貫性管理装置が、前記無効キー集合を前記データ読み込み装置のIDと紐づけ、複数の前記データ読み込み装置ごとに前記無効キー集合を格納し、
前記無効キー集合受信機能は、前記一貫性管理装置が、受信した前記無効キー集合に含まれる値を、前記無効キー集合格納機能で格納した前記無効キー集合それぞれに加え、
前記無効キー集合送信機能は、前記一貫性管理装置が、前記データ読み込み装置に対し、該データ読み込み装置のIDに紐づいている前記無効キー集合を送信し、
前記一貫性管理装置に、前記無効キー集合送信機能で、前記データ読み込み装置に対して前記無効キー集合を送信した場合に、該無効キー集合を削除する無効キー集合削除機能をさらに持たせること、
を特徴とするプログラム。
200 キャッシュ情報テーブル
202 キー
204 キャッシュ有効時点
300 無効キー情報テーブル
302 無効キー集合
304 キャッシュ無効時点
1020 バス
1040 CPU
1060 RAM
1080 ストレージ
1100 無効キー集合受信処理
1120 キャッシュ有効性判定処理
1140 無効キー情報
1160 キャッシュ情報
2000 データ読み込み装置
2020 キャッシュ情報格納部
2040 無効キー集合受信部
2060 無効キー情報格納部
2080 キャッシュ有効性判定部
2090 無効キー情報削除部
2100 読み込み部
2130 書き込み部
2140 無効キー集合生成部
2160 無効キー集合送信部
3000 キャッシュ格納領域
4000 分散システム
5000 データ書き込み装置
6000 ソースデータ格納領域
7000 一貫性管理装置
7020 無効キー集合格納部
7040 無効キー集合受信部
7060 無効キー集合送信部
7080 無効キー集合削除部

Claims (10)

  1. キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置であって、
    前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、
    無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含むキー集合を受信するキー情報受信手段と、
    記キー情報受信手段が受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納手段と、
    前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納手段から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段と、
    を有し、
    前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表し、
    前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が当該データ読み込み装置に対して送信された時点、又はそのキー集合が当該データ読み込み装置によって受信された時点を表す、データ読み込み装置。
  2. 前記キャッシュ有効性判定手段は、前記キー情報を複数取得した際、複数の前記キー情報それぞれが示す前記キー集合の和集合であるキー和集合を生成し、入力として取得した前記キーから前記所定の方法で算出した前記キー変換値が、該キー和集合に含まれている場合に、該キーに対応する前記キャッシュが無効であると判定する請求項1記載のデータ読み込み装置。
  3. 前記キャッシュ情報格納手段に格納されているキャッシュ情報が示すキャッシュ有効時点の中から、最も過去の時点を示す前記キャッシュ有効時点を基準有効時点として抽出し、前記キー情報格納手段に格納されている前記キー情報が示すキャッシュ無効時点が、前記基準有効時点より前の時点を示す場合は、該キー情報を前記キー情報格納手段から削除するキー情報削除手段をさらに有する請求項1又は2記載のデータ読み込み装置。
  4. 前記キーに対応する前記キャッシュを取得する時に、該キーを与えて前記キャッシュ有効性判定手段を動作させる読み込み手段をさらに有する請求項1乃至3いずれか一項に記載のデータ読み込み装置。
  5. 請求項1乃至4いずれか一項に記載のデータ読み込み装置であって、
    前記ソースデータが格納されているソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み手段と、
    書き込んだ前記ソースデータに対応する前記キーを前記所定の方法で変換して1つ以上の前記キー変換値を算出し、前記算出した1つ以上のキー変換値を含む前記キー集合を生成するキー集合生成手段と、
    記キー集合を送信するキー集合送信手段と、
    をさらに有するデータ読み込み装置。
  6. キーに対応するソースデータを格納しているソースデータ格納領域に対して前記ソースデータを書き込むデータ書き込み装置と、前記ソースデータの複製であるキャッシュを、該ソースデータに対応するキーと対応づけて格納しているキャッシュ格納領域から、前記キャッシュを読み込むデータ読み込み装置と、前記キャッシュの一貫性を管理する一貫性管理装置とを有する分散システムであって、
    前記データ書き込み装置は、
    前記ソースデータ格納領域に対して前記ソースデータの書き込みを行う書き込み手段と、
    書き込んだ前記ソースデータに対応する前記キーを所定の方法で変換して1つ以上のキー変換値を算出し、前記算出した1つ以上のキー変換値を含むキー集合を生成するキー集合生成手段と、
    記キー集合を前記一貫性管理装置へ送信するキー集合送信手段と、
    を有し、
    前記データ読み込み装置は、
    前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納手段と、
    無効な前記キャッシュに対応する前記キーを前記所定の方法で変換した値である前記キー変換値を含むキー集合を前記一貫性管理装置から受信するキー情報受信手段と、
    記キー情報受信手段が受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納手段と、
    前記キーを取得し、前記キャッシュ情報格納手段から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納手段から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定手段と、
    を有し、
    前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表し、
    前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が前記データ読み込み装置に対して送信された時点、又はそのキー集合が前記データ読み込み装置によって受信された時点を表し、
    前記一貫性管理装置は、
    記キー集合を格納するキー集合格納手段と、
    前記データ書き込み装置から前記キー集合を受信し、受信した該キー集合を前記キー集合格納手段に格納するキー集合受信手段と、
    前記データ読み込み装置に対し、前記キー集合格納手段に格納されている前記キー集合を送信するキー集合送信手段と、
    を有する分散システム。
  7. 請求項記載の分散システムであって、
    複数のデータ読み込み装置を有し、
    前記一貫性管理装置において、
    記キー集合格納手段は、前記キー集合を前記データ読み込み装置のIDと紐づけ、複数の前記データ読み込み装置ごとに前記キー集合を格納し、
    記キー集合受信手段は、
    受信した前記キー集合に含まれる値を、前記キー集合格納手段に格納されている前記キー集合それぞれに加え、
    記キー集合送信手段は、前記データ読み込み装置に対し、該データ読み込み装置のIDに紐づいている前記キー集合を送信し、
    記キー集合送信手段が前記データ読み込み装置に対して前記キー集合を送信した場合に、該キー集合を前記キー集合格納手段から削除するキー集合削除手段をさらに有すること、
    を特徴とする分散システム。
  8. 請求項6又は7に記載の分散システムが有するデータ書き込み装置。
  9. コンピュータが、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置として動作する方法であって、
    前記コンピュータが、前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納ステップと、
    前記コンピュータが、無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含むキー集合を受信するキー情報受信ステップと、
    前記コンピュータが、前記キー情報受信ステップで受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納ステップと、
    前記コンピュータが、前記キーを取得し、前記キャッシュ情報格納ステップで格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納ステップで格納した前記キー情報から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定ステップと、
    を有し、
    前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表し、
    前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が前記コンピュータに対して送信された時点、又はそのキー集合が前記コンピュータによって受信された時点を表す、方法。
  10. コンピュータに、キーに対応するソースデータの複製であるキャッシュを前記キーに対応づけて格納しているキャッシュ格納領域から、前記キーに対応する前記キャッシュを読み込むデータ読み込み装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
    前記キーと、該キーに対応する前記キャッシュのキャッシュ有効時点とを紐づけた情報であるキャッシュ情報を格納するキャッシュ情報格納機能と、
    無効な前記キャッシュに対応する前記キーを所定の方法で変換した値であるキー変換値を含むキー集合を受信するキー情報受信機能と、
    記キー情報受信機能で受信した前記キー集合と、該キー集合によって無効であることを示される前記キャッシュのキャッシュ無効時点とを紐づけた情報であるキー情報を格納するキー情報格納機能と、
    前記キーを取得し、前記キャッシュ情報格納機能が格納した前記キャッシュ情報から、該キーに紐づけられたキャッシュ有効時点を取得し、前記キー情報格納機能が格納した前記キー情報から、前記キー情報の前記キャッシュ無効時点が該キャッシュ有効時点より後の時点を示す前記キー情報を取得し、該キーから前記所定の方法で算出した前記キー変換値が、該キー情報が示す前記キー集合に含まれている場合は、該キーに対応する前記キャッシュが無効であると判定するキャッシュ有効性判定機能と、
    を持たせ
    前記キーに紐づけられた前記キャッシュ有効時点は、そのキーに対応するキャッシュが有効であることが確認された時点を表し、
    前記キー集合に紐づけられた前記キャッシュ無効時点は、そのキー集合が生成された時点、そのキー集合が前記コンピュータに対して送信された時点、又はそのキー集合が前記コンピュータによって受信された時点を表す、プログラム。
JP2012239812A 2012-10-31 2012-10-31 データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム Active JP5991141B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012239812A JP5991141B2 (ja) 2012-10-31 2012-10-31 データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012239812A JP5991141B2 (ja) 2012-10-31 2012-10-31 データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014089627A JP2014089627A (ja) 2014-05-15
JP5991141B2 true JP5991141B2 (ja) 2016-09-14

Family

ID=50791477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012239812A Active JP5991141B2 (ja) 2012-10-31 2012-10-31 データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5991141B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581704A (en) * 1993-12-06 1996-12-03 Panasonic Technologies, Inc. System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client
KR100451211B1 (ko) * 2002-10-31 2004-10-13 엘지전자 주식회사 이동 컴퓨팅 환경에서 트랜잭션 캐시 일관성 유지 시스템및 방법
US8069313B2 (en) * 2009-03-27 2011-11-29 Sap Ag Method and system for managing cache invalidation
JP5385874B2 (ja) * 2010-08-23 2014-01-08 日本電信電話株式会社 キャッシュ管理装置、キャッシュ管理プログラム及び記録媒体

Also Published As

Publication number Publication date
JP2014089627A (ja) 2014-05-15

Similar Documents

Publication Publication Date Title
JP5450841B2 (ja) ユーザコンテンツフィードをサポートするための機構
US20190245921A1 (en) Synchronized content library
US11245774B2 (en) Cache storage for streaming data
US20160212203A1 (en) Multi-site heat map management
US9020916B2 (en) Database server apparatus, method for updating database, and recording medium for database update program
JP5943430B2 (ja) 分散記憶システムおよび分散記憶方法
EP3316150B1 (en) Method and apparatus for file compaction in key-value storage system
WO2019024780A1 (zh) 区块链轻量化处理方法、区块链节点及存储介质
JPH0962570A (ja) データベース管理装置及び方法
TW202111564A (zh) 日誌結構儲存系統
US20070124350A1 (en) High performance file fragment cache
KR102452250B1 (ko) 오프체인 데이터 저장 방법 및 장치
CN104281533A (zh) 一种存储数据的方法及装置
CN110958300B (zh) 一种数据的上传方法、系统、装置、电子设备和计算机可读介质
CN115167786A (zh) 一种数据存储方法、装置、系统、设备和介质
US20230359628A1 (en) Blockchain-based data processing method and apparatus, device, and storage medium
CN109284624A (zh) 一种基于区块链存储的数据安全隔离方法及装置
CN110457307B (zh) 元数据管理系统、用户集群创建方法、装置、设备和介质
US9058326B1 (en) Recovery and flush of endurant cache
JP6570761B2 (ja) ストレージ制約付きの同期エンジン
JP5991141B2 (ja) データ読み込み装置、データ書き込み装置、分散システム、方法、及びプログラム
CN107544916B (zh) 一种缓存方法及存储设备
US9251073B2 (en) Update mask for handling interaction between fills and updates
CN103544117B (zh) 一种数据读取方法及装置
US10956386B2 (en) Methods and apparatuses for automated performance tuning of a data modeling platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160624

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: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160801

R150 Certificate of patent or registration of utility model

Ref document number: 5991141

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150