(57)【要約】【課題】  同じオブジェクトに対して、異なる複数の目的に応じた配置先を決定することができる配置先決定装置を提供する。【解決手段】  本発明の配置先決定装置は、オブジェクトに関連付けられている第１の属性に基づき、第１の選択手段によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択手段と、前記第２の配置先の識別子を出力する出力手段と、を備える。【選択図】      図８
2015156111.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトに関連付けられている第１の属性に基づき、第１の選択手段によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択手段と、
前記第２の配置先の識別子を出力する出力手段と、
を備える配置先決定装置。
【請求項２】
前記第１の選択手段は、前記第１の属性に対して、一意に前記第１の配置先を選択し、
前記第２の選択手段は、前記第２の属性に対して、一意に前記第２の配置先を選択する
請求項１に記載の配置先決定装置。
【請求項３】
前記オブジェクトはデータであり、
前記配置先は記憶装置である
請求項１又は２に記載の配置先決定装置。
【請求項４】
前記オブジェクトを受信する対象受信手段を備え、
前記第２の属性は、前記オブジェクト、又は、前記オブジェクトに基づき前記第２の属性を導出する属性導出手段によって、受信した前記オブジェクトに基づき導出された前記第２の属性である
請求項１乃至３のいずれかに記載の配置先決定装置。
【請求項５】
前記第１の選択手段は、前記第１の属性に対して、前記複数の配置先に含まれる配置先が前記第１の配置先として選択される確率が均等又は略均等になるよう、前記第１の配置先を選択し、
前記第２の属性は、前記オブジェクトが類似する程度の判定に用いることができる値であり、
前記第２の選択手段は、前記第２の属性に基づき、類似する程度が高い複数のオブジェクトが同一の配置先に格納されるように、前記第２の配置先を選択する
請求項１乃至４のいずれかに記載の配置先決定装置。
【請求項６】
前記複数の配置先と、複数のアクセス実行装置と、請求項１乃至５のいずれかに記載の配置先決定装置とを含み、
前記複数のアクセス実行装置の各々は、
前記複数の配置先のいずれかに接続され、
前記オブジェクトを受信するのに応じて、接続されている前記配置先に前記オブジェクトを格納する格納手段を備え、
前記第１の選択手段は、前記第１の配置先の識別子を前記出力手段に送信し、
前記出力手段は、前記第１の配置先に接続された前記アクセス実行装置と、前記第２の配置先に接続された前記アクセス実行装置とに、前記オブジェクトを送信する
情報処理システム。
【請求項７】
オブジェクトに関連付けられている第１の属性に基づき、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択し、
前記第２の配置先の識別子を出力する
配置先決定方法。
【請求項８】
コンピュータを、
オブジェクトに関連付けられている第１の属性に基づき、第１の選択手段によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択手段と、
前記第２の配置先の識別子を出力する出力手段と、
して動作させる配置先決定プログラム。
【請求項９】
コンピュータを、
前記第２の属性に対して、一意に前記第２の配置先を選択する前記第２の選択手段と
して動作させ、
前記第１の選択手段は、前記第１の属性に対して、一意に前記第１の配置先を選択する
請求項８に記載の配置先決定プログラム。
【請求項１０】
コンピュータを、
前記オブジェクトを受信する対象受信手段として動作させ、
前記第２の属性は、前記オブジェクト、又は、前記オブジェクトに基づき前記第２の属性を導出する属性導出手段によって、受信した前記オブジェクトに基づき導出された前記第２の属性である
請求項８又は９に記載の配置先決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトの配置先を決定する技術に関する。
【背景技術】
【０００２】
複数の記憶装置のいずれかに配置されているオブジェクトにアクセスするためには、そのオブジェクトの配置先を特定する必要がある。例えば、配置されている全てのオブジェクトに対して、オブジェクトの識別子とそのオブジェクトが配置されている記憶装置の識別子の組み合わせを記録しておくことにより、オブジェクトの配置先を特定することができる。オブジェクトの配置先を特定するためには、オブジェクトの識別子及び記憶装置の識別子の組み合わせが記録されている配置先データにおいて、配置先を特定したいオブジェクトの識別子を探索すればよい。配置先を特定したいオブジェクトの識別子を見つけることができれば、そのオブジェクトの識別子に組み合わされている識別子によって、そのオブジェクトが配置されている記憶装置を特定することができる。
【０００３】
しかし、配置されているオブジェクトの数の増大に伴って、配置先データのデータ量は増大する。配置先データのデータ量が増大すると、一般に、配置先を特定したいオブジェクトの識別子をその配置先データにおいて探索するために要する時間は増大する。すなわち、オブジェクトの配置先を特定するために要する時間が増大する。オブジェクトの配置先を特定するために要する時間が増大すると、オブジェクトに高速にアクセスすることは難しい。すなわち、多数のオブジェクトが配置されている場合、一般に、上述の配置先データを使用してオブジェクトに高速にアクセスすることは難しい。
【０００４】
多数のオブジェクトが複数の記憶装置に配置されている場合に、オブジェクトへのアクセスを高速化する方法の例が、例えば特許文献１に記載されている。
【０００５】
特許文献１には、配置されるオブジェクトの識別子に基づき、複数の配置先の候補から、そのオブジェクトが配置される配置先を決定するオブジェクト配置装置が記載されている。特許文献１に記載されているオブジェクト配置装置は、配置されるオブジェクトの識別子と、疑似乱数を使用して、配置先を決定する。オブジェクト配置装置は、決定した配置先にオブジェクトを配置する。疑似乱数を発生する際与えるシードが同一であれば、発生する疑似乱数も同じである。オブジェクトの配置先を特定する場合、オブジェクト配置装置がオブジェクトの配置先を決定する処理と同じ処理を行うことによって、配置先データを探索することなく、オブジェクトの配置先を特定することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２０１２／０２３３８４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、オブジェクトのバックアップを保存しておきたい場合のように、オブジェクトとそのオブジェクトのコピーを異なる複数の配置先にそれぞれ配置する場合、同じオブジェクトに対して、異なる複数の配置先を決定する必要がある。
【０００８】
特許文献１に記載されているオブジェクト配置装置は、複数の配置先を選ぶ場合においても、一種類の方法によってオブジェクトの配置先を決定する。従って、特許文献１の技術をそのまま使用して、オブジェクトに対して、複数の異なる目的に応じた配置先を決定することはできない。
【０００９】
本発明の目的の一つは、同じオブジェクトに対して、異なる複数の目的に応じた配置先を決定することができる配置先決定装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の配置先決定装置は、オブジェクトに関連付けられている第１の属性に基づき、第１の選択手段によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択手段と、前記第２の配置先の識別子を出力する出力手段と、を備える。
【００１１】
本発明の配置先決定方法は、オブジェクトに関連付けられている第１の属性に基づき、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の記憶装置を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択し、前記第２の配置先の識別子を出力する。
【００１２】
本発明の配置先決定プログラムは、コンピュータを、オブジェクトに関連付けられている第１の属性に基づき、第１の選択手段によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択手段と、前記第２の配置先の識別子を出力する出力手段と、して動作させる。
【発明の効果】
【００１３】
本発明には、同じオブジェクトに対して、異なる複数の目的に応じた配置先を決定することができるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１、第２、第３の実施形態の配置先決定装置１の構成の例を表すブロック図である。
【図２】図２は、第１、第２、第３の実施形態の情報処理システム１００の例を模式的に表すブロック図である。
【図３】図３は、第１、第２、第３の実施形態のクライアント装置３及び記憶サーバ７の構成の例を表すブロック図である。
【図４】図４は、第１、第２、第３、第４の実施形態の配置先決定装置１の動作の例を表すフローチャートである。
【図５】図５は、第１、第２、第３、第４の実施形態の配置先決定装置１の動作の第２の例を表すフローチャートである。
【図６】図６は、第４の実施形態の情報処理システム１００Ａの構成を表すブロック図である。
【図７】図７は、第４の実施形態のクライアント装置３と及び記憶サーバ７Ａの構成を表すブロック図である。
【図８】図８は、第５の実施形態の配置先決定装置１の構成の例を表すブロック図である。
【図９】図９は、本発明の各実施形態の各装置を実現するコンピュータ１０００の構成の一例を表す図である。
【図１０】図１０は、第１の実施形態の変形例のクライアント装置３及び配置先装置７Ｂの構成の例を表すブロック図である。
【図１１】図１１は、第１の実施形態の変形例のオブジェクト処理システム１００Ｂの例を模式的に表すブロック図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施形態について、図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、第１の実施形態の配置先決定装置１の構成の例を表すブロック図である。図１を参照すると、本実施形態の配置先決定装置１は、第１の選択部１０と、第２の選択部１１と、対象受信部１２と、属性導出部１３と、属性受信部１４と、出力部１５とを含む。図１に示す例では、配置先決定装置１は１つの第２の選択部１１を含んでいるが、配置先決定装置１は複数の第２の選択部１１を含んでいてもよい。
【００１７】
図２は、本実施形態の情報処理システム１００の例を模式的に表すブロック図である。
【００１８】
図２を参照すると、情報処理システム１００は、通信ネットワークであるネットワーク５によって接続された、クライアント装置３と、複数の記憶サーバ７を含む。情報処理システム１００は、ネットワーク５に接続された複数のクライアント装置３を含んでいてもよい。
【００１９】
クライアント装置３は、処理部３０と、処理部３０に接続されているアクセス指示装置２とを含む。記憶サーバ７は、アクセス実行装置６と、アクセス実行装置６に接続されている記憶装置４０とを含む。各記憶サーバ７に含まれる記憶装置４０は、まとめて、記憶装置群４とも表記される。
【００２０】
図３は、本実施形態のクライアント装置３及び記憶サーバ７の構成の例を表すブロック図である。図３を参照すると、クライアント装置３は、処理部３０と、アクセス指示装置２とを含む。処理部３０は、例えば、クライアント装置３のプロセッサによって実現される。記憶サーバ７は、記憶装置４０と、アクセス実行装置６とを含む。記憶装置４０は、例えば、ハードディスクやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等によって実現される。また、本実施形態では、記憶サーバ７は、１台の記憶装置４０を含む。図３には、１台の記憶サーバ７だけが描かれているが、クライアント装置３は、ネットワーク５を介して、複数の記憶サーバ７に接続されている。図３において、他の記憶サーバ７は、省略されている。
【００２１】
クライアント装置３に含まれるアクセス指示装置２は、命令受信部２０と、指示決定部２１と、候補記憶部２２と、指示送信部２３と、結果転送部２４と、配置先決定装置１とを含む。
【００２２】
記憶サーバ７に含まれるアクセス実行装置６は、指示受信部６０と、格納部６４及び読み出し部６５を含む実行部６７と、結果送信部６６とを含む。命令受信部２０と結果転送部２４はクライアント装置３に接続されている。格納部６４と読み出し部６５は、記憶装置４０に接続されている。アクセス実行装置６は、さらに、指示決定部６１と、候補記憶部６２と、指示送信部６３と、復元部６８と、配置先決定装置１とを含む。
【００２３】
次に、アクセス指示装置２及びアクセス実行装置６の各構成要素について詳細に説明する。
【００２４】
本実施形態では、オブジェクトは、例えば、ひとまとまりのデータである。オブジェクトは、分割されたデータ、すなわちデータの一部であってもよい。オブジェクトの属性は、例えば、オブジェクトに関連付けられたデータ値である。属性は、例えば、オブジェクトの識別子を含む。属性は、オブジェクトの特性、種類、サイズ等の、オブジェクトを表す値であってもよい。処理部３０が、オブジェクト及び属性を生成してもよい。処理部３０は、例えばネットワーク５に接続されている他の装置から、オブジェクト及び属性を取得してもよい。オブジェクトの配置先は、いずれかの記憶装置４０である。
【００２５】
クライアント装置３の処理部３０は、オブジェクトへのアクセス命令を、命令受信部２０に送信する。アクセス命令は、例えば、配置先にオブジェクトを配置する命令である格納命令である。また、アクセス命令は、例えば、配置先からオブジェクトを取り出す取り出し命令であってもよい。本実施形態では、アクセス命令のうちの格納命令は、例えば、オブジェクトを記憶装置群４が含むいずれかの記憶装置４０に格納する命令である格納命令である。アクセス命令が格納命令である場合、処理部３０は、格納命令に加えて、オブジェクトの識別子を送信する。処理部３０は、格納命令に加えて、例えば、オブジェクトと、オブジェクトの識別子以外のオブジェクトの属性とを送信してもよい。処理部３０は、オブジェクト及びオブジェクトの属性を含む格納命令を送信してもよい。処理部３０は、格納命令として、オブジェクト及びオブジェクトの属性を送信してもよい。
【００２６】
本発明の各実施形態において、オブジェクトの属性のうち、あらかじめ定められた一部の属性は、第１の属性と表記される。オブジェクトの属性のうち、あらかじめ定められた、第１の属性と必ずしも一致しない一部の属性は、第２の属性と表記される。後述されるように、第１の属性は、例えば、オブジェクトの識別子である。そして、第２の属性は、例えば、オブジェクトのメタデータである。処理部３０が送信する属性、第１の属性、及び第２の属性は、以上に限られない。
【００２７】
処理部３０が格納命令を送信する際に送信するオブジェクトの属性は、例えば、後述される第１の属性及び第２の属性を含んでいればよい。後述される属性導出部１３が、第２の属性を導出する場合、処理部３０は格納命令を送信する際に送信する属性に、第２の属性が含まれていなくてよい。後述される属性導出部１３が、第１の属性を導出する場合、処理部３０は格納命令を送信する際に送信する属性に、第１の属性が含まれていなくてよい。後述される属性導出部１３が、第１の属性及び第２の属性の全てを導出する場合、処理部３０は格納命令を送信する際に属性を送信しなくてよい。
【００２８】
本実施形態では、アクセス命令のうち取り出し命令は、例えば、記憶装置群４が含むいずれかの記憶装置４０に格納されているオブジェクトを読み出す命令である、読み出し命令である。アクセス命令が読み出し命令である場合、処理部３０は、読み出し命令に加えて、オブジェクトの属性を送信する。処理部３０は、読み出しの対象であるオブジェクト及びそのオブジェクトが格納されている記憶装置４０を特定できるオブジェクトの属性を送信する。処理部３０が読み出し命令に加えて送信するオブジェクトの属性は、後述される第１の属性と第２の属性の少なくともいずれかを含んでいればよい。処理部３０は、オブジェクトの属性を含む読み出し命令を送信してもよい。オブジェクトの属性を伴う読み出し命令は、その属性に関連付けられている全てのオブジェクトを読み出す命令であってもよい。
【００２９】
候補記憶部２２には、記憶装置群４に含まれる、オブジェクトが格納される記憶装置４０の識別子が格納されている。候補記憶部２２は、各記憶装置４０に対して、記憶装置４０の識別子を、その記憶装置４０が含まれる記憶サーバ７の識別子に関連付けて記憶していればよい。例えば情報処理システム１００の管理者が、記憶装置４０の識別子を、その記憶装置４０が含まれる記憶サーバ７の識別子に関連付けて、あらかじめ候補記憶部２２に格納しておけばよい。前述のように、本実施形態では、各記憶サーバ７は１台の記憶装置４０を含む。従って、記憶サーバ７を特定することにより、記憶装置４０が特定される。従って、記憶装置４０の識別子は、記憶サーバ７の識別子であってもよい。
【００３０】
候補記憶部２２が記憶する記憶装置群４は、重複しない複数のグループに分割されていてもよい。その場合、それぞれのグループは、１台以上の記憶装置４０を含んでいればよい。第１の選択部１０と第２の選択部１１は、それぞれ異なるグループに関連付けられていてもよい。そして、第１の選択部１０は、第１の選択部１０が関連付けられているグループに含まれる記憶装置４０から、第１の記憶装置を選択してもよい。第１の記憶装置は、第１の選択部１０が選択した記憶装置４０である。さらに、第２の選択部１１は、その第２の選択部１１に関連付けられているグループに含まれる記憶装置４０から、第２の記憶装置を選択してもよい。第２の記憶装置は、第２の選択部１１が選択した記憶装置４０である。配置先決定装置１が複数の第２の選択部１１を含む場合、第２の選択部１１の各々に対して、異なるグループが関連付けられていてもよい。
【００３１】
指示決定部２１は、アクセス指示装置２が含む配置先決定装置１に対して、オブジェクトと、オブジェクトの属性とを送信する。配置先決定装置１が配置先を決定する際に使用する属性の全てが、指示決定部２１が送信する属性に含まれている場合、指示決定部２１は、アクセス指示装置２が含む配置先決定装置１に対して、オブジェクトを送信しなくてもよい。指示決定部２１は、さらに、配置先決定装置１に対して、複数の記憶装置４０の識別子を送信する。指示決定部２１は、例えば、候補記憶部２２が記憶する記憶装置４０の識別子を、アクセス指示装置２に含まれる配置先決定装置１に対して送信する。
【００３２】
指示送信部２３は、アクセス指示装置２が含む配置先決定装置１から、オブジェクトの配置先の識別子を受信する。本実施形態では、指示送信部２３は、配置先決定装置１から、オブジェクトの配置先である記憶装置４０の識別子を受信する。
【００３３】
指示送信部２３は、第１の記憶装置を含む記憶サーバ７に対して、オブジェクトと、オブジェクトの属性と、アクセス命令とを送信する。指示送信部２３が送信するオブジェクトの属性には、オブジェクトの識別子が含まれていればよい。アクセス命令がオブジェクトを格納する格納命令ではなく、第１の属性及び第２の属性の全てが、オブジェクトに基づき導出される属性ではない場合、指示送信部２３は、オブジェクトを送信しなくてよい。
【００３４】
指示受信部６０は、指示送信部２３から、オブジェクトと、オブジェクトの属性と、アクセス命令とを受信する。アクセス命令がオブジェクトを格納する格納命令ではなく、第１の属性及び第２の属性の全てが、オブジェクトに基づき導出される属性ではない場合、指示受信部６０は、オブジェクトを受信しなくてよい。
【００３５】
実行部６７は、記憶装置４０に対して、アクセス命令に応じたオブジェクトに関する処理を行う。具体的には、アクセス命令が格納命令である場合、実行部６７に含まれる格納部６４は、記憶装置４０に、クライアント装置３から受信したオブジェクトを格納する。アクセス命令が読み出し命令である場合、実行部６７に含まれる読み出し部６５は、例えば、クライアント装置３から受信した属性によって特定されるオブジェクトを、記憶装置４０から読み出す。
【００３６】
結果送信部６６は、実行部６７によるアクセスの結果を、クライアント装置３に送信する。アクセス指示装置２の結果転送部２４に送信する。
【００３７】
結果転送部２４は、受信したアクセスの結果を、クライアント装置３に送信する。
【００３８】
具体的には、アクセス命令が格納命令である場合、書き込みが成功したのであれば、アクセスの結果は、例えば、書き込みが成功したことを表す信号である。書き込みが失敗したのであれば、アクセスの結果は、例えば、書き込みが失敗したことを表す信号である。アクセス命令が読み出し命令である場合、アクセスの結果は、読み出されたオブジェクトである。オブジェクトの読み出しに失敗した場合、アクセスの結果は、例えば、読み出しに失敗したことを表す信号である。
【００３９】
候補記憶部６２は、複数の記憶装置４０の識別子を記憶する。候補記憶部６２が記憶する複数の記憶装置４０の識別子は、候補記憶部２２が記憶する複数の記憶装置４０の識別子と同じである。
【００４０】
指示受信部６０が受信したアクセス命令が格納命令である場合、指示決定部６１は、指示受信部６０が受信したオブジェクトとオブジェクトの属性とを、アクセス実行装置６が含む配置先決定装置１に送信する。第１の属性及び第２の属性の全てがオブジェクトから導出される属性ではない場合、指示決定部２１は、オブジェクトをアクセス実示装置６が含む配置先決定装置１に送信しなくてよい。第１の属性及び第２の属性の全てがオブジェクトから導出される属性である場合、指示決定部２１は、オブジェクトの属性をアクセス実示装置６が含む配置先決定装置１に送信しなくてよい。
【００４１】
指示決定部６１は、さらに、候補記憶部６２に格納されている、記憶装置４０の識別子を、配置先決定装置１に送信する。
【００４２】
後述されるように、アクセス実行装置６が含む配置先決定装置１は、受信したオブジェクト及びオブジェクトの属性の少なくともいずれかに基づき、識別子を受信した記憶装置４０の中から、第１の記憶装置と第２の記憶装置を選択する。アクセス実行装置６が含む配置先決定装置１は、第１の記憶装置の識別子と、第２の記憶装置の識別子とを出力する。
【００４３】
指示送信部６３は、配置先決定装置１から、第１の記憶装置の識別子と、第２の記憶装置の識別子とを受信する。指示送信部６３は、例えば、その指示送信部６３が含まれる記憶サーバ７が含む記憶装置４０が第１の記憶装置である場合、第２の記憶装置を含む記憶サーバ７に対して、オブジェクトと、オブジェクトの識別子と、オブジェクトの格納命令を送信する。指示送信部６３が送信するオブジェクトの属性には、オブジェクトの識別子が含まれていればよい。アクセス命令がオブジェクトを格納する格納命令ではなく、第１の属性及び第２の属性の全てが、オブジェクトに基づき導出される属性ではない場合、指示送信部６３は、オブジェクトを送信しなくてよい。
【００４４】
復元部６８は、その復元部６８が含まれる記憶サーバ７が含む記憶装置４０に格納されているオブジェクトと、そのオブジェクトの第１の属性及び第２の属性に基づき、他の記憶サーバ７にそのオブジェクトを復元する。復元部６８については、以下の第２の実施形態の説明において、詳細に説明する。
【００４５】
次に、配置先決定装置１の各構成要素について詳細に説明する。
【００４６】
まず、属性を受信した配置先決定装置１が、受信した属性に基づき、複数の記憶装置４０から記憶装置を選択する場合の、属性受信部１４について説明する。
【００４７】
属性受信部１４が属性を受信する。受信した属性に第１の属性が含まれている場合、属性受信部１４は、第１の属性を、第１の選択部１０に送信する。第１の属性は、前述のように、例えば、オブジェクトの識別子である。受信した属性に第２の属性が含まれている場合、属性受信部１４は、第２の属性を、第２の選択部１１に送信する。第２の属性は、前述のように、例えば、オブジェクトに関連付けられたメタデータである。第２の属性として、例えば、種類、サイズ、生成された日付と時刻、生成者の識別子、オブジェクトに基づき算出されたハッシュ等がある。第２の属性は、オブジェクトそのものであってもよい。第１の属性及び第２の属性は、以上に限られない。
【００４８】
オブジェクトを受信した配置先決定装置１が、受信したオブジェクトに基づき、複数の記憶装置４０から記憶装置を選択する場合の、対象受信部１２と属性導出部１３について説明する。
【００４９】
対象受信部１２は、オブジェクトを受信する。
【００５０】
第１の属性が、オブジェクトに基づき導出される属性である場合、属性導出部１３は、オブジェクトに基づき、第１の属性を導出する。属性導出部１３は、導出した第１の属性を、第１の選択部１０に送信する。第２の属性が、オブジェクトに基づき導出される属性である場合、属性導出部１３は、オブジェクトに基づき、第２の属性を導出する。属性導出部１３は、導出した第２の属性を、第２の選択部１１に送信する。属性導出部１３は、導出した属性を属性受信部１４に送信してもよい。そして、属性を受信した属性受信部１４は、受信した属性に第１の属性が含まれる場合、その第１の属性を第１の選択部１０に送信してもよい。属性を受信した属性受信部１４は、受信した属性に第２の属性が含まれる場合、その第２の属性を第２の選択部１１に送信してもよい。なお、属性導出部１３は、属性受信部１４が受信した属性及び属性導出部１３が導出した属性の少なくともいずれかに基づき、他の属性を導出してもよい。
【００５１】
次に、第１の選択部１０及び第２の選択部１１について説明する。
【００５２】
第１の選択部１０は、複数の記憶装置４０の識別子を受信する。以下の説明において、複数の記憶装置４０の識別子を、記憶装置４０の識別子のリスト、あるいは、識別子リストと表記する。第１の選択部１０は、第１の属性に基づき、リストに識別子が含まれる記憶装置４０から、オブジェクトの配置先として、第１の記憶装置を選択する。記憶装置４０の識別子のグループが第１の選択部１０に関連付けられている場合、第１の選択部１０は、第１の選択部１０に関連付けられているグループに識別子が含まれる記憶装置４０から、第１の記憶装置を選択する。第１の選択部１０は、第１の属性に対して、第１の記憶装置を一意に選択する。すなわち、第１の選択部１０は、同じ第１の属性に対して、常に同じ第１の記憶装置を選択する。
【００５３】
出力部１５は、第１の選択部１０が選択した第１の記憶装置の識別子を出力する。出力部１５が、第１の選択部１０が選択した第１の記憶装置の識別子を出力することを、本発明の各実施形態の説明では「第１の選択部１０が第１の記憶装置の識別子を出力する」とも表記することにする。
【００５４】
第２の選択部１１は、第２の属性と、リストに識別子が含まれる記憶装置４０から、オブジェクトの配置先として、第２の記憶装置を選択する。第２の選択部１１は、第２の属性に対して、第２の記憶装置を一意に選択する。すなわち、第２の選択部１１は、同じ第２の属性に対して、常に同じ第２の記憶装置を選択する。第２の選択部１１は、第１の選択部１０から、第１の記憶装置の識別子を受信してもよい。そして、第２の選択部１１は、第２の属性と、第１の記憶装置を除く、リストに識別子が含まれる記憶装置４０から、第２の記憶装置を選択してもよい。記憶装置４０の識別子のグループが第２の選択部１１に関連付けられている場合、第２の選択部１１は、第２の選択部１１に関連付けられているグループに識別子が含まれる記憶装置４０から、第２の記憶装置を選択する。
【００５５】
出力部１５は、さらに、第２の選択部１１が選択した第２の記憶装置の識別子を出力する。出力部１５が、第２の選択部１１が選択した第２の記憶装置の識別子を出力することを、本発明の各実施形態の説明では「第２の選択部１１が第２の記憶装置の識別子を出力する」とも表記することにする。
【００５６】
アクセス指示装置２に含まれる配置先決定装置１は、オブジェクトの属性、オブジェクト、及び識別子リストを、指示決定部２１から受信する。配置先決定装置１は、識別子リストを、候補記憶部２２から読み出してもよい。また、配置先決定装置１が候補記憶部２２を含んでいてもよい。また、アクセス指示装置２に含まれる配置先決定装置１は、第１の記憶装置の識別子だけを出力すればよい。アクセス指示装置２に含まれる配置先決定装置１は、第１の記憶装置の識別子を指示送信部２３に出力する。
【００５７】
アクセス実行装置６に含まれる配置先決定装置１は、オブジェクトの属性、オブジェクト、及び識別子リストを、指示決定部６１から受信する。配置先決定装置１は、識別子リストを、候補記憶部６２から読み出してもよい。配置先決定装置１が候補記憶部６２を含んでいてもよい。また、アクセス実行装置６に含まれる配置先決定装置１は、第１の記憶装置の識別子及び第２の記憶装置の識別子を、指示送信部６３に出力する。
【００５８】
次に、本実施形態の配置先決定装置１の動作について、図面を参照して詳細に説明する。
【００５９】
図４は、本実施形態の配置先決定装置１の動作の例を表すフローチャートである。図４は、配置先決定装置１が第１の記憶装置の識別子及び第２の記憶装置の識別子を出力する場合における、配置先決定装置１の動作の例を表す。図４に示す動作は、アクセス要求が書き込み要求である場合における、アクセス実行装置６に含まれる配置先決定装置１の動作に相当する。
【００６０】
図４を参照すると、まず、属性受信部１４が、オブジェクトの属性を受信する。加えて、対象受信部１２が、オブジェクトを受信する（ステップＳ１０１）。
【００６１】
受信した属性に第１の属性が含まれる場合、属性受信部１４は、第１の属性を第１の選択部１０に送信する。受信した属性に第２の属性が含まれる場合、属性受信部１４は、第２の属性を第２の選択部１１に送信する。
【００６２】
属性受信部１４が、オブジェクトの属性として、例えば、オブジェクトの識別子である第１の属性を受信した場合、属性受信部１４は、オブジェクトの識別子を、第１の選択部１０に送信する。
【００６３】
なお、第１の属性及び第２の属性の全てが、オブジェクトに基づき算出される場合、属性受信部１４は、オブジェクトの属性を受信しなくてよい。また、属性受信部１４が、第１の属性及び第２の属性の全てを受信する場合、対象受信部１２は、オブジェクトを受信しなくてよい。
【００６４】
次に、第１の選択部１０及び第２の選択部１１は、複数の記憶装置４０の各々の識別子を受信する（ステップＳ１０２）。すなわち、第１の選択部１０及び第２の選択部１１は、識別子リストを受信する。第１の選択部１０及び第２の選択部１１は、指示決定部２１から識別子リストを受信してもよい。第１の選択部１０及び第２の選択部１１のそれぞれに対して、記憶装置４０の識別子のグループが関連付けられている場合、第１の選択部１０及び第２の選択部１１のそれぞれは、関連付けられているグループを指示決定部２１から受信すればよい。アクセス指示装置２に含まれる第１の選択部１０及び第２の選択部１１のそれぞれは、識別子リストを、候補記憶部２２から読み出してもよい。同様に、アクセス実行装置６に含まれる第１の選択部１０及び第２の選択部１１のそれぞれは、識別子リストを、候補記憶部６２から読み出してもよい。第１の選択部１０及び第２の選択部１１のそれぞれに対して、識別子のグループが関連付けられている場合、第１の選択部１０及び第２の選択部１１のそれぞれは、関連付けられているグループを読み出してもよい。
【００６５】
次に、属性導出部１３は、オブジェクトに基づき、オブジェクトの属性を導出する（ステップＳ１０３）。例えば、オブジェクトの属性はオブジェクトのハッシュである場合、属性導出部１３は、オブジェクトに基づき、ハッシュ関数を使用して、オブジェクトのハッシュを算出すればよい。導出された属性に第１の属性が含まれる場合、属性導出部１３は、その第１の属性を、第１の選択部１０に送信する。導出された属性に第２の属性が含まれる場合、属性導出部１３は、その第２の属性を、第２の選択部１１に送信する。属性導出部１３は、導出した属性を、属性受信部１４に送信してもよい。そして、受信した属性に第１の属性が含まれる場合、属性受信部１４は、第１の属性を第１の選択部１０に送信してもよい。受信した属性に第２の属性が含まれる場合、属性受信部１４は、第１の属性を第２の選択部１１に送信してもよい。
【００６６】
次に、第１の選択部１０は、オブジェクトの属性のうち第１の属性に基づき、複数の記憶装置４０の中から、第１の記憶装置を選択する（ステップＳ１０４）。第１の選択部１０に上述の記憶装置４０のグループが関連付けられている場合、第１の選択部１０は、第１の選択部１０に関連付けられているグループに含まれる記憶装置４０から、第１の記憶装置を選択すればよい。
【００６７】
第１の選択部１０は、例えば、複数の記憶装置４０の各々が第１の記憶装置として選択される確率が均等あるいはほぼ均等になる手順に従って、第１の記憶装置を選択すればよい。その場合、第１の選択部１０は、例えば、第１の属性をシードとして使用して、疑似乱数を導出すればよい。第１の選択部１０は、疑似乱数の値域を、例えば記憶装置４０の台数と同じ数の領域にあらかじめ分割しておけばよい。第１の選択部１０は、分割された領域の各々を、異なる記憶装置４０にあらかじめ関連付けておけばよい。そして、第１の選択部１０は、導出された疑似乱数が含まれる領域に関連付けられている記憶装置を、第１の記憶装置として選択すればよい。
【００６８】
第１の記憶装置を選択する方法は、以上の方法に限られない。例えば、第１の選択部１０は、第１の属性のハッシュ値をシードとして使用して、疑似乱数を導出してもよい。第１の選択部１０は、ハッシュ関数の値域を、記憶装置４０の台数と同じ数の領域に分割しておいてもよい。さらに、第１の選択部１０は、それらの領域の各々に、異なる記憶装置４０を関連付けておいてもよい。そして、第１の選択部１０は、第１の属性をキーとして使用して、そのハッシュ関数によってハッシュ値を導出してもよい。第１の選択部１０は、導出されたハッシュ値が含まれる領域に関連付けられている記憶装置４０を、第１の記憶装置として選択すればよい。第１の選択部１０は、導出されたハッシュ値を記憶装置４０の個数で割った余りを算出してもよい。そして、第１の選択部１０は、算出された余りが含まれる領域に関連付けられている記憶装置４０を、第１の記憶装置として選択してもよい。その場合、余りの値域に含まれるそれぞれの整数に対して、それぞれ異なる記憶装置４０が関連付けられていればよい。第１の記憶装置を選択する方法は、以上の方法に限られない。第１の選択部１０は、後述されるステップＳ１０６における選択方法の例と同様の方法によって、第１の記憶装置を選択してもよい。
【００６９】
第１の選択部１０は、選択した第１の記憶装置の識別子を出力する（ステップＳ１０５）。
【００７０】
次に、第２の選択部１１は、第２の属性に基づき、複数の記憶装置４０の中から、第２の記憶装置を選択する（ステップＳ１０６）。第２の選択部１１は、第１の記憶装置を除く、複数の記憶装置４０の中から、第２の記憶装置を選択してもよい。その場合、第１の選択部１０は、第２の選択部１１に、第１の記憶装置の識別子を送信すればよい。第２の選択部１１は、第１の選択部１０から、第１の記憶装置の識別子を受信すればよい。そして、第２の選択部１１は、受信した記憶装置４０の識別子から、第１の記憶装置の識別子を除外すればよい。第２の選択部１１に、上述の記憶装置４０のグループが関連付けられている場合、第２の選択部１１は、その第２の選択部１１に関連付けられているグループから、第２の記憶装置を選択してもよい。第２の選択部１１は、第１の選択部１０が第１の記憶装置を選択する方法と異なる方法で、第２の記憶装置を選択すればよい。
【００７１】
第２の属性は、例えば、オブジェクトの類似性や同一性の評価を行える値であってもよい。
【００７２】
例えば、第２の属性が、あらかじめオブジェクトに付与されたオブジェクトの種類である場合、それぞれの種類に、いずれかの記憶装置４０があらかじめ関連付けられていればよい。オブジェクトの種類は、例えば、類似するオブジェクトのグループにあらかじめ付与された、オブジェクトのグループの識別子であってもよい。そして、第２の選択部１１は、第２の属性に関連付けられている記憶装置４０を、第２の記憶装置として選択すればよい。
【００７３】
内容が同一である、異なる複数のオブジェクトが、記憶装置群４に含まれる記憶装置４０に格納される場合、第２の属性は、オブジェクトのハッシュであってもよい。その場合、属性導出部１３は、オブジェクトのハッシュ値を第２の属性として導出すればよい。第２の選択部１１は、ハッシュ値と記憶装置４０の識別子を関連付けて記憶していればよい。そして、第２の選択部１１は、導出された第２の属性が、いずれかの記憶装置４０の識別子に関連付けられているか判定すればよい。導出された第２の属性が関連付けられている記憶装置４０が存在する場合、第２の選択部１１は、導出された第２の属性が関連付けられている記憶装置４０を、第２の記憶装置として選択すればよい。導出された第２の属性が関連付けられている記憶装置４０が存在しない場合、第２の選択部１１は、例えば、複数の記憶装置４０から、所定の基準によりいずれかの記憶装置４０を、第２の記憶装置として選択すればよい。その場合、第２の選択部１１は、例えば、複数の記憶装置４０から、無作為に、いずれかの記憶装置４０を、第２の記憶装置として選択してもよい。第２の選択部１１は、例えば、空き容量の最も多い記憶装置４０を、第２の記憶装置として選択してもよい。第２の選択部１１は、例えば、識別子等の順番に、記憶装置４０を、第２の記憶装置として選択してもよい。
【００７４】
また、第２の選択部１１は、類似したキーに対して類似した値を返すハッシュ関数によって、第２の属性をキーにしてハッシュ値を算出してもよい。その場合、第２の属性は、オブジェクトの内容が類似している場合に、類似した値をとる属性であればよい。第２の属性は、例えば、オブジェクトそのものであってもよい。そして、第２の選択部１１は、例えば、第２の属性が最も近いオブジェクトが格納されている記憶装置４０を、第２の記憶装置として選択してもよい。第２の記憶装置を選択する方法は、以上の方法に限られない。第２の選択部１１は、上述のステップＳ１０４における選択方法の例と同様の方法によって、第２の記憶装置を選択してもよい。
【００７５】
そして、第２の選択部１１は、選択された第２の記憶装置の識別子を出力する（ステップＳ１０７）。
【００７６】
次に、配置先決定装置１が第１の記憶装置の識別子のみを出力する場合における、配置先決定装置１の動作について説明する。
【００７７】
図５は、本実施形態の配置先決定装置１の動作の第２の例を表すフローチャートである。図５は、配置先決定装置１が第１の記憶装置の識別子のみを出力する場合における、配置先決定装置１の動作の例を表す。図５の動作は、アクセス要求が書き込み要求である場合における、アクセス指示装置２に含まれる配置先決定装置１の動作に相当する。
【００７８】
図５に示す各ステップの動作は、以下を除き、図４に示す、同じ符号が付与されたステップの動作と同じである。
【００７９】
ステップＳ１０１において、属性受信部１４は、第２の属性を第２の選択部１１に送信しない。
【００８０】
ステップＳ１０３において、属性導出部１３又は属性受信部１４は、第２の属性を第２の選択部１１に送信しない。
【００８１】
図５に示す動作において、図４に示すステップＳ１０６及びステップＳ１０７の動作は行われない。
【００８２】
次に、アクセス命令が格納命令である場合における、情報処理システム１００全体の動作について説明する。
【００８３】
まず、格納命令を発行するクライアント装置３について説明する。
【００８４】
処理部３０が、オブジェクトの格納命令に加えて、オブジェクトと、オブジェクトの属性とを、命令受信部２０に送信する。
【００８５】
指示決定部２１は、配置先決定装置１が第１の記憶装置を選択するために必要な、受信したオブジェクト及びオブジェクトの属性の少なくとも一方を、アクセス指示装置２が含む配置先決定装置１に送信する。
【００８６】
アクセス指示装置２が含む配置先決定装置１は、第１の記憶装置を選択し、第１の記憶装置の識別子を出力する。
【００８７】
指示送信部２３は、第１の記憶装置の識別子を受信する。指示送信部２３は、第１の記憶装置を含む記憶サーバ７に対して、格納命令に加えて、オブジェクトと、オブジェクトの属性とを送信する。指示送信部２３は、例えば、候補記憶部２２に格納されている、記憶装置４０の識別子に関連付けられている記憶サーバ７の識別子に基づき、第１の記憶装置を含む記憶サーバ７を特定すればよい。
【００８８】
結果転送部２４は、格納命令を送信先である記憶サーバ７から、書き込みの結果を表す信号を受信する。書き込みの結果を表す信号は、たとえば、書き込みが成功したことを表す信号や、書き込みが失敗したことを表す信号である。結果転送部２４は、受信した、書き込みの結果を表す信号を、処理部３０に転送する。
【００８９】
次に、格納命令を受信する記憶サーバ７について説明する。
【００９０】
指示受信部６０が、格納命令に加えて、オブジェクトと、オブジェクトの属性とを受信する。記憶サーバ７が受信した格納命令が、指示送信部２３によって、第１の記憶装置を含む記憶サーバ７に対して送信された格納命令であれば、格納命令を受信した記憶サーバ７に含まれる記憶装置４０が第１の記憶装置である。あるいは、後述されるように、記憶サーバ７が受信した格納命令が、他の記憶サーバ７の指示送信部６３によって、第２の記憶装置を含む記憶サーバ７に対して送信された格納命令である場合もある。その場合、格納命令を受信した記憶サーバ７に含まれる記憶装置４０が第２の記憶装置である。
【００９１】
実行部６７に含まれる格納部６４は、受信したオブジェクトを、記憶装置４０に書き込む。書き込みが成功した場合、結果送信部６６が、例えば、書き込みが成功したことを表す信号を結果転送部２４に送信する。書き込みが失敗した場合、結果送信部６６が、例えば、書き込みが失敗したことを表す信号を結果転送部２４に送信する。
【００９２】
さらに、指示決定部６１が、第１及び第２の記憶装置を導出するために必要な、オブジェクト及びオブジェクトの属性の少なくとも一方を、アクセス実行装置６に含まれる配置先決定装置１に送信する。
【００９３】
アクセス実行装置６に含まれる配置先決定装置１は、第１の記憶装置の識別子と、第２の記憶装置の識別子とを、指示送信部６３に送信する。
【００９４】
指示送信部６３はその指示送信部６３が含まれる記憶サーバ７が含む記憶装置４０が、第１の記憶装置であるか否かを判定する。その指示送信部６３が含まれる記憶サーバ７が含む記憶装置４０が、第１の記憶装置である場合、指示受信部６０が受信した格納命令は、クライアント装置３から受信した格納命令である。その場合、指示送信部６３は、第２の記憶装置を含む記憶サーバ７に対して、格納命令に加えて、オブジェクトとオブジェクトとを送信する。その指示送信部６３が含まれる記憶サーバ７が含む記憶装置４０が、第１の記憶装置でない場合、その記憶装置４０は、第２の記憶装置である。そして、指示受信部６０が受信した格納命令は、第２の記憶装置を含む記憶サーバ７に対して送信された格納命令である。すなわち、指示受信部６０が受信した格納命令は、第１の記憶装置を含む他の記憶サーバ７から送信された格納命令である。その場合、指示送信部６３は、格納命令を送信しない。
【００９５】
次に、アクセス命令がオブジェクトの読み出し命令である場合における、情報処理システム１００全体の動作について説明する。
【００９６】
まず、オブジェクトの読み出し命令を発行するクライアント装置３について説明する。
【００９７】
処理部３０が、オブジェクトの読み出し命令を発行する。処理部３０は、発行した読み出し命令に加えて、読み出されるオブジェクトを特定でき第１の記憶装置を特定できる属性を命令受信部２０に送信する。情報処理システム１００は、読み出されるオブジェクトを特定でき第１の記憶装置を特定できる属性は、オブジェクトの識別子であるように、設計されていてもよい。
【００９８】
指示決定部２１は、オブジェクトの属性を、アクセス指示装置２が含む配置先決定装置１に送信する。
【００９９】
アクセス指示装置２が含む配置先決定装置１は、第１の記憶装置を選択し、選択された第１の記憶装置の識別子を出力する。
【０１００】
指示送信部２３は第１の記憶装置の識別子を受信する。そして、指示送信部２３は、第１の記憶装置を含む記憶サーバ７に対して、読み出し命令と、読み出されるオブジェクトを特定できる属性とを送信する。読み出されるオブジェクトを特定できる属性は、例えばオブジェクトの識別子である。
【０１０１】
結果転送部２４は、読み出し命令の送信先である記憶サーバ７から、読み出しの結果を受信する。読み出しの結果は、例えば、読み出されたオブジェクト、あるいは、読み出しが失敗したことを表す信号である。
【０１０２】
次に、オブジェクトの読み出し命令を受信した記憶サーバ７について説明する。
【０１０３】
指示受信部６０は、読み出し命令と、例えばオブジェクトの識別子である、読み出されるオブジェクトを特定できる属性を受信する。
【０１０４】
実行部６７に含まれる読み出し部６５は、受信した属性によって特定されるオブジェクトを、記憶装置４０から読み出す。
【０１０５】
読み出しが成功した場合、結果送信部６６は、読み出されたオブジェクトを、結果転送部２４に送信する。読み出しが失敗した場合、結果送信部６６は、例えば、読み出しが失敗したことを表す信号を、結果転送部２４に送信する。
【０１０６】
以上で説明した本実施形態には、同じオブジェクトに対して、異なる複数の目的に応じた配置先を決定することができるという効果がある。
【０１０７】
その理由は、第１の選択部１０が第１の属性に基づき選択した配置先とは別に、第２の選択部１１が、第２の属性に基づいて配置先を選択するからである。第１の選択部１０が選択した配置先と、第２の選択部１１が選択した配置先の双方に、同じオブジェクトが配置される。目的の例として、例えば、複数の配置先のいずれかに格納されている複数のオブジェクトに、ランダムにアクセスする際の、配置先の負荷を減少させることがある。目的の他の例として、データであるオブジェクトがバックアップとして記憶装置である配置先に配置されている場合に、複数のオブジェクトをまとめて圧縮する際の圧縮率を向上させることがある。第１の属性は、第１の選択部１０が、所定の目的に適した配置先を選択するよう、あらかじめ選択されていればよい。第２の属性は、第２の選択部１１が、他の所定の目的に適した配置先を選択するよう、あらかじめ選択されていればよい。その場合、本実施形態の配置先決定装置１は、異なる複数の目的に応じた配置先を決定する。
【０１０８】
＜第１の実施形態の変形例＞
図１は、本変形例の配置先決定装置１の構成を表すブロック図である。本変形例の配置先決定装置１の各構成要素は、以下で説明する点を除き、同じ符号が付与された、第１の実施形態の配置先決定装置１の構成要素と同じである。
【０１０９】
図１０は、本変形例のオブジェクト処理システム１００Ｂの構成を模式的に表すブロック図である。図１０を図２と比較すると、記憶サーバ７の代わりに配置先装置７Ｂがネットワーク５に接続されている。ネットワーク５は、例えば、後述される搬送装置による搬送ネットワークを含む。ネットワーク５は、さらに、通信ネットワークを含んでいてもよい。
【０１１０】
図１１は、本変形例のクライアント装置３と、配置先装置７Ｂの構成を表す図である。クライアント装置３及び配置先装置７Ｂの各構成要素は、以下で説明する点を除き、同じ不要が付与された、第１の実施形態のクライアント装置３または配置先装置７Ｂの構成要素と同じである。図１０と図１とを比較すると、本変形例のクライアント装置３と、第１の実施形態のクライアント装置３の構成は同じである。また、本変形例の配置先装置７Ｂの構成は、実行部６７の代わりに実行部６７Ｂを含み、記憶装置４０を含まない点が、第１の実施形態の記憶サーバ７の構成と異なる。また、配置先装置７Ｂは、配置先４０Ｂに、オブジェクトの格納と取り出しが可能なように接続されている。実行部６７Ｂは、第１の実施形態の実行部６７と比較すると、格納部６４の代わりに格納部６４Ｂを含み、読み出し部６５の代わりに取り出し部６５Ｂを含む。
【０１１１】
第１の実施形態では、オブジェクトがひとまとまりのデータである場合について説明した。しかし、オブジェクトは、必ずしもひとまとまりのデータでなくてもよい。
【０１１２】
本変形例では、オブジェクトは、例えば、製品やその他の物体である。そして、配置先は、例えば、物体を格納することができる場所である。また、アクセス命令のうち格納命令は、配置先に物体を配置する命令である。本変形例の説明において、配置先に物体（あるいはオブジェクト）を配置することを、「配置先に物体（あるいはオブジェクト）を格納する」とも表記する。また、アクセス命令のうち取り出し命令は、配置先に配置（あるいは格納）されている物体を取り出す命令である。
【０１１３】
本変形例では、オブジェクトは、例えばベルトコンベアやその他の搬送装置により、装置間及び装置の構成要素間で搬送される。本変形例は、決定される配置先の個数と同じ個数のオブジェクトに、同じ識別子が付与される。同じ識別子が付与される複数のオブジェクトには、同じ属性が付与される。また、同じ識別子が付与される複数のオブジェクトとして、後述されるように属性導出部１３によって計測される計測値が同じであるオブジェクトが選択される。本変形例の説明においては、オブジェクトを搬送することを、「オブジェクトを送信する」とも表記することにする。
【０１１４】
本変形例では、オブジェクトの属性の少なくとも一部とアクセス命令は、例えば、光学的に読み取り可能なタグに、あるいは、無線によって読み取り可能なタグに、例えばオブジェクトの識別子に関連付けて、記録されていてもよい。そして、そのタグは、例えば、物体であるオブジェクトに添付されていてもよい。オブジェクトは、搬送用容器に格納された状態で搬送されてもよい。その場合、タグは、搬送用容器に添付されていてもよい。
【０１１５】
オブジェクトの属性の少なくとも一部とアクセス命令は、例えば、信号線を介した通信や無線通信によって、例えばオブジェクトの識別子に関連付けて、送信されてもよい。
【０１１６】
オブジェクトの属性がタグに記録されている場合、属性受信部１４は、タグに記録されている属性を表すデータを読み取ることにより、オブジェクトの属性を受信する。
【０１１７】
処理部３０は、アクセス命令が格納命令である場合、格納先と同数の、同一の識別子が付与されている上述のオブジェクトと、アクセス命令と、オブジェクトの属性とを、アクセス指示装置２に送信する。
【０１１８】
対象受信部１２は、処理部３０によって送信され、搬送されている、同一の識別子が付与されているオブジェクトの少なくとも一つを受け入れる。
【０１１９】
属性導出部１３は、例えば、受け入れられたオブジェクトの少なくとも１つを、いずれか１個以上のセンサによって計測する。属性導出部１３は、計測によって得られた計測値から、オブジェクトの属性を導出する。あるいは、属性導出部１３は、計測によって得られた計測値を、オブジェクトの属性にする。
【０１２０】
出力部１５は、選択された配置先の識別子を、例えば、信号線を介した通信や無線通信によって、指示送信部２３に送信する。対象受信部１２がオブジェクトを受け入れる場合、出力部１５は、対象受信部１２が受け入れたオブジェクトを、指示送信部２３に送る。その場合、出力部１５は、選択された配置先の識別子を、前述のタグに追記してもよい。そして、出力部１５は、オブジェクト及びそのタグを、指示送信部２３に送ってもよい。
【０１２１】
指示受信部６０は、同一の識別子が付与された複数のオブジェクトを受け取った場合、その複数のオブジェクトのうちの一つと、受信したアクセス命令とを、実行部６７Ｂに送信する。オブジェクトを実行部６７Ｂに送信した後、オブジェクトが残っている場合、指示受信部６０は、残ったオブジェクトと、受信したアクセス命令とを、指示決定部６１に送信する。
【０１２２】
本変形例では、格納部６４の代わりに格納部６４Ｂが動作する。また、読み出し部６５の代わりに、取り出し部６５Ｂが動作する。
【０１２３】
格納部６４Ｂは、１個のオブジェクトを、格納先４０Ｂに格納する。本変形例では、第１の実施形態における格納部６４がオブジェクトを記憶装置４０に格納する動作の代わりに、格納部６４がオブジェクトを格納先４０Ｂに格納する動作を行う。
【０１２４】
取り出し部６５Ｂは、格納先４０Ｂに格納されているオブジェクトを取り出す。本変形例では、第１の実施形態における読み出し部６５が記憶装置４０からオブジェクトを読み出す動作の代わりに、取り出し部６５Ｂが格納先４０Ｂからオブジェクトを取り出す動作を行う。
【０１２５】
本実施形態の各装置は、以上で説明されない点においては、第１の実施形態と同様の動作を行う。
【０１２６】
なお、本変形例では、復元部６８は存在しなくてよい。
【０１２７】
＜第２の実施形態＞
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【０１２８】
図２は、本実施形態の情報処理システム１００の構成を表すブロック図である。本実施形態の情報処理システム１００の構成は、第１の実施形態の情報処理システム１００の構成と同じである。
【０１２９】
図３は、本実施形態のクライアント装置３及び記憶サーバ７の構成を表すブロック図である。本実施形態のクライアント装置３及び記憶サーバ７の構成は、それぞれ、第１の実施形態のクライアント装置３及び記憶サーバ７の構成と同じである。
【０１３０】
図１は、本実施形態の配置決定装置１の構成を表すブロック図である。本実施形態の配置決定装置１の構成は、第１の実施形態の配置決定装置１の構成と同じである。
【０１３１】
また、図４及び図５は、それぞれ、本実施形態の配置先決定装置１の動作の例を表す。
【０１３２】
本実施形態の情報処理システム１００は、以下を除き、第１の実施形態の情報処理システム１００と同じである。
【０１３３】
本実施形態では、第１の属性は、オブジェクトの識別子である。また、第２の属性は、ひとまとまりのデータであるオブジェクトのハッシュである。
【０１３４】
そして、格納部６４は、オブジェクトを記憶装置４０に格納する際、同一内容のデータが記憶装置４０に格納されている場合に重複排除を行うなど、データの圧縮を行う。格納部６４は、既存の方法いずれかの方法により、データの圧縮を行えばよい。
【０１３５】
本実施形態の情報処理システムは、オブジェクトを記憶装置群４のいずれかに格納する際、オブジェクトのマスターデータとレプリケーションデータを保存することにより、二重化された状態でオブジェクトを保存する。オブジェクトのマスターデータは、例えば、第１の記憶装置に格納されるデータである。オブジェクトのレプリケーションデータは、例えば、第２の記憶装置に格納されるデータである。
【０１３６】
本実施形態の第１の選択部１０が第１の記憶装置を選択する方法は、例えば上述の、複数の記憶装置４０の各々が第１の記憶装置として選択される確率が均等あるいはほぼ均等である方法である。さらに、本実施形態の第１の選択部１０が第１の記憶装置を選択する方法は、第１の属性に対して、第１の記憶装置が一意に定まる方法である。本実施形態の第１の選択部１０は、以上の条件を満たす方法によって、オブジェクトの識別子に基づき、第１の記憶装置を選択する。このことにより、オブジェクトの識別子に基づき、そのオブジェクトのマスターデータが格納されている記憶装置４０を特定することができる。さらに、複数のオブジェクトが記憶装置群４に格納される場合、各オブジェクトが格納される記憶装置４０は分散される。そのため、オブジェクトにアクセスする際、高速にアクセスすることができる。
【０１３７】
第１の記憶装置を含む記憶サーバ７の格納部６４は、オブジェクトの書き込み要求を受信すると、オブジェクトを、そのオブジェクトの識別子に関連付けて、第１の記憶装置である記憶装置４０に格納する。第１の記憶装置を含む記憶サーバ７の格納部６４は、オブジェクトを、さらに、そのオブジェクトがマスターデータであることを表す値に関連付けて、第１の記憶装置である記憶装置４０に格納してもよい。
【０１３８】
第２の選択部１１は、例えば上述の、第２の属性に対して一意に第２の記憶装置が定まる方法によって、オブジェクトのハッシュである第２の属性に基づき第２の記憶装置を選択する。このことにより、内容が同一であるオブジェクトのレプリケーションデータは、同じ記憶装置に格納される。従って、同じ内容のデータを圧縮する重複排除が効率よく実行される。従って、記憶装置群４が備える記憶容量を効率よく利用することができる。
【０１３９】
第２の記憶装置を含む記憶サーバ７の格納部６４は、オブジェクトの書き込み要求を受信すると、オブジェクトを、そのオブジェクトの識別子に関連付けて、第２の記憶装置である記憶装置４０に格納する。第２の記憶装置を含む記憶サーバ７の格納部６４は、オブジェクトを、さらに、そのオブジェクトがレプリケーションデータであることを表す値に関連付けて、第２の記憶装置である記憶装置４０に格納してもよい。
【０１４０】
また、本実施形態では、オブジェクトのマスターデータを読み出すことができなくなっても、読み出せなくなったマスターデータを他の記憶サーバ７の記憶装置４０に復元することができる。また、オブジェクトのレプリケーションデータを読み出すことができなくなっても、読み出せなくなったレプリケーションを他の記憶サーバ７の記憶装置４０に復元することができる。
【０１４１】
オブジェクトのマスターデータやレプリケーションデータを読み出すことができなくなる状態は、例えば、それらのデータを記憶する記憶装置４０やその記憶装置４０を含む記憶サーバ７の故障によって生じる。
【０１４２】
以下の説明において、記憶装置４０にマスターデータが格納されている記憶サーバ７を、「マスターデータを記憶する記憶サーバ７」と表記することにする。同様に、記憶装置４０にレプリケーションデータが格納されている記憶サーバ７を、レプリケーションデータを記憶する記憶サーバ７と表記する。記憶サーバ７が、その記憶サーバ７が記憶するマスターデータあるいはレプリケーションデータを読み出せない状態である場合、その記憶サーバ７が故障していると表記する。
【０１４３】
まず、マスターデータを記憶する記憶サーバ７が故障した場合におけるマスターデータの復元について説明する。
【０１４４】
記憶サーバ７は、オブジェクトのマスターデータを、例えば、マスターデータであることを表す値を関連付けて、記憶装置４０に格納していればよい。記憶サーバ７は、オブジェクトのレプリケーションデータを、例えば、レプリケーションであることを表す値を関連付けて、記憶装置４０に格納していればよい。
【０１４５】
レプリケーションデータを記憶する記憶サーバ７の復元部６８は、各レプリケーションデータのマスターデータを記憶する記憶サーバ７が故障しているか否かを判定する。復元部６８は、レプリケーションデータに関連付けられているオブジェクトの識別子によって、マスターデータを記憶する記憶サーバ７を特定することができる。復元部６８は、例えば、レプリケーションデータに関連付けられているオブジェクトの識別子を、配置先決定装置１に送信する。オブジェクトの識別子を受信した配置先決定装置１は、第１の記憶装置の識別子を出力する。復元部６８は、その第１の記憶装置の識別子によって、その第１の記憶装置を含む記憶サーバ７を特定できる。復元部６８は、その第１の記憶装置を含む記憶サーバ７に対して、レプリケーションデータに関連付けられているオブジェクトの識別子によって特定されるオブジェクトの読み出し命令を送信すればよい。復元部６８は、送信した読み出し命令によるオブジェクトの読み出しが成功しなかった場合に、マスターデータを記憶する記憶サーバ７が故障していると判定すればよい。
【０１４６】
マスターデータを記憶する記憶サーバ７が故障している場合、復元部６８は、故障している記憶サーバ７の代替記憶サーバ７を特定する。各記憶サーバ７に対する代替記憶サーバ７は、あらかじめ決められていればよい。そして、復元部６８は、その代替記憶サーバ７に、レプリケーションデータの複製をマスターデータとして記憶させることにより、マスターデータを復元する。
【０１４７】
次に、レプリケーションデータを記憶する記憶サーバ７が故障した場合におけるレプリケーションデータの復元について説明する。
【０１４８】
マスターデータを記憶する記憶サーバ７の復元部６８は、各マスターデータのレプリケーションデータを記憶する記憶サーバ７が故障しているか否かを判定する。復元部６８は、マスターデータに関連付けられているオブジェクトから導出されるハッシュによって、レプリケーションデータを記憶する記憶サーバ７を特定することができる。復元部６８は、例えば、レプリケーションデータとして記憶装置４０に格納されているオブジェクトを、配置先決定装置１に送信する。オブジェクトを受信した配置先決定装置１は、そのオブジェクトのハッシュを導出する。配置先決定装置１は、導出されたハッシュに基づき、第２の記憶装置を選択する。そして、配置先決定装置１は、第２の記憶装置の識別子を出力する。復元部６８は、その第２の記憶装置の識別子によって、その第２の記憶装置を含む記憶サーバ７を特定できる。復元部６８は、その第２の記憶装置を含む記憶サーバ７に対して、マスターデータに関連付けられているオブジェクトの識別子によって特定されるオブジェクトの読み出し命令を送信すればよい。復元部６８は、送信した読み出し命令によるオブジェクトの読み出しが成功しなかった場合に、レプリケーションデータを記憶する記憶サーバ７が故障していると判定すればよい。
【０１４９】
レプリケーションデータを記憶する記憶サーバ７が故障している場合、復元部６８は、故障している記憶サーバ７の代替記憶サーバ７を特定する。各記憶サーバ７に対する代替記憶サーバ７は、あらかじめ決められていればよい。そして、復元部６８は、その代替記憶サーバ７に、マスターデータの複製をレプリケーションデータとして記憶させることにより、レプリケーションデータを復元する。
【０１５０】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態が生じる理由と同じである。
【０１５１】
本実施形態には、さらに、二重化された状態で保存されたオブジェクトの、一方のデータに対して高速なアクセスを可能にするのに加えて、他方のデータに対して容量効率の高い保存を可能にするという効果がある。
【０１５２】
その理由は、第１の選択部１０がオブジェクトの識別子に基づき第１の記憶装置を選択するのに加えて、第２の選択部１１が、オブジェクトのハッシュに基づき第２の記憶装置を選択するからである。そして、第１の記憶装置と第２の記憶装置には、それぞれ、同じオブジェクトのマスターデータとレプリケーションデータが格納される。あるオブジェクトに識別子に対して、それぞれの記憶装置４０が第１の記憶装置として選択される確率は、同じあるいはほぼ同じである。すなわち、オブジェクトのマスターデータは、オブジェクトのデータによらず、複数の記憶装置４０に均等あるいはほぼ均等に格納される。従って、オブジェクトに対するアクセスは、複数の記憶装置４０に分散される。よって、オブジェクトに対するアクセスは高速化される。
【０１５３】
一方、異なる複数のオブジェクトのデータが同一であれば、それらのオブジェクトのハッシュは同一である。一方、第２の選択部１１は、同じ第２の属性に対して、同じ第２の記憶装置を選択する。そして、本実施形態では、第２の属性はオブジェクトのハッシュである。従って、データが同一である異なる複数のオブジェクトに対して、同じ第２の記憶装置が選択される。すなわち、オブジェクトのレプリケーションデータは、データが同一であれば同じ記憶装置４０に格納される。従って、レプリケーションデータが格納されている記憶装置４０に対して、例えば重複排除によって、格納されているデータの圧縮を行うと、データの圧縮率が向上することが期待できる。
【０１５４】
＜第３の実施形態＞
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。
【０１５５】
図２は、本実施形態の情報処理システム１００の構成を表すブロック図である。本実施形態の情報処理システム１００の構成は、第１の実施形態の情報処理システム１００の構成と同じである。
【０１５６】
図３は、本実施形態のクライアント装置３及び記憶サーバ７の構成を表すブロック図である。本実施形態のクライアント装置３及び記憶サーバ７の構成は、それぞれ、第１の実施形態のクライアント装置３及び記憶サーバ７の構成と同じである。
【０１５７】
図１は、本実施形態の配置決定装置１の構成を表すブロック図である。本実施形態の配置決定装置１の構成は、第１の実施形態の配置決定装置１の構成と同じである。
【０１５８】
また、図４及び図５は、それぞれ、本実施形態の配置先決定装置１の動作の例を表す。
【０１５９】
本実施形態の情報処理システム１００は、以下を除き、第１の実施形態の情報処理システム１００と同じである。
【０１６０】
本実施形態では、第１の属性は、同じ第１の属性に関連付けら得たオブジェクトの数が偏らないよう選択されたメタデータである。そのような第１の属性は、例えば、オブジェクトの識別子である。
【０１６１】
また、本実施形態では第２の属性は、例えば、オブジェクトのデータとしての分類を表すメタデータである。第２の属性は、分類を表す属性であれば、いずれの属性でもよい。第２の属性は、オブジェクトにあらかじめ関連付けられていればよい。
【０１６２】
第２の属性は、例えば、クライアント装置３の使用者によって設定される。そして、クライアント装置３の処理部３０がオブジェクトの格納命令を発行する際に、処理部３０がアクセス指示装置２に送信する。処理部３０によって送信される第２の属性は、例えば、分類の識別子である。さらに、アクセス指示装置２の指示送信部２３がオブジェクトの格納命令を送信する際、指示送信部２３は、さらに、第２の属性を送信する。指示決定部６１は、配置先決定部１に対して、第１の属性及び第２の属性を送信する。
【０１６３】
そして、図４に示すステップＳ１０３において、属性導出部１３は、第２の属性を導出しない。
【０１６４】
図４に示すステップＳ１０４において、本実施形態の第１の選択部１０は、第２の実施形態の第１の選択部１０と同じように、第１の記憶装置を選択する。すなわち、それぞれのオブジェクトに対して、オブジェクトのデータによらず、それぞれの記憶装置４０が第１の記憶装置として選択される確率が同等又はほぼ同等になるように、第１の記憶装置を選択する。
【０１６５】
図４に示すステップＳ１０６において、第２の選択部１１は、オブジェクトの分類を表す第２の属性に基づき、第２の記憶装置を選択する。本実施形態の第２の選択部１１も、同じ第２の属性に対して、同じ第２の記憶装置を選択する。よって、本実施形態の第２の選択部１１は、異なる複数のオブジェクトの分類が同一であれば、それらのオブジェクトに対して、同じ第２の記憶装置を選択する。すなわち、分類が同じオブジェクトは、同じ記憶装置４０に格納される。
【０１６６】
以下の説明において、第２の実施形態と同様、第１の記憶装置に格納されるオブジェクトを、オブジェクトのマスターデータと表記する。そして、第２の記憶装置に格納されるオブジェクトを、オブジェクトのレプリケーションデータと表記する。
【０１６７】
本実施形態でも、第２の実施形態と同様、マスターデータは、データの内容や分類等によらず、複数の記憶装置４０に均等又はほぼ均等に格納される。従って、マスターデータに対するアクセスの負荷は、複数の記憶装置４０に分散される。従って、マスターデータに対するアクセスは高速化される。
【０１６８】
一方、本実施形態では、レプリケーションデータは、オブジェクトの分類が同じであれば同じ記憶サーバ７に格納される。従って、レプリケーションデータに対してアクセスする際、一つの分類に含まれる全てのオブジェクトに対する処理を効率よく行うことができる。
【０１６９】
例えば、クライアント装置３が一つの分類に含まれる多数のオブジェクトを読み出す場合、それらのオブジェクトは同じ記憶サーバ７から読み出される。クライアント装置３とオブジェクトが読み出される記憶サーバ７を接続するネットワーク５が、ポート間の通信が他のポート間の通信と独立して行われるネットワークスイッチによって実現されている場合、オブジェクトの読み出しは、他の装置間の通信に影響を与えない。その場合、オブジェクトの読み出しは、他の装置間の通信に影響されない。すなわち、効率のよい読み出しが可能である。
【０１７０】
また、例えば、記憶サーバ７が汎用の情報処理装置を使用して実現されている場合、クライアント装置３からに指示に基づき、記憶サーバ７がオブジェクトに対するように、記憶サーバ７を構築することができる。そのような記憶サーバ７に、その記憶サーバ７が記憶する、一つの分類に含まれる多数のオブジェクトに対する処理を実行させる場合、他の記憶サーバ７からオブジェクトの読み出しを行う必要がない。一つの分類に含まれる多数のオブジェクトに対する処理としては、例えば、統計処理や、特定の条件に合致するオブジェクトの抽出などがある。一般に、情報処理装置に直接接続された記憶装置からのデータの読み出しの方が、他の情報処理装置に接続された記憶装置に格納されているデータの、ネットワークを介する受信より高速である。従って、その処理の際、ネットワーク５を介してオブジェクトを転送する必要がない。すなわち、高速な処理が可能になる。
【０１７１】
また、本実施形態では、第２の実施形態と同様に、オブジェクトのマスターデータを読み出すことができなくなっても、読み出せなくなったマスターデータを他の記憶サーバ７の記憶装置４０に復元することができる。また、オブジェクトのレプリケーションデータを読み出すことができなくなっても、読み出せなくなったレプリケーションを他の記憶サーバ７の記憶装置４０に復元することができる。
【０１７２】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態が生じる理由と同じである。
【０１７３】
本実施形態には、さらに、記憶装置群４に格納されている複数のオブジェクトに対して異なるアクセスパターンによってアクセスを行う場合に、アクセスパターンに応じた効率のよいアクセスが可能になるという効果がある。
【０１７４】
その理由は、第１の選択部１０が第１の属性に基づき選択した第１の記憶装置と、第２の選択部１１が第２の属性に基づき選択した第２の記憶装置とに、それぞれオブジェクトデータが格納されるからである。本実施形態では、複数のアクセスパターンによるアクセスにおいて効率がよくなるようあらかじめ選択した、第１の属性と第２の属性とを指定して、オブジェクトを格納することができる。アクセスパターンに応じて、アクセスするデータを、例えばマスターデータ及びレプリケーションデータから選択することによって、効率のよいアクセスを行うことができる。
【０１７５】
＜第４の実施形態＞
次に、本発明の第４の実施形態について、図面を参照して詳細に説明する。
【０１７６】
図６は、本実施形態の含む情報処理システム１００Ａの構成を表すブロック図である。図６を参照すると、情報処理システム１００Ａは、通信ネットワークであるネットワーク５によって接続された、クライアント装置３と、複数の記憶サーバ７Ａとを含む。情報処理システム１００Ａは、ネットワーク５に接続された複数のクライアント装置３を含んでいてもよい。
【０１７７】
図７は、本実施形態のクライアント装置３と及び記憶サーバ７Ａの構成を表すブロック図である。図７には１台の記憶サーバ７だけが描かれているが、複数の記憶サーバ７Ａがネットワーク５を介してクライアント装置３に接続されている。
【０１７８】
本実施形態のクライアント装置３の構成は、図３に示す第１の実施形態のクライアント装置３の構成と同じである。本実施形態のクライアント装置３の各構成要素は、以下で説明する点を除き、同じ番号が付与された、クライアント装置３の構成要素と同じである。
【０１７９】
また、本実施形態の記憶サーバ７Ａと、図３に示す第１の実施形態の記憶サーバ７とを比較すると、アクセス実行装置６Ａは、アクセス実行装置６の代わりにアクセス実行装置６Ａを含む。本実施形態のアクセス実行装置６Ａを第１の実施形態のアクセス実行装置６とを比較すると、アクセス実行装置６Ａは、指示決定部６１と、候補記憶部６２と、指示送信部６３と、配置先決定装置１とを含まない。アクセス指示装置２の配置先決定装置１に含まれる第１の選択部１０は、アクセス実行装置６の配置先決定装置１に含まれる第１の選択部１０と同じ動作を行う。同様に、アクセス指示装置２の配置先決定装置１に含まれる第２の選択部１１は、アクセス実行装置６の配置先決定装置１に含まれる第２の選択部１１と同じ動作を行う。記憶サーバ７Ａの他の構成要素は、以下の説明以外は、同じ番号が付与された、記憶サーバ７の構成要素と同じであればよい。
【０１８０】
指示決定部２１は、アクセス指示装置２が含む配置先決定装置１に対して、オブジェクト及びオブジェクトの属性を送信する。そして、指示送信部２３は、アクセス指示装置２が含む配置先決定装置１から、配置先の識別子を受信する。指示送信部２３が、アクセス指示装置２が含む配置先決定装置１から識別子を受信する配置先は、アクセス命令によるアクセスの対象であるオブジェクトの配置先である。本実施形態では、指示送信部２３は、配置先決定装置１から、配置先である記憶装置４０の識別子を受信する。
【０１８１】
本実施形態では、アクセス指示装置２が含む配置先決定装置１に含まれる第１の選択部１０が、あらかじめ定められた第１の属性に基づき、第１の記憶装置を選択する。アクセス指示装置２が含む配置先決定装置１に含まれる第１の選択部１０は、さらに、あらかじめ定められた第２の属性に基づき、第２の記憶装置を選択する。第１の属性及び第２の属性は、オブジェクトから導出された属性と受信したオブジェクトの属性との、少なくともいずれかに含まれる。第１の属性及び第２の属性の全てがオブジェクトから導出される属性に含まれない場合、指示決定部２１は、アクセス指示装置２が含むオブジェクトを配置先決定装置１に送信しなくてよい。第１の属性及び第２の属性の全てがオブジェクトから導出される属性にのみ含まれる場合、指示決定部２１は、アクセス指示装置２が含むオブジェクトの属性を配置先決定装置１に送信しなくてよい。
【０１８２】
本実施形態の配置先決定装置１は、指示決定部２１が送信したオブジェクト及びオブジェクトの属性の少なくともいずれかに基づき導出した、第１の記憶装置の識別子及び第２の記憶装置の識別子を出力する。本実施形態の説明において、配置先決定装置１は、一つの第２の選択部１１を含む。しかし、上述のように、配置先決定装置１は、複数の第２の選択部１１を含んでいてもよい。その場合、複数の第２の選択部１１のそれぞれは、例えば異なる方法で、第２の記憶装置を選択する。配置先決定装置１が複数の第２の選択部１１を含む場合、配置先決定装置１は、複数の第２の選択部１１の各々が選択した第２の記憶装置の識別子を出力する。すなわち、その場合、配置先決定装置１は、複数の第２の記憶装置の識別子を出力する。
【０１８３】
アクセス命令が読み出し命令である場合、指示決定部２１は、受信した、第１の属性及び第２の属性の少なくともいずれかを、配置先決定装置１に送信する。指示決定部２１が第１の属性を送信した場合、配置先決定装置１は、第１の記憶装置の識別子を返送する。指示決定部２１が、第２の属性を送信した場合、配置先決定装置１は、第２の記憶装置の識別子を出力する。
【０１８４】
指示送信部２３は、配置先決定装置１から、第１の記憶装置の識別子と、第２の記憶装置の識別子とを受信する。
【０１８５】
アクセス命令が格納命令である場合、指示送信部２３は、第１の記憶装置を含む記憶サーバ７Ａに対して、オブジェクトと、オブジェクトの識別子と、オブジェクトを書き込む命令である格納命令を送信する。処理部３０が命令受信部２０に対してオブジェクトの識別子以外の属性を送信する場合、指示送信部２３は、さらに、オブジェクトのその属性を記憶サーバ７Ａに送信してもよい。
【０１８６】
アクセス命令が格納命令である場合、指示送信部２３は、さらに、第２の記憶装置を含む記憶サーバ７Ａに対して、オブジェクトと、オブジェクトを書き込む命令である格納命令を送信する。指示送信部２３は、記憶装置４０の識別子と、その記憶装置４０を含む記憶サーバ７Ａの識別子とを、関連付けて記憶していればよい。例えば、候補記憶部２２に格納されている記憶装置４０の識別子に、記憶サーバ７Ａの識別子が関連付けられていてもよい。
【０１８７】
以上のように、本実施形態では、クライアント装置３に含まれる指示送信部２３が、第２の記憶装置を含む記憶サーバ７Ａに対して、オブジェクトを書き込む格納命令を送信する。また、本実施形態では、第１の実施形態とは異なり、第１の記憶装置を含む記憶サーバ７Ａは、格納命令をした場合に、第２の記憶装置を含む他の記憶サーバ７Ａに対して、格納命令を送信する動作を行わない。
【０１８８】
また、図４及び図５は、本実施形態の配置先決定装置１の動作を表すフローチャートである。図４は、命令受信部２０が処理部３０からアクセス命令を受信した場合の、配置先決定装置１の動作を表す。
【０１８９】
指示決定部２１が、アクセス命令の対象であるオブジェクトとそのオブジェクトの属性とを、配置先決定装置１に送信すると、配置先決定装置１は、図４に示す動作を開始する。この場合のアクセス命令は、例えば格納命令である。
【０１９０】
アクセス要求が書き込み要求である場合における、アクセス指示装置２に含まれる配置先決定装置１の動作では、ステップＳ１０５において第１の記憶装置の識別子は、指示送信部２３に出力される。また、その場合、さらに、ステップＳ１０７において第２の記憶装置の識別子は、指示送信部２３に出力される。
【０１９１】
指示送信部２３は、第１の記憶装置を含む記憶サーバ７Ａに対して、オブジェクトと、オブジェクトの書き込み指示とを送信する。第１の記憶装置を含む記憶サーバ７Ａは、オブジェクトと、オブジェクトの書き込み指示とを受信すると、オブジェクトを第１の記憶装置に書き込む。指示送信部２３は、第２の記憶装置を含む記憶サーバ７Ａに対して、オブジェクトと、オブジェクトの書き込み指示とを送信する。第２の記憶装置を含む記憶サーバ７Ａは、オブジェクトと、オブジェクトの書き込み指示とを受信すると、オブジェクトを第２の記憶装置に書き込む。記憶サーバ７Ａがオブジェクトを第２の記憶装置に書き込む動作は、記憶サーバ７がオブジェクトを第２の記憶装置に書き込む動作と同じである。
【０１９２】
図５は、アクセス命令が、例えば、第１の属性に基づき定まる第１の記憶装置に格納されているオブジェクトを読み出す読み出し命令である場合の、配置先決定装置１の動作を表す。
【０１９３】
本実施形態では、ステップＳ１０５において、第１の記憶装置の識別子は、指示送信部２３に出力される。アクセス命令が読み出し命令であるなら、指示送信部２３は、例えば、命令受信部２０が受信した、オブジェクトの属性と、読み出し命令を、第１の記憶装置を含む記憶サーバ７Ａに送信する。読み出し命令を受信した記憶サーバ７Ａの動作は、読み出し命令を受信した記憶サーバ７の動作と同じである。
【０１９４】
本実施形態の記憶サーバ７Ａは、第２及び第３の実施形態の記憶サーバ７と同様に、マスターデータ及びレプリケーションデータの復旧を行ってもよい。その場合、記憶サーバ７Ａは前述の復旧部と、配置先決定装置１を含んでいればよい。
【０１９５】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
＜第４の実施形態の変形例＞
第４の実施形態に対して、第１の実施形態に対する、第１の実施形態の変形における変形と同様の変形を行うことができる。
【０１９６】
＜第５の実施形態＞
次に、本発明の第５の実施形態について、図面を参照して詳細に説明する。
【０１９７】
図８は、本実施形態の配置先決定装置１Ａの構成を表すブロック図である。
【０１９８】
図８を参照すると、本実施形態の配置先決定装置１Ａは、オブジェクトに関連付けられている第１の属性に基づき、第１の選択部１０によって、複数の配置先の中から、前記オブジェクトが格納される配置先として選択された第１の配置先を除く、前記複数の配置先の中から、前記第２の属性に基づき、前記オブジェクトが格納される第２の配置先を選択する第２の選択部１１と、前記第２の配置先の識別子を出力する出力部１５と、を備える。
【０１９９】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０２００】
配置先決定装置１、配置先決定装置１Ａ、アクセス指示装置２、クライアント装置３、アクセス実行装置６、アクセス実行装置６Ａ、アクセス実行装置６Ｂ、記憶サーバ７、記憶サーバ７Ａ、配置先装置７Ｂは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０２０１】
図９は、配置先決定装置１、配置先決定装置１Ａ、アクセス指示装置２、クライアント装置３、アクセス実行装置６、アクセス実行装置６Ａ、アクセス実行装置６Ｂ、記憶サーバ７、記憶サーバ７Ａ、配置先装置７Ｂを実現することができる、コンピュータ１０００の構成の一例を表す図である。図９を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、接続されている記憶サーバ７あるいは記憶サーバ７Ａにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、配置先決定装置１、配置先決定装置１Ａ、アクセス指示装置２、クライアント装置３、アクセス実行装置６、アクセス実行装置６Ａ、アクセス実行装置６Ｂ、記憶サーバ７、記憶サーバ７Ａ、又は配置先装置７Ｂとして動作させるプログラムが格納されている。
【０２０２】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、配置先決定装置１、配置先決定装置１Ａ、アクセス指示装置２、クライアント装置３、アクセス実行装置６、アクセス実行装置６Ａ、アクセス実行装置６Ｂ、記憶サーバ７、記憶サーバ７Ａ、又は配置先装置７Ｂとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、配置先決定装置１、配置先決定装置１Ａ、アクセス指示装置２、クライアント装置３、アクセス実行装置６、アクセス実行装置６Ａ、アクセス実行装置６Ｂ、記憶サーバ７、記憶サーバ７Ａ、又は配置先装置７Ｂとして動作する。
【０２０３】
第１の選択部１０、第２の選択部１１、対象受信部１２、属性導出部１３、属性受信部１４、命令受信部２０、指示決定部２１、指示送信部２３、結果転送部２４、処理部３０指示受信部６０、指示決定部６１、指示送信部６３、格納部６４、格納部６４Ｂ、読み出し部６５、取り出し部６５Ｂ、結果送信部６６、実行部６７、実行部６７Ｂ、復元部６８は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、候補記憶部２２、候補記憶部６２は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、第１の選択部１０、第２の選択部１１、対象受信部１２、属性導出部１３、属性受信部１４、命令受信部２０、指示決定部２１、指示送信部２３、結果転送部２４、処理部３０指示受信部６０、指示決定部６１、指示送信部６３、格納部６４、格納部６４Ｂ、読み出し部６５、取り出し部６５Ｂ、結果送信部６６、実行部６７、実行部６７Ｂ、復元部６８、候補記憶部２２、候補記憶部６２の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０２０４】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０２０５】
１、１Ａ    配置先決定装置
２    アクセス指示装置
３    クライアント装置
４    記憶装置群
５    ネットワーク
６、６Ａ、６Ｂ    アクセス実行装置
７、７Ａ    記憶サーバ
７Ｂ    配置先装置
１０    第１の選択部
１１    第２の選択部
１２    対象受信部
１３    属性導出部
１４    属性受信部
１５    出力部
２０    命令受信部
２１、６１    指示決定部
２２、６２    候補記憶部
２３、６３    指示送信部
２４    結果転送部
３０    処理部
４０    記憶装置
６０    指示受信部
６４、６４Ｂ    格納部
６５    読み出し部
６５Ｂ    取り出し部
６６    結果送信部
６７、６７Ｂ    実行部
６８    復元部
１００、１００Ａ    情報処理システム
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2015156111.tif 000003
【図２】
2015156111.tif 000004
【図３】
2015156111.tif 000005
【図４】
2015156111.tif 000006
【図５】
2015156111.tif 000007
【図６】
2015156111.tif 000008
【図７】
2015156111.tif 000009
【図８】
2015156111.tif 000010
【図９】
2015156111.tif 000011
【図１０】
2015156111.tif 000012
【図１１】
2015156111.tif 000013