(57)【要約】【課題】分散システムから取得対象である情報を高効率に取得することが可能なストレージ管理装置等を提供する。【解決手段】  ストレージ管理装置４０１は、キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶部４０４と、複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、該一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得部４０２と、受信した該バリュー情報に含まれるバージョン情報が、記憶部４０４に格納されているバージョン情報に一致しているか否かを比較する比較部４０３とを有し、比較部４０３が一致していないと判定した場合に、取得部４０２は、該複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する。【選択図】  図１１
2019040301.tif 000002
【特許請求の範囲】
【請求項１】
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得手段と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較する比較手段と
を備え、
前記比較手段が一致していないと判定した場合に、前記取得手段は、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する
ストレージ管理装置。
【請求項２】
前記一部の格納装置は、前記複数の格納装置のうちの１台の格納装置である
請求項１に記載のストレージ管理装置。
【請求項３】
前記記憶手段には、前記キー情報に関する前記バージョン情報と、前記一部の格納装置を表す識別子とが関連付けされた管理情報が格納されており、
前記取得手段は、前記記憶手段から前記識別子を読み取り、読み取った前記識別子が表す前記一部の格納装置に前記取得信号を送信する
請求項１または請求項２に記載のストレージ管理装置。
【請求項４】
前記取得手段は、前記複数の格納装置に対して、該キー情報に関するバリュー情報を取得する取得信号を送信した場合に、前記複数の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した該バリュー情報に含まれているバージョン情報のうち、最新のバージョン情報を特定し、特定した該最新のバージョン情報を前記記憶手段に格納する
請求項１乃至請求項３のいずれかに記載のストレージ管理装置。
【請求項５】
前記取得手段は、前記一部の格納装置から前記キー情報に関するバリュー情報を取得できなかった場合に、前記複数の格納装置に対して、該キー情報に関するバリュー情報を取得する要求を送信する
請求項１乃至請求項４のいずれかに記載のストレージ管理装置。
【請求項６】
前記記憶手段に格納されている情報を更新する格納処理を実行する更新手段
をさらに備え、
前記記憶手段には、前記キー情報に関する前記バージョン情報と、前記キー情報に関する前記一部の格納装置を表す識別子と関連付けされた管理情報が格納されており、
前記更新手段は、他ストレージ管理装置における記憶手段に格納されている管理情報を取得し、取得した前記管理情報におけるバージョン情報と、自ストレージ管理装置における記憶手段に格納されている前記管理情報におけるバージョン情報のうち、新しいバージョン情報を表す新バージョン情報を選択し、前記新バージョン情報に関連付けされている前記識別子と、選択した該新バージョン情報とが関連付けされた前記管理情報を作成し、作成した前記管理情報によって、自ストレージ管理装置における記憶手段に格納し、
前記取得手段は、自ストレージ管理装置における記憶手段に格納されている前記管理情報における前記一部の格納装置に対して、前記取得信号を送信する
請求項１乃至請求項５のいずれかに記載のストレージ管理装置。
【請求項７】
前記キー情報に関する前記バリュー情報を取得する要求を表す取得クエリを受け取るクエリ処理手段
をさらに備え、
前記クエリ処理手段は、前記取得手段が取得した前記バリュー情報を出力する
請求項１乃至請求項６のいずれかに記載のストレージ管理装置。
【請求項８】
請求項１乃至請求項７のいずれかに記載のストレージ管理装置と、
前記複数の格納装置と、
を備えるデータベースシステム。
【請求項９】
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段を有する情報処理装置によって、複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較し、一致していないと判定した場合に、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信するストレージ管理方法。
【請求項１０】
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶機能と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得機能と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶機能にて格納されているバージョン情報に一致しているか否かを比較する比較機能と
をコンピュータに実現させ
前記比較機能によって一致していないと判定した場合に、前記取得機能によって、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する
ストレージ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データベースシステムから情報を取得する処理を実行するストレージ管理装置等に関する。
【背景技術】
【０００２】
特許文献１及び特許文献２には、データベースの一例が開示されている。
【０００３】
特許文献１には、複数のデータベースを有するサーバを、複数有する分散システムが開示されている。該分散システムにおいて、各サーバは、クエリに応じて、取得処理を実行することによって、該クエリに対する検索結果を取得する。該分散システムにおいては、該クエリに対する検索結果として、最も早く取得された検索結果が出力される。
【０００４】
特許文献２には、データベースを排他制御する最小単位であるページごとに、版数が格納されている管理テーブルを用いて、該ページを管理するストレージ管理装置が開示されている。該ストレージ管理装置は、レコードを更新する更新要求を受信した場合に、サーバから取得した版数と、該管理テーブルに格納されている版数とを比較し、一致した場合には当該レコードを更新する。
【０００５】
また、データベースにおいては、膨大な情報を保存するのに適したデータ形式として、ＫＶ（キーバリュー）ストア方式が採用されることもある。特許文献３には、メタデータに対する操作要求をＫＶストア方式によって処理するシステムが開示されている。
【０００６】
以降、キーバリューストアを、「ＫＶＳ」と表す。
【０００７】
分散ＫＶＳは、あるデータに関する複製データを複数のサーバ（以降、「複数サーバ」と表す）に格納することにより、該複数サーバのうち一部のサーバに生じる障害に対して高い可用性を有する技術である。分散ＫＶＳにおいて、複製データは、たとえば、Ｑｕｏｒｕｍ制御に従い複数サーバに格納される。
【０００８】
Ｑｕｏｒｕｍ制御は、複製データを複数サーバに格納する格納処理において、該複数サーバのうち一部のサーバに対する格納処理が成功したか否かに基づき、該複数サーバに対する該格納処理が成功したか否かを判定する制御である。したがって、Ｑｕｏｒｕｍ制御においては、複製データを複数サーバに格納する格納処理が成功したとしても、該複数サーバのうちの全てのサーバに対する格納処理が成功しているとは限らない。Ｑｕｏｒｕｍ制御においては、たとえば、３台のサーバのうち２台のサーバに対する格納処理が成功した場合に、複製データを複数サーバ（この場合に、３台のサーバ）に格納する格納処理が成功したと判定される。Ｑｕｏｒｕｍ制御においては、たとえば、複数サーバのうち過半数のサーバにて格納処理が成功した場合に、該複数サーバに対する格納処理が成功したと判定される。
【０００９】
取得する対象（以降「取得対象」と表す）を複製データから取得する処理（以降、「取得処理」と表す）は、格納処理と同様に、Ｑｕｏｒｕｍ制御に従い制御される。説明の便宜上、クライアントは、取得対象を複製データから取得することを要求するクエリを、複数サーバに送信したとする。
【００１０】
各サーバは、該クエリに応じて該取得処理を実行することによって、該取得対象を取得する。Ｑｕｏｒｕｍ制御における取得処理が成功したか否かは、複数サーバのうちの一部のサーバにて取得された該取得対象が一致しており、かつ、該一部のサーバにて取得処理が成功しているか否かに基づき決定される。Ｑｕｏｒｕｍ制御においては、クエリに対するリプライとして、たとえば、該一部のサーバにて取得された該取得対象のうち、最新の情報がクライアントに送信される。
【００１１】
Ｑｕｏｒｕｍ制御においては、たとえば、３台のサーバのうち２台のサーバが該取得対象を取得した場合には、該取得対象がクライアントに送信される。この場合に、たとえば、複数サーバのうち過半数のサーバにおいて取得処理が成功しているので、該取得処理にて取得対象であったデータは、該複数サーバに正しく格納されている。
【００１２】
したがって、Ｑｕｏｒｕｍ制御において、取得処理が成功したか否かは、一部のサーバが同一の情報を取得したか否かに基づき決定される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１７−０２７４７１号公報
【特許文献２】特開２００６−０８５５３９号公報
【特許文献３】特開２０１３−０３７５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかし、特許文献１乃至特許文献３に開示されたいずれの装置を用いたとしても、分散システムから取得対象を高効率に取得することは難しい。この理由は、これらの装置を用いたとしても、たとえば、Ｑｕｏｒｕｍ制御等に従い制御される分散システムを、高効率に実現できるとは限らないからである。
【００１５】
そこで、本発明の目的の１つは、分散システムから取得対象である情報を高効率に取得することが可能なストレージ管理装置等を提供することである。
【課題を解決するための手段】
【００１６】
本発明の１つの態様として、ストレージ管理装置は、
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得手段と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較する比較手段と
を備え、
前記比較手段が一致していないと判定した場合に、前記取得手段は、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する。
【００１７】
また、本発明の他の態様として、ストレージ管理方法は、
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段を有する情報処理装置によって、複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較し、一致していないと判定した場合に、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する。
【００１８】
また、本発明の他の態様として、ストレージ管理プログラムは、
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶機能と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得機能と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶機能にて格納されているバージョン情報に一致しているか否かを比較する比較機能と
をコンピュータに実現させ
前記比較機能によって一致していないと判定した場合に、前記取得機能によって、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する。
【００１９】
さらに、同目的は、係るプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２０】
本発明に係るストレージ管理装置等によれば、分散システムから取得対象である情報を高効率に取得することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係るストレージ管理装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るストレージ管理装置における処理のうち取得処理の流れを示すフローチャートである。
【図３】第１の実施形態に係るストレージ管理装置における処理のうち格納処理の流れを示すフローチャートである。
【図４】記憶部に格納される管理情報の一例を概念的に表す図である。
【図５】ＫＶ情報記憶部に格納されるＫＶ情報の一例を概念的に表す図である。
【図６】本発明の第２の実施形態に係るストレージ管理装置が有する構成を示すブロック図である。
【図７】第２の実施形態に係るストレージ管理装置における処理の流れを示すフローチャートである。
【図８】管理情報を作成する処理を概念的に表す図である。
【図９】本発明の第３の実施形態に係るストレージ管理装置が有する構成を示すブロック図である。
【図１０】第３の実施形態に係るストレージ管理装置における処理の流れを示すフローチャートである。
【図１１】本発明の第４の実施形態に係るストレージ管理装置が有する構成を示すブロック図である。
【図１２】第４の実施形態に係るストレージ管理装置における処理の流れを示すフローチャートである。
【図１３】本発明の各実施形態に係るストレージ管理装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【００２２】
次に、本発明を実施する実施形態について図面を参照しながら説明する。
【００２３】
＜第１の実施形態＞
図１を参照しながら、本発明の第１の実施形態に係るストレージ管理装置１０１が有する構成について詳細に説明する。図１は、本発明の第１の実施形態に係るストレージ管理装置１０１が有する構成を示すブロック図である。
【００２４】
第１の実施形態に係るストレージ管理装置１０１は、クエリ処理部１０２と、取得部１０３と、取得情報統合部１０４と、管理情報更新部１０５と、バージョン情報比較部１０６と、記憶部１０７とを有する。
【００２５】
ストレージ管理装置１０１は、データベースシステム１００において、通信ネットワーク１６１を介して格納装置１５１、及び、クライアント１７１に通信可能に接続されている。これらの装置は、通信ネットワーク１６１を介さずに接続されていてもよい。データベースシステム１００は、複数のストレージ管理装置、複数のクライアント、及び、複数の格納装置を有している。
【００２６】
説明の便宜上、該複数のストレージ管理装置は、それぞれ、ストレージ管理装置１０１と同様な構成を有しているとする。該複数の格納装置は、それぞれ、格納装置１５１と同様な構成を有しているとする。しかし、複数の格納装置に格納されている情報は必ずしも同じであるとは限らない。以下の実施形態においても同様である。図１には、データベースシステム１００が有する構成の一例として、２台のストレージ管理装置（ストレージ管理装置１０１、及び、ストレージ管理装置１１１）と、２台の格納装置（格納装置１５１、及び、格納装置１５２）とが示されている。この場合に、格納装置１５２は、格納装置１５１が有している構成と同様な構成を有している。しかし、格納装置１５２に格納されている情報は、格納装置１５１に格納されている情報と同じであるとは限らない。データベースシステム１００は、３台以上のストレージ管理装置、または、３台以上の格納装置を有していてもよい。
【００２７】
クライアント１７１は、複数のストレージ管理装置のうち、いずれか１つのストレージ管理装置１０１に対して処理を要求するクエリを、通信ネットワーク１６１を介して送信する。該クエリは、取得クエリ、または、格納クエリである。取得クエリは、検索キーを表すキー情報に関連付けされている保存情報を、少なくとも１台の格納装置から取得する取得処理を要求するクエリである。格納クエリは、キー情報と、保存情報とが関連付けされている情報を、少なくとも１台の格納装置に格納する格納処理を要求するクエリである。
【００２８】
複数の格納装置は、ストレージ管理装置１０１によって制御されている。格納装置１５１は、ＫＶ情報管理部１５３と、ＫＶ情報記憶部１５４とを有する。格納装置１５２は、格納装置１５１が有している構成と同様な構成を有している。
【００２９】
図５を参照しながら、ＫＶ情報記憶部１５４に格納されるＫＶ情報について説明する。図５は、ＫＶ情報記憶部１５４に格納されるＫＶ情報の一例を概念的に表す図である。
【００３０】
ＫＶ情報においては、取得処理における検索キーを表すキー情報と、該キー情報に関連付けされた情報を表すバリュー情報とが関連付けされている。バリュー情報は、キー情報を用いて取得することができる情報である。本発明の各実施形態においては、バリュー情報は、保存情報と、バージョン情報とを含む。該保存情報は、ストレージ管理装置１０１がクライアント１７１から、あるキー情報に関する取得クエリを受信した場合に、クライアント１７１に送信する情報（すなわち、取得対象である保存情報）を表す。バージョン情報は、キー情報に関するバージョンを表し、該キー情報に関する保存情報を更新する格納処理が実行された順序を特定することができるデータである。
【００３１】
バージョン情報は、たとえば、自然数を用いて表され、該キー情報に関する保存情報が更新される処理に応じて、その値が１つ分増える。この場合に、バージョン情報が大きな値であるほど、当該格納処理が新しいことを表し、バージョン情報が小さな値であるほど、当該格納処理が古いことを表す。たとえば、あるキー情報に関してバージョン情報が小さい順にＫＶ情報（図５に例示）を並べることによって、該あるキー情報に関する保存情報が更新された格納処理を時系列順に追跡することができる。
【００３２】
図５に例示されたＫＶ情報（図５に例示）においては、キー情報「Ｋｅｙ＿Ａ」と、バリュー情報「Ｄａｔａ＿Ａ、８」とが関連付けされている。これは、キー情報「Ｋｅｙ＿Ａ」を検索キーとして取得される情報がバリュー情報「Ｄａｔａ＿Ａ、８」であることを表す。さらに、これは、キー情報「Ｋｅｙ＿Ａ」に関する保存情報が「Ｄａｔａ＿Ａ」であり、キー情報「Ｋｅｙ＿Ａ」に関する保存情報のバージョン情報が「８」であることを表す。
【００３３】
ＫＶ情報記憶部１５４は、たとえば、キー情報に対応している記憶領域にバリュー情報を格納することによって実現することができる。説明の便宜上、この実現方式を、「方式１」と表す。したがって、バリュー情報が保存情報と、バージョン情報とを含む場合に、ＫＶ情報記憶部１５４においては、キー情報に対応している記憶領域に、該保存情報と、該バージョン情報とが関連付けされたバリュー情報が格納される。この場合に、ＫＶ情報管理部１５３は、キー情報に関するバリュー情報を取得する取得信号を受け取った場合に、該キー情報に対応している記憶領域に格納されている情報を読み取ることによって、該バリュー情報を読み取る。
【００３４】
また、ＫＶ情報記憶部１５４は、キー情報に対応している保存情報を記憶可能な記憶部（不図示）と、該キー情報に関するバージョン情報とを記憶可能な記憶部（不図示）とを用いて実現されていてもよい。説明の便宜上、この実現方式を、「方式２」と表す。ＫＶ情報記憶部１５４を実現する方式は、方式１及び方式２に限定されない。
【００３５】
方式１に従えば、キー情報に対応している記憶領域を１回検索することによって、該キー情報に関する保存情報、及び、該キー情報に関するバージョン情報を特定することができる。これに対し、方式２に従えば、キー情報に対応している記憶部１０７を２回検索することによって、該キー情報に関する保存情報、及び、該キー情報に関するバージョン情報を特定することができる。したがって、方式１によれば、キー情報が与えられた場合において該キー情報に関する取得処理が、方式２に比べて少ないという効果を奏する。
【００３６】
以降の説明においては、説明の便宜上、ＫＶ情報記憶部１５４は、方式１に従い実現されているとする。
【００３７】
格納装置１５１は、ストレージ管理装置１０１から処理を要求する要求信号を受信するのに応じて、該要求信号にて要求された処理を実行する。該要求信号は、たとえば、格納信号、または、取得信号である。該格納信号は、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）を更新する格納処理、または、ＫＶ情報記憶部１５４にＫＶ情報（図５に例示）を格納する格納処理を要求する信号である。該格納信号は、キー情報と、該キー情報に関するバリュー情報（保存情報と、バージョン情報）とを含んでいる。該取得信号は、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）を取得対象として、キー情報に関するバリュー情報を取得する取得処理を要求する信号である。該取得信号は、取得対象である保存情報を特定する処理にて用いられるキー情報を含んでいる。
【００３８】
格納装置１５１において、ＫＶ情報管理部１５３は、ストレージ管理装置１０１から要求信号を受信する。要求信号が取得信号である場合に、ＫＶ情報管理部１５３は、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）を取得対象として、キー情報に関するバリュー情報を取得する。ＫＶ情報管理部１５３は、取得した該バリュー情報を、ストレージ管理装置１０１に送信する。
【００３９】
より具体的に、ＫＶ情報管理部１５３において実行される取得処理について説明する。ＫＶ情報管理部１５３は、たとえば、ストレージ管理装置１０１における取得部１０３から取得信号を受信した場合に、該取得信号に含まれるキー情報に関連付けされたバリュー情報を、格納装置１５１に格納されているＫＶ情報（図５に例示）から取得し、取得した該バリュー情報を取得部１０３に送信する。ＫＶ情報管理部１５３は、たとえば、ストレージ管理装置１０１における取得情報統合部１０４から取得信号を受信した場合に、該取得信号に含まれるキー情報に対応するバリュー情報を、格納装置１５１に格納されているＫＶ情報（図５に例示）から取得し、取得したＫＶ情報を取得情報統合部１０４に送信する。
【００４０】
ＫＶ情報管理部１５３は、格納信号を受信した場合に、ＫＶ情報記憶部１５４のうち、該格納信号に含まれているキー情報に対応している記憶領域に、該格納信号に含まれているバリュー情報を格納する。または、ＫＶ情報管理部１５３は、格納信号を受信した場合に、ＫＶ情報記憶部１５４のうち、該格納信号に含まれているキー情報に対応している記憶領域を確保し、確保した該記憶領域に、該格納信号に含まれているバリュー情報を格納する。ＫＶ情報管理部１５３は、実行した処理（取得処理、または、格納処理）が成功したか否かを表す結果情報を作成し、作成した該結果情報をストレージ管理装置１０１に送信する。
【００４１】
ＫＶ情報管理部１５３は、キー情報に対応している記憶領域に、該格納信号に含まれているバリュー情報を格納するのではなく、キー情報と、バリュー情報とが関連付けされたＫＶ情報を作成し、作成したＫＶ情報をＫＶ情報記憶部１５４に格納してもよい。
【００４２】
より具体的に、ＫＶ情報管理部１５３における格納処理について説明する。ＫＶ情報管理部１５３は、たとえば、ストレージ管理装置１０１における取得情報統合部１０４から格納信号を受信する。上述したように、該格納信号は、キー情報と、該キー情報に関するバリュー情報（保存情報と、バージョン情報）とを含んでいる。
【００４３】
該キー情報を含むＫＶ情報（図５に例示）がＫＶ情報記憶部１５４に格納されている場合に、ＫＶ情報管理部１５３は、該キー情報に対応している記憶領域に、格納信号に含まれているバリュー情報を格納する。該キー情報を含むＫＶ情報（図５に例示）がＫＶ情報記憶部１５４に格納されていない場合に、ＫＶ情報管理部１５３は、該キー情報に対応している記憶領域を確保し、確保した該記憶領域に、該格納信号に含まれているバリュー情報を格納する。
【００４４】
または、該キー情報を含むＫＶ情報（図５に例示）がＫＶ情報記憶部１５４に格納されている場合に、ＫＶ情報管理部１５３は、格納信号に含まれている該キー情報と、該バリュー情報とが関連付けされたＫＶ情報を作成し、作成した該ＫＶ情報をＫＶ情報記憶部１５４における、該キー情報を含むＫＶ情報が格納されている記憶領域に格納する。該キー情報を含むＫＶ情報（図５に例示）がＫＶ情報記憶部１５４に格納されていない場合に、ＫＶ情報管理部１５３は、格納信号に含まれている該キー情報と、該バリュー情報とが関連付けされたＫＶ情報を作成し、作成したＫＶ情報をＫＶ情報記憶部１５４に格納する。
【００４５】
ＫＶ情報管理部１５３は、格納信号に応じた処理を実行した結果を表す結果情報を作成し、作成した該結果情報を取得情報統合部１０４に送信する。
【００４６】
次に、図４を参照しながら管理情報（図４に例示）について説明する。図４は、記憶部１０７に格納される管理情報の一例を概念的に表す図である。
【００４７】
管理情報は、キー情報と、キー情報に関する保存情報のバージョンを表すバージョン情報と、該キー情報に関するバリュー情報が格納されている格納領域（または、格納装置）を表す格納領域情報とが関連付けされた情報である。格納領域情報は、格納装置（または、格納領域）を表す識別子であり、たとえば、該格納装置に割り当てられているＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスであってもよい。該格納領域情報は、上述した例に限定されない。以降、説明の便宜上、格納領域情報は、格納装置１５１を指し示す識別子であるとする。
【００４８】
管理情報（図４に例示）において、バージョン情報は、あるキー情報に関して、ストレージ管理装置１０１が実行した処理（格納処理、または、取得処理）のうち最新の処理において、ストレージ管理装置１０１が最新であると特定したバージョン情報である。したがって、後述するように、あるキー情報にして、ＫＶ情報（図５に例示）におけるバージョン情報と、管理情報（図４に例示）におけるバージョン情報とは異なっているという状況が生じることもある。該状況は、たとえば、ストレージ管理装置１０１が、あるキーに関して取得信号を格納装置１５１に送信し、その後、ストレージ管理装置１１１が、該あるキーに関して格納信号を格納装置１５１に送信した場合に、ストレージ管理装置１０１における記憶部１０７に格納されている管理情報（図４に例示）にて生じる。
【００４９】
図４に例示された管理情報において、キー情報「Ｋｅｙ＿Ａ」と、バージョン情報「６」と、格納領域「格納装置Ａ」とが関連付けされている。これは、キー情報「Ｋｅｙ＿Ａ」に対応しているバリュー情報（すなわち、保存情報と、バージョン情報とを含む情報）が格納されている格納領域が「格納装置Ａ」であることを表す。さらに、これは、ストレージ管理装置１０１が、キー情報「Ｋｅｙ＿Ａ」に対して実行した処理のうち最新の処理において、ストレージ管理装置１０１が最新であると特定したバージョン情報が「６」であることを表す。
【００５０】
次に、図２を参照しながら、本発明の第１の実施形態に係るストレージ管理装置１０１における処理のうち取得処理について詳細に説明する。図２は、第１の実施形態に係るストレージ管理装置１０１における処理のうち取得処理の流れを示すフローチャートである。
【００５１】
ストレージ管理装置１０１において、クエリ処理部１０２は、クライアント１７１が送信したクエリを受信する。クエリ処理部１０２は、受信した該クエリが取得クエリであるか、または、該クエリが格納クエリであるかを判定する（ステップＳ１０１）。
【００５２】
該クエリが格納クエリである場合に（ステップＳ１０１にてＮＯ）、クエリ処理部１０２は、格納処理を実行する（ステップＳ１１０）。ステップＳ１１０における格納処理については、図３を参照しながら後述する。
【００５３】
該クエリが取得クエリである場合に（ステップＳ１０１にてＹＥＳ）、クエリ処理部１０２は、該クエリに含まれているキー情報を読み取り、読み取ったキー情報を取得部１０３に入力する。
【００５４】
取得部１０３は、クエリ処理部１０２からキー情報を受け取る。取得部１０３は、記憶部１０７に格納されている管理情報（図４に例示）が、該キー情報に関するバージョン情報と、該キー情報に関する格納領域情報とを含んでいるか否かを判定する（ステップＳ１０２）。
【００５５】
管理情報（図４に例示）が、該キー情報に関するバージョン情報と、該キー情報に関する格納領域情報とを含んでいる場合に（ステップＳ１０２にてＹＥＳ）、取得部１０３は、管理情報（図４に例示）に基づき、該キー情報に関するバージョン情報と、該キー情報に関する格納領域情報とを取得する（ステップＳ１０３）。取得部１０３は、たとえば、記憶部１０７に格納されている管理情報（図４に例示）において、該キー情報に関連付けされたバージョン情報と、該キー情報に関連付けされた格納領域情報とを読み取る。
【００５６】
取得部１０３は、読み取った格納領域情報が表す格納装置１５１に、該キー情報に関するバリュー情報を取得する取得処理を要求する取得信号を送信する（ステップＳ１０４）。すなわち、取得部１０３は、複数の格納装置のうち、一部の格納装置に、該取得信号を送信する。本実施形態において、一部の格納装置は、１台の格納装置である。該一部の格納装置の台数が少ない程、取得対象である保存情報を取得する取得処理における処理量は少ない。
【００５７】
格納装置１５１は、該取得信号を受信し、受信した該取得信号に応じた取得処理を実行する。格納装置１５１において、該キー情報に関するバリュー情報がＫＶ情報記憶部１５４に格納されている場合に、ＫＶ情報管理部１５３は、該キー情報に対応しているバリュー情報（すなわち、保存情報と、バージョン情報）をＫＶ情報記憶部１５４から読み取り、読み取ったバリュー情報を取得部１０３に送信する。格納装置１５１において、該キー情報に関するバリュー情報がＫＶ情報記憶部１５４に格納されていない場合に、ＫＶ情報管理部１５３は、該キー情報に関するバリュー情報が取得できなかったことを表す結果情報を作成し、作成した該結果情報を取得部１０３に送信する。
【００５８】
取得部１０３は、格納装置１５１が送信したバリュー情報（すなわち、保存情報と、バージョン情報）を受信した場合に（ステップＳ１０５にてＹＥＳ）、ステップＳ１０３にて読み取ったバージョン情報と、受信したバリュー情報に含まれているバージョン情報とを、バージョン情報比較部１０６に入力する。
【００５９】
バージョン情報比較部１０６は、取得部１０３から当該２つのバージョン情報を受け取る。バージョン情報比較部１０６は、当該２つのバージョン情報が一致しているか否かを判定する（ステップＳ１０６）。
【００６０】
当該２つのバージョン情報が一致している場合に（ステップＳ１０６にてＹＥＳ）、バージョン情報比較部１０６は、格納装置１５１から受信したバリュー情報に含まれている保存情報をクエリ処理部１０２に入力するよう要求する要求信号を、取得部１０３に入力する。取得部１０３は、バージョン情報比較部１０６から該要求信号を受け取り、受け取った該要求信号に従い、該保存情報をクエリ処理部１０２に入力する。クエリ処理部１０２は、取得部１０３から該保存情報を受け取り、受け取った該保存情報をクライアント１７１に送信する（ステップＳ１０７）。
【００６１】
バリュー情報におけるバージョン情報と、管理情報（図４に例示）におけるバージョン情報とが一致している場合に（ステップＳ１０６にてＹＥＳ）、該管理情報（図４に例示）に含まれている格納領域情報が表す格納装置１５１が有しているバリュー情報が最新のバリュー情報である可能性が高い。この場合に、ストレージ管理装置１０１は、該管理情報（図４に例示）における格納領域情報に従い、該格納領域情報が表す格納装置から、キー情報に関するバリュー情報を取得する。これに対して、バリュー情報におけるバージョン情報と、管理情報（図４に例示）におけるバージョン情報とが一致していない場合に、該管理情報（図４に例示）に含まれている格納領域情報が表す格納装置が有しているバリュー情報が最新のバリュー情報である可能性が低い。
【００６２】
また、以下に示した３つの場合のいずれかであるときに、取得部１０３は、たとえば、Ｑｕｏｒｕｍ制御に従い、複数の格納装置から、あるキー情報に関するバリュー情報を取得する（ステップＳ１０８）。
【００６３】
［ステップＳ１０２にてＮＯの場合］管理情報（図４に例示）が、該キー情報に関するバージョン情報及び格納領域情報を含んでいない場合、
［ステップＳ１０５にてＮＯの場合］取得部１０３があるキー情報に関する取得処理を要求する取得信号を送信した送信先である格納装置から、該あるキー情報に関する保存情報を取得できなかったことを表す結果情報を、取得部１０３が受信した場合。たとえば、該リプライは、格納装置に障害が生じている場合に送信される、
［ステップＳ１０６にてＮＯの場合］あるキー情報に関して格納装置１５１が送信したバリュー情報におけるバージョン情報と、該あるキー情報に関して記憶部１０７に格納されているバージョン情報とが一致していない場合。
【００６４】
取得部１０３は、該あるキー情報に関して複数の格納装置から取得したバリュー情報のうち、該バリュー情報に含まれているバージョン情報が最新であるバリュー情報を選択し、選択した該バリュー情報に含まれている保存情報をクエリ処理部１０２に入力する。取得部１０３は、さらに、複数の格納装置のうち、最新のバージョン情報を含んでいたバリュー情報が格納されている格納装置を表す識別子を特定する。取得部１０３は、たとえば、Ｑｕｏｒｕｍ制御に従い、該あるキー情報に関してＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）のうち最新のＫＶ情報を特定し、特定したＫＶ情報における保存情報をクエリ処理部１０２に入力する。取得部１０３は、さらに、複数の格納装置のうち、該あるキー情報に関して該最新のＫＶ情報が格納されている格納領域を表す格納領域情報（たとえば、格納装置１５１を表す識別子）を特定する。該識別子が複数ある場合に、取得部１０３は、該複数の識別子のうち、１つの識別子を、たとえば、ランダムに選択する。取得部１０３がランダムに１つの識別子を選択することによって、該複数の格納装置における処理負荷が分散される可能性が高い。
【００６５】
取得部１０３は、あるキー情報に関して特定した最新のバージョン情報、及び、該最新のバージョン情報を含むバリュー情報が格納されている格納領域を表す格納領域情報を、管理情報更新部１０５に入力する。
【００６６】
管理情報更新部１０５は、あるキー情報に関する最新のバージョン情報、及び、該あるキー情報に関する最新の保存情報が格納されている格納領域を表す格納領域情報を受け取る。管理情報更新部１０５は、該あるキー情報と、該最新のバージョン情報と、該格納領域情報とが関連付けされた管理情報を作成し、作成した管理情報を用いて、記憶部１０７に格納されている管理情報（図４に例示）を更新する（ステップＳ１０９）。管理情報更新部１０５は、たとえば、受け取った該最新のバージョン情報を用いて、記憶部１０７に格納されているバージョン情報を更新する。該最新のバージョン情報を含む管理情報（図４に例示）を更新することによって、ストレージ管理装置１０１が、次の取得処理において、記憶部１０７に格納されている該管理情報（図４に例示）から、最新のバージョン情報、及び、最新の格納領域情報を取得できる可能性が向上する。したがって、該バージョン情報を含む管理情報（図４に例示）を更新することによって、ストレージ管理装置１０１が、次の取得処理において、取得対象である保存情報を高効率に取得できる可能性が向上する。
【００６７】
その後、取得部１０３は、ステップＳ１０８にて取得したバリュー情報における保存情報（すなわち、あるキー情報に関する保存情報）を読み取り、読み取った保存情報をクエリ処理部１０２に入力する。クエリ処理部１０２は、取得部１０３から該あるキー情報に関する保存情報を受け取り、受け取った該保存情報をクライアント１７１に送信する。
【００６８】
記憶部１０７に格納されている情報において、あるキー情報に関するバージョン情報は、ステップＳ１０９における処理によれば、ストレージ管理装置１０１が、該あるキー情報に関して実行した処理のうち、最新の処理におけるバージョン情報に更新される。
【００６９】
格納装置１５１にアクセスするストレージ管理装置１０１が複数あり、さらに、格納装置１５１にデータを格納する処理に関して、該複数のストレージ管理装置が排他制御されていない場合に、あるキー情報に関して、格納装置１５１に格納されているバージョン情報と、ストレージ管理装置１０１に格納されている管理情報（図４に例示）におけるバージョン情報とは、必ずしも一致するとは限らない。
【００７０】
しかし、あるキー情報に関して格納装置１５１に格納されているバージョン情報と、ストレージ管理装置１０１に格納されているバージョン情報とが一致している場合には、当該ストレージ管理装置１０１が実行した処理が、該あるキー情報に関して実行した最新の処理である可能性が高い。言い換えると、管理情報（図４に例示）内の該あるキー情報に関する格納領域情報が最新である可能性は、あるキー情報に関して当該２つのバージョン情報が一致しているか否かに関連している。当該２つのバージョン情報が一致していることが判明した場合における可能性は、当該２つのバージョン情報が一致していることを判定しない場合における可能性に比べて高い。この結果、取得部１０３が、図２を参照しながら説明したような処理を実行することによって、ストレージ管理装置１０１が、該あるキー情報に関してクライアント１７１に送信する保存情報は、最新の情報である可能性が高い。
【００７１】
これに対して、あるキー情報に関して格納装置１５１に格納されているバージョン情報と、ストレージ管理装置１０１に格納されているバージョン情報とが一致していない場合には、該あるキー情報に関してストレージ管理装置１０１が実行した２回処理の間にて、他ストレージ管理装置が、格納装置１５１に格納されているＫＶ情報（図５に例示）を更新してしまっている。すなわち、ストレージ管理装置１０１に格納されている管理情報（図４に例示）内の該あるキー情報に関する格納領域情報は、最新のデータが格納されている格納領域を表す格納領域情報でない可能性がある。この場合には、上述したように、取得部１０３は、該あるキー情報に関して、たとえば、Ｑｕｏｒｕｍ制御に従い、複数の格納装置から最新の保存情報を取得する。
【００７２】
次に、図３を参照しながら、本発明の第１の実施形態に係るストレージ管理装置１０１における処理のうち格納処理について詳細に説明する。図３は、第１の実施形態に係るストレージ管理装置１０１における処理のうち格納処理の流れを示すフローチャートである。
【００７３】
説明の便宜上、ストレージ管理装置１０１は、あるキー情報と、該あるキー情報に関する保存情報とが関連付けされている格納クエリを、クライアント１７１から受信したとする。
【００７４】
ストレージ管理装置１０１において、取得情報統合部１０４は、たとえば、Ｑｕｏｒｕｍ制御に従い、受信した格納クエリに含まれている該あるキー情報に関する保存情報を、複数の格納装置から取得する。具体的に、取得情報統合部１０４は、該格納クエリに含まれている該あるキー情報に関する取得処理を要求する取得信号を、該複数の格納装置に送信する（ステップＳ１２１）。
【００７５】
該複数の格納装置において、ＫＶ情報管理部１５３は、それぞれ、該取得信号を受信し、受信した該取得信号に従い、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）から、該あるキー情報に関するバリュー情報を取得する（ステップＳ１２２）。各ＫＶ情報管理部１５３は、該あるキー情報に関するバリュー情報を取得できた場合に、該バリュー情報を取得情報統合部１０４に送信する。各ＫＶ情報管理部１５３は、該あるキー情報に関するバリュー情報を取得できなかった場合に、取得できなかったことを表す結果情報を取得情報統合部１０４に送信する。
【００７６】
取得情報統合部１０４は、該バリュー情報を受信した場合に（ステップＳ１２２にてＹＥＳ）、受信した該バリュー情報のうち、該バリュー情報に含まれているバージョン情報が最新であるバージョン情報を特定する（ステップＳ１２３）。取得情報統合部１０４は、特定したバージョン情報よりも、新しいバージョンを表すバージョン情報（以降、「新バージョン情報」と表す）を作成する（ステップＳ１２４）。取得情報統合部１０４は、受信した格納クエリに含まれているあるキー情報に関して、該格納クエリに含まれている保存情報と、算出した該新バージョン情報とが関連付けされたバリュー情報を作成する。さらに、取得情報統合部１０４は、該あるキー情報と、作成した該バリュー情報とが関連付けされたＫＶ情報（図５に例示）を作成し、作成した該ＫＶ情報を格納する処理を要求する格納信号を、複数の格納装置に送信する（ステップＳ１２５）。この場合に、取得情報統合部１０４は、Ｑｕｏｒｕｍ制御に従い、該要求信号を、複数の格納装置に送信してもよい。
【００７７】
各格納装置１５１において、ＫＶ情報管理部１５３は、取得情報統合部１０４が送信した格納信号を受信する。ＫＶ情報管理部１５３は、受信した該格納信号に従い、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）を更新する。または、ＫＶ情報管理部１５３は、受信した該格納信号に従い、受信した格納信号に含まれているＫＶ情報（図５に例示）を、ＫＶ情報記憶部１５４に格納する。ＫＶ情報管理部１５３は、たとえば、ＫＶ情報記憶部１５４に格納されているＫＶ情報（図５に例示）のうち、該格納信号に含まれているあるキー情報に関するバリュー情報を、該格納信号に含まれているバリュー情報を用いて更新する。ＫＶ情報管理部１５３は、該格納信号に従い実行した格納処理の結果を表す結果情報を取得情報統合部１０４に送信する。
【００７８】
取得情報統合部１０４は、ＫＶ情報管理部１５３が送信した結果情報を受信する（ステップＳ１２６）。取得情報統合部１０４は、受信した結果情報のうち、格納処理が成功したことを表す情報と、該格納処理を実行した格納装置１５１を表す識別子を特定する（ステップＳ１２７）。取得情報統合部１０４は、必ずしも、該格納処理が成功したことを表す情報のすべてを特定する必要はなく、少なくとも１つの情報を特定すればよい。または、取得情報統合部１０４は、該格納処理を実行した格納装置１５１を表す識別子から、１つの識別子をランダムに選んでもよい。取得情報統合部１０４は、受信した格納クエリに含まれているあるキー情報と、該あるキー情報に関して作成した新バージョン情報と、特定した識別子とを、管理情報更新部１０５に入力する。
【００７９】
管理情報更新部１０５は、取得情報統合部１０４から、該あるキー情報と、該新バージョン情報と、該識別子とを受け取る。管理情報更新部１０５は、該あるキー情報と、該新バージョン情報と、該識別子とが関連付けされた管理情報を作成し（ステップＳ１２８）、作成した該管理情報を記憶部１０７に格納する。または、管理情報更新部１０５は、作成した該管理情報を用いて、記憶部１０７に格納されている管理情報（図４に例示）を更新する。
【００８０】
管理情報更新部１０５は、格納処理の結果を表す結果情報を作成し、作成した情報をクエリ処理部１０２に入力する。クエリ処理部１０２は、管理情報更新部１０５から、格納処理の結果を表す結果情報を受け取り、受け取った情報をクライアント１７１に送信する。
【００８１】
次に、複数の格納装置において、いずれも、格納クエリに含まれている該あるキー情報に関するバリュー情報が取得できなかった場合に（ステップＳ１２２にてＮＯ）、ストレージ管理装置１０１において実行される処理について説明する。
【００８２】
取得情報統合部１０４は、受信した格納クエリに含まれている該あるキー情報に関するバージョン情報（上述した「新バージョン情報」）に初期バージョン情報を設定する（ステップＳ１２９）。初期バージョン情報は、バージョン情報であればよい。バージョンが自然数を用いて表されている場合に、新バージョン情報は、たとえば、バージョン「１」を表す情報である。取得情報統合部１０４は、受信した該格納クエリに含まれているあるキー情報に関して、該格納クエリに含まれている保存情報と、算出した該新バージョン情報とが関連付けされたバリュー情報を作成する。さらに、取得情報統合部１０４は、該キー情報と、作成した該バリュー情報とが関連付けされたＫＶ情報（図５に例示）を作成し、作成したＫＶ情報を格納装置１５１に格納する処理を要求する格納信号を、複数の格納装置に送信する（ステップＳ１２５）。この場合に、取得情報統合部１０４は、たとえば、Ｑｕｏｒｕｍ制御に従い、該格納信号を、複数の格納装置に送信してもよい。
【００８３】
尚、上述した処理において、ストレージ管理装置１０１が、複数の格納装置のうち１つの格納装置１５１を表す識別子を特定したが、識別子は、該複数の格納装置のうちの一部の格納装置であれば、複数であってもよい。言い換えると、ストレージ管理装置１０１は、複数の格納装置から一部の格納装置を特定し、特定した格納装置１５１を表す識別子を記憶部１０７に格納してもよい。すなわち、記憶部１０７に格納される情報は、図４に例示された情報に限定されない。
【００８４】
次に、本発明の第１の実施形態に係るストレージ管理装置１０１に関する効果について説明する。
【００８５】
第１の実施形態に係るストレージ管理装置１０１によれば、分散システムから取得対象である情報を高効率に取得することができる。この理由は、ストレージ管理装置１０１が、最新の格納装置（または、格納領域）を表す格納領域情報を有していると判定する場合には、複数の格納装置の全体に対して、保存情報を取得する取得信号を送信する処理を実行しないからである。ストレージ管理装置１０１は、あるキー情報に関して、格納装置１５１から受け取ったバージョン情報と、記憶部１０７に格納されているバージョン情報とが一致している場合に、該保存情報を複数の格納装置から取得する処理を実行しない。言い換えると、ストレージ管理装置１０１は、これら２つのバージョン情報が一致していなかった場合に、該あるキー情報に関する保存情報を取得する取得信号を、複数の格納装置に送信する。したがって、複数の格納装置における全ての格納装置が、必ずしも、あるキー情報に関する保存情報を取得する取得処理を実行しているとは限らない。
【００８６】
また、Ｑｕｏｒｕｍ制御に従い制御されているデータベースシステムと比較すると、第１の実施形態に係るデータベースシステム１００によれば、格納装置１５１がＫＶ情報（図５に例示）にアクセスする回数を減らすことができる。この理由は、上述したように、あるキー情報に関する保存情報を取得する処理において、複数の格納装置における全ての格納装置が、必ずしも、あるキー情報に関する保存情報を取得する取得処理を実行しているとは限らないからである。したがって、第１の実施形態に係るデータベースシステム１００によれば、取得処理にて使用されるリソース量を減らすことができ、さらに、該保存情報を取得する場合の処理性能（ターンアラウンドタイム、または、スループット）が向上する。
【００８７】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００８８】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８９】
図６を参照しながら、本発明の第２の実施形態に係るストレージ管理装置２０１が有する構成について詳細に説明する。図６は、本発明の第２の実施形態に係るストレージ管理装置２０１が有する構成を示すブロック図である。
【００９０】
第２の実施形態に係るストレージ管理装置２０１は、クエリ処理部１０２と、取得部１０３と、取得情報統合部１０４と、管理情報更新部１０５と、バージョン情報比較部１０６と、記憶部１０７と、管理情報共有部２０８とを有する。
【００９１】
ストレージ管理装置２０１は、データベースシステム２００において、通信ネットワーク１６１を介して格納装置１５１、及び、クライアント１７１に通信可能に接続されている。これらの装置は、通信ネットワーク１６１を介さずに接続されていてもよい。データベースシステム２００は、複数のストレージ管理装置、複数のクライアント、及び、複数の格納装置を有している。
【００９２】
説明の便宜上、該複数のストレージ管理装置は、それぞれ、ストレージ管理装置２０１と同様な構成を有しているとする。該複数の格納装置は、それぞれ、格納装置１５１と同様な構成を有しているとする。図６には、データベースシステム２００の一例として、２台のストレージ管理装置（ストレージ管理装置２０１、及び、ストレージ管理装置２１１）と、２台の格納装置（格納装置１５１、及び、格納装置１５２）とが示されている。
【００９３】
ストレージ管理装置２０１における管理情報共有部２０８は、他ストレージ管理装置（たとえば、ストレージ管理装置２１１）における管理情報共有部２０８との間にて通信を実行する。ストレージ管理装置２０１における管理情報共有部２０８と、ストレージ管理装置２１１における管理情報共有部２０８とが、図７を参照しながら後述する処理を実行することによって、ストレージ管理装置２０１における記憶部１０７と、ストレージ管理装置２１１における記憶部１０７とには同じ情報が格納される。すなわち、管理情報共有部２０８は、他ストレージ管理装置における管理情報共有部と、管理情報（図４に例示）を共有する処理を実行する。
【００９４】
次に、図７を参照しながら、本発明の第２の実施形態に係るストレージ管理装置２０１における処理について詳細に説明する。図７は、第２の実施形態に係るストレージ管理装置２０１における処理の流れを示すフローチャートである。
【００９５】
管理情報共有部２０８は、所定のタイミングにて、記憶部１０７から管理情報（図４に例示）を読み取る（ステップＳ２０１）。該所定のタイミングは、たとえば、定期的に到来するタイミングである。該所定のタイミングは、たとえば、１週間のうちのある曜日である。または、該所定のタイミングは、たとえば、１ヶ月のうちのある日（たとえば、月初）である。所定のタイミングは、上述した例に限定されない。
【００９６】
管理情報共有部２０８は、自ストレージ管理装置における記憶部１０７から読み取った管理情報（以降、「第１管理情報」と表す）を、他ストレージ管理装置における管理情報共有部２０８に送信する（ステップＳ２０２）。管理情報共有部２０８は、他ストレージ管理装置における管理情報共有部２０８が送信した管理情報（以降、「第２管理情報」と表す）を受信する（ステップＳ２０３）。第２管理情報は、１台以上の管理情報共有部から、それぞれ受信した管理情報（図４に例示）であり、管理情報共有部２０８ごとに存在している。
【００９７】
管理情報共有部２０８は、該第１管理情報、または、該第２管理情報に含まれているキー情報に関して、それぞれ、該キー情報に関連付けされているバージョン情報を読み取り、読み取ったバージョン情報のうち、最新のバージョン情報を特定する（ステップＳ２０４）。管理情報共有部２０８は、該第１管理情報、または、該第２管理情報に基づき、該キー情報に関して該最新のバージョン情報に関連付けされた格納領域情報を特定する（ステップＳ２０５）。最新のバージョン情報を含む管理情報（図４に例示）が複数存在する場合に、管理情報共有部２０８は、いずれか１つのバージョン情報を特定すればよい。
【００９８】
管理情報共有部２０８は、該キー情報と、該キー情報に関して特定した該最新のバージョン情報と、特定した該格納領域情報とが関連付けされた管理情報（以降、「第３管理情報」と表す）を作成する（ステップＳ２０６）。管理情報共有部２０８は、作成した該管理情報（図４に例示）を、自ストレージ管理装置における記憶部１０７に格納する（ステップＳ２０７）。または、管理情報共有部２０８は、作成した管理情報（図４に例示）を用いて、自ストレージ管理装置における記憶部１０７に格納されている管理情報（図４に例示）を更新する。
【００９９】
図８に示された例を参照しながら、ストレージ管理装置２０１における処理について説明する。図８は、管理情報を作成する処理を概念的に表す図である。図８において、第２管理情報は、１つであるが、複数であってもよい。
【０１００】
管理情報共有部２０８は、自ストレージ管理装置における記憶部１０７から管理情報（すなわち、第１管理情報）を読み取る。管理情報共有部２０８は、読み取った管理情報を他ストレージ管理装置における管理情報共有部に送信する。管理情報共有部２０８は、他ストレージ管理装置における管理情報共有部が送信した管理情報（すなわち、「第２管理情報」）を受信する。
【０１０１】
管理情報共有部２０８は、たとえば、「Ｋｅｙ＿Ｂ」に関して、該第１管理情報におけるバージョン情報（すなわち「５」）と、該第２管理情報に含まれているバージョン情報（すなわち、「７」）とを読み取る。バージョン情報「７」がバージョン情報「５」に比べて新しいバージョン情報であるので、管理情報共有部２０８は、「Ｋｅｙ＿Ｂ」に関して、バージョン情報「７」に関連付けされている格納領域情報「格納装置６」を特定する。管理情報共有部２０８は、「Ｋｅｙ＿Ｂ」と、バージョン情報「７」と、格納領域情報「格納装置６」とが関連付けされた管理情報（すなわち、「第３管理情報」）を作成し、作成した第３管理情報を記憶部１０７に格納する（第３管理情報における「Ｋｅｙ＿Ｂ」を含む行）。
【０１０２】
管理情報共有部２０８は、たとえば、「Ｋｅｙ＿Ｄ」に関して、第１管理情報におけるバージョン情報（すなわち「３」）を読み取る。第２管理情報には「Ｋｅｙ＿Ｄ」に関する管理情報が格納されていないので、管理情報共有部２０８は、「Ｋｅｙ＿Ｄ」に関して、バージョン情報「３」に関連付けされている格納領域情報「格納装置３」を特定する。管理情報共有部２０８は、「Ｋｅｙ＿Ｄ」と、バージョン情報「３」と、格納領域情報「格納装置３」とが関連付けされた第３管理情報を作成し、作成した第３管理情報を記憶部１０７に格納する（第３管理情報における「Ｋｅｙ＿Ｄ」を含む行）。
【０１０３】
管理情報共有部２０８は、たとえば、「Ｋｅｙ＿Ｆ」に関して、第２管理情報におけるバージョン情報（すなわち「１２」）を読み取る。第１管理情報には「Ｋｅｙ＿Ｆ」に関する管理情報が格納されていないので、管理情報共有部２０８は、「Ｋｅｙ＿Ｆ」に関して、バージョン情報「１２」に関連付けされている格納領域情報「格納装置５」を特定する。管理情報共有部２０８は、「Ｋｅｙ＿Ｆ」と、バージョン情報「１２」と、格納領域情報「格納装置５」とが関連付けされた第３管理情報を作成し、作成した第３管理情報を記憶部１０７に格納する（第３管理情報における「Ｋｅｙ＿Ｆ」を含む行）。
【０１０４】
管理情報共有部２０８は、キー情報「Ｋｅｙ＿Ａ」、「Ｋｅｙ＿Ｃ」、及び、「Ｋｅｙ＿Ｅ」に関しても、図８を参照しながら上述した処理と同様な処理を実行する。管理情報共有部２０８が、第１管理情報、または、第２管理情報に含まれている各キー情報（すなわち、「Ｋｅｙ＿Ａ」乃至「Ｋｅｙ＿Ｆ」）に関して、上述したような処理と同様な処理を実行した後に、記憶部１０７には、図８に例示された第３管理情報が格納されている。
【０１０５】
また、他ストレージ管理装置においても、上述した処理と同様な処理が実行されるので、他ストレージ管理装置における記憶部には、図８に例示された第３管理情報が格納されている。言い換えると、上述したような処理を実行したストレージ管理装置には、同じ内容の管理情報が格納されている。
【０１０６】
次に、本発明の第２の実施形態に係るストレージ管理装置２０１に関する効果について説明する。
【０１０７】
第２の実施形態に係るストレージ管理装置２０１によれば、分散システムから取得対象である情報を高効率に取得することができる。この理由は、第１の実施形態にて説明した理由と同様である。
【０１０８】
さらに、第２の実施形態に係るストレージ管理装置２０１によれば、分散システムから取得対象である情報を、より一層、高効率に取得することができる。この理由について説明する。
【０１０９】
複数のストレージ管理装置を有するデータベースシステム２００において、ストレージ管理装置２０１は、それぞれ、クライアント１７１から送信された格納クエリを別個に処理する。この場合に、あるキー情報に関して、該ストレージ管理装置２０１が有している管理情報（図４に例示）におけるバージョン情報と、格納装置１５１に格納されている最新のバージョン情報とは異なっている可能性が高い。図７を参照しながら上述したように、ストレージ管理装置２０１は、所定のタイミングにて、他ストレージ管理装置と、管理情報（図４に例示）を共有している。したがって、ストレージ管理装置２０１が有する管理情報（図４に例示）は、所定のタイミングにて更新されるので、第１の実施形態に係るストレージ管理装置１０１に比べて、最新のバージョン情報を含んでいる可能性が高い。したがって、第２の実施形態に係るストレージ管理装置２０１によれば、分散システムであるデータベースシステム２００から取得対象である情報を、より一層、高効率に取得することができる。
【０１１０】
＜第３の実施形態＞
次に、上述した第２の実施形態を基本とする本発明の第３の実施形態について説明する。
【０１１１】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第３の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１１２】
図９を参照しながら、本発明の第３の実施形態に係るストレージ管理装置３０１が有する構成について詳細に説明する。図９は、本発明の第３の実施形態に係るストレージ管理装置３０１が有する構成を示すブロック図である。
【０１１３】
第３の実施形態に係るストレージ管理装置３０１は、クエリ処理部１０２と、取得部１０３と、取得情報統合部１０４と、管理情報更新部１０５と、バージョン情報比較部１０６と、記憶部１０７と、管理情報共有部３０８と、処理開始部３０９とを有する。
【０１１４】
管理情報共有部３０８は、図６を参照しながら上述したような管理情報共有部２０８と同様な処理を実行する。すなわち、管理情報共有部３０８は、処理開始部３０９からトリガ信号を受け取るのに応じて、図７を参照しながら上述したような処理と同様な処理を実行する。ただし、第３の実施形態において、管理情報共有部３０８は、ステップＳ２０１乃至ステップＳ２０３（図７）における処理ではなく、ステップＳ３０１乃至ステップＳ３０２（図１０）に示す処理を実行する。
【０１１５】
処理開始部３０９が該トリガ信号を管理情報共有部３０８に入力するタイミング（以降、「同期タイミング」と表す）については後述する。図９においては、ストレージ管理装置３０１が処理開始部３０９を有していると明示的に示されているが、ストレージ管理装置３０１においては、後述する同期タイミングにて、管理情報共有部３０８が処理を実行してもよい。
【０１１６】
ストレージ管理装置３０１は、データベースシステム３００において、通信ネットワーク１６１を介して格納装置１５１、及び、クライアント１７１に通信可能に接続されている。これらの装置は、通信ネットワーク１６１を介さずに接続されていてもよい。データベースシステム３００は、複数のストレージ管理装置、複数のクライアント、及び、複数の格納装置を有している。
【０１１７】
説明の便宜上、該複数のストレージ管理装置は、それぞれ、ストレージ管理装置３０１と同様な構成を有しているとする。該複数の格納装置は、それぞれ、格納装置１５１と同様な構成を有しているとする。図９には、データベースシステム３００の一例として、２台のストレージ管理装置（ストレージ管理装置３０１、及び、ストレージ管理装置３１１）と、２台の格納装置（格納装置１５１、及び、格納装置１５２）とが示されている。
【０１１８】
同期タイミングは、たとえば、以下に示すタイミング１乃至タイミング３である。
【０１１９】
タイミング１：キー情報に関するバリュー情報を検索する取得処理を要求した場合に、自ストレージ管理装置における記憶部１０７に該キー情報に関する管理情報（図４に例示）が格納されていなかった場合（図２におけるステップＳ１０２にてＮＯ）、
タイミング２：自ストレージ管理装置における記憶部から、キー情報に関する格納領域情報を読み取ったものの、格納領域情報が表す格納装置１５１から、当該キー情報に関するバリュー情報を取得できなかった場合（図２におけるステップＳ１０５にてＮＯ）、
タイミング３：キー情報に関して、格納装置１５１に格納されているバージョン情報と、ストレージ管理装置３０１に格納されているバージョン情報とが一致していない場合（図２におけるステップＳ１０６にてＮＯ）。
【０１２０】
言い換えると、タイミング１乃至タイミング３は、図２に示されたステップＳ１０８を実行する前、あるいは、ステップＳ１０８を実行した後のタイミングである。
【０１２１】
より具体的に説明すると、タイミング１は、ステップＳ１０２にてＮＯと判定された場合に、ステップＳ１０８を経由して「終了」に至る処理におけるタイミングである。タイミング２は、ステップＳ１０５にてＮＯと判定された場合に、ステップＳ１０８を経由して「終了」に至る処理におけるタイミングである。タイミング３は、ステップＳ１０６にてＮＯと判定された場合に、ステップＳ１０８を経由して「終了」に至る処理におけるタイミングである。
【０１２２】
次に、図１０を参照しながら、本発明の第３の実施形態に係るストレージ管理装置３０１における処理について詳細に説明する。図１０は、第３の実施形態に係るストレージ管理装置３０１における処理の流れを示すフローチャートである。
【０１２３】
管理情報共有部３０８は、処理開始部３０９からトリガ信号を受け取った場合に、記憶部１０７から管理情報（図４に例示）を読み取る（ステップＳ３０１）。管理情報共有部３０８は、他ストレージ管理装置における記憶部に格納されている管理情報（図４に例示）を収集する（ステップＳ３０２）。
【０１２４】
以降、図７を参照しながら上述したようなステップＳ２０４乃至ステップＳ２０７に示された処理と同様な処理が実行される。
【０１２５】
第３の実施形態においては、データベースシステム３００における全てのストレージ管理装置が管理情報（図４に例示）を共有するとは限らず、少なくとも、クライアント１７１からクエリを受け取ったストレージ管理装置３０１を含む一部のストレージ管理装置のみが管理情報（図４に例示）を共有する。
【０１２６】
次に、本発明の第３の実施形態に係るストレージ管理装置３０１に関する効果について説明する。
【０１２７】
第３の実施形態に係るストレージ管理装置３０１によれば、分散システムから取得対象である情報を高効率に取得することができる。この理由は、第２の実施形態にて説明した理由と同様である。
【０１２８】
さらに、第３の実施形態に係るストレージ管理装置３０１によれば、分散システムから取得対象である情報を、より一層、高効率に取得することができる。この理由は、他ストレージ管理装置から管理情報（図４に例示）を取得する処理を実行するストレージ管理装置３０１は、複数のストレージ管理装置のうち、少なくとも一部のストレージ管理装置のみだからである。言い換えると、データベースシステム３００における一部のストレージ管理装置のみが、他ストレージ管理装置から管理情報（図４に例示）を取得するので、全てのストレージ管理装置が管理情報（図４に例示）を取得する場合に比べて、データベースシステム３００における処理量が少ない。したがって、第３の実施形態に係るストレージ管理装置３０１によれば、分散システムから取得対象である情報を、より一層、高効率に取得することができる。
【０１２９】
尚、第３の実施形態においては、明示的に、処理開始部３０９がトリガ信号を管理情報共有部３０８に入力することにより、管理情報共有部３０８が処理を開始した。しかし、ストレージ管理装置３０１は、処理開始部３０９を、必ずしも、有している必要はなく、たとえば、管理情報共有部３０８が、上述したようなタイミング１乃至タイミング３のいずれかにおいて、処理を開始してもよい。
【０１３０】
＜第４の実施形態＞
次に、本発明の第４の実施形態について説明する。
【０１３１】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第４の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１３２】
図１１を参照しながら、本発明の第４の実施形態に係るストレージ管理装置４０１が有する構成について詳細に説明する。図１１は、本発明の第４の実施形態に係るストレージ管理装置４０１が有する構成を示すブロック図である。
【０１３３】
第４の実施形態に係るストレージ管理装置４０１は、取得部４０２と、比較部４０３と、記憶部４０４とを有する。
【０１３４】
ストレージ管理装置４０１は、通信ネットワーク１６１を介して、格納装置１５１、及び、格納装置１５２に通信可能に接続されている。これらの装置は、通信ネットワーク１６１を介さずに接続されていてもよい。説明の便宜上、図１１には、２台の格納装置（格納装置１５１、及び、格納装置１５２）とが示されているが、３台以上の格納装置に通信可能に接続されていてもよい。
【０１３５】
格納装置１５１、及び、格納装置１５２には、図４を参照しながら上述したような管理情報のうち、少なくとも、バージョン情報と、格納領域情報とが関連付けされた情報が格納されている。
【０１３６】
複数の格納装置のうち、少なくとも一部の格納装置には、取得対象である保存情報が格納されている。説明の便宜上、上述した実施形態と同様に、保存情報は、キー情報に関連付けされているとする。しかし、取得対象であることが特定されている場合には、必ずしも、キー情報に関連付けされている必要はない。
【０１３７】
次に、図１２を参照しながら、本発明の第４の実施形態に係るストレージ管理装置４０１における処理について詳細に説明する。図１２は、第４の実施形態に係るストレージ管理装置４０１における処理の流れを示すフローチャートである。
【０１３８】
取得部４０２は、キー情報に関して取得対象である保存情報を含むバリュー情報を取得する取得信号を、複数の格納装置のうちの一部の格納装置に対して送信する（ステップＳ４０１）。
【０１３９】
図５を参照しながら上述したように、バリュー情報は、キー情報に関する保存情報と、該キー情報に関するバージョン情報とを含む情報である。
【０１４０】
たとえば、複数の格納装置は、格納装置１５１、及び、格納装置１５２である。また、説明の便宜上、一部の格納装置は、格納装置１５１であるとする。一部の格納装置は、複数の格納装置であってもよい。
【０１４１】
一部の格納装置（この例では、格納装置１５１）は、該取得信号を受信するのに応じて、該キー情報に関するバリュー情報を取得部４０２に送信する。
【０１４２】
取得部４０２は、格納装置１５１が送信した該バリュー情報を受信する（ステップＳ４０２）。取得部４０２は、受信した該バリュー情報を比較部４０３に入力する。
【０１４３】
比較部４０３は、取得部４０２から該バリュー情報を受け取る。該バリュー情報は、キー情報に関する情報である。比較部４０３は、記憶部４０４から、該キー情報に格納されているバージョン情報を読み取る。比較部４０３は、受け取った該バリュー情報に含まれているバージョン情報と、記憶部４０４から読み取ったバージョン情報とが一致しているか否かを判定する（ステップＳ４０３）。
【０１４４】
該２つのバージョン情報が一致していない場合に（ステップＳ４０３にてＮＯ）、取得部４０２は、複数の格納装置に対して、該キー情報に関するバリュー情報を取得する取得信号を送信する（ステップＳ４０４）。該２つのバージョン情報が一致している場合に（ステップＳ４０３にてＹＥＳ）、ステップＳ４０４に示された処理は実行されない。
【０１４５】
複数の格納装置は、たとえば、Ｑｕｏｒｕｍ制御に従い、該キー情報に関するバリュー情報を特定し、特定したバリュー情報をストレージ管理装置４０１に送信する。
【０１４６】
取得部４０２は、たとえば、図１における取得部１０３、図６における取得部１０３、または、図９における取得部１０３が有している機能と同様な機能を用いて実現することができる。比較部４０３は、たとえば、図１におけるバージョン情報比較部１０６、図６におけるバージョン情報比較部１０６、または、図９におけるバージョン情報比較部１０６が有している機能と同様な機能を用いて実現することができる。記憶部４０４は、たとえば、図１における記憶部１０７、図６における記憶部１０７、または、図９における記憶部１０７が有している機能と同様な機能を用いて実現することができる。したがって、ストレージ管理装置４０１は、たとえば、図１におけるストレージ管理装置１０１、図６におけるストレージ管理装置２０１、または、図９におけるストレージ管理装置３０１が有している機能と同様な機能を用いて実現することができる。
【０１４７】
次に、本発明の第４の実施形態に係るストレージ管理装置４０１に関する効果について説明する。
【０１４８】
第４の実施形態に係るストレージ管理装置４０１によれば、分散システムから取得対象である情報を高効率に取得することができる。この理由は、ストレージ管理装置４０１が、最新の格納装置（または、格納領域）を表す格納領域情報を有していると判定する場合には、複数の格納装置の全体に対して、保存情報を取得する取得信号を送信する処理（ステップＳ４０４）を実行しないからである。ストレージ管理装置４０１は、あるキー情報に関して、格納装置１５１から受け取ったバージョン情報と、記憶部４０４に格納されているバージョン情報とが一致している場合に、該保存情報を複数の格納装置から取得する処理を実行しない。
【０１４９】
（ハードウェア構成例）
上述した本発明の各実施形態に係るストレージ管理装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るストレージ管理装置は、物理的または機能的に、少なくとも２つの計算処理装置を用いて実現されてもよい。また、係るストレージ管理装置は、専用の装置として実現されてもよい。
【０１５０】
図１３は、本発明の各実施形態に係るストレージ管理装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、及び、通信インターフェース（以降、「通信ＩＦ」と表す）２７を有する。計算処理装置２０は、入力装置２５、出力装置２６に接続可能であってもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１５１】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１５２】
すなわち、ＣＰＵ２１は、ディスク２３に格納されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合に、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合に、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、図９、または、図１１に示す各部が表す機能（処理）に対応するところのメモリ２２にあるストレージ管理プログラム（図２、図３、図７、図１０、または、図１２）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【０１５３】
すなわち、このような場合に、本発明の各実施形態は、係るストレージ管理プログラムによっても成し得ると捉えることができる。さらに、係るストレージ管理プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明の各実施形態は成し得ると捉えることができる。
【０１５４】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１５５】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
【０１５６】
（付記１）
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得手段と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較する比較手段と
を備え、
前記比較手段が一致していないと判定した場合に、前記取得手段は、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する
ストレージ管理装置。
【０１５７】
（付記２）
前記一部の格納装置は、前記複数の格納装置のうちの１台の格納装置である
付記１に記載のストレージ管理装置。
【０１５８】
（付記３）
前記記憶手段には、前記キー情報に関する前記バージョン情報と、前記一部の格納装置を表す識別子とが関連付けされた管理情報が格納されており、
前記取得手段は、前記記憶手段から前記識別子を読み取り、読み取った前記識別子が表す前記一部の格納装置に前記取得信号を送信する
付記１または付記２に記載のストレージ管理装置。
【０１５９】
（付記４）
前記取得手段は、前記複数の格納装置に対して、該キー情報に関するバリュー情報を取得する取得信号を送信した場合に、前記複数の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した該バリュー情報に含まれているバージョン情報のうち、最新のバージョン情報を特定し、特定した該最新のバージョン情報を前記記憶手段に格納する
付記１乃至付記３のいずれかに記載のストレージ管理装置。
【０１６０】
（付記５）
前記取得手段は、前記一部の格納装置から前記キー情報に関するバリュー情報を取得できなかった場合に、前記複数の格納装置に対して、該キー情報に関するバリュー情報を取得する要求を送信する
付記１乃至付記４のいずれかに記載のストレージ管理装置。
【０１６１】
（付記６）
前記記憶手段に格納されている情報を更新する格納処理を実行する更新手段
をさらに備え、
前記記憶手段には、前記キー情報に関する前記バージョン情報と、前記キー情報に関する前記一部の格納装置を表す識別子と関連付けされた管理情報が格納されており、
前記更新手段は、他ストレージ管理装置における記憶手段に格納されている管理情報を取得し、取得した前記管理情報におけるバージョン情報と、自ストレージ管理装置における記憶手段に格納されている前記管理情報におけるバージョン情報のうち、新しいバージョン情報を表す新バージョン情報を選択し、前記新バージョン情報に関連付けされている前記識別子と、選択した該新バージョン情報とが関連付けされた前記管理情報を作成し、作成した前記管理情報によって、自ストレージ管理装置における記憶手段に格納し、
前記取得手段は、自ストレージ管理装置における記憶手段に格納されている前記管理情報における前記一部の格納装置に対して、前記取得信号を送信する
付記１乃至付記５のいずれかに記載のストレージ管理装置。
【０１６２】
（付記７）
前記比較手段が一致していないと判定した場合に、前記更新手段は、前記格納処理を実行する
付記６に記載のストレージ管理装置。
【０１６３】
（付記８）
前記一部の格納装置が前記キー情報に関するバリュー情報を取得できなかった場合に、前記更新手段は、前記格納処理を実行する
付記６のいずれかに記載のストレージ管理装置。
【０１６４】
（付記９）
前記キー情報に関する前記バリュー情報を取得する要求を表す取得クエリを受け取るクエリ処理手段
をさらに備え、
前記クエリ処理手段は、前記取得手段が取得した前記バリュー情報を出力する
付記１乃至付記８のいずれかに記載のストレージ管理装置。
【０１６５】
（付記１０）
前記クエリ処理手段が、前記キー情報に関する保存情報を前記複数の格納装置に格納する要求を表す格納クエリを受け取った場合に、前記取得手段は、前記複数の格納装置に対して、該キー情報に関するバリュー情報を取得する前記取得信号を送信し、前記複数の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した前記バリュー情報に含まれている前記バージョン情報のうち、最新のバージョン情報を特定し、特定した前記最新のバージョン情報よりも新しいバージョン情報を作成し、作成した前記新しいバージョン情報と、前記保存情報とが関連付けされたバリュー情報を作成し、前記複数の格納装置に対して、前記キー情報に関して前記バリュー情報を格納するよう要求する格納信号を送信する
付記９に記載のストレージ管理装置。
【０１６６】
（付記１１）
前記クエリ処理手段は、前記複数の格納装置から前記取得信号に応じた前記バリュー情報を受信することができなかった場合には、バージョン情報に初期バージョン情報を設定し、設定した前記バージョン情報と、前記保存情報とが関連付けされたバリュー情報を作成し、前記複数の格納装置に対して、前記キー情報に関する前記バリュー情報を格納するよう要求する格納信号を送信する
付記１０に記載のストレージ管理装置。
【０１６７】
（付記１２）
付記１乃至付記１１のいずれかに記載のストレージ管理装置と、
前記複数の格納装置と、
を備えるデータベースシステム。
【０１６８】
（付記１３）
付記９乃至付記１１のいずれかに記載のストレージ管理装置と、
前記複数の格納装置と、
を備え、
前記記憶手段は、複数の前記キー情報に関する前記バージョン情報が格納されており、
前記ストレージ管理装置において、前記比較手段は、前記クエリ処理手段が受け取った前記取得クエリが要求している前記キー情報に関する前記バージョン情報を前記記憶手段から取得し、取得した前記バージョン情報と、受信したバリュー情報に含まれるバージョン情報とが一致しているか否かを判定する
データベースシステム。
【０１６９】
（付記１４）
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶手段を有する情報処理装置によって、複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信し、受信した該バリュー情報に含まれるバージョン情報が、前記記憶手段に格納されているバージョン情報に一致しているか否かを比較し、一致していないと判定した場合に、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信するストレージ管理方法。
【０１７０】
（付記１５）
キーを表すキー情報のバージョンを表すバージョン情報が格納されている記憶機能と、
複数の格納装置のうちの一部の格納装置に、該キー情報に関して取得対象である情報を含むバリュー情報を取得する取得信号を送信し、前記一部の格納装置が該取得信号に応じて送信した該バリュー情報を受信する取得機能と、
受信した該バリュー情報に含まれるバージョン情報が、前記記憶機能にて格納されているバージョン情報に一致しているか否かを比較する比較機能と
をコンピュータに実現させ
前記比較機能によって一致していないと判定した場合に、前記取得機能によって、前記複数の格納装置に対して、該キー情報に関する該バリュー情報を取得する取得信号を送信する
ストレージ管理プログラム。
【符号の説明】
【０１７１】
１００    データベースシステム
１０１    ストレージ管理装置
１０２    クエリ処理部
１０３    取得部
１０４    取得情報統合部
１０５    管理情報更新部
１０６    バージョン情報比較部
１０７    記憶部
１１１    ストレージ管理装置
１５１    格納装置
１５２    格納装置
１５３    ＫＶ情報管理部
１５４    ＫＶ情報記憶部
１６１    通信ネットワーク
１７１    クライアント
２００    データベースシステム
２０１    ストレージ管理装置
２０８    管理情報共有部
２１１    ストレージ管理装置
３００    データベースシステム
３０１    ストレージ管理装置
３０８    管理情報共有部
３０９    処理開始部
３１１    ストレージ管理装置
４０１    ストレージ管理装置
４０２    取得部
４０３    比較部
４０４    記憶部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
2019040301.tif 000003
【図２】
2019040301.tif 000004
【図３】
2019040301.tif 000005
【図４】
2019040301.tif 000006
【図５】
2019040301.tif 000007
【図６】
2019040301.tif 000008
【図７】
2019040301.tif 000009
【図８】
2019040301.tif 000010
【図９】
2019040301.tif 000011
【図１０】
2019040301.tif 000012
【図１１】
2019040301.tif 000013
【図１２】
2019040301.tif 000014
【図１３】
2019040301.tif 000015