(57)【要約】  オブジェクト（ＯＪＴ）を配置可能な配置先の編成に変更が生じた場合に、既に配置されているＯＪＴの移動（コピーを含む）が必要か否かを迅速に判定するＯＪＴ移動判定装置１０は、配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給機能１１と、配置先に対応する数と、配置済みＯＪＴの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最小または最大の数を追加番号ＡＮとして決定し、決定した追加番号と、前記配置済みＯＪＴの固有情報とを関連付けた処置種別判定情報１２Ａとして記憶装置１２に記憶する配置先判定機能１３と、新たな配置先が追加される際に、配置済みＯＪＴの配置先が変更になるか否かを、該新たな配置先に関して配置先番号供給機能１１によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定機能１６とを有する。
2014041781.tif 000002
【特許請求の範囲】
【請求項１】
配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給手段と、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定手段と、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給手段によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定手段と、を備えることを特徴とするオブジェクト移動判定装置。
【請求項２】
前記配置先判定手段は、前記追加番号を、自然数またはゼロを含む正の整数に限定することを特徴とする請求項１記載のオブジェクト移動判定装置。
【請求項３】
前記配置先判定手段は、
実数を生成し、生成した実数が、前記配置先に対応する数値範囲に含まれる場合に、その数値範囲を代表する代表番号を選択し、
前記追加番号として、前記何れの配置先にも付与されていない前記代表番号の中で、最も小さい番号を選択することを特徴とする請求項１記載のオブジェクト移動判定装置。
【請求項４】
前記配置先判定手段は、前記配置先に対応する数値範囲を、少なくとも２次元空間に展開し、展開後の空間が有する次元に応じて生成した実数に基づいて、前記代表番号を選択することを特徴とする請求項３記載のオブジェクト移動判定装置。
【請求項５】
前記配置先判定手段は、前記配置先に対応する数に基づいて、注目するオブジェクトの固有情報に基づいて算出される数列情報を参照した結果に基づいて削除番号として決定し、決定した削除番号を、前記追加番号と、配置済みオブジェクトの固有情報と共に関連付けて前記記憶装置に記憶し、
前記移動要否判定手段は、前記配置先の何れかが削除される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該削除される配置先に関して前記配置先番号供給手段によって決定された数が、前記削除番号と一致するか否かを判断することによって判定することを特徴とする請求項１乃至請求項４の何れかに記載のオブジェクト移動判定装置。
【請求項６】
前記配置先判定手段は、
前記数列情報としての第１の数列情報から求める値を得られない場合に、その第１の数列情報より値域が大きな第２の数列情報を前記数列情報として更に参照し、これらの数列情報の間において、前記第１の乱数列と前記第２の乱数列との間で一致する範囲含まれる数は、それら２つの乱数列において、同じ数及び数列情報における順番を維持することを特徴とする請求項５記載のオブジェクト移動判定装置。
【請求項７】
前記配置先判定手段は、前記オブジェクトが多重化されている場合に、その多重化されたオブジェクトに合わせた複数の前記削除番号を選択することを特徴とする請求項５記載のオブジェクト移動判定装置。
【請求項８】
請求項１乃至請求項７の何れかに記載のオブジェクト移動判定装置と、
注目するオブジェクトを配置すべき配置先を、前記配置先判定手段とは異なるアルゴリズムに基づいて決定する配置先決定手段とを備えることを特徴とするオブジェクト配置装置。
【請求項９】
前記配置先判定手段は、前記配置先に対応する数を参照するに際して、前記配置先に対応する数と、その配置先の固有情報とが関連付けられた対応情報を参照することを特徴とする請求項８記載のオブジェクト配置装置。
【請求項１０】
前記配置先決定手段は、
前記オブジェクトに固有な情報に基づいて生成された数列情報と、そのオブジェクトの配置先を識別する識別子とその識別子に関連付けされた第２の数とが含まれる前記対応情報とを参照することにより、該数列情報を用いて第１の数を生成し、この第１の数は、互いに異なる数列情報で生成された場合には相互関係を略有しておらず、
前記第１の数と、前記対応情報に含まれる前記第２の数とが一致するまで、新たな第１の数の生成を繰り返すと共に、
係る繰り返しの過程において、前記第１の数と、前記第２の数の何れかとが一致したときに、一致した前記第２の数に関連する配置先識別子に対応する配置先へ、前記オブジェクトを配置するよう決定することを特徴とする請求項９記載のオブジェクト配置装置。
【請求項１１】
請求項８乃至請求項１０の何れかに記載のオブジェクト配置装置と、
複数の前記配置先とを備えることを特徴とするストレージシステム。
【請求項１２】
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号として決定し、
決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に予め記憶し、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先の固有情報に基づいて決定したところの、前記新たな配置先に付与した数が、前記記憶装置に記憶した追加番号と一致するか否かを判断することによって判定することを特徴とするオブジェクト移動判定方法。
【請求項１３】
配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給機能と、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定機能と、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給機能によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定機能とを、コンピュータによって実現することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の性質を有する分散アルゴリズムに基づいて配置先が指定されるオブジェクトについて、配置先（配置先群）の編成変更に伴い移動の要否を判定する技術分野に関する。
【背景技術】
【０００２】
複数の配置先（例えばストレージノード等）から１つの特定の配置先を選択すると共に、その特定の配置先に所望のオブジェクトを配置する際、係る特定の配置先を判定（指定）する方法としては、アルゴリズムを用いる方法が考えられる。ここで、“オブジェクト”とは、数字、文字、文字列などの情報、及び物品などである（以下、この定義は、本願において同様とする）。【０００３】
係る方法では、各オブジェクトの配置先を記憶することなく、情報処理装置（コンピュータ）におけるアルゴリズムを実行することにより、当該所望のオブジェクトを配置すべき特定の配置先を判定できる。このため、係る情報処理装置は、配置先の判定に際して多数のオブジェクトを取り扱う必要がある場合であっても、係るアルゴリズムを利用することにより、多数の配置先を記憶する必要がない。このため、係る情報処理装置によれば、使用する記憶装置の記憶容量の削減を図ることができる。また、このようなアルゴリズムを用いる方法は、オブジェクトの配置先を判定する装置自体を容易に増やすことができるなどの優れた特徴を有する。【０００４】
但し、係るアルゴリズムを用いた配置先判定方法では、配置先が増減する度に、全てのオブジェクトの配置先を再度判定する必要がある。このため、係るアルゴリズムを用いた配置先判定方法では、既に配置先が決定されているオブジェクトが多数存在する場合、計算量が非常に多くなるという問題がなる。【０００５】
そこで、係る計算量を削減することができるアルゴリズムとして、非特許文献１に記載された技術がある。以下、係る非特許文献１に記載された技術を視覚的に判り易く要約して説明する。【０００６】
図１７は、非特許文献1に記載された技術を説明する図である。この非特許文献1に記載された技術では、まず、最小値と最大値がつながっている数直線（円環）１０００を用意する。そして、非特許文献1では、配置先を表すメタデータ（当該配置先の識別子等である固有値）に対してハッシュ演算を行い、その演算結果を表すノード（図１７に示す黒丸１００１）を数直線１０００上に置く。【０００７】
そして、当該技術では、オブジェクトのメタデータ（当該オブジェクトの識別子等である固有値）に対しても、同様に、ハッシュ演算を行い、その演算結果を表すノード（図１７に示す白丸１００２）を数直線１０００上に置く。その際、オブジェクトの配置先は、オブジェクトが数直線１０００上に置かれた位置から、この数直線上の数値が大きくなる方向を順次処理対象とする際に、はじめに検出する配置先となる（但し、直線１０００は図１７に示す如く円環のため、最小値と最大値はつながっている）。以下の説明では、オブジェクトが数直線１０００上に置かれた位置から、この数直線上の数値が大きくなる方向を順次処理対象とする際に、同じ位置にある配置先を始めに検出するオブジェクトを、「配置先を表す位置に紐付け（関連付け）されたオブジェクト」と呼ぶ。【０００８】
はじめに、上記のような環境において、配置先を新たに追加した場合を考える。この場合、非特許文献1に係る技術では、当該追加した配置先を表すメタデータに対してハッシュ演算を行い、その演算結果に基づいて、当該追加した配置先を数直線１０００上に置く。その際、オブジェクトの一部の配置先が変更されることになる。但し、配置先が変更されるオブジェクトは、追加された配置先に紐付けされたオブジェクトのみである。【０００９】
そして、当該新たな配置先を追加した場合において、配置先が変更されるオブジェクトは、係る追加された配置先の数直線１０００上における位置と、該位置から数直線１０００上の数値が小さくなる方向を順次処理対象とする際に、はじめに検出される配置先を表す位置との間に存在するオブジェクトである。但し、このように配置先が変更されるオブジェクトを判定するためには、配置先に配置されたオブジェクトのメタデータを、例えば、何らかの手法によってソートした結果として記憶している必要がある。【００１０】
つまり、非特許文献1に記載された技術によれば、当該追加した配置先を表す位置に紐付けされたオブジェクトは、再計算することなく容易に判定することができる。このため、該技術では、配置先を追加した際に、既存の配置先に紐付けされているオブジェクト（即ち、配置済みのオブジェクト）の中から、移動（コピーを含む）が必要なオブジェクトを判定するための計算量を削減することができる。【００１１】
次に、複数の配置先の中から、特定の配置先を削減した場合を考える。この場合、削減した配置先（特定の配置先）に紐付けされていたオブジェクトは、当該削減した配置先を表すメタデータに対するハッシュの演算結果を表す数直線１０００上の位置から、数値が大きくなる方向に注目した際にはじめに検出される配置先に移動する。その際、移動が必要なオブジェクトのうち、同じ配置先に対応する位置に紐付けされていたオブジェクトは、同じ配置先に移動する。【００１２】
即ち、非特許文献1に記載された技術によれば、配置先を削減した場合においても、上述した配置先を新たに追加した場合と同様に、同じ配置先を表す位置に紐付けされていたオブジェクトは容易に判定できる。このため、該技術では、配置先を削除した際に、配置先が変更になるオブジェクトの判定に必要な計算量を削減することができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】ＷＯ／２０１２／０２３３８４公報
【非特許文献】
【００１４】
【非特許文献１】“Ｃｏｎｓｉｓｔｅｎｔ  ｈａｓｈｉｎｇ  ａｎｄ  ｒａｎｄｏｍ  ｔｒｅｅｓ：  ｄｉｓｔｒｉｂｕｔｅｄ  ｃａｃｈｉｎｇ  ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  ｒｅｌｉｅｖｉｎｇ  ｈｏｔ  ｓｐｏｔｓ  ｏｎ  ｔｈｅ  Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ”，  Ｄａｖｉｄ  Ｋａｒｇｅｒ，  Ｅｒｉｃ  Ｌｅｈｍａｎ，  Ｔｏｍ  Ｌｅｉｇｈｔｏｎ，  Ｍａｔｔｈｅｗ  Ｌｅｖｉｎｅ，  Ｄａｎｉｅｌ  Ｌｅｗｉｎ，  Ｒｉｎａ  Ｐａｎｉｇｒａｈｙ，  １９９７：  ＳＴＯＣ  ’９７  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｔｗｅｎｔｙ−ｎｉｎｔｈ  ａｎｎｕａｌ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｔｈｅｏｒｙ  ｏｆ  ｃｏｍｐｕｔｉｎｇ  Ｐａｇｅｓ  ６５４−６６３
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ところで、オブジェクトを配置する際、配置先の指定方法としてアルゴリズムを用いて配置先を指定する方法は他にも存在する。例えば、本出願人による特許文献１が挙げられる。但し、この特許文献１に記載された技術では、提案されているアルゴリズムが非特許文献１とは異なり、数直線上の位置として説明可能な配置先とオブジェクトとの関係を用いないので、上述した非特許文献1に記載された計算量の削減方式を採用することはできない。【００１６】
ここで、非特許文献１に係る方法を、特許文献１に開示された技術に採用できない理由について、係る特許文献１をダイジェストしながら説明する。【００１７】
図１７は、特許文献１（ＷＯ／２０１２／０２３３８４公報）に開示された技術を概説する機能ブロック図である。【００１８】
配置先決定装置（オブジェクト配置先決定装置）１００は、配置先番号供給機能１０１と、配置先記憶機能１０２と、オブジェクト配置先決定機能１０３とを有する。【００１９】
配置先番号供給機能１０１は、オブジェクトを配置可能な配置先が新たに追加された際に、その配置先に付与する“番号（number）”（但し番号を数（value）とも称する。以下同様）を管理する。即ち、配置先決定装置１００において、個々の配置先は、番号によって管理される。但し、配置先決定装置１００において、配置先に付与する番号の実体に関して何ら制限はない。例えば、配置先番号供給機能１０１は、配置先に付与する番号として、注目する配置先のメタデータ（例えば、配置先を特定可能な識別子）に基づく数列情報を出力する。この数列情報には、乱数発生器（不図示）が発生する乱数（疑似乱数）を採用することができる。【００２０】
配置先記憶機能１０２は、個々の配置先を特定可能な識別子（ＩＤ）等の情報と、それらの配置先に付与された上記番号とが関連付けされた対応情報（数（番号）−配置先対応表）を記憶する。【００２１】
そして、オブジェクト配置先決定機能１０３は、オブジェクトのメタデータ（例えば、オブジェクトを特定可能な識別子）等の固有情報と、配置先記憶機能１０２から入手する対応情報とに基づいて、当該オブジェクトの配置先を決定する。【００２２】
上記のような処理機能を備える配置先決定装置１００は、自装置が対応すべき配置先が追加もしくは削除された場合、配置済みのオブジェクトの移動の要否に関わらず（即ち、配置先の変更が発生するか否かに関わらず）、配置済みの全てのオブジェクトに関して、オブジェクト配置先決定機能１０３によって配置先の再決定を行う必要がある。このため、配置先決定装置１００においては、自装置が扱うべきオブジェクトの件数が多いほど、係る再判定に必要な計算量（処理量）が大きくなる。即ち、配置先の編成が変更（追加もしくは削除）された際に、配置先決定装置１００が個々のオブジェクトの配置先を判定する処理の所用時間は、自装置が扱うべきオブジェクトの件数の増加に応じて長くなる。【００２３】
即ち、特許文献１に開示された技術は、上述したように、オブジェクトに固有な情報に基づいて生成された数列情報を用いて生成する番号（数）を用いることにより、配置先の編成に際して、例えば非特許文献１に提案されているアルゴリズムと比較して演算負荷が軽いので、計算量を削減することができる。しかしながら、特許文献１に開示されたアルゴリズムをもってしても、配置済みのオブジェクトの件数が増加するほど計算量が大きくなるので、その計算量は問題となる。係る計算量とは、係る配置済みの全てのオブジェクトに関して、配置先が追加または削除される度に数列情報（乱数列）を計算し直し、その数列情報を用いて配置先を再決定する（係る乱数列を記憶装置に予め記憶しておき、その乱数列を必要な場合に参照する装置構成も含む）までに必要とされる計算量である。【００２４】
そこで、本発明は、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動（コピーを含む）が必要か否かを迅速に判定するオブジェクト移動判定装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【００２５】
上記の目的を達成すべく、本発明に係るオブジェクト移動判定装置は、以下の構成を備えることを特徴とする。【００２６】
即ち、係るオブジェクト移動判定装置は、
配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給手段と、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定手段と、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給手段によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定手段と、を備えることを特徴とする。【００２７】
更に、上記同目的は、上記構成を有するオブジェクト移動判定装置と、
注目するオブジェクトを配置すべき配置先を、前記配置先判定手段とは異なるアルゴリズムに基づいて決定する配置先決定手段とを備えるオブジェクト配置装置によっても実現される。【００２８】
更に、上記同目的は、上記構成を有するオブジェクト配置装置と、
複数の前記配置先とを備えるストレージシステムによっても実現される。【００２９】
また、上記の目的を達成すべく、本発明に係るオブジェクト移動判定方法は、以下の構成を備えることを特徴とする。【００３０】
即ち、係るオブジェクト移動判定方法は、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号として決定し、
決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に予め記憶し、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先の固有情報に基づいて決定したところの、前記新たな配置先に付与した数が、前記記憶装置に記憶した追加番号と一致するか否かを判断することによって判定することを特徴とする。【００３１】
尚、同目的は、上記構成を有するオブジェクト移動判定装置または対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても達成される。
【発明の効果】
【００３２】
本発明によれば、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動（コピーを含む）が必要か否かを迅速に判定（即ち、少ない計算量で判定）することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施形態に係る配置先判定装置の構成を示すブロック図である。
【図２】本発明の各実施形態に係る配置先決定装置を実現可能な情報処理装置２００のハードウエア構成（ハードウェア資源）の一例を示す図である。
【図３】本発明の第１の実施形態に係る実施例におけるオブジェクト配置装置３００のハードウエア構成を概念的に説明する図である。
【図４】本発明の第１の実施形態に係る実施例におけるストレージノードと番号との対応表（数（番号）−ストレージノード対応表）を例示する図である。
【図５】オブジェクトの２重冗長化して配置する場合を説明する図である。
【図６】本発明の第２の実施形態に係る、実数に拡張した処置種別判定表を例示する図である。
【図７】本発明の第２の実施形態に係る配置先の代表番号と対応領域との関係を説明する図である。
【図８】本発明の第２の実施形態の変形例に係る複数次元空間に拡張した、実数を扱う処置種別判定表を例示する図である。
【図９】本発明の第１の実施形態における配置先決定処理を示すフローチャートである。
【図１０】本発明の第１の実施形態における追加番号ＡＮの決定処理を示すフローチャートである。
【図１１】本発明の第１の実施形態における削除番号ＤＮの決定処理（パターン１）を示すフローチャートである。
【図１２】本発明の第１の実施形態における削除番号ＤＮの決定処理（パターン２）を示すフローチャートである。
【図１３】本発明の第１の実施形態における、配置先が追加された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
【図１４】本発明の第１の実施形態における、配置先が削除された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
【図１５Ａ】オブジェクトの２重冗長化して配置する場合を説明する図である。
【図１５Ｂ】オブジェクトの２重冗長化して配置する場合を説明する図である。
【図１６】本発明の第３の実施形態に係る配置先判定装置の構成を示すブロック図である。
【図１７】非特許文献1に記載された技術を説明する図である。
【図１８】特許文献１（ＷＯ／２０１２／０２３３８４公報）に開示された技術を概説する機能ブロック図である。
【発明を実施するための形態】
【００３４】
次に、本発明を模範的に実施する形態及びその実施例について、図面を参照して詳細に説明する。
【００３５】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る配置先判定装置の構成を示すブロック図である。
【００３６】
図１に示す配置先判定装置１０は、複数の配置先１８（配置先Ａ乃至Ｎ）を対象として、配置済みのオブジェクトを、何れの配置先に配置すべきか判定することができる（同一内容のオブジェクトを２つ以上の配置先１８に配置する場合を含む）。また、配置先判定装置１０は、係る複数の配置先１８の編成に変更（追加もしくは削除）が生じた場合に、これらの配置先１８に既に配置されているオブジェクトの移動（コピーを含む。以下同様）の要否を判定することができる。
【００３７】
尚、本願において、係る複数の配置先１８の編成に追加もしくは削除なる変更が発生する状況とは、配置先の一種であるストレージノードの場合を例にすれば、ストレージノードが、物理的に、増設（増設）、交換（削除及び追加）、或いは削減（削除）される場合が想定されるが、これの場合には限定されない。例えば、ホットスタンバイ中のストレージノードが活性化される場合や、仮想ストレージノードが物理ストレージノードの内部において論理的に追加あるいは削除される場合も、係る編成の変更に含まれる。
【００３８】
そして、配置先判定装置１０は、これらの動作（機能）を実現すべく、少なくとも、数（番号）供給機能１１と、配置済みオブジェクトの配置先判定機能１３と、配置済みオブジェクトの移動要否判定機能１６とを有する。更に、配置先判定装置１０は、図１に破線で示す配置先決定機能１４を有してもよい。この場合、配置先判定装置１０は、複数の配置先１８の編成に変更が発生する場合に、配置済みオブジェクトの移動の要否が事前に判定された結果（後述する処置種別判定表１２Ａ）を参照する。これにより、配置先判定装置１０は、最小限の計算によって配置済みオブジェクトの配置先を決定することができる。
【００３９】
以下の説明では、説明の便宜上から、配置先判定装置１０が配置先決定機能１４をも有すると仮定して説明することとする。
【００４０】
ここで、「配置済みのオブジェクト」とは、既存の配置先に紐付けされている（関連付けされている）オブジェクトである（以下、この定義は、本願において同様であるとする）。
【００４１】
配置先判定装置１０は、外部に設けられた記憶装置１２を読み書き可能である。尚、配置先判定装置１０は、記憶装置１２を自装置に有していてもよい。
【００４２】
以下、配置先判定装置１０が有するこれらの機能について個別に説明する。
【００４３】
数（番号）供給機能１１は、配置先を特定可能な識別子等のメタデータ（固有情報）に基づいて、その配置先に付与する数（番号）を決定する。即ち、本実施形態においても、個々の配置先１８は、上述した特許文献１と同様に、番号によって管理されている。そして、記憶装置１２は、個々の配置先１８を特定可能な固有情報（メタデータ）と、それらの配置先に付与された番号とが関連付けされた対応情報として、数（番号）−配置先対応表１２Ｂを記憶することができる。係る数−配置先対応表１２Ｂは、後述する本実施形態の実施例における、図４に例示する数−ストレージノード対応表に相当する。
【００４４】
尚、配置先１８を表す固有情報としては、例えば、その配置先の識別子（ＩＤ）や装置番号、通信ネットワーク上における当該配置先のアドレス等を用いることができる。
【００４５】
配置先決定機能１４は、オブジェクトのメタデータ（例えば、オブジェクトを特定可能な識別子）等の固有情報と、数−配置先対応表１２Ｂとに基づいて、個々の配置先１８に付与された番号の中から、１つもしくは複数の番号を選択する。これにより、配置先決定機能１４は、当該オブジェクトの配置先を決定する。即ち、当該番号を選択するに際して、配置先決定機能１４は、オブジェクトの固有情報と、数−配置先対応表１２Ｂに登録されている配置先およびその配置先に付与された番号の組み合わせが同じであれば、同じ番号を選択する。オブジェクトは、配置先決定機能１４が選択した番号が付与された配置先に配置される。このように配置先を決定する際に採用するアルゴリズムとしては、例えば、特許文献１に開示されたアルゴリズムを採用可能である。
【００４６】
即ち、係るアルゴリズムは、まず、オブジェクトに固有な情報に基づいて生成された数列情報（疑似乱数列等）と、そのオブジェクトの配置先を識別する識別子とその識別子に関連付けされた第２の数との対応情報（数−配置先対応表１２Ｂ）とを参照することにより、当該数列情報を用いて第１の数を生成する。係る第１の数は、互いに異なる数列情報で生成された場合には相互関係を略有さない。そして、係るアルゴリズムは、当該第１の数と、当該対応情報に含まれる上記の第２の数とが一致するまで、新たな第１の数の生成を繰り返す。この繰り返しの過程において、係るアルゴリズムは、当該第１の数と、当該第２の数の何れかとが一致したときに、一致した当該第２の数に関連する配置先識別子に対応する配置先へ、当該オブジェクトを配置するよう決定する。
【００４７】
配置済みオブジェクトの配置先判定機能１３は、配置先１８の編成が変更された際（即ち、配置先が追加もしくは削除された際）に、特定アルゴリズム１３Ａ（詳細は後述する）に基づいて、係る編成の変更によって影響を受ける配置先に付与すべき数（番号）を求める。即ち、係る配置先判定機能１３は、既に配置されているオブジェクトに移動が生じる特定の配置先（１８）を、オブジェクトを表すメタデータなどの情報に基づいて、その特定の配置先に付与されている番号によって判定する。そして、この配置先判定機能１３は、判定結果を、処置種別判定表１２Ａ等に提供する。
【００４８】
尚、配置済みオブジェクトの配置先判定機能１３が実現する動作については、新たな配置先１８が追加される場合と、複数の配置先１８の中から特定の配置先が削除される場合とに分けて改めて後述する。
【００４９】
記憶装置１２は、処置種別判定表１２Ａも記憶することができる。この処置種別判定表１２Ａは、配置済みオブジェクトの配置先判定機能１３による判定によって得られた番号を、オブジェクト毎に記憶する。係る処置種別判定表１２Ａに記憶される番号は、配置済みオブジェクトの配置先判定機能１３による判定結果によって判明した番号（数）であって、当該複数の配置先１８の編成に変更が生じた際に、既に配置されているオブジェクトの移動が必要になる特定の配置先（１８）を判定可能な番号である。
【００５０】
係る処置種別判定表１２Ａは、後述する説明において参照する図５、図６及び図８に例示された配置種別判定表に相当する。より具体的には、新たな配置先１８が追加された場合において、配置済みオブジェクトの移動が必要となる特定の配置先（１８）に付与されている番号は、図６及び図８に例示された配置種別判定表における追加番号ＡＮに相当する。一方、ある配置先１８が削除された場合において、配置済みオブジェクトの移動が必要となる特定の配置先（この場合、当該削除された配置先）に付与されている番号は、図６及び図８に例示する配置種別判定表における削除番号ＤＮに相当する。処置種別判定表１２Ａは、このような編成の変更が生じた場合に影響を受ける特定の配置先を判定可能な番号（追加番号ＡＮ及び削除番号ＤＮ）を、オブジェクト毎に記憶する。
【００５１】
そして、配置済みオブジェクトの移動要否判定機能１６は、配置先１８を表すメタデータが入力されるのに応じて数（番号）供給機能１１から出力される出力情報に基づいて、処置種別判定表１２Ａを参照することにより、当該複数の配置先１８に既に配置されているオブジェクトに移動が発生するか否かを判定する。そして、この移動要否判定機能１６は、判定した結果を、配置先決定機能１４に提供する。
【００５２】
前述した通り、数（番号）供給機能１１は、配置先１８が追加された際にその配置先に付与する番号を供給する。その際、配置先１８に付与する番号は、特定アルゴリズム１３Ａに基づいて決定する。本実施形態において、同一の配置先１８と、その配置先に付与した番号群とが存在する際には、新たに追加した配置先１８に付与する番号は必ず一意である。この規則性は、例えば、特定アルゴリズム１３Ａによって、配置先１８に付与する番号を自然数（ゼロを含む正の整数であってもよい）に限定すると共に、新たに追加した配置先１８に付与する番号は、何れの配置先にも現在付与されていない当該自然数の中で、最も小さい番号を選択することによって実現できる。
【００５３】
ここで、上記の如く概説した、配置済みオブジェクトの配置先判定機能１３の動作（機能）について、配置先１８が新たに追加される場合と、複数の配置先１８からなる編成（配置先群）から何れかの配置先が削除される場合とに分けて詳しく説明する。
【００５４】
配置先１８を新たに追加した際には、その追加した配置先とは異なる配置先１８に既に配置されているオブジェクトの配置先（配置場所）が変更される場合がある。また、オブジェクトが既に配置されている配置先１８を削除する際、そのオブジェクトを維持するためには、その配置されていたオブジェクトの配置先（配置場所）を変更する必要がある。更には、例えば可用性を担保する観点から、同一内容のオブジェクトのレプリカ（複製）を、複数の配置先に分散配置している場合がある。係るレプリカを取り扱う場合は、レプリカ（オブジェクト）が分散配置されている個々の配置先１８の中に削除対象の配置先が含まれると、少なくとも当該削除対象のオブジェクトに配置されていたオブジェクトの配置先（配置場所）を変更する必要である。
【００５５】
このような各種の場合を念頭に置いて、まず、配置先１８を追加した際にオブジェクトに移動が発生する場合について説明する。この場合、配置済みオブジェクトの配置先判定機能１３は、移動すべきオブジェクトの新たな配置先１８の番号（数）を、以下のように判定する。
【００５６】
まず、前提条件に関して説明する。
【００５７】
本実施形態では、配置先決定機能１４が実行する配置先決定アルゴリズムとして、追加した配置先１８に対して数（番号）供給機能１１を用いて番号を付与するときは、配置済みオブジェクトの配置先が変更にならない限り、配置先を追加もしくは削除した際に、当該オブジェクトの配置先に変更が生じる配置先は変化せず一意に決定できるアルゴリズムを使用することとする。係るアルゴリズムとしては、例えば、上記の如く概説した特許文献１に開示されたアルゴリズムを採用可能である。
【００５８】
また、オブジェクトの配置先を変更する場合、配置済みオブジェクトの配置先判定機能１３は、追加番号ＡＮもしくは削除番号ＤＮを再計算することとする。
【００５９】
ここで、追加番号ＡＮとは、その追加番号と同じ番号が付与されている配置先が追加された場合、既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される番号（数）である。係る追加番号ＡＮには、例えば、数値が１ずつ離散的に並ぶ自然数（但し０を含む）ｎ（ｎ＝０，１，２，・・・，ｎ）を採用することができる。
【００６０】
一方、削除番号ＤＮとは、その削除番号と同じ番号が付与されている配置先が削除された場合、既に配置済みオブジェクトのうち、削除が生じるオブジェクトに付与される番号（数）である。係る削除番号ＤＮには、例えば、数値が１ずつ離散的に並ぶ自然数（但し０を含む）ｎ（ｎ＝０，１，２，・・・，ｎ）を採用することができる。
【００６１】
これらの条件により、本実施形態に係る配置先決定装置１０において、配置先決定機能１４は、配置先１８の追加もしくは削除が行われた際に、配置済みオブジェクトの配置先判定機能１３による番号（追加番号ＡＮもしくは削除番号ＤＮ）の再計算が行われない限り、当該配置済みオブジェクトが移動すべき配置先の番号に変化を起こすこと無く、一意に決定できる。このため、本実施形態に係る配置先決定装置１０では、配置先決定機能１４による配置先の決定に先だって、配置済みオブジェクトの配置先判定機能１３によって追加番号ＡＮおよび削除番号ＤＮを予め計算し、計算結果を処置種別判定表１２Ａに登録する。そして、配置済みオブジェクトの移動要否判定機能１６は、処置種別判定表１２Ａを参照し、登録されている追加番号ＡＮおよび削除番号ＤＮと、追加または削除対象の配置先に付与されている番号とを比較するだけで、配置済みオブジェクトの移動の要否を判定することができる。
【００６２】
即ち、上述した前提条件では、配置先１８を追加もしくは削除した際に、配置済みオブジェクトが移動する、もしくはコピーされる特定の配置先以外の他の配置先を追加もしくは削除しても、追加もしくは削除した際に配置済みオブジェクトの配置先に変更が生じる配置先は変化しない配置先決定アルゴリズムを使用する。
【００６３】
つまり、追加した際に配置済みオブジェクトに移動が生じる配置先１８を追加する場合、もしくは削除した際に配置済みオブジェクトが移動するもしくはコピーされる配置先１８を削除する場合は、当該配置済みオブジェクトの移動（コピーを含む）後の配置先の番号を再計算する必要がある。このような場合、本実施形態では、上述した前提条件により、再計算が必要になるのは、追加番号ＡＮが番号として付与された配置先１８を追加した場合、もしくは削除番号ＤＮが番号として付与された配置先１８を削除した場合のみである。つまり、本実施形態によれば、再計算が必要か否かも容易に判定することができる。
【００６４】
追加番号ＡＮ及び削除番号ＤＮの計算方法は、採用する配置先決定アルゴリズムに依存し、様々な方法を採用可能であるが、具体例については後述する。
【００６５】
処置種別判定表１２Ａ（図５、図６及び図８）は、上述したように、配置済みオブジェクトの配置先判定機能１３の判定結果である追加番号ＡＮと削除番号ＤＮとを、オブジェクトのメタデータと共に記憶する。
【００６６】
本実施形態に係る配置先決定装置１０は、配置先１８が追加されたとき、処置種別判定表１２Ａを用いて、その追加した配置先の番号と一致する追加番号ＡＮを持つオブジェクトを判定し、該オブジェクトだけを、当該追加した配置先に移動すればよい。配置先決定装置１０において、配置済みオブジェクトの配置先判定機能１３は、当該追加した配置先の番号と一致する追加番号ＡＮが付与されたオブジェクトだけについて、追加番号ＡＮ及び削除番号ＤＮを再評価すればよい。
【００６７】
また、配置先決定装置１０は、配置先１８が削除されたとき、削除された配置先１８の番号と一致する削除番号ＤＮが付与されたオブジェクトを判定し、該オブジェクトだけについて、新たな配置先を、配置先決定機能１４によって決定し直せばよい。そして、配置先決定装置１０は、削除した配置先の番号と一致する削除番号ＤＮを持つオブジェクトだけについて、配置済みオブジェクトの配置先判定機能１３によって、追加番号ＡＮ及び削除番号ＤＮを再評価すればよい。
【００６８】
このような処理（機能）構成を有する本実施形態に係る配置先決定装置１０に対して、「背景技術」欄において説明した特許文献１に係る装置１００は、配置済みの全てのオブジェクトに関して、配置先が追加または削除される度に数列情報（乱数列）を計算し直し、その数列情報を用いて配置先を再決定する（係る乱数列を記憶装置に予め記憶しておき、その乱数列を必要な場合に参照する装置構成も含む）。
【００６９】
これに対して、本実施形態によれば、複数の配置先１８の編成に変更が生じても、配置済みオブジェクトの移動を必要としない配置先に関しては、特定アルゴリズム１３Ａを用いて予め求めた配置種別判定表１２Ａを参照するだけで判定することができるので、配置先決定機能１４による計算対象から除外することができる。従って、本実施形態によれば、特許文献１に係る装置１００と比較して顕著な計算量の削減効果を実現することができる。
【００７０】
尚、オブジェクトのメタデータ、追加番号ＡＮ、及び削除番号ＤＮを関連付けて記憶する処置種別判定表１２Ａは、図５、図６及び図８に例示する如くオブジェクト毎（オブジェクトのメタデータ単位）に構成する態様には限定されない。例えば、処置種別判定表１２Ａには、追加番号ＡＮ（或いは削除番号ＤＮ）を基準として、その他の情報を関連付ける構成を採用してもよい。この場合、番号（数）同士の比較を直接的に行うことができるので、配置済みオブジェクトの移動要否判定機能１６及びその結果を参照する配置先決定機能１４は、より高速な処理を実現できる。
【００７１】
即ち、配置先判定機能１３は、配置先の固有情報およびその配置先に対応する数が関連付けられた数−配置先対応表（対応情報）１２Ｂと、配置済みオブジェクトの固有情報に基づく数列情報とを参照する。次に、配置先判定機能１３は、係る数列情報がなす値域のうち、数−配置先対応表（対応情報）１２Ｂに含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数を、追加番号ＡＮとして決定（選択）する。そして、配置先判定機能１３は、決定した追加番号と、配置済みオブジェクトの固有情報とを関連付けて、記憶装置１２に処置種別判定情報１２Ａとして記憶する。
【００７２】
移動要否判定機能１６は、新たな配置先が追加される際に、既に配置済みのオブジェクトの配置先が今までとは異なる配置先に変更になるか否かを、当該新たな配置先に関して配置先番号供給機能１１によって決定された数が、処置種別判定情報１２Ａに記憶した追加番号ＡＮと一致するか否かを判断することによって判定する。
【００７３】
尚、上述した本実施形態では、注目する数列情報（疑似乱数列）の値域に含まれている数の中で最も小さな数を追加番号として決定する処理構成について説明した。しかしながら、上述した第１の実施形態を例に説明した本発明は、係る処理構成には限定されず、例えば、当該注目する数列情報がなす値域において最大値を定め、その値域に含まれている数の中で最も大きな数を、追加番号ＡＤとしても採用してもよい。そして、このように最も大きな数を追加番号ＡＤとして選択する処理構成の場合、配置先（ストレージノード）の追加が生じた際には、係る注目する数列情報がなす値域において、当該最大値から最小値の方に向かって配置先の番号（数）を決定すればよい。即ち、この場合は、何れの配置先にも現在付与されていない当該自然数の中から最も小さい番号を選択する場合と比較して処理の方向性が逆になる。このことは、以下に説明する第１の実施形態の実施例、第２の実施形態及びその変形例、並びに第３の実施形態においても同様である。
【００７４】
次に、上述した配置先決定装置１０（図１）を構成する各機能が実行する処理について、図９乃至図１４に示すフローチャートを参照して説明する。これらのフローチャートに示す処理手順は、配置先決定装置１０を、後述する情報処理装置２００（図２）によって実現する場合、その情報処理装置のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が実行するソフトウェア・プログラムの処理手順と捉えることができる。
【００７５】
図９は、本発明の第１の実施形態における配置先決定処理を示すフローチャートである。
【００７６】
配置先決定機能１４は、オブジェクトのメタデータを外部から入手した際（ステップＳ１１）、記憶装置１２によって格納されている配置先１８の番号群を入手する（ステップＳ１２）。
【００７７】
配置先決定機能１４は、ステップＳ１１及びステップＳ１２にて入手したオブジェクトのメタデータと、配置先１８の番号群とに基づいて、注目する当該オブジェクトの配置先の番号を決定する（ステップＳ１３）。本ステップＳにおける配置先の決定手順自体は、前述の如く概説した特許文献１に開示されたアルゴリズムと同様である。
【００７８】
配置先決定機能１４は、記憶装置１２に格納されている、配置先の番号と配置先の識別子と対応情報（数−配置先対応表１２Ｂ）を、ステップＳ１２にて入手した配置先の番号（群）に基づいて参照することにより、当該注目するオブジェクトの配置先の識別子（群）を決定する（ステップＳ１４）。
【００７９】
配置先決定機能１４は、決定した当該オブジェクトの配置先の識別子（群）を、配置先決定装置１０から出力する（ステップＳ１５）。
【００８０】
図１０は、本発明の第１の実施形態における追加番号ＡＮの決定処理を示すフローチャートである。この決定処理は、例えば、配置先決定機能１４による上記配置先決定処理に先だって行われる。
【００８１】
配置済みオブジェクトの配置先判定機能１３は、オブジェクトのメタデータが入力された際（ステップＳ２１）、配置先記憶装置１２に格納されている数−配置先対応表１２Ｂから、当該オブジェクトのメタデータに関連付けされている配置先の番号（群）を入手する（ステップＳ２２）。
【００８２】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトのメタデータと、ステップＳ２２にて入手した配置先の番号（群）とに基づいて、該番号に関連付けされている配置先を追加したときに、配置済みオブジェクトの配置先が当該配置先になる追加番号ＡＮ、或いは配置先の再判定が必要になる追加番号ＡＮを決定する（ステップＳ２３）。配置先判定機能１３による追加番号ＡＮの決定手順の詳細は、後述する実施例において改めて後述する。
【００８３】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトのメタデータと、追加番号とを関連付けて、処置種別判定表１２Ａに記憶する（ステップＳ２４）。
【００８４】
削除番号ＤＮは、以下に説明する２つのパターンの何れによって求めてもよい。
【００８５】
図１１は、本発明の第１の実施形態における削除番号ＤＮの決定処理（パターン１）を示すフローチャートである。
【００８６】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトのメタデータが入力された際（ステップＳ３１）、当該オブジェクトのメタデータと、記憶装置１２によって格納されている数−配置先対応表１２Ｂから、配置先の番号群を入力する（ステップＳ３２）。
【００８７】
配置済みオブジェクのト配置先判定機能１３は、当該オブジェクトのメタデータと、ステップＳ３２にて入手した配置先の番号群とに基づいて、当該番号に関連付けされている配置先を削除したときにオブジェクトの配置先の再判定が必要になる削除番号（群）ＤＮを決定する（ステップＳ３３）。
【００８８】
配置済みオブジェクのト配置先判定機能１３は、当該オブジェクトのメタデータと、削除番号（群）とを関連付けて、処置種別判定表１２Ａに記憶する（ステップＳ３４）。
【００８９】
図１２は、本発明の第１の実施形態における削除番号ＤＮの決定処理（パターン２）を示すフローチャートである。
【００９０】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトのメタデータが入力された際（ステップＳ４１）、記憶装置１２によって格納されている数−配置先対応表１２Ｂから、配置先の番号群を入力する（ステップＳ４２）。
【００９１】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトのメタデータと、ステップＳ４２にて入手した配置先の番号群とに基づいて、当該オブジェクトの配置先の番号（群）を決定する（ステップＳ４３）。
【００９２】
配置済みオブジェクトの配置先判定機能１３は、当該オブジェクトの配置先の番号（群）を削除番号ＤＮと決定し、当該オブジェクトのメタデータと、当該削除番号ＤＮとを、処置種別判定表１２Ａに記憶する（ステップＳ４４）。
【００９３】
図１３は、本発明の第１の実施形態における、配置先が追加された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
【００９４】
数供給機能１１は、追加する配置先のメタデータが入力されるのに応じて（ステップＳ５１）、当該配置先のメタデータに基づいて、数−配置先対応表１２Ｂを参照することにより、当該配置先の番号を決定する（ステップＳ５２）。
【００９５】
数供給機能１１は、当該配置先のメタデータと、配置先の番号とを関連付けて、数−配置先対応表１２Ｂに記憶する（ステップＳ５３）。
【００９６】
移動要否判定機能１６は、当該配置先の番号（及び配置先の追加であることを表す信号）を入力した際（ステップＳ５４）、当該配置先の番号に基づいて処置種別判定表１２Ａを参照することにより、当該配置先の番号に対応する追加番号ＡＮを求め、その追加番号に関連付けられているオブジェクトのメタデータを特定する（ステップＳ５５）。
【００９７】
移動要否判定機能１６は、ステップＳ５５にて特定したメタデータに対応するオブジェクトの配置先、追加番号、削除番号の再決定処理を必要に応じて実行する（ステップＳ５６）。
【００９８】
配置済みオブジェクトの配置先判定機能１３は、オブジェクトの追加番号ＡＮ及び／または削除番号ＤＮが、配置済みオブジェクトの配置先判定機能１３によって変更された場合、処置種別判定表１２Ｂに登録されているオブジェクトの追加番号ＡＮ及び／または削除番号ＤＮを更新する（ステップＳ５７）。尚、「Ａ及び／またはＢ」は、ＡとＢとのうち少なくとも何れか、を表す。
【００９９】
配置先決定機能１４は、配置先が変更になると判断したオブジェクト（群）のメタデータ（群）と、配置先の識別子（群）とを出力する（ステップＳ５８）。
【０１００】
図１４は、本発明の第１の実施形態における、配置先が削除された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
【０１０１】
数供給機能１１は、削除する配置先のメタデータが入力されるのに応じて（ステップＳ６１）、当該配置先のメタデータに基づいて、数−配置先対応表１２Ｂを参照することにより、そのメタデータに関連付けられている当該配置先の番号を特定する（ステップＳ６２）。
【０１０２】
移動要否判定機能１６は、当該配置先の番号（及び配置先の削除であることを表す信号）が入力されるのに応じて（ステップＳ６３）、当該配置先の番号に基づいて処置種別判定表１２Ａを参照することにより、当該配置先の番号に対応する削除番号ＤＮを求め、その削除番号に関連付けられているオブジェクトのメタデータを特定する（ステップＳ６４）。
【０１０３】
移動要否判定機能１６は、ステップＳ６４にて特定したメタデータに対応するオブジェクトの配置先、追加番号、削除番号の再決定処理を必要に応じて実行する（ステップＳ６５）。
【０１０４】
配置済みオブジェクトの配置先判定機能１３は、処置種別判定表１２Ｂに登録されているオブジェクトの削除番号ＤＮを更新する（ステップＳ６６）。
【０１０５】
配置先決定機能１４は、配置先が変更になると判定したオブジェクト（群）のメタデータ（群）と配置先の識別子（群）とを出力する（ステップＳ６７）。
【０１０６】
配置済みオブジェクトの配置先判定機能１３は、削除する配置先のメタデータと番号とを、数−配置先対応表１２Ｂから削除する（ステップＳ６８）。
【０１０７】
（実施例）
次に、上述した第１の実施形態に係る配置先決定装置１０（図１）に示した各ブロックの機能を、情報処理装置（コンピュータ）によって実現した場合の構成及び動作の具体例を、図２を参照して説明する。
【０１０８】
図２は、本発明の各実施形態に係る配置先決定装置を実現可能な情報処理装置２００のハードウエア構成（ハードウェア資源）の一例を示す図である。
【０１０９】
図２に示すハードウエア構成は、ＣＰＵ２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ハードディスクドライブ（ＨＤＤ）２０４と、通信インタフェース（Ｉ／Ｆ）２０５と、リーダライタ２０６と、これら構成を接続するバス（通信路）２０７を有する。このような構成を有する情報処理装置２００において、ハードディスクドライブ２０４は、不揮発性の記憶装置の一例である。ＲＡＭ２０３は、揮発性の記憶デバイスの一例である。通信インタフェース（Ｉ／Ｆ）２０５は、外部装置と情報処理装置２００との通信を実現可能である。リーダライタ２０６は、コンピュータ読み取り可能な記憶媒体２１０に情報を読み書き可能な装置である。情報処理装置２００が有するこれらの構成自体には、現在では一般的な技術を採用することができるので、本実施形態における詳細な説明は省略する。
【０１１０】
図１に示したブロック図を参照して上述した各機能は、係る機能を実現可能なソフトウェア・プログラム（コンピュータ・プログラム、以下「プログラム」と略称する）を情報処理装置２００に供給した後、そのプログラムを、ＣＰＵ２０１に読み出して実行することによって達成される。また、当該装置内に供給されたプログラムは、読み書き可能なＲＡＭ２０３や、ハードディスクドライブ２０４に格納することも可能である。係るプログラムによって実現される処理手順については、図９乃至図１４に示すフローチャートを参照して上述した通りである。
【０１１１】
また、情報処理装置２００へのプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体（２１０）を介してインストールする方法や、インターネット等の通信回線（２０５）を介して外部よりダウンロードする方法等、現在では一般的な方法を採用することができる。そして、このような場合において、本発明は、係るプログラムを表すコード、あるいは、係るコードが格納された記憶装置（２０２，２０４）や記憶媒体（２１０）によって構成される、と捉えることができる。
【０１１２】
但し、上述した配置先決定装置１０は、論理回路デバイス等を適宜組み合わせた専用のハードウエアによって実現してもよい。
【０１１３】
図３は、本発明の第１の実施形態に係る実施例におけるオブジェクト配置装置３００のハードウエア構成を概念的に説明する図である。図３に示すオブジェクト配置装置３００は、図３に示すように、上述した第１の実施形態に係る配置先決定装置１０と、この装置によって配置先の編成が制御される配置先群３０１とを含む。配置先群３０１は、はじめの状況において、図３に実線で示す５台のストレージノード（３０１ａ乃至３０１ｅ）を有するとする。当該個々のストレージノードは、上述した配置先決定装置１０における配置先である。即ち、オブジェクト配置装置３００は、複数のストレージノード（配置先１８）からなる配置先群３０１を含むストレージシステムとも捉えることができる。
【０１１４】
尚、図３に破線で示す複数のストレージノード（３０１ｆ乃至３０１ｎ）は、後述する実施例において配置先群３０１の編成に変更が生じた場合の説明に於いて参照することとする。
【０１１５】
配置先群３０１の構成としては、少なくとも物理的にまたは論理的に区画された複数の配置先である場合、或いは、物理的にも論理的にも区画された複数の配置先である場合の何れの構成も想定される。
【０１１６】
図４は、本発明の第１の実施形態に係る実施例におけるストレージノードと番号との対応表（数（番号）−ストレージノード対応表）を例示する図であり、上述した数−配置先対応表１２Ｂに相当する。この数−ストレージノード対応表には、図４に示すように、係る５台のストレージノード（３０１ａ乃至３０１ｅ）に関して個別に、数（番号）が関連付けされている。
【０１１７】
本実施例に係るオブジェクト配置装置３００において、配置先決定装置１０（図３には不図示の配置先決定機能１４）は、前述の如く概説した特許文献１に係る配置先決定アルゴリズムを基本として実行すると共に、上述した第１の実施形態において説明した特徴的な動作を実行する。
【０１１８】
即ち、配置先決定装置１０は、オブジェクトの固有情報であるメタデータをシード（初期値）として、ストレージノードに付与された番号と一致する乱数が出現するまで乱数列（疑似乱数列）を発生する。この乱数列の発生に用いられる乱数発生器（乱数発生機能）は、同一のシードが供給されれば、同一の乱数列を発生する。そして、配置先決定装置１０は、発生した乱数と、数−ストレージノード対応表に登録されている数とが一致する場合に、その数に関連付けされているストレージノードに、オブジェクトを配置する。
【０１１９】
尚、係る乱数発生器（乱数発生機能）は、配置先決定装置１０が有していても、或いは、配置先決定装置１０の外部装置から同装置に乱数列を提供する構成であってもよい。
【０１２０】
また、上述した実施形態に係る配置先決定装置１０は、発生する乱数の値域を変更することが可能である。値域の変更に際して、配置先決定装置１０は、同じ乱数の範囲（第１の乱数列）が指定された場合は、同一のシード（初期値）に基づいて同じ乱数列を発生する。そして、配置先決定装置１０は、異なる乱数の範囲（第２の乱数列）が指定された場合、係る第１の乱数列と第２の乱数列との間で一致する範囲含まれる乱数は、それら２つの乱数列において、同じ数及び乱数列上の順番を維持するという特徴を有する。この特徴は、特許文献１に記載された技術と同様であり、本願では、図１５Ａ及び図１５Ｂを参照して後述する。
【０１２１】
また、上述した実施形態に係る配置先決定装置１０は、追加される配置先１８に対して数（番号）供給機能１１を用いて番号を付与する際、以下の性質を有する。その性質とは、当該追加される配置先１８が複数の配置先からなる編成に追加される際に、配置済みのオブジェクトを他の配置先に移動すべき或いはコピーされるべき特定の配置先を除く他の配置先１８が追加もしくは削除されたとしても、係る配置済みのオブジェクトに移動またはコピーが生じる配置先１８は変化せず、一意に決定できるという性質である。この性質は、特許文献１に開示された装置と同様である。
【０１２２】
本実施例において、配置先に付与する番号は、例えば自然数（０を含んでも良い）とする。そして、数（番号）供給機能１１に採用されているアルゴリズムは、既存の配置先１８に付与されていない当該自然数の中で、最も小さな数を選択するアルゴリズム（上述した特定アルゴリズム１３Ａ）とする。
【０１２３】
更に、本実施例では、配置対象である各オブジェクトを多重化（冗長化）することにより、２つの配置先に配置することとする。即ち、本実施例に係るオブジェクト配置装置３００は、可用性担保のために同一オブジェクトのレプリカ（２つの同一オブジェクト）を取り扱う。例えば、データセンタ等に格納するオブジェクト（オブジェクトデータ）においては、元となるオブジェクトのレプリカ（複製）を作成し、当該オブジェクトを冗長化することによってシステムの可用性を担保する技術が広く採用されている。上述した本実施形態は、係る冗長化にも対応することが可能である。
【０１２４】
図１５Ａおよび図１５Ｂは、オブジェクトの２重冗長化して配置する場合を説明する図である。即ち、図１５Ａ及び図１５Ｂにおいて、追加番号ＡＮは、一番最後に選択された削除番号ＤＮよりも小さい番号の中で、削除番号として未だ選択されていない最小の番号である。図１５Ａに示す例は、１つの乱数列Ｐを参照することによって削除番号ＤＮと追加番号ＡＮとを決定できる場合を表す。一方、図１５Ｂに示す例は、１つの乱数列Ｑを参照することによっては必要な削除番号ＤＮと追加番号ＡＮとが決定できない場合に、その乱数列Ｑよりも値域が広い（大きい）乱数列Ｒを参照する場合を表す。即ち、乱数列Ｑは、一番最後に選ばれた削除番号ＤＮよりも小さい番号の中に、削除番号ＤＮとして未だ選択されていない番号が存在しない。このため、乱数列Ｑより値域が大きい乱数列Ｒを新たに参照することにより、この規則を満足する削除番号ＤＮと追加番号ＡＮとが選択されている。以下、図１５Ａ及び図１５Ｂを参照して、オブジェクト配置装置３００の具体的な動作例を説明する。
【０１２５】
・１つの乱数列を用いる場合の説明：
まず、１つの乱数列Ｐを用いる場合を例示する図１５Ａを参照して、オブジェクト配置装置３００がオブジェクトＡを処理する場合について説明する。
【０１２６】
オブジェクト配置装置３００において、配置先決定装置１０は、値域が１から８の乱数を用いたとする。そして、オブジェクトＡに対する乱数列（疑似乱数例）Ｐとして、“６、２、３、４、５・・・・・”を得たとする。
【０１２７】
この場合、オブジェクトＡは、多重化された後、特許文献１について上記の如く概説した配置先決定アルゴリズムに基づいて、配置先決定機能１４により、図４に示す数（番号）−ストレージノード対応表（１２Ｂ）において番号２が付与されているストレージノード３０１ａと、番号４が付与されているストレージノード３０１ｂとに配置される。
【０１２８】
その後の適当なタイミングにおいて、数（番号）供給機能１１は、上述した特定アルゴリズム１３Ａの性質に基づいて、乱数列Ｐの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能１３は、オブジェクトＡを配置すべき配置先１８の番号として一番最後（この例の場合、２重多重化なので２つ目）に選択された番号４より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値である番号３を、乱数列Ｐから選択する。この番号３は、係る番号３が付与されている配置先１８が追加された場合、他の配置先１８に既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される追加番号ＡＮである。そしてこの場合、削除番号ＤＮは、オブジェクトＡの配置先１８として選んだ２つの配置先（ストレージノード３０１ａ及びストレージノード３０１ｂ）について乱数列Ｐから選択された番号２及び番号４である。
【０１２９】
配置済みオブジェクトの配置先判定機能１３は、オブジェクトＡのメタデータ（ＤＡＴＡ＿Ａ）と、これら追加番号ＡＮ（番号３）と削除番号ＤＮ（番号２及び４）とを関連付けて、図５に示す処置種別判定表（１２Ａ）の如く記憶装置１２によって記憶する。
【０１３０】
そして、上記の如く処置種別判定表１２Ａが記憶（更新）された後、配置先群３０１に、新たな配置先としてストレージノード３０１ｆが追加される場合を考える。このとき、数（番号）供給機能１１は、当該特定アルゴリズム１３Ａに基づいて、配置先１８に未だ付与されていない当該自然数の中の最小値１を、ストレージノード３０１ｆの番号として付与する。そして、数（番号）供給機能１１は、付与された番号１を、ストレージノード３０１ｆの番号として、図４に示す数（番号）−ストレージノード対応表に新たに追加する。
【０１３１】
次に、オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＡの追加番号ＡＮと、追加されるストレージノード３０１ｆに付けられた番号１とを比較する。この場合、ストレージノード３０１ｆの追加に先だってオブジェクトＡについて上記の如く決定した追加番号ＡＮは“３”であり、この数は、追加されるストレージノード３０１ｆに数（番号）供給機能１１が付与した番号１とは異なる。このため、オブジェクトＡは、配置先群３０１にストレージノード３０１ｆが新たに追加された場合であっても、配置先が変更されないことが判る。
【０１３２】
この結論は、オブジェクトＡに対する乱数列Ｐ（６、２、３、４、５・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｆが新たに追加された場合における、格納済みのオブジェクトＡの移動の要否（移動無し）を、正しく判定できていることを意味する。
【０１３３】
更に、他の例として、配置先群３０１に、新たな配置先としてストレージノード３０１ｇが追加される場合を考える。このとき、数（番号）供給機能１１は、当該特定アルゴリズム１３Ａの性質に基づいて、乱数列Ｐの中から、配置先に未だ付与されていない自然数の中で最小値である番号３を、ストレージノード３０１ｇに付与する。
【０１３４】
オブジェクト配置装置３００は、上記の如く処置種別判定表１２Ａ（図５）に記憶しているオブジェクトＡに関する追加番号ＡＮと、追加されるストレージノード３０１ｇに付けられた番号３とを比較する。ストレージノード３０１ｇの追加に先だってオブジェクトＡについて上記の如く決定した追加番号ＡＮは“３”であり、この数は、追加されるストレージノード３０１ｇに数（番号）供給機能１１が付与した番号３と一致する。このため、オブジェクトＡは、配置先群３０１にストレージノード３０１ｇが新たに追加された場合に、配置先が変更されることが判る。
【０１３５】
この結論は、オブジェクトＡに対する乱数列Ｐ（６、２、３、４、５・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｇが新たに追加された場合における、格納済みのオブジェクトＡの移動の要否（移動有り）を、正しく判定できていることを意味する。
【０１３６】
次に、配置先群３０１からストレージノード３０１ｄが削除される場合を考える。図４に示す数（番号）−ストレージノード対応表において、係るストレージノード３０１ｄに関連付けされている番号は“７”である。
【０１３７】
オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＡに関する削除番号ＤＮと、削除されるストレージノード３０１ｄに付与されている番号７とを比較する。オブジェクトＡに関する削除番号ＤＮは、図５を参照して上述した如く“２”と“４”であり、これらの数は、削除されるストレージノード３０１ｄに付与された番号７とは異なる。このため、格納済みのオブジェクトＡは、配置先群３０１からストレージノード３０１ｄから削除された場合であっても、配置先が変更されないことが判る。
【０１３８】
この結論は、オブジェクトＡに対する乱数列Ｐ（６、２、３、４、５・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｄが削除された場合における、格納済みのオブジェクトＡの移動の要否（移動無し）を、正しく判定できていることを意味する。
【０１３９】
最後に、配置先群３０１からストレージノード３０１ａが削除される場合を考える。図４に示す数（番号）−ストレージノード対応表において、係るストレージノード３０１ａに関連付けされている番号は“２”である。
【０１４０】
オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＡに関する削除番号ＤＮと、削除されるストレージノード３０１ａに付与されている番号２とを比較する。オブジェクトＡに関する削除番号ＤＮは、図５を参照して上述した如く“２”と“４”であり、これらの数のうち番号２は、削除されるストレージノード３０１ａに付与された番号２に一致する。このため、格納済みのオブジェクトＡは、配置先群３０１からストレージノード３０１ａが削除された場合に、配置先が変更されることが判る。
【０１４１】
この結論は、オブジェクトＡに対する乱数列Ｐ（６、２、３、４、５・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ａが削除された場合における、格納済みのオブジェクトＡの移動の要否（移動有り）を、正しく判定できていることを意味する。
【０１４２】
・２つの乱数列を用いる場合の説明：
次に、値域が異なる２つの乱数列Ｑ及びＲを用いる場合を例示する図１５Ｂを参照して、オブジェクト配置装置３００がオブジェクトＢについて処理する場合について説明する。
【０１４３】
オブジェクト配置装置３００において、配置先決定装置１０は、値域が１から８の乱数を用いたとする。そして、オブジェクトＢに対する乱数列（疑似乱数例）Ｑとして、“５、７、２、６、１・・・・・・”を得たとする。
【０１４４】
この場合、オブジェクトＢは、多重化された後、特許文献１について上記の如く概説した配置先決定アルゴリズムに基づいて、配置先決定機能１４により、図４に示す数（番号）−ストレージノード対応表（１２Ｂ）において番号５が付与されているストレージノード３０１ｃと、番号７が付与されているストレージノード３０１ｄとに配置される。
【０１４５】
その後の適当なタイミングにおいて、数（番号）供給機能１１は、上述した特定アルゴリズム１３Ａの性質に基づいて、乱数列Ｑの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能１３は、オブジェクトＢを配置すべき配置先１８の番号として一番最後（この例の場合、２重多重化なので２つ目）に選択された番号７より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値を、追加番号ＡＮとして、乱数列Ｑから選択することを試みる。但し、この場合、係る乱数列Ｑにおいて、番号７より前には、ストレージノードに未だ付与されていない番号が存在しない。このため、特許文献１に開示された技術と同様に、値域が乱数列Ｑよりも大きな他の乱数列を採用する必要がある。本実施例では、値域が１から１６である乱数列Ｒを採用することとする。そして、係る乱数列Ｒとして、“９、５、１１、７、２、６、１１、１・・・”を得たとする。
【０１４６】
この場合、数（番号）供給機能１１は、上述した特定アルゴリズム１３Ａの性質に基づいて、乱数列Ｒの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能１３は、オブジェクトＢを配置すべき配置先１８の番号として一番最後（この例の場合、２重多重化なので２つ目）に選択された番号７より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値である番号９を、乱数列Ｒから選択する。この番号９は、係る番号９が付与されている配置先１８が追加された場合、既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される追加番号ＡＮである。そしてこの場合、削除番号ＤＮは、オブジェクトＢの配置先１８として選んだ２つの配置先（ストレージノード３０１ｃ及びストレージノード３０１ｄ）について乱数列Ｒから選択された番号５及び番号７である。配置済みオブジェクトの配置先判定機能１３は、オブジェクトＢのメタデータ（ＤＡＴＡ＿Ｂ）と、これら追加番号ＡＮ（番号９）と削除番号ＤＮ（番号５及び７）とを関連付けて、図５に示す処置種別判定表（１２Ａ）の如く記憶装置１２によって記憶する。
【０１４７】
そして、上記の如く処置種別判定表１２Ａが記憶（更新）された後、配置先群３０１に、新たな配置先としてストレージノード３０１ｆ、ストレージノード３０１ｇ、ストレージノード３０１ｈが追加される場合を考える。このとき、数（番号）供給機能１１は、当該特定アルゴリズム１３Ａに基づいて、配置先１８に未だ付与されていない当該自然数の中から、最小値１から順番に、番号１をストレージノード３０１ｆに、番号３をストレージノード３０１ｇに、そして番号６をストレージノード３０１ｈに付与する。そして、数（番号）供給機能１１は、付与された番号１，３，６を、ストレージノード３０１ｆ、ストレージノード３０１ｇ、ストレージノード３０１ｈの番号として、図４に示す数（番号）−ストレージノード対応表に新たに追加する。
【０１４８】
次に、オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＢの追加番号ＡＮと、追加されるストレージノード３０１ｆ、３０１ｇ、３０１ｈに付けられた番号１，３，６とを比較する。この場合、これらのストレージノードの追加に先だってオブジェクトＢについて上記の如く決定した追加番号ＡＮは“９”であり、追加されるこれらのストレージノードに数（番号）供給機能１１が付与した番号１，３，６とは異なる。このため、オブジェクトＢは、配置先群３０１にストレージノード３０１ｆ、ストレージノード３０１ｇ、ストレージノード３０１ｈが新たに追加された場合であっても、配置先が変更されないことが判る。
【０１４９】
この結論は、オブジェクトＡに対する乱数列Ｒ（９、５、１１、７、２、６、１１、１・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、当該３つのストレージノード３０１が新たに追加された場合における、格納済みのオブジェクトＢの移動の要否（移動無し）を、正しく判定できていることを意味する。
【０１５０】
更に、他の例として、配置先群３０１に、新たな配置先としてストレージノード３０１ｉが追加される場合を考える。このとき、数（番号）供給機能１１は、当該特定アルゴリズム１３Ａの性質に基づいて、乱数列Ｒの中から、配置先に未だ付与されていない自然数の中で最小値である番号９を、ストレージノード３０１ｉに付与する。
【０１５１】
オブジェクト配置装置３００は、上記の如く処置種別判定表１２Ａ（図５）に記憶しているオブジェクトＢに関する追加番号ＡＮと、追加されるストレージノード３０１ｉに付けられた番号９とを比較する。ストレージノード３０１ｉの追加に先だってオブジェクトＢについて上記の如く決定した追加番号ＡＮは“９”であり、この数は、追加されるストレージノード３０１ｉに数（番号）供給機能１１が付与した番号９と一致する。このため、オブジェクトＢは、配置先群３０１にストレージノード３０１ｉが新たに追加された場合に、配置先が変更されることが判る。
【０１５２】
この結論は、オブジェクトＢに対する乱数列Ｒ（９、５、１１、７、２、６、１１、１・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｉが新たに追加された場合における、格納済みのオブジェクトＢの移動の要否（移動有り）を、正しく判定できていることを意味する。
【０１５３】
次に、配置先群３０１からストレージノード３０１ｅが削除される場合を考える。図４に示す数（番号）−ストレージノード対応表において、係るストレージノード３０１ｅに関連付けされている番号は“８”である。
【０１５４】
オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＡに関する削除番号ＤＮと、削除されるストレージノード３０１ｅに付与されている番号８とを比較する。オブジェクトＡに関する削除番号ＤＮは、図５を参照して上述した如く“５”と“７”であり、これらの数は、削除されるストレージノード３０１ｅに付与された番号８とは異なる。このため、格納済みのオブジェクトＢは、配置先群３０１からストレージノード３０１ｅから削除された場合であっても、配置先が変更されないことが判る。
【０１５５】
この結論は、オブジェクト乱数列Ｒ（９、５、１１、７、２、６、１１、１・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｅが削除された場合における、格納済みのオブジェクトＢの移動の要否（移動無し）を、正しく判定できていることを意味する。
【０１５６】
最後に、配置先群３０１からストレージノード３０１ｄが削除される場合を考える。図４に示す数（番号）−ストレージノード対応表において、係るストレージノード３０１ｄに関連付けされている番号は“７”である。
【０１５７】
オブジェクト配置装置３００は、処置種別判定表１２Ａに記憶しているオブジェクトＢに関する削除番号ＤＮと、削除されるストレージノード３０１ｄに付与されている番号７とを比較する。オブジェクトＢに関する削除番号ＤＮは、図５を参照して上述した如く“５”と“７”であり、これらの数のうち番号７は、削除されるストレージノード３０１ｄに付与された番号７に一致する。このため、格納済みのオブジェクトＢは、配置先群３０１からストレージノード３０１ｄが削除された場合に、配置先が変更されることが判る。
【０１５８】
この結論は、オブジェクト乱数列Ｒ（９、５、１１、７、２、６、１１、１・・・）を、特許文献１に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置３００は、ストレージノード３０１ｄが削除された場合における、格納済みのオブジェクトＢの移動の要否（移動有り）を、正しく判定できていることを意味する。
【０１５９】
このように、本実施例に係るオブジェクト配置装置３００によれば、この装置が備える第１の実施形態に係る配置先決定装置１０の機能により、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動（コピーを含む）が必要か否かを、少ない計算量によって迅速に判定することができる。その理由は、上述した第１の実施形態においても説明したように、配置先決定装置１０において、配置先決定機能１４は、複数の配置先１８の編成に変更が生じても、配置済みオブジェクトの移動を必要としない配置先に関しては計算対象から除外することができるからである。
【０１６０】
そして、配置先決定機能１４が全てのオブジェクトを処理対象としなくて済む理由は、以下に要約した処理だけによって、既に配置済みのオブジェクトの配置先が今までとは異なる配置先に変更されるか否かを判断できるからである。係る処理とは、配置済みオブジェクトの配置先判定機能１３が、配置先決定機能１４による配置先の決定に先だって処置種別判定表１２Ａを生成しており、移動要否判定機能１６は、新たな配置先が追加される際に、当該新たな配置先に関して配置先番号供給機能１１によって決定された数が、処置種別判定情報１２Ａに記憶した追加番号ＡＮと一致するか否かを判断するという負荷の少ない処理である。  また、上述した本実施例では、複数種類の値域が異なる乱数列（上記の場合は乱数列Ｑ，Ｒ）を採用する。一般に、扱う乱数列の値域が大きい（広い）ほど、情報処理装置の処理時間を要することになる。このことは、係る乱数列を同一のシードに基づいて都度算出する場合であっても、或いは、当該乱数列を記憶装置に予め格納しておき、それを適宜参照する場合であっても同様に生じる問題である。これに対して、実施例によれば、まず、狭い値域を構成する乱数列Ｑを採用し、その乱数列Ｑでは所望の結果が得られない場合に当該乱数列より値域が広い乱数列Ｒが採用される。このような構成によれば、計算量を最小限に抑制することができる。
【０１６１】
尚、処置種別判定表１２Ａ及び数−配置先対応表１２Ｂの更新タイミングは、定期的に行っても、或いは、配置先１８（配置先群３０１）の編成が変更されるのに応じて配置済みオブジェクトの移動を完了した後など、様々なタイミングが想定される。
【０１６２】
＜第２の実施形態＞
次に、上述した第１の実施形態に係る配置先決定装置１０を基本とする第２の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、係る第１の実施形態と同様な構成についての重複する説明は省略する。
【０１６３】
第１の実施形態において上述した追加番号ＡＮは、その追加番号と同じ番号が付与されている配置先（例えば、ストレージノード）が配置先群３０１に追加される場合、当該配置先群を構成する配置先に既に配置されているオブジェクトに移動が生じるか否かを判定するために使用可能な番号（数）である。係る追加番号ＡＮには、第１の実施形態において説明したように、数値が１ずつ離散的に並ぶ自然数（但し０を含む）ｎ（ｎ＝０，１，２，・・・，ｎ）を採用することができる。
【０１６４】
しかしながら、係る追加番号ＡＮには、図７に例示する如く、数直線上において連続する領域（数値範囲）を有する実数を採用してもよい。
【０１６５】
図６は、本発明の第２の実施形態に係る、実数に拡張した処置種別判定表を例示する図である。図７は、本発明の第２の実施形態に係る配置先の代表番号と対応領域との関係を説明する図である。
【０１６６】
即ち、配置先１８を実数を利用して決定する装置構成（処理構成）の場合、追加番号ＡＮは、図６に例示するように、実数番号ＲＮと、その実数番号を代表する代表番号ＲｅｐＮとによって構成することができる。実数番号ＲＮは、配置先群３０１を構成する何れの配置先１８の対応領域（図７参照）を指し示しているか判定するための番号である。この実数番号ＲＮには、例えば、実数を出力する乱数発生器（不図示）が発生した乱数（疑似乱数）を採用することができる。
【０１６７】
一方、代表番号ＲｅｐＮは、配置先の代表番号との比較に用いる番号であり、本実施形態では、上述した第１の実施形態における追加番号ＡＮに相当する役目を果たす。この代表番号ＲｅｐＮには、例えば、実数を出力する乱数発生器（不図示）が発生した乱数に含まれる小数点以下を切り捨てた値を採用することができる。例えば、図６に示すオブジェクトデータのメタデータがＤＡＴＡ＿Ａの場合、実数番号ＲＮが“３．１”なので、代表番号ＲｅｐＮは、“３．１”から小数点以下が切り捨てられた“３”である。
【０１６８】
ここで、このような構成を有する追加番号ＡＮを採用する場合に、配置先の追加に対応（準備）すべく、追加番号ＡＮを求める手順を考える。
【０１６９】
この場合、移動要否判定機能１６は、追加番号ＡＮに含まれる代表番号ＲｅｐＮと同じ番号が付与されている配置先が配置先群３０１に追加される場合のみ、係る追加番号ＡＮに含まれる実数番号ＲＮが、当該配置先の対応領域内を指し示しているか否かを判定する。
【０１７０】
そして、係る実数番号ＲＮが当該配置先の対応領域内を指し示していると判定した場合、移動要否判定機能１６は、当該配置先の追加によって、配置済みオブジェクトに移動が生じると判定する。一方、係る実数番号ＲＮが当該配置先の対応領域の範囲外を指し示していると判定した場合、移動要否判定機能１６は、その実数番号ＲＮは採用せずに、追加番号ＡＮを再計算する。
【０１７１】
そして、上記の場合における追加番号ＡＮも、配置済みオブジェクトの配置先判定機能１３は、配置先を判定し、判定結果を、処置種別判定表１２Aに記憶する。
【０１７２】
但し、新たな配置先が実際に追加される前には、ある代表番号ＲｅｐＮが付与された対応領域の実際の広さ（ストレージノードの場合は記憶領域の容量）を把握することができない。例えば、実装例としては、対応領域の広さに基づいてその対応領域と結び付けられる配置先の容量を表現することが想定され、このような実装例においては、当該新たな配置先が実際に決まってからでないと、配置先決定装置１０は、領域の広さを正しく決定できない。
【０１７３】
本実施形態において、上述した如く処置種別判定表１２Ａが自然数ではなく実数を取り扱う以外の構成は、第１の実施形態と同様であるため、その他の構成についての第２の実施形態における説明は省略する。
【０１７４】
（第２の実施形態の変形例）
次に、上述した第２の実施形態の変形例について説明する。本変形例では、１次元空間としての数直線において実数を採用するのではなく、更に、上述した第２の実施形態に係る考え方を、複数次元からなる空間に適用する場合について説明する。
【０１７５】
図８は、本発明の第２の実施形態の変形例に係る複数次に元空間拡張した、実数を扱う処置種別判定表を例示する図である。図８に例示する処置種別判定表の基本的な構成は、図６の場合と同様である。但し、本変形例に係る処置種別判定表では、追加番号ＡＮ及び削除番号ＤＮ共に、説明の便宜上から、複数次元空間の一例である２次元空間に設定されており、設定されている番号は、採用している２次元空間において広がりを有する２次元座標で表される。
【０１７６】
本変形例において、上述した如く処置種別判定表１２Ａが自然数ではなく実数を取り扱う以外の構成は、第１及び第２の実施形態と同様であるため、その他の構成についての本変形例における説明は省略する。
【０１７７】
このような手順を採用する第２の実施形態およびその変形例によっても、第１の実施形態と同様に、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動が必要か否かを迅速に判定（即ち、少ない計算量で判定）することができる。即ち、本実施形態およびその変形例では、長さもしくは広さ（広がり）があると捉えることができる１次元以上の領域を配置先（配置先群３０１）に割り付ける場合においても、上述した第１の実施形態における０（ゼロ）を含む自然数（１ずつ離散的に並ぶ数値）を割り付ける場合と同様な効果を実現できると共に、更に、配置済みオブジェクトの移動の有無を高速に判定することができる。
【０１７８】
＜第３の実施形態＞
次に、上述した各実施形態及びその変形例に共通する概念的な実施形態について説明する。
【０１７９】
図１６は、本発明の第３の実施形態に係る配置先判定装置の構成を示すブロック図である。この配置先判定装置５０は、配置済みのオブジェクト（図１６には不図示）の移動の要否を判定する装置である。
【０１８０】
数（番号）供給部５１は、配置先の固有情報（識別子）に基づいて、その配置先に付与する数（番号）を決定する。
【０１８１】
配置先判定部５３は、配置先に対応する数５２Ｂと、配置済みオブジェクトの固有情報に基づく数列情報とを参照する。ここで、配置先に対応する数５２Ｂは、例えば、当該配置先の固有情報およびその配置先に対応する数が関連付けられた対応情報（第１の実施形態に係る数−配置先対応表１２Ｂに相当）を参照してもよい。
【０１８２】
これにより配置先判定部５３は、当該数列情報がなす値域のうち、当該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号ＡＮとして決定する。そして配置先判定部５３は、決定した追加番号ＡＮと、当該配置済みオブジェクトの固有情報とを関連付けた判定情報５２Ａとして、例えば、第１の実施形態に係る処置種別判定表１２Ａの如く、記憶装置５２に記憶する。
【０１８３】
その後、移動要否判定部５６は、新たな配置先が追加される際に、当該配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して配置先番号供給部５６によって決定された数が、記憶装置５２に記憶された判定情報５２Ａ内の追加番号ＡＮと一致するか否かを判断することによって判定する。この判断の結果、一致する追加番号ＡＮがある場合、その追加番号ＡＮに関連付けされている固有情報に対応する特定の配置済みオブジェクトは、当該新たな配置先が追加されるに際して移動が必要なオブジェクトである。
【０１８４】
本実施形態に係る配置先判定装置５０によれば、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動（コピーを含む）が必要か否かを迅速に判定することができる。その理由は、係る配置先判定装置５０は、配置先の編成に変更が生じるのに先だって、番号供給部５１によって、追加番号ＡＮと、当該配置済みオブジェクトの固有情報（メタデータ）とを関連付けて記憶装置５２に記憶しておく。そして、係る配置先判定装置５０は、配置先の編成に変更が生じた際には、移動要否判定部５６によって、該新たな配置先に関して番号供給部５１によって決定された数が、記憶装置５２に記憶された追加番号ＡＮと一致するか否かを判断するという計算負荷の軽い処理構成を採用する。係る装置構成（処理構成）により、本実施形態に係る配置先判定装置５０によれば、特許文献１等とは異なり、配置済みの全てのオブジェクトに関して数列情報（乱数列）を計算し直す等の計算負荷の大きな一連の処理を行う必要がないので、当該配置済みオブジェクトが大量な場合であっても、判定の迅速性を担保することが可能な訳である。
【０１８５】
以上、本発明を、上述した模範的な実施形態およびその実施例に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及び実施例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【０１８６】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１８７】
この出願は、２０１２年９月１１日に出願された日本出願特願２０１２−１９９７１４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１８８】
１０    配置先決定装置
１１    数（番号）供給機能
１２    記憶装置
１２Ａ    処置種別判定表
１２Ｂ    数−配置先対応表
１３    配置済みオブジェクトの配置先判定機能
１３Ａ    特定アルゴリズム
１４    配置先決定機能
１６    配置済みオブジェクトの移動要否判定機能
１８    配置先
５０    配置先判定装置
５１    数（番号）供給部
５２    記憶装置
５２Ａ    判定情報
５２Ｂ    配置先に対応する数
５３    配置先判定部
５６    移動要否判定部
１００    配置先決定装置
１０１    配置先番号供給機能
１０２    配置先記憶機能
１０３    配置先決定機能
２００    情報処理装置
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    ハードディスクドライブ（ＨＤＤ）
２０５    通信インタフェース（Ｉ／Ｆ）
２０６    リーダライタ
２０７    バス（通信路）
２１０    記憶媒体
３００    オブジェクト配置装置
３０１    配置先群
３０１ａ    ストレージノード
３０１ｂ    ストレージノード
３０１ｃ    ストレージノード
３０１ｄ    ストレージノード
３０１ｅ    ストレージノード
３０１ｆ    ストレージノード
３０１ｇ    ストレージノード
３０１ｈ    ストレージノード
３０１ｉ    ストレージノード
１０００    数直線
１００１    配置先の識別子をハッシュした結果を示す数直線１０００上の位置
１００２    オブジェクトの識別子をハッシュした結果を示す数直線１０００上の位置
【図１】
2014041781.tif 000003
【図２】
2014041781.tif 000004
【図３】
2014041781.tif 000005
【図４】
2014041781.tif 000006
【図５】
2014041781.tif 000007
【図６】
2014041781.tif 000008
【図７】
2014041781.tif 000009
【図８】
2014041781.tif 000010
【図９】
2014041781.tif 000011
【図１０】
2014041781.tif 000012
【図１１】
2014041781.tif 000013
【図１２】
2014041781.tif 000014
【図１３】
2014041781.tif 000015
【図１４】
2014041781.tif 000016
【図１５Ａ】
2014041781.tif 000017
【図１５Ｂ】
2014041781.tif 000018
【図１６】
2014041781.tif 000019
【図１７】
2014041781.tif 000020
【図１８】
2014041781.tif 000021
【国際調査報告】
2014041781.tif 000022
2014041781.tif 000023
2014041781.tif 000024
2014041781.tif 000025