JPWO2014041781A1 - オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム - Google Patents

オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム Download PDF

Info

Publication number
JPWO2014041781A1
JPWO2014041781A1 JP2014535370A JP2014535370A JPWO2014041781A1 JP WO2014041781 A1 JPWO2014041781 A1 JP WO2014041781A1 JP 2014535370 A JP2014535370 A JP 2014535370A JP 2014535370 A JP2014535370 A JP 2014535370A JP WO2014041781 A1 JPWO2014041781 A1 JP WO2014041781A1
Authority
JP
Japan
Prior art keywords
placement destination
placement
destination
arrangement
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014535370A
Other languages
English (en)
Other versions
JP6252477B2 (ja
Inventor
健一郎 石川
健一郎 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2014041781A1 publication Critical patent/JPWO2014041781A1/ja
Application granted granted Critical
Publication of JP6252477B2 publication Critical patent/JP6252477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

オブジェクト(OJT)を配置可能な配置先の編成に変更が生じた場合に、既に配置されているOJTの移動(コピーを含む)が必要か否かを迅速に判定するOJT移動判定装置10は、配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給機能11と、配置先に対応する数と、配置済みOJTの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最小または最大の数を追加番号ANとして決定し、決定した追加番号と、前記配置済みOJTの固有情報とを関連付けた処置種別判定情報12Aとして記憶装置12に記憶する配置先判定機能13と、新たな配置先が追加される際に、配置済みOJTの配置先が変更になるか否かを、該新たな配置先に関して配置先番号供給機能11によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定機能16とを有する。

Description

本発明は、特定の性質を有する分散アルゴリズムに基づいて配置先が指定されるオブジェクトについて、配置先(配置先群)の編成変更に伴い移動の要否を判定する技術分野に関する。
複数の配置先(例えばストレージノード等)から1つの特定の配置先を選択すると共に、その特定の配置先に所望のオブジェクトを配置する際、係る特定の配置先を判定(指定)する方法としては、アルゴリズムを用いる方法が考えられる。ここで、“オブジェクト”とは、数字、文字、文字列などの情報、及び物品などである(以下、この定義は、本願において同様とする)。
係る方法では、各オブジェクトの配置先を記憶することなく、情報処理装置(コンピュータ)におけるアルゴリズムを実行することにより、当該所望のオブジェクトを配置すべき特定の配置先を判定できる。このため、係る情報処理装置は、配置先の判定に際して多数のオブジェクトを取り扱う必要がある場合であっても、係るアルゴリズムを利用することにより、多数の配置先を記憶する必要がない。このため、係る情報処理装置によれば、使用する記憶装置の記憶容量の削減を図ることができる。また、このようなアルゴリズムを用いる方法は、オブジェクトの配置先を判定する装置自体を容易に増やすことができるなどの優れた特徴を有する。
但し、係るアルゴリズムを用いた配置先判定方法では、配置先が増減する度に、全てのオブジェクトの配置先を再度判定する必要がある。このため、係るアルゴリズムを用いた配置先判定方法では、既に配置先が決定されているオブジェクトが多数存在する場合、計算量が非常に多くなるという問題がなる。
そこで、係る計算量を削減することができるアルゴリズムとして、非特許文献1に記載された技術がある。以下、係る非特許文献1に記載された技術を視覚的に判り易く要約して説明する。
図17は、非特許文献1に記載された技術を説明する図である。この非特許文献1に記載された技術では、まず、最小値と最大値がつながっている数直線(円環)1000を用意する。そして、非特許文献1では、配置先を表すメタデータ(当該配置先の識別子等である固有値)に対してハッシュ演算を行い、その演算結果を表すノード(図17に示す黒丸1001)を数直線1000上に置く。
そして、当該技術では、オブジェクトのメタデータ(当該オブジェクトの識別子等である固有値)に対しても、同様に、ハッシュ演算を行い、その演算結果を表すノード(図17に示す白丸1002)を数直線1000上に置く。その際、オブジェクトの配置先は、オブジェクトが数直線1000上に置かれた位置から、この数直線上の数値が大きくなる方向を順次処理対象とする際に、はじめに検出する配置先となる(但し、直線1000は図17に示す如く円環のため、最小値と最大値はつながっている)。以下の説明では、オブジェクトが数直線1000上に置かれた位置から、この数直線上の数値が大きくなる方向を順次処理対象とする際に、同じ位置にある配置先を始めに検出するオブジェクトを、「配置先を表す位置に紐付け(関連付け)されたオブジェクト」と呼ぶ。
はじめに、上記のような環境において、配置先を新たに追加した場合を考える。この場合、非特許文献1に係る技術では、当該追加した配置先を表すメタデータに対してハッシュ演算を行い、その演算結果に基づいて、当該追加した配置先を数直線1000上に置く。その際、オブジェクトの一部の配置先が変更されることになる。但し、配置先が変更されるオブジェクトは、追加された配置先に紐付けされたオブジェクトのみである。
そして、当該新たな配置先を追加した場合において、配置先が変更されるオブジェクトは、係る追加された配置先の数直線1000上における位置と、該位置から数直線1000上の数値が小さくなる方向を順次処理対象とする際に、はじめに検出される配置先を表す位置との間に存在するオブジェクトである。但し、このように配置先が変更されるオブジェクトを判定するためには、配置先に配置されたオブジェクトのメタデータを、例えば、何らかの手法によってソートした結果として記憶している必要がある。
つまり、非特許文献1に記載された技術によれば、当該追加した配置先を表す位置に紐付けされたオブジェクトは、再計算することなく容易に判定することができる。このため、該技術では、配置先を追加した際に、既存の配置先に紐付けされているオブジェクト(即ち、配置済みのオブジェクト)の中から、移動(コピーを含む)が必要なオブジェクトを判定するための計算量を削減することができる。
次に、複数の配置先の中から、特定の配置先を削減した場合を考える。この場合、削減した配置先(特定の配置先)に紐付けされていたオブジェクトは、当該削減した配置先を表すメタデータに対するハッシュの演算結果を表す数直線1000上の位置から、数値が大きくなる方向に注目した際にはじめに検出される配置先に移動する。その際、移動が必要なオブジェクトのうち、同じ配置先に対応する位置に紐付けされていたオブジェクトは、同じ配置先に移動する。
即ち、非特許文献1に記載された技術によれば、配置先を削減した場合においても、上述した配置先を新たに追加した場合と同様に、同じ配置先を表す位置に紐付けされていたオブジェクトは容易に判定できる。このため、該技術では、配置先を削除した際に、配置先が変更になるオブジェクトの判定に必要な計算量を削減することができる。
WO/2012/023384公報
"Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web", David Karger, Eric Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, Rina Panigrahy, 1997: STOC ’97 Proceedings of the twenty−ninth annual ACM symposium on Theory of computing Pages 654−663
ところで、オブジェクトを配置する際、配置先の指定方法としてアルゴリズムを用いて配置先を指定する方法は他にも存在する。例えば、本出願人による特許文献1が挙げられる。但し、この特許文献1に記載された技術では、提案されているアルゴリズムが非特許文献1とは異なり、数直線上の位置として説明可能な配置先とオブジェクトとの関係を用いないので、上述した非特許文献1に記載された計算量の削減方式を採用することはできない。
ここで、非特許文献1に係る方法を、特許文献1に開示された技術に採用できない理由について、係る特許文献1をダイジェストしながら説明する。
図17は、特許文献1(WO/2012/023384公報)に開示された技術を概説する機能ブロック図である。
配置先決定装置(オブジェクト配置先決定装置)100は、配置先番号供給機能101と、配置先記憶機能102と、オブジェクト配置先決定機能103とを有する。
配置先番号供給機能101は、オブジェクトを配置可能な配置先が新たに追加された際に、その配置先に付与する“番号(number)”(但し番号を数(value)とも称する。以下同様)を管理する。即ち、配置先決定装置100において、個々の配置先は、番号によって管理される。但し、配置先決定装置100において、配置先に付与する番号の実体に関して何ら制限はない。例えば、配置先番号供給機能101は、配置先に付与する番号として、注目する配置先のメタデータ(例えば、配置先を特定可能な識別子)に基づく数列情報を出力する。この数列情報には、乱数発生器(不図示)が発生する乱数(疑似乱数)を採用することができる。
配置先記憶機能102は、個々の配置先を特定可能な識別子(ID)等の情報と、それらの配置先に付与された上記番号とが関連付けされた対応情報(数(番号)−配置先対応表)を記憶する。
そして、オブジェクト配置先決定機能103は、オブジェクトのメタデータ(例えば、オブジェクトを特定可能な識別子)等の固有情報と、配置先記憶機能102から入手する対応情報とに基づいて、当該オブジェクトの配置先を決定する。
上記のような処理機能を備える配置先決定装置100は、自装置が対応すべき配置先が追加もしくは削除された場合、配置済みのオブジェクトの移動の要否に関わらず(即ち、配置先の変更が発生するか否かに関わらず)、配置済みの全てのオブジェクトに関して、オブジェクト配置先決定機能103によって配置先の再決定を行う必要がある。このため、配置先決定装置100においては、自装置が扱うべきオブジェクトの件数が多いほど、係る再判定に必要な計算量(処理量)が大きくなる。即ち、配置先の編成が変更(追加もしくは削除)された際に、配置先決定装置100が個々のオブジェクトの配置先を判定する処理の所用時間は、自装置が扱うべきオブジェクトの件数の増加に応じて長くなる。
即ち、特許文献1に開示された技術は、上述したように、オブジェクトに固有な情報に基づいて生成された数列情報を用いて生成する番号(数)を用いることにより、配置先の編成に際して、例えば非特許文献1に提案されているアルゴリズムと比較して演算負荷が軽いので、計算量を削減することができる。しかしながら、特許文献1に開示されたアルゴリズムをもってしても、配置済みのオブジェクトの件数が増加するほど計算量が大きくなるので、その計算量は問題となる。係る計算量とは、係る配置済みの全てのオブジェクトに関して、配置先が追加または削除される度に数列情報(乱数列)を計算し直し、その数列情報を用いて配置先を再決定する(係る乱数列を記憶装置に予め記憶しておき、その乱数列を必要な場合に参照する装置構成も含む)までに必要とされる計算量である。
そこで、本発明は、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動(コピーを含む)が必要か否かを迅速に判定するオブジェクト移動判定装置等を提供することを主たる目的とする。
上記の目的を達成すべく、本発明に係るオブジェクト移動判定装置は、以下の構成を備えることを特徴とする。
即ち、係るオブジェクト移動判定装置は、
配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給手段と、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定手段と、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給手段によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定手段と、を備えることを特徴とする。
更に、上記同目的は、上記構成を有するオブジェクト移動判定装置と、
注目するオブジェクトを配置すべき配置先を、前記配置先判定手段とは異なるアルゴリズムに基づいて決定する配置先決定手段とを備えるオブジェクト配置装置によっても実現される。
更に、上記同目的は、上記構成を有するオブジェクト配置装置と、
複数の前記配置先とを備えるストレージシステムによっても実現される。
また、上記の目的を達成すべく、本発明に係るオブジェクト移動判定方法は、以下の構成を備えることを特徴とする。
即ち、係るオブジェクト移動判定方法は、
配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号として決定し、
決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に予め記憶し、
新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先の固有情報に基づいて決定したところの、前記新たな配置先に付与した数が、前記記憶装置に記憶した追加番号と一致するか否かを判断することによって判定することを特徴とする。
尚、同目的は、上記構成を有するオブジェクト移動判定装置または対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても達成される。
本発明によれば、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動(コピーを含む)が必要か否かを迅速に判定(即ち、少ない計算量で判定)することができる。
本発明の第1の実施形態に係る配置先判定装置の構成を示すブロック図である。 本発明の各実施形態に係る配置先決定装置を実現可能な情報処理装置200のハードウエア構成(ハードウェア資源)の一例を示す図である。 本発明の第1の実施形態に係る実施例におけるオブジェクト配置装置300のハードウエア構成を概念的に説明する図である。 本発明の第1の実施形態に係る実施例におけるストレージノードと番号との対応表(数(番号)−ストレージノード対応表)を例示する図である。 オブジェクトの2重冗長化して配置する場合を説明する図である。 本発明の第2の実施形態に係る、実数に拡張した処置種別判定表を例示する図である。 本発明の第2の実施形態に係る配置先の代表番号と対応領域との関係を説明する図である。 本発明の第2の実施形態の変形例に係る複数次元空間に拡張した、実数を扱う処置種別判定表を例示する図である。 本発明の第1の実施形態における配置先決定処理を示すフローチャートである。 本発明の第1の実施形態における追加番号ANの決定処理を示すフローチャートである。 本発明の第1の実施形態における削除番号DNの決定処理(パターン1)を示すフローチャートである。 本発明の第1の実施形態における削除番号DNの決定処理(パターン2)を示すフローチャートである。 本発明の第1の実施形態における、配置先が追加された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。 本発明の第1の実施形態における、配置先が削除された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。 オブジェクトの2重冗長化して配置する場合を説明する図である。 オブジェクトの2重冗長化して配置する場合を説明する図である。 本発明の第3の実施形態に係る配置先判定装置の構成を示すブロック図である。 非特許文献1に記載された技術を説明する図である。 特許文献1(WO/2012/023384公報)に開示された技術を概説する機能ブロック図である。
次に、本発明を模範的に実施する形態及びその実施例について、図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る配置先判定装置の構成を示すブロック図である。
図1に示す配置先判定装置10は、複数の配置先18(配置先A乃至N)を対象として、配置済みのオブジェクトを、何れの配置先に配置すべきか判定することができる(同一内容のオブジェクトを2つ以上の配置先18に配置する場合を含む)。また、配置先判定装置10は、係る複数の配置先18の編成に変更(追加もしくは削除)が生じた場合に、これらの配置先18に既に配置されているオブジェクトの移動(コピーを含む。以下同様)の要否を判定することができる。
尚、本願において、係る複数の配置先18の編成に追加もしくは削除なる変更が発生する状況とは、配置先の一種であるストレージノードの場合を例にすれば、ストレージノードが、物理的に、増設(増設)、交換(削除及び追加)、或いは削減(削除)される場合が想定されるが、これの場合には限定されない。例えば、ホットスタンバイ中のストレージノードが活性化される場合や、仮想ストレージノードが物理ストレージノードの内部において論理的に追加あるいは削除される場合も、係る編成の変更に含まれる。
そして、配置先判定装置10は、これらの動作(機能)を実現すべく、少なくとも、数(番号)供給機能11と、配置済みオブジェクトの配置先判定機能13と、配置済みオブジェクトの移動要否判定機能16とを有する。更に、配置先判定装置10は、図1に破線で示す配置先決定機能14を有してもよい。この場合、配置先判定装置10は、複数の配置先18の編成に変更が発生する場合に、配置済みオブジェクトの移動の要否が事前に判定された結果(後述する処置種別判定表12A)を参照する。これにより、配置先判定装置10は、最小限の計算によって配置済みオブジェクトの配置先を決定することができる。
以下の説明では、説明の便宜上から、配置先判定装置10が配置先決定機能14をも有すると仮定して説明することとする。
ここで、「配置済みのオブジェクト」とは、既存の配置先に紐付けされている(関連付けされている)オブジェクトである(以下、この定義は、本願において同様であるとする)。
配置先判定装置10は、外部に設けられた記憶装置12を読み書き可能である。尚、配置先判定装置10は、記憶装置12を自装置に有していてもよい。
以下、配置先判定装置10が有するこれらの機能について個別に説明する。
数(番号)供給機能11は、配置先を特定可能な識別子等のメタデータ(固有情報)に基づいて、その配置先に付与する数(番号)を決定する。即ち、本実施形態においても、個々の配置先18は、上述した特許文献1と同様に、番号によって管理されている。そして、記憶装置12は、個々の配置先18を特定可能な固有情報(メタデータ)と、それらの配置先に付与された番号とが関連付けされた対応情報として、数(番号)−配置先対応表12Bを記憶することができる。係る数−配置先対応表12Bは、後述する本実施形態の実施例における、図4に例示する数−ストレージノード対応表に相当する。
尚、配置先18を表す固有情報としては、例えば、その配置先の識別子(ID)や装置番号、通信ネットワーク上における当該配置先のアドレス等を用いることができる。
配置先決定機能14は、オブジェクトのメタデータ(例えば、オブジェクトを特定可能な識別子)等の固有情報と、数−配置先対応表12Bとに基づいて、個々の配置先18に付与された番号の中から、1つもしくは複数の番号を選択する。これにより、配置先決定機能14は、当該オブジェクトの配置先を決定する。即ち、当該番号を選択するに際して、配置先決定機能14は、オブジェクトの固有情報と、数−配置先対応表12Bに登録されている配置先およびその配置先に付与された番号の組み合わせが同じであれば、同じ番号を選択する。オブジェクトは、配置先決定機能14が選択した番号が付与された配置先に配置される。このように配置先を決定する際に採用するアルゴリズムとしては、例えば、特許文献1に開示されたアルゴリズムを採用可能である。
即ち、係るアルゴリズムは、まず、オブジェクトに固有な情報に基づいて生成された数列情報(疑似乱数列等)と、そのオブジェクトの配置先を識別する識別子とその識別子に関連付けされた第2の数との対応情報(数−配置先対応表12B)とを参照することにより、当該数列情報を用いて第1の数を生成する。係る第1の数は、互いに異なる数列情報で生成された場合には相互関係を略有さない。そして、係るアルゴリズムは、当該第1の数と、当該対応情報に含まれる上記の第2の数とが一致するまで、新たな第1の数の生成を繰り返す。この繰り返しの過程において、係るアルゴリズムは、当該第1の数と、当該第2の数の何れかとが一致したときに、一致した当該第2の数に関連する配置先識別子に対応する配置先へ、当該オブジェクトを配置するよう決定する。
配置済みオブジェクトの配置先判定機能13は、配置先18の編成が変更された際(即ち、配置先が追加もしくは削除された際)に、特定アルゴリズム13A(詳細は後述する)に基づいて、係る編成の変更によって影響を受ける配置先に付与すべき数(番号)を求める。即ち、係る配置先判定機能13は、既に配置されているオブジェクトに移動が生じる特定の配置先(18)を、オブジェクトを表すメタデータなどの情報に基づいて、その特定の配置先に付与されている番号によって判定する。そして、この配置先判定機能13は、判定結果を、処置種別判定表12A等に提供する。
尚、配置済みオブジェクトの配置先判定機能13が実現する動作については、新たな配置先18が追加される場合と、複数の配置先18の中から特定の配置先が削除される場合とに分けて改めて後述する。
記憶装置12は、処置種別判定表12Aも記憶することができる。この処置種別判定表12Aは、配置済みオブジェクトの配置先判定機能13による判定によって得られた番号を、オブジェクト毎に記憶する。係る処置種別判定表12Aに記憶される番号は、配置済みオブジェクトの配置先判定機能13による判定結果によって判明した番号(数)であって、当該複数の配置先18の編成に変更が生じた際に、既に配置されているオブジェクトの移動が必要になる特定の配置先(18)を判定可能な番号である。
係る処置種別判定表12Aは、後述する説明において参照する図5、図6及び図8に例示された配置種別判定表に相当する。より具体的には、新たな配置先18が追加された場合において、配置済みオブジェクトの移動が必要となる特定の配置先(18)に付与されている番号は、図6及び図8に例示された配置種別判定表における追加番号ANに相当する。一方、ある配置先18が削除された場合において、配置済みオブジェクトの移動が必要となる特定の配置先(この場合、当該削除された配置先)に付与されている番号は、図6及び図8に例示する配置種別判定表における削除番号DNに相当する。処置種別判定表12Aは、このような編成の変更が生じた場合に影響を受ける特定の配置先を判定可能な番号(追加番号AN及び削除番号DN)を、オブジェクト毎に記憶する。
そして、配置済みオブジェクトの移動要否判定機能16は、配置先18を表すメタデータが入力されるのに応じて数(番号)供給機能11から出力される出力情報に基づいて、処置種別判定表12Aを参照することにより、当該複数の配置先18に既に配置されているオブジェクトに移動が発生するか否かを判定する。そして、この移動要否判定機能16は、判定した結果を、配置先決定機能14に提供する。
前述した通り、数(番号)供給機能11は、配置先18が追加された際にその配置先に付与する番号を供給する。その際、配置先18に付与する番号は、特定アルゴリズム13Aに基づいて決定する。本実施形態において、同一の配置先18と、その配置先に付与した番号群とが存在する際には、新たに追加した配置先18に付与する番号は必ず一意である。この規則性は、例えば、特定アルゴリズム13Aによって、配置先18に付与する番号を自然数(ゼロを含む正の整数であってもよい)に限定すると共に、新たに追加した配置先18に付与する番号は、何れの配置先にも現在付与されていない当該自然数の中で、最も小さい番号を選択することによって実現できる。
ここで、上記の如く概説した、配置済みオブジェクトの配置先判定機能13の動作(機能)について、配置先18が新たに追加される場合と、複数の配置先18からなる編成(配置先群)から何れかの配置先が削除される場合とに分けて詳しく説明する。
配置先18を新たに追加した際には、その追加した配置先とは異なる配置先18に既に配置されているオブジェクトの配置先(配置場所)が変更される場合がある。また、オブジェクトが既に配置されている配置先18を削除する際、そのオブジェクトを維持するためには、その配置されていたオブジェクトの配置先(配置場所)を変更する必要がある。更には、例えば可用性を担保する観点から、同一内容のオブジェクトのレプリカ(複製)を、複数の配置先に分散配置している場合がある。係るレプリカを取り扱う場合は、レプリカ(オブジェクト)が分散配置されている個々の配置先18の中に削除対象の配置先が含まれると、少なくとも当該削除対象のオブジェクトに配置されていたオブジェクトの配置先(配置場所)を変更する必要である。
このような各種の場合を念頭に置いて、まず、配置先18を追加した際にオブジェクトに移動が発生する場合について説明する。この場合、配置済みオブジェクトの配置先判定機能13は、移動すべきオブジェクトの新たな配置先18の番号(数)を、以下のように判定する。
まず、前提条件に関して説明する。
本実施形態では、配置先決定機能14が実行する配置先決定アルゴリズムとして、追加した配置先18に対して数(番号)供給機能11を用いて番号を付与するときは、配置済みオブジェクトの配置先が変更にならない限り、配置先を追加もしくは削除した際に、当該オブジェクトの配置先に変更が生じる配置先は変化せず一意に決定できるアルゴリズムを使用することとする。係るアルゴリズムとしては、例えば、上記の如く概説した特許文献1に開示されたアルゴリズムを採用可能である。
また、オブジェクトの配置先を変更する場合、配置済みオブジェクトの配置先判定機能13は、追加番号ANもしくは削除番号DNを再計算することとする。
ここで、追加番号ANとは、その追加番号と同じ番号が付与されている配置先が追加された場合、既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される番号(数)である。係る追加番号ANには、例えば、数値が1ずつ離散的に並ぶ自然数(但し0を含む)n(n=0,1,2,・・・,n)を採用することができる。
一方、削除番号DNとは、その削除番号と同じ番号が付与されている配置先が削除された場合、既に配置済みオブジェクトのうち、削除が生じるオブジェクトに付与される番号(数)である。係る削除番号DNには、例えば、数値が1ずつ離散的に並ぶ自然数(但し0を含む)n(n=0,1,2,・・・,n)を採用することができる。
これらの条件により、本実施形態に係る配置先決定装置10において、配置先決定機能14は、配置先18の追加もしくは削除が行われた際に、配置済みオブジェクトの配置先判定機能13による番号(追加番号ANもしくは削除番号DN)の再計算が行われない限り、当該配置済みオブジェクトが移動すべき配置先の番号に変化を起こすこと無く、一意に決定できる。このため、本実施形態に係る配置先決定装置10では、配置先決定機能14による配置先の決定に先だって、配置済みオブジェクトの配置先判定機能13によって追加番号ANおよび削除番号DNを予め計算し、計算結果を処置種別判定表12Aに登録する。そして、配置済みオブジェクトの移動要否判定機能16は、処置種別判定表12Aを参照し、登録されている追加番号ANおよび削除番号DNと、追加または削除対象の配置先に付与されている番号とを比較するだけで、配置済みオブジェクトの移動の要否を判定することができる。
即ち、上述した前提条件では、配置先18を追加もしくは削除した際に、配置済みオブジェクトが移動する、もしくはコピーされる特定の配置先以外の他の配置先を追加もしくは削除しても、追加もしくは削除した際に配置済みオブジェクトの配置先に変更が生じる配置先は変化しない配置先決定アルゴリズムを使用する。
つまり、追加した際に配置済みオブジェクトに移動が生じる配置先18を追加する場合、もしくは削除した際に配置済みオブジェクトが移動するもしくはコピーされる配置先18を削除する場合は、当該配置済みオブジェクトの移動(コピーを含む)後の配置先の番号を再計算する必要がある。このような場合、本実施形態では、上述した前提条件により、再計算が必要になるのは、追加番号ANが番号として付与された配置先18を追加した場合、もしくは削除番号DNが番号として付与された配置先18を削除した場合のみである。つまり、本実施形態によれば、再計算が必要か否かも容易に判定することができる。
追加番号AN及び削除番号DNの計算方法は、採用する配置先決定アルゴリズムに依存し、様々な方法を採用可能であるが、具体例については後述する。
処置種別判定表12A(図5、図6及び図8)は、上述したように、配置済みオブジェクトの配置先判定機能13の判定結果である追加番号ANと削除番号DNとを、オブジェクトのメタデータと共に記憶する。
本実施形態に係る配置先決定装置10は、配置先18が追加されたとき、処置種別判定表12Aを用いて、その追加した配置先の番号と一致する追加番号ANを持つオブジェクトを判定し、該オブジェクトだけを、当該追加した配置先に移動すればよい。配置先決定装置10において、配置済みオブジェクトの配置先判定機能13は、当該追加した配置先の番号と一致する追加番号ANが付与されたオブジェクトだけについて、追加番号AN及び削除番号DNを再評価すればよい。
また、配置先決定装置10は、配置先18が削除されたとき、削除された配置先18の番号と一致する削除番号DNが付与されたオブジェクトを判定し、該オブジェクトだけについて、新たな配置先を、配置先決定機能14によって決定し直せばよい。そして、配置先決定装置10は、削除した配置先の番号と一致する削除番号DNを持つオブジェクトだけについて、配置済みオブジェクトの配置先判定機能13によって、追加番号AN及び削除番号DNを再評価すればよい。
このような処理(機能)構成を有する本実施形態に係る配置先決定装置10に対して、「背景技術」欄において説明した特許文献1に係る装置100は、配置済みの全てのオブジェクトに関して、配置先が追加または削除される度に数列情報(乱数列)を計算し直し、その数列情報を用いて配置先を再決定する(係る乱数列を記憶装置に予め記憶しておき、その乱数列を必要な場合に参照する装置構成も含む)。
これに対して、本実施形態によれば、複数の配置先18の編成に変更が生じても、配置済みオブジェクトの移動を必要としない配置先に関しては、特定アルゴリズム13Aを用いて予め求めた配置種別判定表12Aを参照するだけで判定することができるので、配置先決定機能14による計算対象から除外することができる。従って、本実施形態によれば、特許文献1に係る装置100と比較して顕著な計算量の削減効果を実現することができる。
尚、オブジェクトのメタデータ、追加番号AN、及び削除番号DNを関連付けて記憶する処置種別判定表12Aは、図5、図6及び図8に例示する如くオブジェクト毎(オブジェクトのメタデータ単位)に構成する態様には限定されない。例えば、処置種別判定表12Aには、追加番号AN(或いは削除番号DN)を基準として、その他の情報を関連付ける構成を採用してもよい。この場合、番号(数)同士の比較を直接的に行うことができるので、配置済みオブジェクトの移動要否判定機能16及びその結果を参照する配置先決定機能14は、より高速な処理を実現できる。
即ち、配置先判定機能13は、配置先の固有情報およびその配置先に対応する数が関連付けられた数−配置先対応表(対応情報)12Bと、配置済みオブジェクトの固有情報に基づく数列情報とを参照する。次に、配置先判定機能13は、係る数列情報がなす値域のうち、数−配置先対応表(対応情報)12Bに含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数を、追加番号ANとして決定(選択)する。そして、配置先判定機能13は、決定した追加番号と、配置済みオブジェクトの固有情報とを関連付けて、記憶装置12に処置種別判定情報12Aとして記憶する。
移動要否判定機能16は、新たな配置先が追加される際に、既に配置済みのオブジェクトの配置先が今までとは異なる配置先に変更になるか否かを、当該新たな配置先に関して配置先番号供給機能11によって決定された数が、処置種別判定情報12Aに記憶した追加番号ANと一致するか否かを判断することによって判定する。
尚、上述した本実施形態では、注目する数列情報(疑似乱数列)の値域に含まれている数の中で最も小さな数を追加番号として決定する処理構成について説明した。しかしながら、上述した第1の実施形態を例に説明した本発明は、係る処理構成には限定されず、例えば、当該注目する数列情報がなす値域において最大値を定め、その値域に含まれている数の中で最も大きな数を、追加番号ADとしても採用してもよい。そして、このように最も大きな数を追加番号ADとして選択する処理構成の場合、配置先(ストレージノード)の追加が生じた際には、係る注目する数列情報がなす値域において、当該最大値から最小値の方に向かって配置先の番号(数)を決定すればよい。即ち、この場合は、何れの配置先にも現在付与されていない当該自然数の中から最も小さい番号を選択する場合と比較して処理の方向性が逆になる。このことは、以下に説明する第1の実施形態の実施例、第2の実施形態及びその変形例、並びに第3の実施形態においても同様である。
次に、上述した配置先決定装置10(図1)を構成する各機能が実行する処理について、図9乃至図14に示すフローチャートを参照して説明する。これらのフローチャートに示す処理手順は、配置先決定装置10を、後述する情報処理装置200(図2)によって実現する場合、その情報処理装置のCPU(Central Processing Unit)が実行するソフトウェア・プログラムの処理手順と捉えることができる。
図9は、本発明の第1の実施形態における配置先決定処理を示すフローチャートである。
配置先決定機能14は、オブジェクトのメタデータを外部から入手した際(ステップS11)、記憶装置12によって格納されている配置先18の番号群を入手する(ステップS12)。
配置先決定機能14は、ステップS11及びステップS12にて入手したオブジェクトのメタデータと、配置先18の番号群とに基づいて、注目する当該オブジェクトの配置先の番号を決定する(ステップS13)。本ステップSにおける配置先の決定手順自体は、前述の如く概説した特許文献1に開示されたアルゴリズムと同様である。
配置先決定機能14は、記憶装置12に格納されている、配置先の番号と配置先の識別子と対応情報(数−配置先対応表12B)を、ステップS12にて入手した配置先の番号(群)に基づいて参照することにより、当該注目するオブジェクトの配置先の識別子(群)を決定する(ステップS14)。
配置先決定機能14は、決定した当該オブジェクトの配置先の識別子(群)を、配置先決定装置10から出力する(ステップS15)。
図10は、本発明の第1の実施形態における追加番号ANの決定処理を示すフローチャートである。この決定処理は、例えば、配置先決定機能14による上記配置先決定処理に先だって行われる。
配置済みオブジェクトの配置先判定機能13は、オブジェクトのメタデータが入力された際(ステップS21)、配置先記憶装置12に格納されている数−配置先対応表12Bから、当該オブジェクトのメタデータに関連付けされている配置先の番号(群)を入手する(ステップS22)。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトのメタデータと、ステップS22にて入手した配置先の番号(群)とに基づいて、該番号に関連付けされている配置先を追加したときに、配置済みオブジェクトの配置先が当該配置先になる追加番号AN、或いは配置先の再判定が必要になる追加番号ANを決定する(ステップS23)。配置先判定機能13による追加番号ANの決定手順の詳細は、後述する実施例において改めて後述する。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトのメタデータと、追加番号とを関連付けて、処置種別判定表12Aに記憶する(ステップS24)。
削除番号DNは、以下に説明する2つのパターンの何れによって求めてもよい。
図11は、本発明の第1の実施形態における削除番号DNの決定処理(パターン1)を示すフローチャートである。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトのメタデータが入力された際(ステップS31)、当該オブジェクトのメタデータと、記憶装置12によって格納されている数−配置先対応表12Bから、配置先の番号群を入力する(ステップS32)。
配置済みオブジェクのト配置先判定機能13は、当該オブジェクトのメタデータと、ステップS32にて入手した配置先の番号群とに基づいて、当該番号に関連付けされている配置先を削除したときにオブジェクトの配置先の再判定が必要になる削除番号(群)DNを決定する(ステップS33)。
配置済みオブジェクのト配置先判定機能13は、当該オブジェクトのメタデータと、削除番号(群)とを関連付けて、処置種別判定表12Aに記憶する(ステップS34)。
図12は、本発明の第1の実施形態における削除番号DNの決定処理(パターン2)を示すフローチャートである。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトのメタデータが入力された際(ステップS41)、記憶装置12によって格納されている数−配置先対応表12Bから、配置先の番号群を入力する(ステップS42)。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトのメタデータと、ステップS42にて入手した配置先の番号群とに基づいて、当該オブジェクトの配置先の番号(群)を決定する(ステップS43)。
配置済みオブジェクトの配置先判定機能13は、当該オブジェクトの配置先の番号(群)を削除番号DNと決定し、当該オブジェクトのメタデータと、当該削除番号DNとを、処置種別判定表12Aに記憶する(ステップS44)。
図13は、本発明の第1の実施形態における、配置先が追加された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
数供給機能11は、追加する配置先のメタデータが入力されるのに応じて(ステップS51)、当該配置先のメタデータに基づいて、数−配置先対応表12Bを参照することにより、当該配置先の番号を決定する(ステップS52)。
数供給機能11は、当該配置先のメタデータと、配置先の番号とを関連付けて、数−配置先対応表12Bに記憶する(ステップS53)。
移動要否判定機能16は、当該配置先の番号(及び配置先の追加であることを表す信号)を入力した際(ステップS54)、当該配置先の番号に基づいて処置種別判定表12Aを参照することにより、当該配置先の番号に対応する追加番号ANを求め、その追加番号に関連付けられているオブジェクトのメタデータを特定する(ステップS55)。
移動要否判定機能16は、ステップS55にて特定したメタデータに対応するオブジェクトの配置先、追加番号、削除番号の再決定処理を必要に応じて実行する(ステップS56)。
配置済みオブジェクトの配置先判定機能13は、オブジェクトの追加番号AN及び/または削除番号DNが、配置済みオブジェクトの配置先判定機能13によって変更された場合、処置種別判定表12Bに登録されているオブジェクトの追加番号AN及び/または削除番号DNを更新する(ステップS57)。尚、「A及び/またはB」は、AとBとのうち少なくとも何れか、を表す。
配置先決定機能14は、配置先が変更になると判断したオブジェクト(群)のメタデータ(群)と、配置先の識別子(群)とを出力する(ステップS58)。
図14は、本発明の第1の実施形態における、配置先が削除された場合の、配置済みオブジェクトの配置先判定処理を示すフローチャートである。
数供給機能11は、削除する配置先のメタデータが入力されるのに応じて(ステップS61)、当該配置先のメタデータに基づいて、数−配置先対応表12Bを参照することにより、そのメタデータに関連付けられている当該配置先の番号を特定する(ステップS62)。
移動要否判定機能16は、当該配置先の番号(及び配置先の削除であることを表す信号)が入力されるのに応じて(ステップS63)、当該配置先の番号に基づいて処置種別判定表12Aを参照することにより、当該配置先の番号に対応する削除番号DNを求め、その削除番号に関連付けられているオブジェクトのメタデータを特定する(ステップS64)。
移動要否判定機能16は、ステップS64にて特定したメタデータに対応するオブジェクトの配置先、追加番号、削除番号の再決定処理を必要に応じて実行する(ステップS65)。
配置済みオブジェクトの配置先判定機能13は、処置種別判定表12Bに登録されているオブジェクトの削除番号DNを更新する(ステップS66)。
配置先決定機能14は、配置先が変更になると判定したオブジェクト(群)のメタデータ(群)と配置先の識別子(群)とを出力する(ステップS67)。
配置済みオブジェクトの配置先判定機能13は、削除する配置先のメタデータと番号とを、数−配置先対応表12Bから削除する(ステップS68)。
(実施例)
次に、上述した第1の実施形態に係る配置先決定装置10(図1)に示した各ブロックの機能を、情報処理装置(コンピュータ)によって実現した場合の構成及び動作の具体例を、図2を参照して説明する。
図2は、本発明の各実施形態に係る配置先決定装置を実現可能な情報処理装置200のハードウエア構成(ハードウェア資源)の一例を示す図である。
図2に示すハードウエア構成は、CPU201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、ハードディスクドライブ(HDD)204と、通信インタフェース(I/F)205と、リーダライタ206と、これら構成を接続するバス(通信路)207を有する。このような構成を有する情報処理装置200において、ハードディスクドライブ204は、不揮発性の記憶装置の一例である。RAM203は、揮発性の記憶デバイスの一例である。通信インタフェース(I/F)205は、外部装置と情報処理装置200との通信を実現可能である。リーダライタ206は、コンピュータ読み取り可能な記憶媒体210に情報を読み書き可能な装置である。情報処理装置200が有するこれらの構成自体には、現在では一般的な技術を採用することができるので、本実施形態における詳細な説明は省略する。
図1に示したブロック図を参照して上述した各機能は、係る機能を実現可能なソフトウェア・プログラム(コンピュータ・プログラム、以下「プログラム」と略称する)を情報処理装置200に供給した後、そのプログラムを、CPU201に読み出して実行することによって達成される。また、当該装置内に供給されたプログラムは、読み書き可能なRAM203や、ハードディスクドライブ204に格納することも可能である。係るプログラムによって実現される処理手順については、図9乃至図14に示すフローチャートを参照して上述した通りである。
また、情報処理装置200へのプログラムの供給方法は、CD−ROM等の各種記憶媒体(210)を介してインストールする方法や、インターネット等の通信回線(205)を介して外部よりダウンロードする方法等、現在では一般的な方法を採用することができる。そして、このような場合において、本発明は、係るプログラムを表すコード、あるいは、係るコードが格納された記憶装置(202,204)や記憶媒体(210)によって構成される、と捉えることができる。
但し、上述した配置先決定装置10は、論理回路デバイス等を適宜組み合わせた専用のハードウエアによって実現してもよい。
図3は、本発明の第1の実施形態に係る実施例におけるオブジェクト配置装置300のハードウエア構成を概念的に説明する図である。図3に示すオブジェクト配置装置300は、図3に示すように、上述した第1の実施形態に係る配置先決定装置10と、この装置によって配置先の編成が制御される配置先群301とを含む。配置先群301は、はじめの状況において、図3に実線で示す5台のストレージノード(301a乃至301e)を有するとする。当該個々のストレージノードは、上述した配置先決定装置10における配置先である。即ち、オブジェクト配置装置300は、複数のストレージノード(配置先18)からなる配置先群301を含むストレージシステムとも捉えることができる。
尚、図3に破線で示す複数のストレージノード(301f乃至301n)は、後述する実施例において配置先群301の編成に変更が生じた場合の説明に於いて参照することとする。
配置先群301の構成としては、少なくとも物理的にまたは論理的に区画された複数の配置先である場合、或いは、物理的にも論理的にも区画された複数の配置先である場合の何れの構成も想定される。
図4は、本発明の第1の実施形態に係る実施例におけるストレージノードと番号との対応表(数(番号)−ストレージノード対応表)を例示する図であり、上述した数−配置先対応表12Bに相当する。この数−ストレージノード対応表には、図4に示すように、係る5台のストレージノード(301a乃至301e)に関して個別に、数(番号)が関連付けされている。
本実施例に係るオブジェクト配置装置300において、配置先決定装置10(図3には不図示の配置先決定機能14)は、前述の如く概説した特許文献1に係る配置先決定アルゴリズムを基本として実行すると共に、上述した第1の実施形態において説明した特徴的な動作を実行する。
即ち、配置先決定装置10は、オブジェクトの固有情報であるメタデータをシード(初期値)として、ストレージノードに付与された番号と一致する乱数が出現するまで乱数列(疑似乱数列)を発生する。この乱数列の発生に用いられる乱数発生器(乱数発生機能)は、同一のシードが供給されれば、同一の乱数列を発生する。そして、配置先決定装置10は、発生した乱数と、数−ストレージノード対応表に登録されている数とが一致する場合に、その数に関連付けされているストレージノードに、オブジェクトを配置する。
尚、係る乱数発生器(乱数発生機能)は、配置先決定装置10が有していても、或いは、配置先決定装置10の外部装置から同装置に乱数列を提供する構成であってもよい。
また、上述した実施形態に係る配置先決定装置10は、発生する乱数の値域を変更することが可能である。値域の変更に際して、配置先決定装置10は、同じ乱数の範囲(第1の乱数列)が指定された場合は、同一のシード(初期値)に基づいて同じ乱数列を発生する。そして、配置先決定装置10は、異なる乱数の範囲(第2の乱数列)が指定された場合、係る第1の乱数列と第2の乱数列との間で一致する範囲含まれる乱数は、それら2つの乱数列において、同じ数及び乱数列上の順番を維持するという特徴を有する。この特徴は、特許文献1に記載された技術と同様であり、本願では、図15A及び図15Bを参照して後述する。
また、上述した実施形態に係る配置先決定装置10は、追加される配置先18に対して数(番号)供給機能11を用いて番号を付与する際、以下の性質を有する。その性質とは、当該追加される配置先18が複数の配置先からなる編成に追加される際に、配置済みのオブジェクトを他の配置先に移動すべき或いはコピーされるべき特定の配置先を除く他の配置先18が追加もしくは削除されたとしても、係る配置済みのオブジェクトに移動またはコピーが生じる配置先18は変化せず、一意に決定できるという性質である。この性質は、特許文献1に開示された装置と同様である。
本実施例において、配置先に付与する番号は、例えば自然数(0を含んでも良い)とする。そして、数(番号)供給機能11に採用されているアルゴリズムは、既存の配置先18に付与されていない当該自然数の中で、最も小さな数を選択するアルゴリズム(上述した特定アルゴリズム13A)とする。
更に、本実施例では、配置対象である各オブジェクトを多重化(冗長化)することにより、2つの配置先に配置することとする。即ち、本実施例に係るオブジェクト配置装置300は、可用性担保のために同一オブジェクトのレプリカ(2つの同一オブジェクト)を取り扱う。例えば、データセンタ等に格納するオブジェクト(オブジェクトデータ)においては、元となるオブジェクトのレプリカ(複製)を作成し、当該オブジェクトを冗長化することによってシステムの可用性を担保する技術が広く採用されている。上述した本実施形態は、係る冗長化にも対応することが可能である。
図15Aおよび図15Bは、オブジェクトの2重冗長化して配置する場合を説明する図である。即ち、図15A及び図15Bにおいて、追加番号ANは、一番最後に選択された削除番号DNよりも小さい番号の中で、削除番号として未だ選択されていない最小の番号である。図15Aに示す例は、1つの乱数列Pを参照することによって削除番号DNと追加番号ANとを決定できる場合を表す。一方、図15Bに示す例は、1つの乱数列Qを参照することによっては必要な削除番号DNと追加番号ANとが決定できない場合に、その乱数列Qよりも値域が広い(大きい)乱数列Rを参照する場合を表す。即ち、乱数列Qは、一番最後に選ばれた削除番号DNよりも小さい番号の中に、削除番号DNとして未だ選択されていない番号が存在しない。このため、乱数列Qより値域が大きい乱数列Rを新たに参照することにより、この規則を満足する削除番号DNと追加番号ANとが選択されている。以下、図15A及び図15Bを参照して、オブジェクト配置装置300の具体的な動作例を説明する。
・1つの乱数列を用いる場合の説明:
まず、1つの乱数列Pを用いる場合を例示する図15Aを参照して、オブジェクト配置装置300がオブジェクトAを処理する場合について説明する。
オブジェクト配置装置300において、配置先決定装置10は、値域が1から8の乱数を用いたとする。そして、オブジェクトAに対する乱数列(疑似乱数例)Pとして、“6、2、3、4、5・・・・・”を得たとする。
この場合、オブジェクトAは、多重化された後、特許文献1について上記の如く概説した配置先決定アルゴリズムに基づいて、配置先決定機能14により、図4に示す数(番号)−ストレージノード対応表(12B)において番号2が付与されているストレージノード301aと、番号4が付与されているストレージノード301bとに配置される。
その後の適当なタイミングにおいて、数(番号)供給機能11は、上述した特定アルゴリズム13Aの性質に基づいて、乱数列Pの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能13は、オブジェクトAを配置すべき配置先18の番号として一番最後(この例の場合、2重多重化なので2つ目)に選択された番号4より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値である番号3を、乱数列Pから選択する。この番号3は、係る番号3が付与されている配置先18が追加された場合、他の配置先18に既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される追加番号ANである。そしてこの場合、削除番号DNは、オブジェクトAの配置先18として選んだ2つの配置先(ストレージノード301a及びストレージノード301b)について乱数列Pから選択された番号2及び番号4である。
配置済みオブジェクトの配置先判定機能13は、オブジェクトAのメタデータ(DATA_A)と、これら追加番号AN(番号3)と削除番号DN(番号2及び4)とを関連付けて、図5に示す処置種別判定表(12A)の如く記憶装置12によって記憶する。
そして、上記の如く処置種別判定表12Aが記憶(更新)された後、配置先群301に、新たな配置先としてストレージノード301fが追加される場合を考える。このとき、数(番号)供給機能11は、当該特定アルゴリズム13Aに基づいて、配置先18に未だ付与されていない当該自然数の中の最小値1を、ストレージノード301fの番号として付与する。そして、数(番号)供給機能11は、付与された番号1を、ストレージノード301fの番号として、図4に示す数(番号)−ストレージノード対応表に新たに追加する。
次に、オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトAの追加番号ANと、追加されるストレージノード301fに付けられた番号1とを比較する。この場合、ストレージノード301fの追加に先だってオブジェクトAについて上記の如く決定した追加番号ANは“3”であり、この数は、追加されるストレージノード301fに数(番号)供給機能11が付与した番号1とは異なる。このため、オブジェクトAは、配置先群301にストレージノード301fが新たに追加された場合であっても、配置先が変更されないことが判る。
この結論は、オブジェクトAに対する乱数列P(6、2、3、4、5・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301fが新たに追加された場合における、格納済みのオブジェクトAの移動の要否(移動無し)を、正しく判定できていることを意味する。
更に、他の例として、配置先群301に、新たな配置先としてストレージノード301gが追加される場合を考える。このとき、数(番号)供給機能11は、当該特定アルゴリズム13Aの性質に基づいて、乱数列Pの中から、配置先に未だ付与されていない自然数の中で最小値である番号3を、ストレージノード301gに付与する。
オブジェクト配置装置300は、上記の如く処置種別判定表12A(図5)に記憶しているオブジェクトAに関する追加番号ANと、追加されるストレージノード301gに付けられた番号3とを比較する。ストレージノード301gの追加に先だってオブジェクトAについて上記の如く決定した追加番号ANは“3”であり、この数は、追加されるストレージノード301gに数(番号)供給機能11が付与した番号3と一致する。このため、オブジェクトAは、配置先群301にストレージノード301gが新たに追加された場合に、配置先が変更されることが判る。
この結論は、オブジェクトAに対する乱数列P(6、2、3、4、5・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301gが新たに追加された場合における、格納済みのオブジェクトAの移動の要否(移動有り)を、正しく判定できていることを意味する。
次に、配置先群301からストレージノード301dが削除される場合を考える。図4に示す数(番号)−ストレージノード対応表において、係るストレージノード301dに関連付けされている番号は“7”である。
オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトAに関する削除番号DNと、削除されるストレージノード301dに付与されている番号7とを比較する。オブジェクトAに関する削除番号DNは、図5を参照して上述した如く“2”と“4”であり、これらの数は、削除されるストレージノード301dに付与された番号7とは異なる。このため、格納済みのオブジェクトAは、配置先群301からストレージノード301dから削除された場合であっても、配置先が変更されないことが判る。
この結論は、オブジェクトAに対する乱数列P(6、2、3、4、5・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301dが削除された場合における、格納済みのオブジェクトAの移動の要否(移動無し)を、正しく判定できていることを意味する。
最後に、配置先群301からストレージノード301aが削除される場合を考える。図4に示す数(番号)−ストレージノード対応表において、係るストレージノード301aに関連付けされている番号は“2”である。
オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトAに関する削除番号DNと、削除されるストレージノード301aに付与されている番号2とを比較する。オブジェクトAに関する削除番号DNは、図5を参照して上述した如く“2”と“4”であり、これらの数のうち番号2は、削除されるストレージノード301aに付与された番号2に一致する。このため、格納済みのオブジェクトAは、配置先群301からストレージノード301aが削除された場合に、配置先が変更されることが判る。
この結論は、オブジェクトAに対する乱数列P(6、2、3、4、5・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301aが削除された場合における、格納済みのオブジェクトAの移動の要否(移動有り)を、正しく判定できていることを意味する。
・2つの乱数列を用いる場合の説明:
次に、値域が異なる2つの乱数列Q及びRを用いる場合を例示する図15Bを参照して、オブジェクト配置装置300がオブジェクトBについて処理する場合について説明する。
オブジェクト配置装置300において、配置先決定装置10は、値域が1から8の乱数を用いたとする。そして、オブジェクトBに対する乱数列(疑似乱数例)Qとして、“5、7、2、6、1・・・・・・”を得たとする。
この場合、オブジェクトBは、多重化された後、特許文献1について上記の如く概説した配置先決定アルゴリズムに基づいて、配置先決定機能14により、図4に示す数(番号)−ストレージノード対応表(12B)において番号5が付与されているストレージノード301cと、番号7が付与されているストレージノード301dとに配置される。
その後の適当なタイミングにおいて、数(番号)供給機能11は、上述した特定アルゴリズム13Aの性質に基づいて、乱数列Qの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能13は、オブジェクトBを配置すべき配置先18の番号として一番最後(この例の場合、2重多重化なので2つ目)に選択された番号7より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値を、追加番号ANとして、乱数列Qから選択することを試みる。但し、この場合、係る乱数列Qにおいて、番号7より前には、ストレージノードに未だ付与されていない番号が存在しない。このため、特許文献1に開示された技術と同様に、値域が乱数列Qよりも大きな他の乱数列を採用する必要がある。本実施例では、値域が1から16である乱数列Rを採用することとする。そして、係る乱数列Rとして、“9、5、11、7、2、6、11、1・・・”を得たとする。
この場合、数(番号)供給機能11は、上述した特定アルゴリズム13Aの性質に基づいて、乱数列Rの中から、配置先に未だ付与されていない自然数の中で最も小さな数を選択する。即ち、この例の場合、配置済みオブジェクトの配置先判定機能13は、オブジェクトBを配置すべき配置先18の番号として一番最後(この例の場合、2重多重化なので2つ目)に選択された番号7より前に位置する番号の中で、何れのストレージノードにも未だ付与されていない最小値である番号9を、乱数列Rから選択する。この番号9は、係る番号9が付与されている配置先18が追加された場合、既に配置されているオブジェクトのうち、移動が生じるオブジェクトに付与される追加番号ANである。そしてこの場合、削除番号DNは、オブジェクトBの配置先18として選んだ2つの配置先(ストレージノード301c及びストレージノード301d)について乱数列Rから選択された番号5及び番号7である。配置済みオブジェクトの配置先判定機能13は、オブジェクトBのメタデータ(DATA_B)と、これら追加番号AN(番号9)と削除番号DN(番号5及び7)とを関連付けて、図5に示す処置種別判定表(12A)の如く記憶装置12によって記憶する。
そして、上記の如く処置種別判定表12Aが記憶(更新)された後、配置先群301に、新たな配置先としてストレージノード301f、ストレージノード301g、ストレージノード301hが追加される場合を考える。このとき、数(番号)供給機能11は、当該特定アルゴリズム13Aに基づいて、配置先18に未だ付与されていない当該自然数の中から、最小値1から順番に、番号1をストレージノード301fに、番号3をストレージノード301gに、そして番号6をストレージノード301hに付与する。そして、数(番号)供給機能11は、付与された番号1,3,6を、ストレージノード301f、ストレージノード301g、ストレージノード301hの番号として、図4に示す数(番号)−ストレージノード対応表に新たに追加する。
次に、オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトBの追加番号ANと、追加されるストレージノード301f、301g、301hに付けられた番号1,3,6とを比較する。この場合、これらのストレージノードの追加に先だってオブジェクトBについて上記の如く決定した追加番号ANは“9”であり、追加されるこれらのストレージノードに数(番号)供給機能11が付与した番号1,3,6とは異なる。このため、オブジェクトBは、配置先群301にストレージノード301f、ストレージノード301g、ストレージノード301hが新たに追加された場合であっても、配置先が変更されないことが判る。
この結論は、オブジェクトAに対する乱数列R(9、5、11、7、2、6、11、1・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、当該3つのストレージノード301が新たに追加された場合における、格納済みのオブジェクトBの移動の要否(移動無し)を、正しく判定できていることを意味する。
更に、他の例として、配置先群301に、新たな配置先としてストレージノード301iが追加される場合を考える。このとき、数(番号)供給機能11は、当該特定アルゴリズム13Aの性質に基づいて、乱数列Rの中から、配置先に未だ付与されていない自然数の中で最小値である番号9を、ストレージノード301iに付与する。
オブジェクト配置装置300は、上記の如く処置種別判定表12A(図5)に記憶しているオブジェクトBに関する追加番号ANと、追加されるストレージノード301iに付けられた番号9とを比較する。ストレージノード301iの追加に先だってオブジェクトBについて上記の如く決定した追加番号ANは“9”であり、この数は、追加されるストレージノード301iに数(番号)供給機能11が付与した番号9と一致する。このため、オブジェクトBは、配置先群301にストレージノード301iが新たに追加された場合に、配置先が変更されることが判る。
この結論は、オブジェクトBに対する乱数列R(9、5、11、7、2、6、11、1・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301iが新たに追加された場合における、格納済みのオブジェクトBの移動の要否(移動有り)を、正しく判定できていることを意味する。
次に、配置先群301からストレージノード301eが削除される場合を考える。図4に示す数(番号)−ストレージノード対応表において、係るストレージノード301eに関連付けされている番号は“8”である。
オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトAに関する削除番号DNと、削除されるストレージノード301eに付与されている番号8とを比較する。オブジェクトAに関する削除番号DNは、図5を参照して上述した如く“5”と“7”であり、これらの数は、削除されるストレージノード301eに付与された番号8とは異なる。このため、格納済みのオブジェクトBは、配置先群301からストレージノード301eから削除された場合であっても、配置先が変更されないことが判る。
この結論は、オブジェクト乱数列R(9、5、11、7、2、6、11、1・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301eが削除された場合における、格納済みのオブジェクトBの移動の要否(移動無し)を、正しく判定できていることを意味する。
最後に、配置先群301からストレージノード301dが削除される場合を考える。図4に示す数(番号)−ストレージノード対応表において、係るストレージノード301dに関連付けされている番号は“7”である。
オブジェクト配置装置300は、処置種別判定表12Aに記憶しているオブジェクトBに関する削除番号DNと、削除されるストレージノード301dに付与されている番号7とを比較する。オブジェクトBに関する削除番号DNは、図5を参照して上述した如く“5”と“7”であり、これらの数のうち番号7は、削除されるストレージノード301dに付与された番号7に一致する。このため、格納済みのオブジェクトBは、配置先群301からストレージノード301dが削除された場合に、配置先が変更されることが判る。
この結論は、オブジェクト乱数列R(9、5、11、7、2、6、11、1・・・)を、特許文献1に開示された技術のみによって評価した場合と同じ結論である。つまり、本実施例に係るオブジェクト配置装置300は、ストレージノード301dが削除された場合における、格納済みのオブジェクトBの移動の要否(移動有り)を、正しく判定できていることを意味する。
このように、本実施例に係るオブジェクト配置装置300によれば、この装置が備える第1の実施形態に係る配置先決定装置10の機能により、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動(コピーを含む)が必要か否かを、少ない計算量によって迅速に判定することができる。その理由は、上述した第1の実施形態においても説明したように、配置先決定装置10において、配置先決定機能14は、複数の配置先18の編成に変更が生じても、配置済みオブジェクトの移動を必要としない配置先に関しては計算対象から除外することができるからである。
そして、配置先決定機能14が全てのオブジェクトを処理対象としなくて済む理由は、以下に要約した処理だけによって、既に配置済みのオブジェクトの配置先が今までとは異なる配置先に変更されるか否かを判断できるからである。係る処理とは、配置済みオブジェクトの配置先判定機能13が、配置先決定機能14による配置先の決定に先だって処置種別判定表12Aを生成しており、移動要否判定機能16は、新たな配置先が追加される際に、当該新たな配置先に関して配置先番号供給機能11によって決定された数が、処置種別判定情報12Aに記憶した追加番号ANと一致するか否かを判断するという負荷の少ない処理である。 また、上述した本実施例では、複数種類の値域が異なる乱数列(上記の場合は乱数列Q,R)を採用する。一般に、扱う乱数列の値域が大きい(広い)ほど、情報処理装置の処理時間を要することになる。このことは、係る乱数列を同一のシードに基づいて都度算出する場合であっても、或いは、当該乱数列を記憶装置に予め格納しておき、それを適宜参照する場合であっても同様に生じる問題である。これに対して、実施例によれば、まず、狭い値域を構成する乱数列Qを採用し、その乱数列Qでは所望の結果が得られない場合に当該乱数列より値域が広い乱数列Rが採用される。このような構成によれば、計算量を最小限に抑制することができる。
尚、処置種別判定表12A及び数−配置先対応表12Bの更新タイミングは、定期的に行っても、或いは、配置先18(配置先群301)の編成が変更されるのに応じて配置済みオブジェクトの移動を完了した後など、様々なタイミングが想定される。
<第2の実施形態>
次に、上述した第1の実施形態に係る配置先決定装置10を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、係る第1の実施形態と同様な構成についての重複する説明は省略する。
第1の実施形態において上述した追加番号ANは、その追加番号と同じ番号が付与されている配置先(例えば、ストレージノード)が配置先群301に追加される場合、当該配置先群を構成する配置先に既に配置されているオブジェクトに移動が生じるか否かを判定するために使用可能な番号(数)である。係る追加番号ANには、第1の実施形態において説明したように、数値が1ずつ離散的に並ぶ自然数(但し0を含む)n(n=0,1,2,・・・,n)を採用することができる。
しかしながら、係る追加番号ANには、図7に例示する如く、数直線上において連続する領域(数値範囲)を有する実数を採用してもよい。
図6は、本発明の第2の実施形態に係る、実数に拡張した処置種別判定表を例示する図である。図7は、本発明の第2の実施形態に係る配置先の代表番号と対応領域との関係を説明する図である。
即ち、配置先18を実数を利用して決定する装置構成(処理構成)の場合、追加番号ANは、図6に例示するように、実数番号RNと、その実数番号を代表する代表番号RepNとによって構成することができる。実数番号RNは、配置先群301を構成する何れの配置先18の対応領域(図7参照)を指し示しているか判定するための番号である。この実数番号RNには、例えば、実数を出力する乱数発生器(不図示)が発生した乱数(疑似乱数)を採用することができる。
一方、代表番号RepNは、配置先の代表番号との比較に用いる番号であり、本実施形態では、上述した第1の実施形態における追加番号ANに相当する役目を果たす。この代表番号RepNには、例えば、実数を出力する乱数発生器(不図示)が発生した乱数に含まれる小数点以下を切り捨てた値を採用することができる。例えば、図6に示すオブジェクトデータのメタデータがDATA_Aの場合、実数番号RNが“3.1”なので、代表番号RepNは、“3.1”から小数点以下が切り捨てられた“3”である。
ここで、このような構成を有する追加番号ANを採用する場合に、配置先の追加に対応(準備)すべく、追加番号ANを求める手順を考える。
この場合、移動要否判定機能16は、追加番号ANに含まれる代表番号RepNと同じ番号が付与されている配置先が配置先群301に追加される場合のみ、係る追加番号ANに含まれる実数番号RNが、当該配置先の対応領域内を指し示しているか否かを判定する。
そして、係る実数番号RNが当該配置先の対応領域内を指し示していると判定した場合、移動要否判定機能16は、当該配置先の追加によって、配置済みオブジェクトに移動が生じると判定する。一方、係る実数番号RNが当該配置先の対応領域の範囲外を指し示していると判定した場合、移動要否判定機能16は、その実数番号RNは採用せずに、追加番号ANを再計算する。
そして、上記の場合における追加番号ANも、配置済みオブジェクトの配置先判定機能13は、配置先を判定し、判定結果を、処置種別判定表12Aに記憶する。
但し、新たな配置先が実際に追加される前には、ある代表番号RepNが付与された対応領域の実際の広さ(ストレージノードの場合は記憶領域の容量)を把握することができない。例えば、実装例としては、対応領域の広さに基づいてその対応領域と結び付けられる配置先の容量を表現することが想定され、このような実装例においては、当該新たな配置先が実際に決まってからでないと、配置先決定装置10は、領域の広さを正しく決定できない。
本実施形態において、上述した如く処置種別判定表12Aが自然数ではなく実数を取り扱う以外の構成は、第1の実施形態と同様であるため、その他の構成についての第2の実施形態における説明は省略する。
(第2の実施形態の変形例)
次に、上述した第2の実施形態の変形例について説明する。本変形例では、1次元空間としての数直線において実数を採用するのではなく、更に、上述した第2の実施形態に係る考え方を、複数次元からなる空間に適用する場合について説明する。
図8は、本発明の第2の実施形態の変形例に係る複数次に元空間拡張した、実数を扱う処置種別判定表を例示する図である。図8に例示する処置種別判定表の基本的な構成は、図6の場合と同様である。但し、本変形例に係る処置種別判定表では、追加番号AN及び削除番号DN共に、説明の便宜上から、複数次元空間の一例である2次元空間に設定されており、設定されている番号は、採用している2次元空間において広がりを有する2次元座標で表される。
本変形例において、上述した如く処置種別判定表12Aが自然数ではなく実数を取り扱う以外の構成は、第1及び第2の実施形態と同様であるため、その他の構成についての本変形例における説明は省略する。
このような手順を採用する第2の実施形態およびその変形例によっても、第1の実施形態と同様に、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動が必要か否かを迅速に判定(即ち、少ない計算量で判定)することができる。即ち、本実施形態およびその変形例では、長さもしくは広さ(広がり)があると捉えることができる1次元以上の領域を配置先(配置先群301)に割り付ける場合においても、上述した第1の実施形態における0(ゼロ)を含む自然数(1ずつ離散的に並ぶ数値)を割り付ける場合と同様な効果を実現できると共に、更に、配置済みオブジェクトの移動の有無を高速に判定することができる。
<第3の実施形態>
次に、上述した各実施形態及びその変形例に共通する概念的な実施形態について説明する。
図16は、本発明の第3の実施形態に係る配置先判定装置の構成を示すブロック図である。この配置先判定装置50は、配置済みのオブジェクト(図16には不図示)の移動の要否を判定する装置である。
数(番号)供給部51は、配置先の固有情報(識別子)に基づいて、その配置先に付与する数(番号)を決定する。
配置先判定部53は、配置先に対応する数52Bと、配置済みオブジェクトの固有情報に基づく数列情報とを参照する。ここで、配置先に対応する数52Bは、例えば、当該配置先の固有情報およびその配置先に対応する数が関連付けられた対応情報(第1の実施形態に係る数−配置先対応表12Bに相当)を参照してもよい。
これにより配置先判定部53は、当該数列情報がなす値域のうち、当該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号ANとして決定する。そして配置先判定部53は、決定した追加番号ANと、当該配置済みオブジェクトの固有情報とを関連付けた判定情報52Aとして、例えば、第1の実施形態に係る処置種別判定表12Aの如く、記憶装置52に記憶する。
その後、移動要否判定部56は、新たな配置先が追加される際に、当該配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して配置先番号供給部56によって決定された数が、記憶装置52に記憶された判定情報52A内の追加番号ANと一致するか否かを判断することによって判定する。この判断の結果、一致する追加番号ANがある場合、その追加番号ANに関連付けされている固有情報に対応する特定の配置済みオブジェクトは、当該新たな配置先が追加されるに際して移動が必要なオブジェクトである。
本実施形態に係る配置先判定装置50によれば、オブジェクトを配置可能な配置先の編成に変更が生じた場合に、既に配置されているオブジェクトの移動(コピーを含む)が必要か否かを迅速に判定することができる。その理由は、係る配置先判定装置50は、配置先の編成に変更が生じるのに先だって、番号供給部51によって、追加番号ANと、当該配置済みオブジェクトの固有情報(メタデータ)とを関連付けて記憶装置52に記憶しておく。そして、係る配置先判定装置50は、配置先の編成に変更が生じた際には、移動要否判定部56によって、該新たな配置先に関して番号供給部51によって決定された数が、記憶装置52に記憶された追加番号ANと一致するか否かを判断するという計算負荷の軽い処理構成を採用する。係る装置構成(処理構成)により、本実施形態に係る配置先判定装置50によれば、特許文献1等とは異なり、配置済みの全てのオブジェクトに関して数列情報(乱数列)を計算し直す等の計算負荷の大きな一連の処理を行う必要がないので、当該配置済みオブジェクトが大量な場合であっても、判定の迅速性を担保することが可能な訳である。
以上、本発明を、上述した模範的な実施形態およびその実施例に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及び実施例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2012年9月11日に出願された日本出願特願2012−199714を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 配置先決定装置
11 数(番号)供給機能
12 記憶装置
12A 処置種別判定表
12B 数−配置先対応表
13 配置済みオブジェクトの配置先判定機能
13A 特定アルゴリズム
14 配置先決定機能
16 配置済みオブジェクトの移動要否判定機能
18 配置先
50 配置先判定装置
51 数(番号)供給部
52 記憶装置
52A 判定情報
52B 配置先に対応する数
53 配置先判定部
56 移動要否判定部
100 配置先決定装置
101 配置先番号供給機能
102 配置先記憶機能
103 配置先決定機能
200 情報処理装置
201 CPU
202 ROM
203 RAM
204 ハードディスクドライブ(HDD)
205 通信インタフェース(I/F)
206 リーダライタ
207 バス(通信路)
210 記憶媒体
300 オブジェクト配置装置
301 配置先群
301a ストレージノード
301b ストレージノード
301c ストレージノード
301d ストレージノード
301e ストレージノード
301f ストレージノード
301g ストレージノード
301h ストレージノード
301i ストレージノード
1000 数直線
1001 配置先の識別子をハッシュした結果を示す数直線1000上の位置
1002 オブジェクトの識別子をハッシュした結果を示す数直線1000上の位置

Claims (13)

  1. 配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給手段と、
    配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定手段と、
    新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給手段によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定手段と、を備えることを特徴とするオブジェクト移動判定装置。
  2. 前記配置先判定手段は、前記追加番号を、自然数またはゼロを含む正の整数に限定することを特徴とする請求項1記載のオブジェクト移動判定装置。
  3. 前記配置先判定手段は、
    実数を生成し、生成した実数が、前記配置先に対応する数値範囲に含まれる場合に、その数値範囲を代表する代表番号を選択し、
    前記追加番号として、前記何れの配置先にも付与されていない前記代表番号の中で、最も小さい番号を選択することを特徴とする請求項1記載のオブジェクト移動判定装置。
  4. 前記配置先判定手段は、前記配置先に対応する数値範囲を、少なくとも2次元空間に展開し、展開後の空間が有する次元に応じて生成した実数に基づいて、前記代表番号を選択することを特徴とする請求項3記載のオブジェクト移動判定装置。
  5. 前記配置先判定手段は、前記配置先に対応する数に基づいて、注目するオブジェクトの固有情報に基づいて算出される数列情報を参照した結果に基づいて削除番号として決定し、決定した削除番号を、前記追加番号と、配置済みオブジェクトの固有情報と共に関連付けて前記記憶装置に記憶し、
    前記移動要否判定手段は、前記配置先の何れかが削除される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該削除される配置先に関して前記配置先番号供給手段によって決定された数が、前記削除番号と一致するか否かを判断することによって判定することを特徴とする請求項1乃至請求項4の何れかに記載のオブジェクト移動判定装置。
  6. 前記配置先判定手段は、
    前記数列情報としての第1の数列情報から求める値を得られない場合に、その第1の数列情報より値域が大きな第2の数列情報を前記数列情報として更に参照し、これらの数列情報の間において、前記第1の乱数列と前記第2の乱数列との間で一致する範囲含まれる数は、それら2つの乱数列において、同じ数及び数列情報における順番を維持することを特徴とする請求項5記載のオブジェクト移動判定装置。
  7. 前記配置先判定手段は、前記オブジェクトが多重化されている場合に、その多重化されたオブジェクトに合わせた複数の前記削除番号を選択することを特徴とする請求項5記載のオブジェクト移動判定装置。
  8. 請求項1乃至請求項7の何れかに記載のオブジェクト移動判定装置と、
    注目するオブジェクトを配置すべき配置先を、前記配置先判定手段とは異なるアルゴリズムに基づいて決定する配置先決定手段とを備えることを特徴とするオブジェクト配置装置。
  9. 前記配置先判定手段は、前記配置先に対応する数を参照するに際して、前記配置先に対応する数と、その配置先の固有情報とが関連付けられた対応情報を参照することを特徴とする請求項8記載のオブジェクト配置装置。
  10. 前記配置先決定手段は、
    前記オブジェクトに固有な情報に基づいて生成された数列情報と、そのオブジェクトの配置先を識別する識別子とその識別子に関連付けされた第2の数とが含まれる前記対応情報とを参照することにより、該数列情報を用いて第1の数を生成し、この第1の数は、互いに異なる数列情報で生成された場合には相互関係を略有しておらず、
    前記第1の数と、前記対応情報に含まれる前記第2の数とが一致するまで、新たな第1の数の生成を繰り返すと共に、
    係る繰り返しの過程において、前記第1の数と、前記第2の数の何れかとが一致したときに、一致した前記第2の数に関連する配置先識別子に対応する配置先へ、前記オブジェクトを配置するよう決定することを特徴とする請求項9記載のオブジェクト配置装置。
  11. 請求項8乃至請求項10の何れかに記載のオブジェクト配置装置と、
    複数の前記配置先とを備えることを特徴とするストレージシステム。
  12. 配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を、追加番号として決定し、
    決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に予め記憶し、
    新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先の固有情報に基づいて決定したところの、前記新たな配置先に付与した数が、前記記憶装置に記憶した追加番号と一致するか否かを判断することによって判定することを特徴とするオブジェクト移動判定方法。
  13. 配置先の固有情報に基づいて、その配置先に付与する数を決定する配置先番号供給機能と、
    配置先に対応する数と、配置済みオブジェクトの固有情報に基づく数列情報とを参照することにより、その数列情報がなす値域のうち、該配置先に対応する数に含まれている数とは異なり、且つその値域に含まれている数の中で最も小さな数または最も大きな数を追加番号として決定し、決定した追加番号と、前記配置済みオブジェクトの固有情報とを関連付けて記憶装置に記憶する配置先判定機能と、
    新たな配置先が追加される際に、前記配置済みのオブジェクトの配置先が変更になるか否かを、該新たな配置先に関して前記配置先番号供給機能によって決定された数が、前記記憶装置に記憶された追加番号と一致するか否かを判断することによって判定する移動要否判定機能とを、コンピュータによって実現することを特徴とするコンピュータ・プログラム。
JP2014535370A 2012-09-11 2013-09-09 オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム Active JP6252477B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012199714 2012-09-11
JP2012199714 2012-09-11
PCT/JP2013/005316 WO2014041781A1 (ja) 2012-09-11 2013-09-09 オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム

Publications (2)

Publication Number Publication Date
JPWO2014041781A1 true JPWO2014041781A1 (ja) 2016-08-12
JP6252477B2 JP6252477B2 (ja) 2017-12-27

Family

ID=50277923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014535370A Active JP6252477B2 (ja) 2012-09-11 2013-09-09 オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム

Country Status (2)

Country Link
JP (1) JP6252477B2 (ja)
WO (1) WO2014041781A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6361254B2 (ja) * 2014-04-15 2018-07-25 日本電気株式会社 オブジェクト配置装置、オブジェクト配置方法、及び、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293006A (ja) * 1996-04-26 1997-11-11 Hitachi Ltd 並列データベースの分割方法及びその管理システム
WO2011027775A1 (ja) * 2009-09-01 2011-03-10 日本電気株式会社 分散ストレージシステム、分散ストレージ方法および分散ストレージ用プログラムとストレージノード
JP2011258115A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 情報格納検索装置、情報格納方法、および情報格納プログラム
WO2012023384A1 (ja) * 2010-08-19 2012-02-23 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293006A (ja) * 1996-04-26 1997-11-11 Hitachi Ltd 並列データベースの分割方法及びその管理システム
WO2011027775A1 (ja) * 2009-09-01 2011-03-10 日本電気株式会社 分散ストレージシステム、分散ストレージ方法および分散ストレージ用プログラムとストレージノード
JP2011258115A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 情報格納検索装置、情報格納方法、および情報格納プログラム
WO2012023384A1 (ja) * 2010-08-19 2012-02-23 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータプログラム

Also Published As

Publication number Publication date
WO2014041781A1 (ja) 2014-03-20
JP6252477B2 (ja) 2017-12-27

Similar Documents

Publication Publication Date Title
CN103354923B (zh) 一种数据重建方法、装置和系统
RU2658886C1 (ru) Способ управления файлами, распределенная система хранения и узел управления
US8140625B2 (en) Method for operating a fixed prefix peer to peer network
JP4669067B2 (ja) 動的フラグメントマッピング
JP6542909B2 (ja) ファイル操作方法及び装置
CN105339929B (zh) 选择用于取消重复数据的存储
JP5339432B2 (ja) ストレージシステム
WO2020010502A1 (zh) 一种基于一致性哈希算法的分布式数据冗余存储方法
WO2020108183A1 (zh) 差分升级包的生成方法、装置和设备
JP5757290B2 (ja) オブジェクト配置装置及び方法、コンピュータプログラム
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
CN105744001A (zh) 分布式缓存系统扩容方法、数据访问方法及装置和系统
JP2017194753A (ja) 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置
KR101364356B1 (ko) 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치
JP6252477B2 (ja) オブジェクト移動判定装置、方法、及びプログラム、オブジェクト配置装置、並びにストレージシステム
CN106789632A (zh) 一种大规模分布式存储系统的节点路由的方法
JP4962483B2 (ja) 情報処理装置
JP6044628B2 (ja) 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム
JP6119327B2 (ja) 重複データ管理装置、データ転送制御装置、データ転送制御システム、重複データ管理方法、データ転送制御方法、および、コンピュータ・プログラム
JPWO2013103012A1 (ja) 情報処理装置、データ管理方法およびプログラム
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects
US11188258B2 (en) Distributed storage system
JP6269120B2 (ja) ストレージシステム
WO2013132779A1 (ja) オブジェクト配置装置及び方法、コンピュータ・プログラム
Mense et al. Spread: An adaptive scheme for redundant and fair storage in dynamic heterogeneous storage systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171113

R150 Certificate of patent or registration of utility model

Ref document number: 6252477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150