(57)【要約】【課題】オブジェクトの書き込みを効率的に処理する。【解決手段】１以上の前記情報処理装置１０から記憶したデータに対するインデックス作成依頼を受信するインデックス作成依頼受信部２５と、インデックス作成依頼に付加された識別情報に応じて、データのインデックスを作成するか否かを決定する決定部２５とを備える。【選択図】図１
2015141446.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置であって、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信するインデックス作成依頼受信部と、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する決定部と
を備えることを特徴とする、情報処理装置。
【請求項２】
インデックス作成済みの前記インデックス作成依頼に関する前記識別情報を記憶する識別情報記憶部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されている場合には、前記インデックスの作成を行なわないことを決定することを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記データのインデックスを作成するインデックス作成部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されていない場合には、前記インデックスの作成を行なうことを決定し、前記インデックス作成部に前記インデックスを作成させることを特徴とする、請求項２記載の情報処理装置。
【請求項４】
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置であって、
データの記憶指示を受信する記憶指示受信部と、
前記データを記憶装置に記憶する記憶実行部と、
受信した前記記憶指示に関する識別情報を生成する識別情報生成部と、
前記データのインデックスの作成を依頼するインデックス作成依頼を、前記識別情報を付加して送信する送信部と、
を備えることを特徴とする、情報処理装置。
【請求項５】
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置において、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信し、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する
ことを特徴とする、インデックス作成制御方法。
【請求項６】
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続されるコンピュータに、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信し、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する
処理を実行させることを特徴とする、インデックス作成制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、インデックス作成制御方法及びインデックス作成制御プログラムに関する。
【背景技術】
【０００２】
近年、大量のデータを蓄積するために、複数のサーバをネットワークで接続した分散オブジェクトストレージシステムが実現されている。
このような分散オブジェクトストレージにおいては、オブジェクトを書き込みつつ、そのインデックスを作成することが一般に行なわれている。
ここでいうオブジェクトとは、データとそれに付随するメタデータを合わせたものである。また、インデックスとは、各オブジェクトのメタデータが集められ、検索に適したデータ構造で保持されているものである。
【０００３】
図９は従来の分散オブジェクトストレージシステムの構成を模式的に示す図である。
分散オブジェクトストレージシステム５００は、プロキシサーバ５０１と複数のサーバ５１０とを備える。図９に示す例においては、サーバを示す符号としては、任意のサーバを指すときには符号５１０を用いるが、複数のサーバのうち１つを特定する必要があるときには符号Ａ〜Ｆを用いる。
【０００４】
プロキシサーバ５０１は、図示しないネットワークを介して、複数のサーバ５１０に接続されるとともに、図示しないクライアントコンピュータに接続され、このクライアントコンピュータに代わってサーバ５１０へのデータアクセスを行なう。プロキシサーバ５０１は、サーバ機能を備えたコンピュータ等の情報処理装置である。
プロキシサーバ５０１は、データファイルを特定する情報に対して当該データファイルの格納位置を関連付けて構成される管理情報を備える。そして、プロキシサーバ５０１は、クライアントからデータファイルへのリード／ライト要求を受信すると、受信したファイル名に基づいてこの管理情報を参照して、アクセス対象のデータファイルにアクセスする。
【０００５】
また、プロキシサーバ５０１は、サーバ５１０に対してオブジェクトの書き込みを行なわせるとともに、いずれかのサーバ５１０に対してインデックスの作成を行なわせる。
例えば、プロキシサーバ５０１は、サーバＡに対してオブジェクト（メタデータ及びデータ）を送信して、その書き込みを行なわせるとともに、サーバＢに対して当該オブジェクトのメタデータを送信して、インデックスを作成させる。
【０００６】
プロキシサーバ５０１からの指示に従ってオブジェクトの書き込みを行なったサーバＡは、次に、サーバＣにオブジェクトを送信して、その書き込みを指示する。これにより、オブジェクトの冗長化が実現される。同様にして、オブジェクトの書き込みを行なったサーバＣは、サーバＥにオブジェクトを送信して、その書き込みを指示する。オブジェクトの格納を行なうこれらのサーバＡ，サーバＣ，サーバＥをオブジェクト処理サーバという場合がある。
【０００７】
一方、プロキシサーバ５０１からインデックスの作成指示を受信したサーバＢは、インデックスの作成指示とともに受信したメタデータを用いてインデックスの作成を行なう。また、このインデックスの作成を行なったサーバＢは、次に、サーバＤにメタデータを送信してインデックスの作成を指示する。これにより、インデックスの冗長化が実現される。インデックスの作成を行なったサーバＤは、サーバＦにメタデータを送信してインデックスの作成を指示する。インデックスを作成するこれらのサーバＢ，サーバＤ，サーバＦをインデックス処理サーバという場合がある。
【０００８】
図１０は従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図である。
プロキシサーバ５０１からの指示に応じて、サーバＡにオブジェクトの書き込みが行なわれた後、このサーバＡからの指示に応じてサーバＣにオブジェクトの書き込みが行なわれる。また、その後、サーバＣからの指示に応じてサーバＥにオブジェクトの書き込みが行なわれる。
【０００９】
一方、サーバＢにおいては、プロキシサーバ５０１からの指示に応じて、インデックスの作成が行なわれた後、このサーバＢからの指示に応じてサーバＤにおいてインデックスの作成が行なわれる。また、その後、このサーバＤからの指示に応じてサーバＦにおいてインデックスの作成が行なわれる。
しかし、このような従来の分散オブジェクトストレージシステムにおいては、いずれかの処理中に障害が発生すると、「オブジェクトを蓄積している」ことと「オブジェクトのインデックスが作成されている」こととの間で整合性が保たれなくなるケースが発生する。
【００１０】
図１１は従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図であり、プロキシサーバ５０１がシステムダウンした状態を示す。
この図１１に示す例においては、プロキシサーバ５０１が、サーバＡに対してオブジェクトの書き込み指示を行なった後に、サーバＢに対してインデックスの作成指示を行なう前にシステムダウンしている。
【００１１】
これにより、サーバＡ，Ｃ，Ｅにおいてはそれぞれオブジェクトが蓄積されるが、サーバＢ，Ｄ，Ｆにおいてはインデックスが作成されない。すなわち、オブジェクトの蓄積状態とインデックスとの整合性が保たれていない状態が生じる。
図１２は従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図であり、サーバＡがシステムダウンした例を示す。
【００１２】
この図１２に示す例においては、プロキシサーバ５０１がサーバＡに対してオブジェクトの書き込み指示を行なった後に、サーバＡがシステムダウンしている。プロキシサーバ５０１からはサーバＢに対してのインデックスの作成指示が行なわれている。
これにより、サーバＢ，Ｄ，Ｆにおいてはそれぞれインデックスが作成されるが、サーバＡがシステムダウンしたため、サーバＣ，Ｅにおいてはオブジェクトの書き込みが行なわれない。すなわち、この場合にもオブジェクトの蓄積状態とインデックスとの整合性が保たれていない状態が生じる。
【００１３】
このような分散オブジェクトストレージシステムにおける、オブジェクトの蓄積状態とインデックスとの整合性が保たれていない状態の発生を抑止するために、オブジェクトの書き込みを行なったサーバが、それぞれインデックスの作成指示を送信することが考えられる。
図１３は従来の分散オブジェクトストレージシステムの改良例におけるオブジェクトの書き込み時の処理を示す図である。
【００１４】
この図１３に示す例においては、図９に示した従来の分散オブジェクトストレージシステム５００において、オブジェクトの書き込みを行なったサーバＡ，サーバＣ，サーバＥが、それぞれサーバＢに対して当該オブジェクトのメタデータを送信して、インデックスを作成させる。
これにより、プロキシサーバ５０１が、サーバＡに対してオブジェクトの書き込み指示を行なった後に、サーバＢに対してインデックスの作成指示を行なう前にシステムダウンした場合にも、インデックスの作成が行なわれる。すなわち、分散オブジェクトストレージシステム５００内において、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。
【００１５】
また、プロキシサーバ５０１からオブジェクトの書き込み指示を受けたサーバＡは、サーバＣにオブジェクトの書き込み指示を送信した後に、サーバＢにインデックスの作成指示を行なう。
これにより、サーバＡが、サーバＣにオブジェクトの書き込み指示を送信する前にシステムダウンとなった場合には、システム５００内において、オブジェクトの書き込みもインデックスの作成を行なわれず、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。また、サーバＡが、サーバＣにオブジェクトの書き込み指示を送信した後であって、サーバＢにインデックスの作成指示を送信する後にシステムダウンとなった場合にも、オブジェクトの書き込みを行なったサーバＣ，サーバＥからサーバＢに対してインデックスの作成指示が行なわれる。これにより、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。
【００１６】
なお、インデックスの作成指示を受信したサーバＢは、インデックスの作成指示とともに受信したメタデータを用いてインデックスの作成を行なう。
また、インデックスの作成を行なったサーバＢは、次に、サーバＤにメタデータを送信してインデックスの作成を指示し、更に、インデックスの作成を行なったサーバＤは、サーバＦに対してインデックスの作成を指示する。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００５−３２１９２２号公報
【特許文献２】特開２００４−３４２０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、このような図１３に示す従来の分散オブジェクトストレージシステムにおいては、インデックスサーバＢ，Ｄ，Ｆは、各オブジェクト処理サーバから受信するインデックスの作成指示に従ってインデックスの作成を行なう。すなわち、インデックスサーバＢ，Ｄ，Ｆにおいて重複したインデックス作成処理を行なうので、不要なインデックス処理を行なうこととなり非効率的であるという課題がある。
【００１９】
１つの側面では、本発明は、オブジェクトの書き込みを効率的に処理することができるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００２０】
このため、この情報処理装置は、ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置であって、１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信するインデックス作成依頼受信部と、前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する決定部とを備える。
【発明の効果】
【００２１】
一実施形態によれば、効率的にオブジェクト書き込みを処理することができる。
【図面の簡単な説明】
【００２２】
【図１】実施形態の一例としての分散ストレージシステムの機能構成を模式的に示す図である。
【図２】実施形態の一例としての分散ストレージシステムのハードウェア構成を示す図である。
【図３】実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理を説明するための図である。
【図４】実施形態の一例としての分散ストレージシステムにおける機能構成を例示する図である。
【図５】実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図である。
【図６】実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図である。
【図７】実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図である。
【図８】実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図である。
【図９】従来の分散オブジェクトストレージシステムの構成を模式的に示す図である。
【図１０】従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図である。
【図１１】従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図である。
【図１２】従来の分散オブジェクトストレージシステムにおけるオブジェクトの書き込み時の処理を示すシーケンス図である。
【図１３】従来の分散オブジェクトストレージシステムの改良例におけるオブジェクトの書き込み時の処理を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本情報処理装置、インデックス作成制御方法及びインデックス作成制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００２４】
（Ａ）構成
図１は実施形態の一例としての分散ストレージシステムの機能構成を模式的に示す図、図２はそのハードウェア構成を示す図である。
分散ストレージシステム１は、図２に示すように、プロキシサーバ４０，クライアント６０及び複数（図１に示す例では６つ）のサーバ１０ａ〜１０ｆを備える分散オブジェクトストレージシステムである。
【００２５】
図２に示す例においては、各サーバ１０ａ〜１０ｆとプロキシサーバ４０とは、例えばＬＡＮ（Local Area Network）５０を介して、相互に通信可能に接続されている。また、プロキシサーバ４０とクライアント６０とは、公衆回線網等のネットワーク５１を介して、相互に通信可能に接続されている。
分散ストレージシステム１は、複数のサーバ１０ａ〜１０ｆがそれぞれ有するディスク領域をまとめて、あたかも一つのストレージのように取り扱うことを可能とする。この分散ストレージシステム１においては、複数のデータファイルを複数のサーバ１０ａ〜１０ｆに分散して配置される。
【００２６】
クライアント６０は、例えば、パーソナルコンピュータ等の情報処理装置であり、プロキシサーバ４０を介して、サーバ１０ａ〜１０ｆに格納されたデータファイル（ファイル）に対するリードやライトの要求（リード／ライト要求）を行なう。図２に示す例においては、分散ストレージシステム１に１つのクライアント６０が備えられているが、これに限定されるものではなく、２以上のクライアント６０をそなえてもよい。
【００２７】
クライアント６０は、例えば、ライトを行なうデータをライト要求とともにプロキシサーバ４０に対して送信する。
プロキシサーバ４０は、クライアント６０に代わってサーバ１０へのデータアクセスを行なう。プロキシサーバ４０は、サーバ機能を備えたコンピュータ等の情報処理装置である。図１及び図２に示す例においては、分散ストレージシステム１に１つのプロキシサーバ４０が備えられているが、これに限定されるものではなく、２以上のプロキシサーバ４０をそなえてもよい。
【００２８】
プロキシサーバ４０は、図２に示すように、ＣＰＵ（Central Processing Unit）１６，メモリ１７及び記憶装置１８を備える。
記憶装置１８は、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）、ＳＳＤ（Solid State Drive）等の記憶装置であって、種々のデータを格納するものである。
メモリ１７はＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む記憶装置である。メモリ１７のＲＯＭには、プロキシ制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１７上のソフトウェアプログラムは、ＣＰＵ１６に適宜読み込まれて実行される。また、メモリ１７のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２９】
ＣＰＵ１６は、種々の制御や演算を行なう処理装置であり、メモリ１７に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１６は、図１に示すように、第１オブジェクト書き込み指示部４１としての機能を実現する。
第１オブジェクト書き込み指示部４１は、サーバ１０に対してオブジェクトの書き込みを指示するものであり、サーバ１０に対して書込指示とともにオブジェクトを送信する。
【００３０】
例えば、プロキシサーバ４０は、データファイルを特定する情報（例えばファイル名）に対して当該データファイルの格納位置を関連付けて構成される管理情報を備える。そして、第１オブジェクト書き込み指示部４１は、クライアント６０からデータファイルへのライト要求を受信すると、受信したファイル名に基づいて管理情報を参照して、アクセス対象のデータファイルの格納場所を確認する。
【００３１】
プロキシサーバ４０は、このデータファイルの格納場所に対応するサーバ１０に対してオブジェクトとともにライト要求を送信する。すなわち、プロキシサーバ４０は、クライアント６０からライト要求が行なわれると、対象のサーバ１０に対してオブジェクトの書き込みを行なう。
なお、オブジェクトは、データとそのデータに付随するメタデータとを合わせたものである。
【００３２】
また、プロキシサーバ４０は、サーバ１０からリード／ライト要求に対するリプライを受信すると、リード／ライト要求の送信元のクライアント６０に対して、そのリプライを転送する。なお、プロキシサーバ４０としての機能は、既知の種々の手法で実現され、その詳細な説明は省略する。
以下、本実施形態においては、プロキシサーバ４０は、サーバＡに対してオブジェクトの書き込みを指示する例について示す。
【００３３】
サーバ１０ａ〜１０ｆは、それぞれ記憶装置１３をそなえる情報処理装置であり、この記憶装置１３にファイルデータを格納するストレージサーバ機能を備える。すなわち、サーバ１０ａ〜１０ｆは、それぞれストレージサーバノードとして機能する。各サーバ１０ａ〜１０ｆは互いに同様の構成を備える。
以下、サーバを示す符号としては、複数のサーバのうち１つを特定する必要があるときには符号１０ａ〜１０ｆを用いるが、任意のストレージサーバノードを指すときには符号１０を用いる。また、以下、サーバ１０ａをサーバＡと表現する場合がある。同様に、サーバ１０ｂをサーバＢと、サーバ１０ｃをサーバＣと、サーバ１０ｄをサーバＤと、サーバ１０ｅをサーバＥと、サーバ１０ｆをサーバＦと、それぞれ表現する場合がある。
【００３４】
各サーバ１０は、記憶装置１３にオブジェクトの書き込みを行なうオブジェクト処理機能と、オブジェクトに関するインデックスを作成するインデックス処理機能とを有し、オブジェクトの書き込みが行なわれると、そのインデックスが作成される。
以下、オブジェクト処理機能を実現するサーバ１０をオブジェクト処理サーバ１０という場合があり、インデックス処理機能を実現するサーバ１０をインデックス処理サーバ１０という場合がある。
【００３５】
サーバ１０は、図２に示すように、ＣＰＵ１１，メモリ１２及び記憶装置１３をそなえる。
記憶装置１３は種々のデータやプログラムを格納する記憶装置であって、例えば、ＨＤＤやＳＳＤである。また、記憶装置１３として、例えば、複数の記憶装置によりＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成してもよい。
【００３６】
メモリ１２はＲＯＭ及びＲＡＭを含む記憶装置である。メモリ１２のＲＯＭには、オブジェクト処理制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。更に、メモリ１２のＲＡＭには、後述する第１インデックス作成実行部２５がインデックス作成を行なったメタデータに関する識別情報が処理履歴として格納される。すなわち、メモリ１２は図１に示す識別情報保持部（識別情報記憶部）２８として機能する。
【００３７】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メモリ１２に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
そして、サーバ１０のＣＰＵ１１が、制御プログラム（オブジェクト記憶制御プログラム及びインデックス作成制御プログラム）を実行することにより、図１に示すように、オブジェクト書き込み実行部２１，識別情報生成部２２，第２オブジェクト書き込み指示部２３，第１インデックス作成指示部２４，第１インデックス作成実行部２５，第２インデックス作成指示部２６及び第２インデックス作成実行部２７として機能する。
【００３８】
オブジェクト書き込み実行部２１は記憶装置１３にオブジェクトを格納する処理を行なう。このオブジェクト書き込み実行部２１は、プロキシサーバ４０の第１オブジェクト書き込み指示部４１や他のサーバ１０の第２オブジェクト書き込み指示部２３からオブジェクト書き込み指示（データの記憶指示）を受信し、当該指示に従って記憶装置１３にオブジェクトを記憶させる（格納する）。すなわち、オブジェクト書き込み実行部２１は、データの記憶指示を受信する記憶指示受信部として機能するとともに、データを記憶装置１３に記憶する記憶実行部としても機能する。
【００３９】
また、特にプロキシサーバ４０の第１オブジェクト書き込み指示部４１からオブジェクトの書き込み指示を受信するサーバ１０を、第１オブジェクト処理サーバ１０という。本実施形態においては、サーバＡ（サーバ１０ａ）が第１オブジェクト処理サーバ１０となる。
一方、他のサーバ１０の第２オブジェクト書き込み指示部２３からオブジェクト書き込み指示を受信するサーバを、第２オブジェクト処理サーバ１０という。本実施形態においては、サーバＣ（サーバ１０ｃ）及びサーバＥ（サーバ１０ｅ）が第２オブジェクト処理サーバ１０となる。
【００４０】
識別情報生成部２２は、指示されたオブジェクト書き込みに対して、システム内でユニークとなる識別情報を生成する。すなわち、識別情報生成部２２は、受信した記憶指示に関する識別情報を生成する。
識別情報としては、例えば、ＵＵＩＤ（Universally Unique IDentifier）を用いることができる。なお、識別情報はＵＵＩＤに限定されるものではなく、例えば、ライト指示を行なったクライアント６０のＩＰ（Internet Protocol）アドレスとタイムスタンプを組み合わせたものを用いてもよい。また、ＵＵＩＤにタイムスタンプを組み合わせてもよい。識別情報にタイムスタンプを含めることにより、ログが見易くなるという効果も期待できる。
【００４１】
第２オブジェクト書き込み指示部２３は、他のサーバ１０に対してオブジェクトを送信して、このオブジェクトの書き込みを指示する。また、第２オブジェクト書き込み指示部２３は、上述した識別情報をオブジェクト書き込み指示に付加して送信する。
具体的には、当該サーバ１０においてプロキシサーバ４０の第１オブジェクト書き込み指示部４１からの指示に従ってオブジェクトの書き込みを行なった場合には、第２オブジェクト書き込み指示部２３は、識別情報生成部２２によって生成された識別情報を付与して、他のサーバ１０に対してオブジェクトの書き込みを指示する。
【００４２】
また、当該サーバ１０において他のサーバ１０の第２オブジェクト書き込み指示部２３からの指示に従ってオブジェクトの書き込みを行なった場合には、第２オブジェクト書き込み指示部２３は、オブジェクトの書き込み指示とともに受信した識別情報を付与して、他のサーバ１０に対してオブジェクトの書き込みを指示する。
なお、オブジェクトの書き込み指示の対象となるサーバ１０は、オブジェクトに応じて決定される。例えば、予めオブジェクトの論理構造やパスに応じてオブジェクトの書き込み先のサーバ１０を決定しておき、各サーバ１０のメモリ１２や記憶装置１３の所定の領域に管理テーブル等として格納する。第２オブジェクト書き込み指示部２３はこの管理テーブルを参照することで、オブジェクトの書き込み指示を送信するサーバ１０を特定する。
【００４３】
第１インデックス作成指示部２４は、他のサーバ１０に対してオブジェクトのメタデータを送信してインデックスの作成を指示する。すなわち、第１インデックス作成指示部２４は、他のサーバ１０に対して、データのインデックスの作成を依頼するインデックス作成依頼を送信する送信部として機能する。また、第１インデックス作成指示部２４は、上述した識別情報をインデックス作成指示（インデックス作成依頼）に付加して送信する。
【００４４】
具体的には、当該サーバ１０においてプロキシサーバ４０の第１オブジェクト書き込み指示部４１からの指示に従ってオブジェクトの書き込みを行なった場合には、第１インデックス作成指示部２４は、識別情報生成部２２によって生成された識別情報を付与して、他のサーバ１０に対してインデックスの作成を指示する。
また、当該サーバ１０において他のサーバ１０の第２オブジェクト書き込み指示部２３からの指示に従ってオブジェクトの書き込みを行なった場合には、第１インデックス作成指示部２４は、オブジェクトの書き込み指示とともに受信した識別情報を付与して、他のサーバ１０に対してインデックスの作成を指示する。
【００４５】
なお、インデックスの作成指示の対象となるサーバ１０は、オブジェクトに応じて決定される。例えば、予めオブジェクトの論理構造やパスに応じてインデックスの作成指示先のサーバ１０を決定しておき、各サーバ１０のメモリ１２や記憶装置１３の所定の領域に管理テーブル等として格納する。第１インデックス作成指示部２４はこの管理テーブルを参照することで、インデックスの作成指示を送信するサーバ１０を特定する。
【００４６】
以下、この第１インデックス作成指示部２４がインデックスの作成指示を送信するサーバ１０を第１インデックス処理サーバ１０という場合がある。本実施形態においては、サーバＢ（サーバ１０ｂ）が第１インデックス処理サーバ１０となる。
一方、他のサーバ１０のからインデックスの作成指示を受信するサーバ１０であって、第１インデックス処理サーバ１０ｂ以外のサーバ１０を、第２インデックス処理サーバ１０という。本実施形態においては、サーバＤ（サーバ１０ｄ）及びサーバＦ（サーバ１０ｆ）が第２インデックス処理サーバ１０となる。
【００４７】
第１インデックス作成実行部２５は、上述した第１インデックス作成指示部２４によるインデックスの作成指示を受信し、このインデックス作成指示に応じてインデックスを作成する。具体的には、この第１インデックス作成実行部２５は、インデックス作成指示とともに送信されたメタデータを用いてインデックスを作成する。
すなわち、第１インデックス作成実行部２５は、１以上のサーバ１０から記憶したデータに対するインデックス作成依頼を受信するインデックス作成依頼受信部として機能するともに、データのインデックスを作成するインデックス作成部として機能する。なお、このインデックスの作成は、既知の手法を用いて実現することができ、その説明は省略する。
【００４８】
また、第１インデックス作成実行部２５は、インデックスの作成を行なうと、当該インデックスの作成指示に付加されていた識別情報を、識別情報保持部２８に格納する。これにより、識別情報保持部２８を参照することで、インデックスの作成処理済みのオブジェクト（メタデータ）を把握することができる。なお、この識別情報保持部２８に格納されている識別情報を識別情報キャッシュという場合がある。
【００４９】
さらに、第１インデックス作成実行部２５は、第１インデックス作成指示部２４からインデックスの作成指示を受信すると、インデックスの作成に先立って、識別情報保持部２８を参照して、インデックスの作成指示に付加されている識別情報が識別情報キャッシュに含まれているか否かを確認する。そして、第１インデックス作成実行部２５は、インデックスの作成指示に付加されていた識別情報が識別情報保持部２８に保持されていない場合にインデックスを作成する。一方、第１インデックス作成実行部（インデックス作成抑止部）２５は、インデックスの作成指示に付加されていた識別情報が識別情報保持部２８に保持されている場合にはインデックスの作成を抑止する。
【００５０】
すなわち、第１インデックス作成実行部２５は、インデックス作成依頼に付加された識別情報に応じて、データのインデックスを作成するか否かを決定する決定部として機能する。
第２インデックス作成指示部２６は、他のサーバ１０に対してオブジェクトのメタデータを送信してインデックスの作成を指示する。この第２インデックス作成指示部２６は、他のサーバ１０の第２インデックス作成実行部２７に対して、オブジェクトのメタデータを送信してインデックスの作成を指示する。
【００５１】
第２インデックス作成実行部２７は、上述した第２インデックス作成指示部２６によるインデックスの作成指示に応じてインデックスを作成する。すなわち、インデックス作成指示とともに送信されたメタデータを用いてインデックスを作成する。なお、このインデックスの作成は、既知の手法を用いて実現することができ、その説明は省略する。
サーバ１０は、第２オブジェクト書き込み指示部２３もしくはプロキシサーバ４０の第１オブジェクト書き込み指示部４１からオブジェクト書き込み指示を受信すると、記憶装置１３にオブジェクトの書き込みを行なうオブジェクト処理機能を実行する。すなわち、オブジェクト処理サーバ１０として機能する。
【００５２】
一方、サーバ１０は、第１インデックス作成指示部２４もしくは第２インデックス作成指示部２６からインデックス作成指示を受信すると、オブジェクトに関するインデックスを作成するインデックス処理機能を実行する。すなわち、インデックス処理サーバ１０として機能する。
本実施形態においては、サーバＡ，サーバＣ及びサーバＥがオブジェクト処理サーバ１０として機能し、サーバＢ，サーバＤ及びサーバＦがインデックス処理サーバ１０として機能する例を示す。
【００５３】
（Ｂ）動作
上述の如く構成された実施形態の一例としての分散ストレージシステム１におけるオブジェクトの書き込み処理を、図４を参照しながら図３を用いて説明する。
図４は実施形態の一例としての分散ストレージシステム１における機能構成を例示する図であり、図３に示す処理を実現するための機能構成を示す。
【００５４】
これらの図３及び図４においては、プロキシサーバ４０がサーバＡ（第１オブジェクト処理サーバ１０ａ）に対してオブジェクトの書き込みを行なわせる例を示している。また、サーバＡからサーバＣにオブジェクトの書き込み指示が行なわれ、更に、サーバＣからサーバＥにオブジェクトの書き込み指示が行なわれる。
また、サーバＡは、サーバＢ（第１インデックス処理サーバ１０ｂ）にインデックスの作成指示を行ない、サーバＢからサーバＤにインデックスの作成指示が行なわれ、更に、サーバＤからサーバＦにインデックスの作成指示が行なわれる例を示している。
【００５５】
プロキシサーバ４０の第１オブジェクト書き込み指示部４１が、オブジェクト（データ及びメタデータ）を、書き込み対象であるサーバＡに送信すると（符号Ａ１参照）、サーバＡにおいて、オブジェクト書き込み実行部２１が記憶装置１３にオブジェクトを書き込む（符号Ａ２参照）。サーバＡにおいては、識別情報生成部２２が、このオブジェクトの書き込みに対して識別情報を生成する（符号Ａ３参照）。サーバＡの第２オブジェクト書き込み指示部２３が、生成した識別情報をオブジェクトに付与してサーバＣに送信し、オブジェクトの書き込み指示を行なう（符号Ａ４参照）。
【００５６】
また、サーバＡの第１インデックス作成指示部２４は、サーバＢに対して、オブジェクトのメタデータに生成した識別情報を付与してサーバＢの第１インデックス作成実行部２５に送信し、インデックスの作成指示を行なう（符号Ａ５参照）。
インデックスの作成指示を受信したサーバＢの第１インデックス作成実行部２５は、識別情報保持部２８の識別情報キャッシュを参照して、メタデータに付与された識別情報が識別情報保持部２８に格納されているか否かを確認する（符号Ａ６参照）。
【００５７】
この時点においては、受信した識別情報と同一の識別情報が識別情報保持部２８に格納されていないので、第１インデックス作成実行部２５は、メタデータを用いてインデックスを作成する（符号Ａ７参照）。また、インデックスを作成した第１インデックス作成実行部２５は、当該インデックスの作成指示に付与されていた識別情報を識別情報保持部２８に格納する。
【００５８】
さらに、サーバＢの第２インデックス作成指示部２６は、インデックスの作成に用いたメタデータをサーバＤに送信して、インデックスの作成を指示する（符号Ａ８参照）。
サーバＤにおいて、第２インデックス作成実行部２７は、受信したインデックス作成指示に応じて、このインデックス作成指示とともに送信されたメタデータを用いてインデックスを作成する（符号Ａ９参照）。また、サーバＤの第２インデックス作成指示部２６は、インデックスの作成に用いたメタデータをサーバＦに送信して、インデックスの作成を指示する（符号Ａ１０参照）。
【００５９】
サーバＦにおいて、第２インデックス作成実行部２７は、受信したインデックス作成指示に応じて、このインデックス作成指示とともに送信されたメタデータを用いてインデックスを作成する（符号Ａ１１参照）。
このように、サーバＢ，サーバＤ及びサーバＦにおいては、インデックス作成機能が実行される。
【００６０】
一方、サーバＡからオブジェクトの書き込み指示を受信したサーバＣにおいては、オブジェクト書き込み実行部２１が、受信したオブジェクトを記憶装置１３に格納する（符号Ａ１２参照）。
また、サーバＣにおいては、第２オブジェクト書き込み指示部２３が、受信したオブジェクトに付与された識別情報をオブジェクトに付与してサーバＥに送信し、オブジェクトの書き込み指示を行なう（符号Ａ１３参照）。
【００６１】
さらに、サーバＣの第１インデックス作成指示部２４は、サーバＢに対して、オブジェクトに付与された識別情報をメタデータに付与してサーバＢの第１インデックス作成実行部２５に送信して、インデックスの作成指示を行なう（符号Ａ１４参照）。
このサーバＣからのインデックスの作成指示を受信したサーバＢにおいては、第１インデックス作成実行部２５は、識別情報保持部２８の識別情報キャッシュを参照して、メタデータに付与された識別情報が識別情報保持部２８に格納されているか否かを確認する（符号Ａ１５参照）。
【００６２】
受信した識別情報と同一の識別情報が識別情報保持部２８に格納されているので、第１インデックス作成実行部２５は、当該識別情報が付与されたインデックスの作成指示は破棄して、インデックスの作成を行なわない。すなわち、インデックスの作成を抑止する。
これにより、第１インデックス処理サーバ１０であるサーバＢにおける重複するインデックスの作成が阻止される。また、第１インデックス処理サーバ１０ｂは第２インデックス処理サーバ１０であるサーバＤ，サーバＦに対するインデックスの作成指示を送信しないので、これらの第２インデックス処理サーバ１０における不要なインデックスの作成も阻止することができる。
【００６３】
サーバＣからオブジェクトの書き込み指示を受信したサーバＥにおいては、オブジェクト書き込み実行部２１が、受信したオブジェクトを記憶装置１３に格納する（符号Ａ１６参照）。
さらに、サーバＥの第１インデックス作成指示部２４は、サーバＢに対して、オブジェクトに付与された識別情報をメタデータに付与してサーバＢの第１インデックス作成実行部２５に送信して、インデックスの作成指示を行なう（符号Ａ１７参照）。
【００６４】
このサーバＥからのインデックスの作成指示を受信したサーバＢにおいては、第１インデックス作成実行部２５は、識別情報保持部２８の識別情報キャッシュを参照して、メタデータに付与された識別情報が識別情報保持部２８に格納されているか否かを確認する（符号Ａ１８参照）。
受信した識別情報と同一の識別情報が識別情報保持部２８に格納されているので、第１インデックス作成実行部２５は、当該識別情報が付与されたインデックスの作成指示は破棄して、インデックスの作成を行なわない。すなわち、インデックスの作成を抑止する。
【００６５】
これによっても、第１インデックス処理サーバ１０であるサーバＢにおける重複するインデックスの作成が阻止される。また、第１インデックス処理サーバ１０ｂは第２インデックス処理サーバ１０であるサーバＤ，サーバＦに対するインデックスの作成指示を送信しないので、これらの第２インデックス処理サーバ１０における不要なインデックスの作成も阻止することができる。
【００６６】
図５は実施形態の一例としての分散ストレージシステム１におけるオブジェクトの書き込み処理のシーケンス図である。
プロキシサーバ４０から第１オブジェクト処理サーバ１０であるサーバＡに対してオブジェクトの書き込み指示が送信される（符号Ｂ１参照）。サーバＡにおいて、記憶装置１３にオブジェクトが書き込まれる。また、サーバＡにおいては、このオブジェクトの書き込みに対して識別情報（図５に示す例においては、識別情報＝α）が生成される。なお、αは任意の数値や文字列を示すものとする。
【００６７】
サーバＡは、サーバＣに対して、この識別情報（＝α）を付したオブジェクトの書き込み指示を送信する（符号Ｂ２参照）。サーバＣにおいて、この書き込み指示に応じて記憶装置１３にオブジェクトが書き込まれる。
オブジェクトの書き込みを行なったサーバＣは、サーバＥに対して、識別情報（＝α）を付したオブジェクトの書き込み指示を送信する（符号Ｂ３参照）。サーバＥにおいて、この書き込み指示に応じて記憶装置１３にオブジェクトが書き込まれる。
【００６８】
また、サーバＣに対してオブジェクトの書き込み指示を行なったサーバＡは、サーバＢに対して、識別情報（＝α）を付したインデックスの作成指示を送信する（符号Ｂ４参照）。
サーバＢにおいては、識別情報保持部２８の識別情報キャッシュを参照して、インデックスの作成指示に付加された識別情報が識別情報保持部２８に格納されているか否かを確認する。
【００６９】
この時点においては、受信した識別情報と同一の識別情報が識別情報保持部２８に格納されていないので、サーバＢは、サーバＡから受信したメタデータを用いてインデックスを作成する。また、サーバＢは、受信したインデックスの作成指示に付与されていた識別情報を識別情報保持部２８に格納する。
さらに、サーバＢは、インデックスの作成に用いたメタデータをサーバＤに送信して、インデックスの作成を指示する（符号Ｂ５参照）。
【００７０】
また、サーバＢには、オブジェクトの書き込みを行なったサーバＣからもインデックスの作成指示が送信される（符号Ｂ６参照）。このサーバＣからのインデックス作成指示にも、識別情報（＝α）が付加されている。
サーバＣからのインデックス作成指示を受信したサーバＢにおいては、識別情報保持部２８の識別情報キャッシュを参照して、サーバＣからのインデックスの作成指示に付加された識別情報（＝α）が識別情報保持部２８に格納されているか否かを確認する。
【００７１】
この時点において、受信した識別情報（＝α）は既に識別情報保持部２８に格納されている。すなわち、識別情報＝αのオブジェクト書き込み処理については、インデックスの作成は行なわれているので、サーバＢは、この識別情報（＝α）が付加されたサーバＣからのインデックスの作成指示には従わずに、インデックスは作成しない。ただし、サーバＢは、当該インデックスの作成指示の送信元であるサーバＣに対して完了通知は返信する（符号Ｂ７参照）。
【００７２】
同様に、サーバＢには、オブジェクトの書き込みを行なったサーバＥからもインデックスの作成指示が送信される（符号Ｂ８参照）。このサーバＥからのインデックス作成指示にも、識別情報（＝α）が付加されている。
サーバＥからのインデックス作成指示を受信したサーバＢにおいては、識別情報保持部２８の識別情報キャッシュを参照して、サーバＥからのインデックスの作成指示に付加された識別情報（＝α）が識別情報保持部２８に格納されているか否かを確認する。
【００７３】
この時点において、受信した識別情報（＝α）は既に識別情報保持部２８に格納されている。すなわち、識別情報＝αのオブジェクト書き込み処理については、インデックスの作成は行なわれているので、サーバＢは、この識別情報（＝α）が付加されたサーバＥからのインデックスの作成指示には従わずに、インデックスは作成しない。ただし、サーバＢは、当該インデックスの作成指示の送信元であるサーバＥに対して完了通知は返信する（符号Ｂ９参照）。
【００７４】
サーバＢからのインデックスの作成指示を受信したサーバＤは、受信したメタデータを用いてインデックスを作成する。また、サーバＤは、インデックスの作成に用いたメタデータをサーバＦに送信して、インデックスの作成を指示する（符号Ｂ１０参照）。
サーバＤからのインデックスの作成指示を受信したサーバＦは、受信したメタデータを用いてインデックスを作成する。また、サーバＦは、インデックス作成の完了通知をサーバＤに応答する（符号Ｂ１１参照）。同様に、サーバＤはサーバＢに、また、サーバＢはサーバＡに、それぞれインデックス作成の完了通知を応答する（符号Ｂ１２，Ｂ１３参照）。
【００７５】
また、オブジェクトの書き込みを行なったサーバＥは、サーバＣに対してオブジェクト書き込みの完了通知を応答する（符号Ｂ１４）。同様に、サーバＣはサーバＡにオブジェクトの書き込みの完了通知を応答する（符号Ｂ１５）、また、サーバＡは、サーバＣからのオブジェクトの書き込みの完了通知と、サーバＢからのインデックス作成の完了通知とを受信すると、プロキシサーバ４０に完了通知を応答する（符号Ｂ１６参照）。
【００７６】
（Ｃ）効果
このように、実施形態の一例としての分散ストレージシステム１によれば、プロキシサーバ４０からオブジェクトの書き込み指示を受信した第１オブジェクト処理サーバ１０（例えば、サーバ１０ａ）において、識別情報生成部２２が、指示されたオブジェクトの書き込みに対してシステム内でユニークとなる識別情報を生成する。
【００７７】
そして、この第１オブジェクト処理サーバ１０ａから、この作成された識別情報がオブジェクトの書き込み指示に付加されて他サーバ１０（第２オブジェクト処理サーバ；例えばサーバ１０ｃ）に送信され、同様に、この識別情報がインデックス作成指示に付加されて第１インデックス処理サーバ１０（例えばサーバ１０ｂ）に送信される。
第１オブジェクト処理サーバ１０ａからオブジェクトの書き込み指示を受けた各第２オブジェクト処理サーバ１０（例えば、サーバ１０ｃ，１０ｅ）においては、オブジェクトの書き込みが行なわれる。また、これらの第２オブジェクト処理サーバ１０ｃ，１０ｅは、インデックス管理サーバ１０ｂ（サーバＢ）に対して、受信した識別情報とともにインデックスの作成指示をそれぞれ送信する。
【００７８】
インデックス作成指示を受けた第１インデックス処理サーバ１０ｂにおいては、インデックスの作成指示に付加して送信された識別情報を用いて識別情報保持部２８を参照することで、かかる識別情報のオブジェクトのインデックスが先に作成されているか否かを確認する。
そして、第１インデックス処理サーバ１０ｂは、インデックスの作成指示に付加された識別情報が識別情報保持部２８に格納されている場合、すなわち、識別情報のオブジェクトのインデックスが先に作成されている場合には、インデックスの作成を抑止する。
【００７９】
これにより、第１インデックス処理サーバ１０であるサーバＢにおける重複するインデックスの作成が阻止され、負荷を軽減することができる。また、第１インデックス処理サーバ１０ｂは第２インデックス処理サーバ１０であるサーバＤ，サーバＦに対するインデックスの作成指示を送信しないので、これらの第２インデックス処理サーバ１０における不要なインデックスの作成も阻止することができる。これによってもサーバＤ，サーバＦにおける負荷を軽減することができる。従って、オブジェクトの書き込み処理を効率的に行うことができる。
【００８０】
また、プロキシサーバ４０が、第１オブジェクト処理サーバ１０（例えば、サーバ１０ａ）に対してオブジェクトの書き込み指示を行なう。そして、このオブジェクトの書き込み指示を受信した第１オブジェクト処理サーバ１０ａが、他のサーバ１０（第２オブジェクト処理サーバ；例えば、サーバ１０ｄ，１０ｆ）にオブジェクトの書き込み指示を行なうとともに、第１インデックス処理サーバ１０ｂにインデックスの作成指示を行なう。
【００８１】
図６は実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図であり、図５に示すシーケンス図にプロキシサーバのシステムダウンとなった状態を追記したものである。この図６中における既述の説明と同様の処理は図５を参照して説明したものと同様であり、その説明を省略する。
この図６に示すように、プロキシサーバ４０が、サーバＡに対してオブジェクトの書き込み指示を行なった後にシステムダウンの状態となっても、第１オブジェクト処理サーバ１０ａ（サーバＡ）から第２オブジェクト処理サーバ１０ｃ（サーバＣ）にオブジェクトの書き込み指示が送信される。また、第１インデックス処理サーバ１０ｂ（サーバＢ）に対しても、サーバＡからインデックスの作成指示が送信される。
【００８２】
従って、本分散ストレージシステム１においてオブジェクトの書き込み（蓄積）とインデックスの作成とが実行され、本分散ストレージシステム１内において、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。
また、図７も実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図であり、図５に示すシーケンス図の一部を抽出して示すとともにサーバＡがシステムダウンとなった状態を追記したものである。この図７中における既述の説明と同様の処理は図５を参照して説明したものと同様であり、その説明を省略する。
【００８３】
この図７に示す例においては、サーバＡが、他のサーバ（第２オブジェクト処理サーバ）Ｃにオブジェクトの書き込み指示を行なった後であり、且つ、第１インデックス処理サーバ１０ｂに対してインデックス作成指示を行なう前にシステムダウンとなっている。
このようなタイミングでサーバＡがシステムダウンの状態となると、サーバＡからサーバＢへのインデックスの作成指示は送信されない。しかし、サーバＣ及びサーバＥのそれぞれからサーバＢにインデックスの作成指示が送信される。
【００８４】
これにより、本分散ストレージシステム１においてオブジェクトの書き込み（蓄積）とインデックスの作成とが実行され、本分散ストレージシステム１内において、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。
図８も実施形態の一例としての分散ストレージシステムにおけるオブジェクトの書き込み処理のシーケンス図であり、サーバＡがシステムダウンとなった状態を追記したものである。
【００８５】
この図８に示す例においては、プロキシサーバ４０からオブジェクトの書き込み指示を行なわれた後に、サーバＡが、オブジェクトの書き込み指示もインデックスの作成指示も送信する前にシステムダウンの状態となっている。
このようなタイミングでサーバＡがシステムダウンの状態となった場合には、本分散ストレージシステム１においてオブジェクトの書き込み（蓄積）とインデックスの作成とのいずれもが実行されない。これにより、本分散ストレージシステム１内において、「オブジェクトは蓄積されず、インデックスも作成されない」という状態になり、オブジェクトの蓄積状態とインデックスとの整合性が保たれる。
【００８６】
（Ｄ）その他
サーバ１０において、上述したオブジェクト書き込み実行部２１，識別情報生成部２２，第２オブジェクト書き込み指示部２３，第１インデックス作成指示部２４，第１インデックス作成実行部２５，第２インデックス作成指示部２６及び第２インデックス作成実行部２７としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。
【００８７】
同様に、プロキシサーバ４０において、上述した第１オブジェクト書き込み指示部４１としての機能を実現するためのプログラムも、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。
【００８８】
そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
サーバ１０において、オブジェクト書き込み実行部２１，識別情報生成部２２，第２オブジェクト書き込み指示部２３，第１インデックス作成指示部２４，第１インデックス作成実行部２５，第２インデックス作成指示部２６及び第２インデックス作成実行部２７としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００８９】
同様に、プロキシサーバ４０において、第１オブジェクト書き込み指示部４１としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１７）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１６）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００９０】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、分散ストレージシステム１に６つのサーバ１０を備える例を示すが、これに限定されるものではなく、５つ以下もしくは７つ以上のサーバ１０を備えてもよい。
【００９１】
また、上述した実施形態においては、サーバＡ，サーバＣ及びサーバＥがオブジェクト処理サーバ１０として機能し、サーバＢ，サーバＤ及びサーバＦがインデックス処理サーバ１０として機能する例を示しているが、これに限定されるものではなく、適宜変更して実施することができる。
さらに、サーバ１０においては、必ずしもオブジェクト処理サーバ１０とインデックス処理サーバ１０とを分離させる必要はなく、オブジェクト処理サーバ１０として機能するとともにインデックス処理サーバ１０として機能してもよい。
【００９２】
また、上述した実施形態においては、サーバＡが第１オブジェクト処理サーバ１０であり、サーバＢが第１インデックス処理サーバ１０である例を示しているが、これに限定されるものではなく、適宜変更して実施することができる。
さらに、上述した実施形態においては、クライアント６０がネットワーク５１を介してプロキシサーバ４０と接続され、また、各サーバ１０とプロキシサーバ４０とがＬＡＮ５０を介して接続されている例を示しているが、これに限定されるものではない。
【００９３】
例えば、クライアント６０とプロキシサーバ４０とが同一筐体内に備えられてもよく、また、クライアント６０と少なくともいずれかのサーバ１０とが同一筐体内に備えられてもよい。更に、プロキシサーバ４０と少なくともいずれかのサーバ１０とが同一筐体内に備えられてもよい。クライアント６０とプロキシサーバ４０とサーバ１０とはＬＡＮ５０やネットワーク５１以外の通信路を介して接続されてもよい。
【００９４】
また、クライアント６０がプロキシサーバ４０としての機能を備えてもよく、また、いずれかのサーバ１０がプロキシサーバ４０としての機能を備えてもよい。すなわち、クライアント６０もしくはいずれかのサーバ１０が第１オブジェクト書き込み指示部４１としての機能を備えてもよい。さらに、クライアント６０がいずれかのサーバ１０としての機能を備えてもよい。
【００９５】
さらに、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
（Ｅ）付記
（付記１）
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置であって、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信するインデックス作成依頼受信部と、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する決定部と
を備えることを特徴とする、情報処理装置。
【００９６】
（付記２）
インデックス作成済みの前記インデックス作成依頼に関する前記識別情報を記憶する識別情報記憶部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されている場合には、前記インデックスの作成を行なわないことを決定することを特徴とする、付記１記載の情報処理装置。
【００９７】
（付記３）
前記データのインデックスを作成するインデックス作成部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されていない場合には、前記インデックスの作成を行なうことを決定し、前記インデックス作成部に前記インデックスを作成させることを特徴とする、付記２記載の情報処理装置。
【００９８】
（付記４）
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置であって、
データの記憶指示を受信する記憶指示受信部と、
前記データを記憶装置に記憶する記憶実行部と、
受信した前記記憶指示に関する識別情報を生成する識別情報生成部と、
前記データのインデックスの作成を依頼するインデックス作成依頼を、前記識別情報を付加して送信する送信部と、
を備えることを特徴とする、情報処理装置。
【００９９】
（付記５）
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムであって、
データの記憶指示を受信する記憶指示受信部と、前記データを記憶装置に記憶する記憶実行部と、受信した前記記憶指示に関する識別情報を生成する識別情報生成部と、前記データのインデックスの作成を依頼するインデックス作成依頼を、前記識別情報を付加して送信する送信部と、を備える第１の情報処理装置と、
前記インデックス作成依頼に付加された前記識別情報に応じて、前記データのインデックスを作成するか否かを決定する決定部と、を備える第２の情報処理装置と
を備えることを特徴とする、ストレージシステム。
【０１００】
（付記６）
前記第２の情報処理装置が、
インデックス作成済みの前記インデックス作成依頼に関する前記識別情報を記憶する識別情報記憶部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されている場合には、前記インデックスの作成を行なわないことを決定することを特徴とする、付記５記載のストレージシステム。
【０１０１】
（付記７）
前記第２の情報処理装置が、
前記データのインデックスを作成するインデックス作成部を備え、
前記決定部が、前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されていない場合には、前記インデックスの作成を行なうことを決定し、前記インデックス作成部に前記インデックスを作成させることを特徴とする、付記６記載のストレージシステム。
【０１０２】
（付記８）
前記第１の情報処理装置において生成された前記識別情報が付加されたデータの記憶指示を受信する第２の記憶指示受信部と、前記データを記憶装置に記憶する第２の記憶実行部と、前記第２の情報処理装置に対して、受信した前記識別情報を付加したインデックス作成依頼を送信する第２の送信部とを備える第３の情報処理装置を備えることを特徴とする、付記５〜付記７のいずれか１項に記載のストレージシステム。
【０１０３】
（付記９）
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続される情報処理装置において、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信し、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する
ことを特徴とする、インデックス作成制御方法。
【０１０４】
（付記１０）
インデックス作成済みの前記インデックス作成依頼に関する前記識別情報を識別情報記憶部に記憶し、
前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されている場合には、前記インデックスの作成を行なわないことを決定する
ことを特徴とする、付記９記載のインデックス作成制御方法。
【０１０５】
（付記１１）
前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されていない場合には、前記インデックスの作成を行なうことを決定し、
前記データのインデックスを作成することを特徴とする、付記１０記載のインデックス作成制御方法。
【０１０６】
（付記１２）
ネットワークを介して記憶装置を備える複数の情報処理装置を接続して構成されるストレージシステムに接続されるコンピュータに、
１以上の前記情報処理装置から記憶したデータに対するインデックス作成依頼を受信し、
前記インデックス作成依頼に付加された識別情報に応じて、前記データのインデックスを作成するか否かを決定する
処理を実行させることを特徴とする、インデックス作成制御プログラム。
【０１０７】
（付記１３）
インデックス作成済みの前記インデックス作成依頼に関する前記識別情報を識別情報記憶部に記憶し、
前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されている場合には、前記インデックスの作成を行なわないことを決定する
処理を前記コンピュータに実行させることを特徴とする、付記１２記載のインデックス作成制御プログラム。
【０１０８】
（付記１４）
前記インデックス作成依頼に付加された識別情報が前記識別情報記憶部に記憶されていない場合には、前記インデックスの作成を行なうことを決定し、
前記データのインデックスを作成する
処理を前記コンピュータに実行させることを特徴とする、付記１３記載のインデックス作成制御プログラム。
【符号の説明】
【０１０９】
１    分散ストレージシステム（ストレージシステム）
１１，１６    ＣＰＵ
１２，１７    メモリ
１３，１８    記憶装置
２１    オブジェクト書き込み実行部（記憶指示受信部，記憶実行部）
２２    識別情報生成部
２３    第２オブジェクト書き込み指示部
２４    第１インデックス作成指示部（送信部）
２５    第１インデックス作成実行部（インデックス作成依頼受信部，決定部，インデックス作成部）
２６    第２インデックス作成指示部
２７    第２インデックス作成実行部
２８    識別情報保持部（識別情報記憶部）
１０，１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ｅ，１０ｆ    サーバ（情報処理装置）
４０    プロキシサーバ
４１    第１オブジェクト書き込み指示部４１
５０    ＬＡＮ（ネットワーク）
５１    ネットワーク
６０    クライアント
【図１】
2015141446.tif 000003
【図２】
2015141446.tif 000004
【図３】
2015141446.tif 000005
【図４】
2015141446.tif 000006
【図５】
2015141446.tif 000007
【図６】
2015141446.tif 000008
【図７】
2015141446.tif 000009
【図８】
2015141446.tif 000010
【図９】
2015141446.tif 000011
【図１０】
2015141446.tif 000012
【図１１】
2015141446.tif 000013
【図１２】
2015141446.tif 000014
【図１３】
2015141446.tif 000015