(57)【特許請求の範囲】
【請求項１】
クライアントノードから所定の頻度で送信されるデータの格納先となる複数のノードと、
前記複数のノードと前記クライアントノードとの間に配置された分散アクセスノードと、を含み、
前記分散アクセスノードは、
前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を保持するノードエリア情報保持部と、
前記クライアントノードの位置するエリアを特定するエリア特定部と、
前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するノード特定部と、
所定の契機で、前記個々のノードにおいて格納されている前記クライアントノードからの送信データが、個々のノードまたは個々のエリア毎に定められた閾値情報が示す閾値の範囲に収まっているか否かを確認する格納状態判定部と、
前記格納状態判定部の確認結果に基づいて、個々のノードにおいて格納されている前記クライアントノードからの送信データが前記閾値の範囲に収まるよう、前記ノードエリア情報を更新するノードエリア情報管理部と、
を備えるデータ配置システム。
【請求項２】
前記分散アクセスノードは、さらに、
前記特定されたノードと、前記クライアントノードとを対応付けたクライアント管理情報を保持するクライアント監視部を備え、
データの送信元が、前記クライアント管理情報に登録されているクライアントノードである場合、前記閾値による確認を省略する請求項１のデータ配置システム。
【請求項３】
前記分散アクセスノードは、さらに、
所定の時間間隔で、前記クライアント管理情報のエントリのうち、所定の削除条件を満たしたエントリを削除するデータ削除部を備える請求項２のデータ配置システム。
【請求項４】
前記ノードエリア情報管理部は、前記閾値の範囲に収まる範囲で、一のノードに複数のエリアを関連付ける請求項２または３のデータ配置システム。
【請求項５】
前記分散アクセスノードは、さらに、
前記クライアントノードからの送信データを格納していないノードを、電源オフ状態または休止状態に遷移させるノード管理部を備える請求項１から４いずれか一のデータ配置システム。
【請求項６】
クライアントノードから送信されたデータの格納先となる複数のノードと前記クライアントノードとの間に配置され、
前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を保持するノードエリア情報保持部と、
前記クライアントノードの位置するエリアを特定するエリア特定部と、
前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するノード特定部と、
所定の契機で、前記個々のノードにおいて格納されている前記クライアントノードからの送信データが、個々のノードまたは個々のエリア毎に定められた閾値情報が示す閾値の範囲に収まっているか否かを確認する格納状態判定部と、
前記格納状態判定部の確認結果に基づいて、個々のノードにおいて格納されている前記クライアントノードからの送信データが前記閾値の範囲に収まるよう、前記ノードエリア情報を更新するノードエリア情報管理部と、
を備える分散アクセスノード。
【請求項７】
クライアントノードから送られるデータの格納先を、複数のノードの中から決定するデータ配置方法であって、
前記複数のノードと前記クライアントノードとの間に配置された分散アクセスノードが、
クライアントノードの位置するエリアを特定するステップと、
前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を参照して、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するステップと、
所定の契機で、前記個々のノードにおいて格納されている前記クライアントノードからの送信データが、個々のノードまたは個々のエリア毎に定められた閾値情報が示す閾値の範囲に収まっているか否かを確認するステップと、
前記格納状態判定部の確認結果に基づいて、個々のノードにおいて格納されている前記クライアントノードからの送信データが前記閾値の範囲に収まるよう、前記ノードエリア情報を更新するステップと、
を含むデータ配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１１−１９３６３４号（２０１１年  ９月  ６日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、データ配置システム、分散アクセスノード、データ配置方法およびプログラムに関し、特に、クライアントから送信されたデータを複数のノードに格納するデータ配置システム、分散アクセスノード、データ配置方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１に、分散ストレージシステムに属するストレージノードの負荷の均一化を図ることができるという管理プログラムが開示されている。同文献には、「この管理プログラムを実行するコンピュータは、負荷情報取得手段、割当手段および指示手段として機能する。負荷情報取得手段は、各ストレージノードが備える各実記憶領域に対するアクセス情報を複数のストレージノードから取得し、取得したアクセス情報に基づいて各実記憶領域の負荷情報を生成して、生成した負荷情報を負荷情報記憶手段に格納する。割当手段は、負荷情報記憶手段に記憶された負荷情報に基づいて、各ストレージノードの負荷が均一になるように仮想記憶領域への実記憶領域の割り当て関係を変更する。指示手段は、仮想記憶領域に割り当てる実記憶領域の変更に伴い、複数のストレージノードに対して実記憶領域のデータの移動を指示する。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２７７２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の分析は、本発明によって与えられたものである。携帯電話や車といった常に位置を伴う機器（以下、これら機器を「クライアントノード」と呼ぶ。）から定期的にかつ高頻繁に送信されるデータの格納先として、データセンタを利用するケースがある。これらクライアントノードは、移動するのが通常であり、また、電源がＯＦＦとなることや管理対象から外れる場合もあり得る。そして、あるクライアントノードがデータセンタに通知するデータの内容から判断して、近傍の別のクライアントノードを特定したり、当該別のクライアントノードに対し、何らかの通知をしたいといった要請がある。このような特徴を持つクライアントノードのデータの管理を実現するには、効率よくデータを配置したデータセンタが必要である。【０００５】
この点、上記特許文献１に開示されている方法では、データへのアクセス頻度などのアクセス情報に基づき、負荷が均一となるようにデータを配置している。しかしながら、上記したクライアントノードから送信されるデータの格納先となるデータセンタのように、すべてのデータがほぼ定期的に更新されるシステムでは、すべてのデータがほぼ均等に高頻度でアクセスされるため、アクセス頻度による負荷分散は効果がない、という問題点がある。【０００６】
また、上記特許文献１に開示されている方法では、各ノードから、負荷状況の把握のためにアクセス情報を取得しているため、各ノードへのデータアクセス以外のネットワーク負荷が発生するという問題点もある。【０００７】
本発明は、上述したクライアントノードから送信されるデータのように、高頻度で広範囲にわたって更新されるデータであっても、その格納先となるノード側の負荷分散を行うことに貢献できるデータ配置システム、分散アクセスノード、データ配置方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の視点によれば、クライアントノードから所定の頻度で送信されるデータの格納先となる複数のノードと、前記複数のノードと前記クライアントノードとの間に配置された分散アクセスノードと、を含み、前記分散アクセスノードは、前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を保持するノードエリア情報保持部と、前記クライアントノードの位置するエリアを特定するエリア特定部と、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するノード特定部と、を備えるデータ配置システムが提供される。【０００９】
本発明の第２の視点によれば、クライアントノードから送信されたデータの格納先となる複数のノードと前記クライアントノードとの間に配置され、前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を保持するノードエリア情報保持部と、前記クライアントノードの位置するエリアを特定するエリア特定部と、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するノード特定部と、を備える分散アクセスノードが提供される。【００１０】
本発明の第３の視点によれば、クライアントノードから送られるデータの格納先を、複数のノードの中から決定するデータ配置方法であって、前記複数のノードと前記クライアントノードとの間に配置された分散アクセスノードが、クライアントノードの位置するエリアを特定するステップと、前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を参照して、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するステップと、を含むデータ配置方法が提供される。本方法は、複数のノードとクライアントノードとの間に配置されてデータの格納先を選択する分散アクセスノードという、特定の機械に結びつけられている。【００１１】
本発明の第４の視点によれば、クライアントノードから送られるデータの格納先となる複数のノードとクライアントノードとの間に配置された分散アクセスノードを構成するコンピュータに、クライアントノードの位置するエリアを特定する処理と、前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を参照して、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１２】
本発明によれば、高頻度で広範囲にわたって更新されるデータであっても、その格納先となるノード側の負荷分散を行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の全体構成を示すブロック図である。
【図２】本発明の第１の実施形態の分散アクセスノードの構成を示すブロック図である。
【図３】本発明の第１の実施形態の分散アクセスノードに保持されるエリア情報の例である。
【図４】本発明の第１の実施形態の分散アクセスノードに保持されるノードエリア情報の例である。
【図５】クライアント管理情報を管理するためのテーブルの一例である。
【図６】図３のノードエリア情報に対応するエリアにクライアントノードをプロットした図である。
【図７】本発明の第１の実施形態の分散アクセスノードの動作を表したフローチャートである。
【図８】ノードエリア情報の更新処理を説明するための図である。
【図９】図７のステップＡ５の更新後のノードエリア情報を説明するための図である。
【図１０】閾値情報の別の設定例を示す図である。
【図１１】本発明の第２の実施形態の分散アクセスノードの構成を示すブロック図である。
【図１２】クライアント管理情報を管理するためのテーブルの別の一例である。
【図１３】本発明の第２の実施形態の分散アクセスノードの動作を表したフローチャートである。
【図１４】本発明の第３の実施形態の分散アクセスノードの構成を示すブロック図である。
【図１５】本発明の第３の実施形態の分散アクセスノードに保持されるノードエリア情報の例である。
【図１６】本発明の第３の実施形態の分散アクセスノードの動作を表したフローチャートである。
【発明を実施するための形態】
【００１４】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１５】
本発明は、その一実施形態において、図１に示すように、クライアントノードから送信されたデータの格納先となる複数のノードと、前記複数のノードとクライアントノードとの間に配置された分散アクセスノードとによって実現できる。具体的には、前記分散アクセスノードが、前記クライアントノードの位置するエリアを特定するエリア特定部と、前記各ノードに対し、それぞれ１つ以上のエリア情報を関連付けたノードエリア情報を参照して、前記クライアントノードからの送信データの格納先として、前記特定されたエリアに関連付けられたノードを選択するノード特定部と、を備える。
【００１６】
例えば、図９に示すようなエリアＡ〜Ｄの４つのエリアに対して、それぞれノード（５１）〜（５４）が関連付けられている場合、前記分散アクセスノードは、ノード（５１）〜（５４）の中から、クライアントノードが位置するエリアに関連付けられたノードをデータ格納先として選択する。
【００１７】
上記構成により、高頻度で広範囲にわたって更新されるデータであっても、その格納先となるノード側の負荷分散を行うことが可能となる。
【００１８】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態の全体構成を示すブロック図である。図１を参照すると、クライアントノード１１〜１４と、ネットワーク２０と、分散アクセスノード３０と、分散システムネットワーク４０と、サーバ、ストレージ等によって構成されたノード５１〜５４とを含む構成が示されている。なお、図１の例では、それぞれ４つのクライアントノードとノードを示しているが、これらの数は本発明の理解を簡単にするために選択されたものであり、これ以上の数のクライアントノード、ノードで構成してもよい。
【００１９】
分散システムを利用するクライアントノード１１〜１４は、ネットワーク２０を介して分散アクセスノード３０と接続されている。クライアントノード１１〜１４は、個々のクライアントノードに備えられたセンサなどから得られたデータを分散アクセスノード３０に送信する。クライアントノード１１〜１４は、前記データに含ませる形態あるいは、前記データに添付する形態で、自装置が位置するエリアを特定可能な情報を送信する。
【００２０】
分散アクセスノード３０は、クライアントノード１１〜１４から送信されるデータに含まれ、あるいは、添付された情報をもとに、後に詳述する分散配置アルゴリズムで一意にデータの格納場所を判断し、分散システムネットワーク４０を介して、その格納場所であるノード５１〜５４に対し、クライアントノード１１〜１４から受信したデータの書き込みあるいは更新要求を出力する。
【００２１】
図２は、図１に示した第１の実施形態の分散アクセスノード３０の構成を示すブロック図である。図２を参照すると、格納状態判定部３００１と、ノードエリア情報保持部３００２と、エリア特定部３００３と、ノード特定部３００４と、クライアント監視部３００５と、ノードエリア情報管理部３００６と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０７０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０７１と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０７２、入出力部３０７３とを備えた分散アクセスノード３０の構成が示されている。
【００２２】
格納状態判定部３００１は、ノード５１〜５４のうち、ノード特定部３００４によって特定されたノードにおいて、新規のクライアントノードからの送信データを格納した場合に、予め定められた閾値情報の範囲を超えてしまうか否かを判定する。本実施形態では、閾値情報として、ノード５１〜５４が管理可能なクライアントノードの数、つまり、クライアントノードからの送信データの数の上限値が設定されているものとして説明する。また、以下の説明においては、クライアントノードからの送信データを１つと数え、クライアントノードの数と送信データの数は同じであるものとして取り扱う。なお、閾値情報は、図３に示すように、エリア毎に設定するようにしてもよいし、図１０に示すように、ノード毎に設定、管理するようにしてもよい。
【００２３】
ノードエリア情報保持部３００２は、地域をある大きさに区切った領域の情報をその位置情報とともに保持している。以下、この領域を「エリア」と呼び、そのエリアを示す情報を「エリア情報」と呼ぶ。エリアの単位の一例として、縦数ｋｍ、横数ｋｍといった任意の大きさ区切ったものがある。または、別の一例として、通信網として携帯電話網を利用するのであれば、携帯電話網の基地局のカバーエリアを１つのエリアとすることができる。また、ノードエリア情報保持部３００２は、各エリアの構成と、各エリアに格納可能なクライアントノードの数の情報が関連付けられている情報を保持している。この情報を「エリア構成情報」と呼ぶ。また、ノードエリア情報保持部３００２は、ノード５１〜５４について、それぞれ１つ以上のエリア情報が関連付けられている情報を保持している。この情報を「ノードエリア情報」と呼ぶ。
【００２４】
図３は、図６に示すようなエリアＡ〜Ｄの構成と、その閾値情報とを含んだエリア構成情報の例である。なお、図３の閾値情報フィールドの値は、上記したエリア毎に格納可能なクライアントノードの数を示している。図３の例では、エリアＡ、Ｂの閾値情報は、それぞれ３となっている。これは、エリアＡ、Ｂが格納可能な送信データの数の上限値が３であることを示している。これら閾値情報は、当該エリアに関連付けられたノードの処理能力に基づいて決定される。例えば、それぞれのノードが保有するＲＡＭなどの記憶領域やＣＰＵ速度などの処理能力が把握できている場合、これら情報に基づいて、ノード毎に最適な閾値を設定できる。また、前記閾値情報は、システム構築時に入手されている情報に基づいて予め設定されていてもよい。また、ノード５１〜５４に、新規のノードを追加したときに、当該ノードに処理能力等を通知させ、その通知内容に基づいて設定するようにしてもよい。
【００２５】
図４は、図６に示すようなエリアＡ〜Ｄと、ノード５１〜５４との対応関係を示すノードエリア情報の例である。図４の例では、図６の各エリアのその隅に括弧書きした数字に示すように、１つのノード５１に、２つのエリアＡ、Ｂが関連付けられている。また、ノード５３、５４に、それぞれエリアＣ、Ｄが関連付けられている。また、ノード５２には、エリアは関連付けられていない。図３において、エリアＡ、Ｂの閾値情報（格納可能なデータ数）がエリアＣ、Ｄの半分となっているのは、ノード５１が一台で２つのエリアを担当しているためである。
【００２６】
エリア特定部３００３は、クライアントノード１１〜１４から通知される情報をもとにそのクライアントノードが属するエリアを特定する。このような情報の一例としてはＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）情報がある。また別の一例として、クライアントノードが携帯電話端末等である場合には、データを中継した基地局の情報がある。より具体的には、エリア特定部３００３に、クライアントノード１１〜１４から通知されるこれらの情報から、エリア情報を特定するためのテーブル等を保持させておき、このテーブルを参照してクライアントノードが属するエリアを特定する構成を採ることができる。
【００２７】
ノード特定部３００４は、上記したノードエリア情報を参照して、あるエリア内のクライアントノードからの送信データの格納先となるノードを選択する。
【００２８】
クライアント監視部３００５は、クライアントノードを一意に識別可能な情報をもとに、ノード毎にどのクライアントノードを管理しているか把握している。この管理情報を「クライアント管理情報」と呼ぶ。図５は、クライアント管理情報を管理するためのテーブルの一例である。また、このようなクライアントノードを一意に識別可能な情報の一例として、データセンタに通知するデータ内のクライアントノードＩＤがある。また別の一例として、ＧＰＳによる位置情報を用いてもよい。
【００２９】
ノードエリア情報管理部３００６は、あるノードに、新規のクライアントノードからのデータを格納した場合に、ノードの処理能力を超えてしまう場合に起動され、上記ノードエリア情報とクライアント管理情報とを参照し、１つのノードが扱うエリアの数を１つ以上とし、地理的に隣接しあうエリアに存在するクライアントノードの合計数が１つのサーバが取り扱い可能な数に収まるようノードエリア情報を更新する。
【００３０】
ＣＰＵ３０７０は、分散アクセスノード３０の各部を制御する。ＲＡＭ３０７１及びＨＤＤ３０７２は、上記ＣＰＵ３０７０に実行されるプログラムや、分散アクセスノードの各部が利用する情報の保存先として使用される。入出力部３０７３は、通信手段などを提供する。
【００３１】
なお、図２の例では、ＣＰＵ３０７０と、各処理部を別々に示しているが、分散アクセスノードの各部（処理手段）は、前記ＣＰＵ３０７０に、そのＲＡＭ３０７１及びＨＤＤ３０７２等を用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３２】
続いて、本実施形態の動作について図面を参照して詳細に説明する。また、以下の説明では、それぞれのクライアントノードからの送信データが通知される前準備として、ノードエリア情報保持部３００２に、図３に例示したエリア構成情報と、その閾値情報フィールドに、ノード５１〜５４が管理可能なクライアントノードの数（ノード５１〜５４が格納可能なデータ数）の上限が設定されている設定されているものとする。なお、以下の説明では、ノード５１〜５４がそれぞれ管理可能なクライアントノードの数（ノード５１〜５４が格納可能なデータ数）は６であるものとして説明する。
【００３３】
図７は、本発明の第１の実施形態の分散アクセスノードの動作（分散配置アルゴリズム）を表したフローチャートである。図７を参照すると、まず、分散アクセスノード３０が、クライアントノードからデータの書き込み依頼を受け付ける（ステップＡ１）。このデータの書き込み依頼は、分散アクセスノード３０に対するクライアントノードからの位置情報を含むデータの送信によって行われる。
【００３４】
分散アクセスノード３０は、クライアントノードから送られるデータに含まれ、あるいは、添付された情報をもとに、そのクライアントノードが属するエリアを特定する。さらに、分散アクセスノード３０は、ノードエリア情報を利用して、特定されたエリアに関連付けられているノードを特定する（ステップＡ２）。
【００３５】
次に、分散アクセスノード３０は、前記特定したノードにすでに当該クライアントノードから送信されたデータが存在するか否かを確認する（ステップＡ３）。なお、前記確認は、クライアント監視部３００５にて管理されているクライアント管理情報（図５参照）に、当該クライアントノードのクライアントノードＩＤと、前記特定したノードとの組みを持つエントリがあるか否かにて確認することができる。ここで、特定したノードにすでに当該クライアントノードから送信されたデータが存在する場合（ステップＡ３のＮｏ）、そのノード上のデータの上書き更新が行われる（ステップＡ６）。
【００３６】
一方、特定したノードに当該クライアントノードからのデータが存在しない場合（ステップＡ３のＹｅｓ）、分散アクセスノード３０は、閾値情報を参照して、前記特定したノードにクライアントノードからの送信データを追加した場合に、そのノードが管理可能なクライアントノード数（そのノードが格納可能なデータ数）が上限値を超えてしまうか否かを判定する（ステップＡ４）。ここで、送信データの数が上限値を超えないと判定された場合（ステップＡ４のＹｅｓ）、ステップＡ６に進み、そのノードにデータの新規追加が行われる（ステップＡ６）。
【００３７】
一方、ステップＡ４で、そのノードが管理可能なクライアントノード数（そのノードが格納可能なデータ数）が上限値を超えてしまうと判定された場合、分散アクセスノード３０は、前記データを送信したクライアントノードを加えて、ノードとエリアの関係を見直し、ノードエリア情報を更新する（ステップＡ５）。ここで、ノードとエリアの関係を見直す場合、１つのノードが扱うエリアの数が、その処理能力を超えない範囲でなるべく多くなるようにすることが望ましい。例えば、地理的に隣接しあうエリアに存在するクライアントノードの合計数が、１つのサーバが扱う上限数以下であれば、当該地理的に隣接しあうエリア群を１つのノードで管理するようノードエリア情報を更新する。前記ノードエリア情報の更新後、当該クライアントノードからの送信データを管理するノードが決定され、そのノードにデータの新規追加が行われる（ステップＡ６）。また、クライアント監視部３００５は、クライアント管理情報に前記クライアントノードとノードとを関連付けたエントリを追加する。
【００３８】
以上のようにして、新規のデータ書き込み依頼を行ったクライアントノードのエリアに応じてノードを割り当てていく。例えば、図６のように、エリアＡ、Ｂにノード５１が関連付けられ、エリアＣ、Ｄにそれぞれノード５３、５４が関連付けられている状態において、新たに、エリアＡに所在するクライアントノードからデータ書き込み依頼が発生すると、上記図７のステップＡ４において、エリアＡの閾値（クライアントノード数の上限値＝３）を超えてしまう。そこで、図７のステップＡ５のノードエリア情報更新処理において、エリアＢ（またはエリアＡ）に対し、新たにノード５２を割り当てるようノードエリア情報が更新される。なお、ノード５２は、図４のノードエリア情報において遊休状態（割当エリア無し）にあるノードである。
【００３９】
上記のノードエリア情報更新処理は、図８に示すようなクライアント管理情報管理ツリーを用いて行うこともできる。図８は、各エリアの情報数（クライアントノードの数）をツリー構造で表わした図である。また、カッコ書きした数字は、当該エリアに関連付けられているノードを示している。図８の例では、エリアＡ、Ｂにはそれぞれ３台のクライアントノードが存在し、その一階層上のエリアＡ＋Ｂには、合計６台のクライアントノードが存在することになる。また、エリアＣ、Ｄにはそれぞれ６台のクライアントノードが存在し、その一階層上のエリアＣ＋Ｄには、合計１２台のクライアントノードが存在することになる。一方、一台のノード５１〜５４がそれぞれ管理可能なクライアントノードの数は６であるから、エリアＡ＋Ｂには、ノード５１が関連付けられ、エリアＣ、Ｄは、それぞれノード５３、５４関連付けられている。この状態で、エリアＡ（またはエリアＢ）に位置する新たなクライアントノードからデータ書き込み依頼が発生すると、エリアＡ＋Ｂに関連付けられているノード５１の管理可能なクライアントノードの数を越えてしまう。そこで、エリアＡ（またはエリアＢ）にノード５２を割り当てる処理が行われる。
【００４０】
以上のようにしてノード５２がエリアＢに関連付けられ、図６は、図９のように書き換えられる。また、ノード５２が追加されたことにより、エリアＡの閾値（クライアントノード数の上限値）と、エリアＢの閾値（クライアントノード数の上限値）は、それぞれ６に書き換えられることになる。
【００４１】
以上のように、本実施形態では、すべてのデータが高頻度に更新されるデータを均等に分散配置させつつ、近隣のクライアントノードからの送信データについて、高速検索が可能に自律的にデータ配置できる。その理由は、ノード５１〜５４内での検索に止め、ノード間をまたがる検索を極力なくすことでネットワークを介した検索が少なくなりネットワークの帯域およびネットワークを利用するオーバーヘッドがなくなるようにしたためである。また、本実施形態では、近接した位置にあるクライアントノードからのデータをなるべく同じノードに配置するようにしたため、近傍のクライアントノードのデータを高速検索できるという利点も生じている。
【００４２】
また、本実施形態では、クライアント監視部３００５を設けているため、分散アクセスノード３０は、クライアントノードから送信されたアクセス情報を各ノード５１〜５４から取得せずとも負荷分散を実施することができる。
【００４３】
また、上記した実施形態では、各ノード５１〜５４が管理可能なクライアントノードの数は６であるものとして説明したが、各ノード５１〜５４が管理可能なクライアントノードの数は、同一値である必要は無く、それぞれのノード５１〜５４が保有するＲＡＭなどの記憶領域やＣＰＵ速度などの処理能力に基づいて細かく設定することができる。
【００４４】
［第２の実施形態］
続いて、次に、本発明の第１の実施形態におけるクライアント管理情報のエントリのうち、所定の削除条件を満たしたものを削除するようにした本発明の第２の実施形態について図面を参照して詳細に説明する。
【００４５】
図１１は本発明の第２の実施形態の分散アクセスノード３０Ａの構成を表わしたブロック図である。図２に示した第１の実施形態の分散アクセスノード３０との相違点は、タイマー部３０１０と、データ削除部３０１１とが追加されている点である。その他は、第１の実施形態と略同様であるので、以下、相違点を中心に説明する。
【００４６】
タイマー部３０１０は、予め設定された時間間隔でデータ削除部３０１１に対し通知を発行する手段である。
【００４７】
データ削除部３０１１は、タイマー部３０１０から通知を受けると、クライアント監視部に保持されているクライアント管理情報のうち、所定の削除条件を満たすエントリを削除する動作を行う。
【００４８】
また、本実施形態におけるクライアント監視部３００５ａは、クライアントノード１１〜１４からの送信データを受け取ってノードに書き込む都度、図１２に示すように、クライアント管理情報の最新書込時刻を更新する動作を行う。
【００４９】
続いて、本実施形態の動作について図面を参照して詳細に説明する。分散アクセスノード３０Ａの基本動作は、本発明の第１の実施形態と同様である（図７参照）。本実施形態では、図７の動作と並行して、タイマー部３０１０、データ削除部３０１１が追加されたことにより、以下の動作が実施される。
【００５０】
図１３は、本発明の第２の実施形態の分散アクセスノード３０Ａにおいて、上記タイマー部３０１０により所定の時間間隔で実行される動作を表したフローチャートである。
【００５１】
図１１を参照すると、タイマー部３０１０は、予め設定された時間間隔毎に、データ削除部３０１１に対し通知を発行する（ステップＢ１）。
【００５２】
次に、データ削除部３０１１は、クライアント監視部３００５ａに保持されているクライアント管理情報から、１つのエントリを読み出し、現在時刻と最新書込時刻の差分が予め決められた範囲内の差分を超えているか否かを確認する（ステップＢ２）。ここで、現在の時刻と書き込まれた時刻の差分が予め決められた閾値を超えている場合（タイムアウト判定成立；ステップＢ２のＹｅｓ）、データ削除部３０１１は、該当エントリを削除する動作を行う（ステップＢ３）。例えば、現在時刻が１２時１５分である場合、図１２の中では、ノード５３を格納先とするＩＤ＝０００Ｂのクライアントノードの最新書込時刻が最も古く、最後に書き込まれてから１５分を経過している。前記閾値が１５分であれば、このエントリが削除の対象となる。
【００５３】
データ削除部３０１１は、以上の判定処理を、クライアント監視部３００５ａに保持されているクライアント管理情報のすべてのエントリについて実施する（ステップＢ４のＮｏ）。クライアント監視部３００５ａに保持されているクライアント管理情報のすべてのエントリのチェックが完了すると、一連の処理を終了する（ステップＢ４のＹｅｓ）。
【００５４】
以上のようなクライアント管理情報のエージング処理を行う本実施形態によれば、第１の実施形態の効果に加えて、クライアント監視部３００５ａに保持されているクライアント管理情報のうち、稼働していないクライアントノードのためのエントリを削除することが可能になる。
【００５５】
また、上記した実施形態では、分散アクセスノード３０Ａ側で、クライアント管理情報のエージング処理を行うものとして説明したが、同様の仕組みをノード５１〜５４側のデータ保持機構に追加してもよい。このようにすることで、それぞれのノード５１〜５４に自律的に不要なクライアントノードからの送信データを削除させることが可能になる。
【００５６】
なお、上記した実施形態では、最新書込時間から所定時間が経過したエントリを削除するものとして説明したが、その他の条件を加味してもよいことはもちろんである。例えば、クライアントノードやエリア毎に、削除判定時間を変更してもよい。
【００５７】
［第３の実施形態］
続いて、次に、本発明の第２の実施形態の分散アクセスノード３０Ａに、各ノードの動作状態（電源オンオフ、動作モードの変更等）の制御機能を追加した本発明の第３の実施形態について図面を参照して詳細に説明する。
【００５８】
図１４は本発明の第３の実施形態の分散アクセスノード３０Ｂの構成を表わしたブロック図である。図１１に示した第２の実施形態の分散アクセスノード３０Ａとの相違点は、ノード管理部３０２０が追加されている点である。その他は、第２の実施形態と略同様であるので、以下、相違点を中心に説明する。
【００５９】
ノードエリア情報保持部３００２ａは、図１５に示すように、各ノードの電源状態を示すフィールドが追加されたノードエリア情報を保持している。
【００６０】
ノード管理部３０２０は、管理対象のクライアントノードの数が少なくなったノードの電源オフ制御または動作モードの変更（省電力モード、スリープモード等）を行うか否かの判断を行い、該当するノードに電源オフ命令または動作モード（省電力モード、スリープモード等）の変更命令を発行する。ノード管理部３０２０は、前記電源オフ命令を発行したノードからの応答を受け取ると、図１５に示すノードエリア情報に対し、電源オフまたはスリープしていることを追記する。
【００６１】
続いて、本実施形態の動作について図面を参照して詳細に説明する。分散アクセスノード３０Ｂの基本動作は、本発明の第１、２の実施形態と同様である（図７、図１３参照）。本実施形態では、ノード管理部３０２０が追加されたことにより、以下の動作が実施される。
【００６２】
図１６は、本発明の第３の実施形態の分散アクセスノード３０Ｂにおいて、上記タイマー部３０１０により所定の時間間隔で実行される動作を表したフローチャートである。
【００６３】
図１６のステップＣ１〜Ｃ４は、上記第２の実施形態の動作を説明した図１３のステップＢ１〜Ｂ４に対応する。クライアント管理情報の全エントリのチェックが完了すると、ノードエリア情報管理部３００６は、クライアント管理情報の更新を行う（ステップＣ５）。具体的には、ステップＣ３のエントリの削除の結果を踏まえて、エリアＡ〜Ｄをカバーするノードの数を最小化するようにノードとエリアの対応関係の見直しを行う。
【００６４】
前記見直しは、以下のような手順で行うことができる。１つのノードが扱うエリアの数は１つ以上とし、エリアの数が０なら、当該ノードは不要であると判定する。また。地理的に隣接しあうエリアに存在するクライアントノードの合計数が、１つのノードが管理可能なクライアントノードの数（ここでは、６とする。）以下であれば、これら地理的に隣接しあうエリア群をまとめて１つのノードに管理させる。隣り合うエリアは、これらのエリアに位置するクライアントノードの数が、１つのノードが管理可能なクライアントノードの数の上限値となるまでをまとめることができる。例えば、図６のエリアＡ〜Ｄに位置するクライアントノードの数が全部で６であれば、１つのノードでエリアＡ〜Ｄをカバーすることができ、その他のノードは不要となる。
【００６５】
図１６のステップＣ５のクライアント管理情報の更新の結果、不要なノード（関連付けられているクライアントノードの数が０であるノード）があるか否かを確認し（ステップＣ６）、不要なノードがあれば、当該不要なノードの電源オフ制御、または、動作モードの変更（省電力モード、スリープモード等）等が行われる（ステップＣ７）。
【００６６】
なお、電源オフ制御、または、動作モードの変更（省電力モード、スリープモード等）等が行われたノードに関して、ノード管理部３０２０が、再度電源オンまたは動作モードの変更を行うようにしてもよい。例えば、本発明の第１の実施形態のステップＡ５において、ノードエリア情報管理部３００６に、各ノードが格納可能なデータの数に余力があるか否かを判断させてもよい。例えば、図６に示すように、３台のノードが格納可能なデータの数をすべて使い切っている状態にある場合、ノードエリア情報管理部３００６から、ノード管理部３０２０に電源オン要求を発行させ、例えば、ノード５２の電源をオンにするようにしてもよい。
【００６７】
以上のようなノードの稼動状況に応じたノードエリア情報の見直しを行う本実施形態によれば、第１、第２の実施形態の効果に加えて、消費電力の低減等の効果が達成される。
【００６８】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態では、各ノードが格納可能なデータ数（管理可能なクライアントノード数）は、６であるものとして説明したが、閾値情報は、上記の例に限られない。例えば、各ノードの性能に応じて変更してもよいし、時間帯に応じて動的に変更してもよい。
【００６９】
また、上記した実施形態では、クライアントノードの数と送信データの数は同じであるものとして説明したが、各ノードにおいて、クライアントノードから送信された過去のデータも保持する必要がある場合には、クライアントノードの数よりも、送信データの数（上限値）の方が大きくなる。
【００７０】
また、上記した実施形態では、クライアントノードの数や送信データの数によって上限値（閾値情報）を定めるものとして説明したが、バイト数などデータ量によって上限値を定めてもよい。
【００７１】
また、上記した実施形態では、上限値（閾値情報）を定め、これを超えた場合に、ノードを追加するものとして説明したが、下限値（閾値情報）を定め、これを下回った場合に、隣接するノードのうち余力のあるノードに、前記下限値（閾値情報）を下回っているノードに管理されているクライアントノードを収容させるようにしてもよい。
【００７２】
また、上記した実施形態では、新規のクライアントノードからデータを受信したことを契機に、閾値情報との比較を行うものとして説明したが、新規のクライアントノードからデータの受信時には閾値情報との比較を行わず、所定の時間間隔など、所定の契機で、クライアントノードからの送信データが前記閾値情報の範囲に収まっているかどうかを確認するようにしてもよい。
【００７３】
また、分散アクセスノードに、クライアントノードが隣のエリアに移動したことを検出する機能を持たせ、その都度、クライアント管理情報を更新するようにしてもよい。このようにすれば、クライアントノードからのデータの受信を待たずに、当該クライアントノードからのデータを移動後のノードに格納することができる。
【００７４】
また、分散アクセスノードに、クライアントノードの動作状態の変化を検出する機能を持たせ、クライアント管理情報から、非動作状態となったクライアントノードのエントリを削除するようにしてもよい。このようにすれば、クライアント管理情報のエントリ数を削減するとともに、これらノードに割り当てるノードの数を減少させることができる。
【００７５】
また、上記した実施形態では、クライアントノードから送信されたデータに含まれ、あるいは、添付されているデータに基づいて各クライアントノードの位置を特定するものとしているが、別の主体からクライアントノードの位置を取得する構成も採用可能である。例えば、クライアントノードが、携帯電話端末等である場合、その位置管理サーバ等に対し、位置情報を受け取ることができる。
【００７６】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点によるデータ配置システム参照）
［第２の形態］
第１の形態のデータ配置システムにおいて、
前記エリア特定部は、クライアントノードから送信されたデータに含まれる情報または前記データに添付された情報に基づいて前記クライアントノードの位置するエリアを特定するデータ配置システム。
［第３の形態］
第１または第２の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、
所定の契機で、前記個々のノードにおいて格納されている前記クライアントノードからの送信データが、個々のノードまたは個々のエリア毎に定められた閾値情報の範囲に収まっているか否かを確認する格納状態判定部と、
前記格納状態判定部の確認結果に基づいて、個々のノードにおいて格納されている前記クライアントノードからの送信データが前記閾値情報の範囲に収まるよう、前記ノードエリア情報を更新するノードエリア情報管理部と、
を備えるデータ配置システム。
［第４の形態］
第３のデータ配置システムにおいて、
前記閾値情報として、個々のノードの処理能力に応じた値が設定されるデータ配置システム。
［第５の形態］
第４の形態のデータ配置システムにおいて、
前記閾値情報は、個々のノードが保有する記憶領域またはＣＰＵ速度に基づいて算出されるデータ配置システム。
［第６の形態］
第４または第５の形態のデータ配置システムにおいて、
前記閾値情報は、システム構築時における前記個々のノードからのネットワーク接続時の通知に含まれる情報に基づいて算出されるデータ配置システム。
［第７の形態］
第３から第６いずれか一の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、
前記特定されたノードと、前記クライアントノードとを対応付けたクライアント管理情報を保持するクライアント監視部を備え、
データの送信元が、前記クライアント管理情報に登録されているクライアントノードである場合、前記閾値情報による確認を省略するデータ配置システム。
［第８の形態］
第７の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、前記クライアントノードが隣のエリアに移動したことを検出し、前記検出結果に応じて、前記クライアント管理情報を更新する機能を備え、
前記クライアントノードからの送信データの受信を待たずに、前記クライアントノードからの送信データの格納先を変更するデータ配置システム。
［第９の形態］
第７または第８の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、前記クライアントノードの動作状態の変化を検出し、前記検出結果に応じて、前記クライアント管理情報から、非動作状態となったクライアントノードのエントリを削除する機能を備えるデータ配置システム。
［第１０の形態］
第７から第９いずれか一の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、
所定の時間間隔で、前記クライアント管理情報のエントリのうち、所定の削除条件を満たしたエントリを削除するデータ削除部を備えるデータ配置システム。
［第１１の形態］
第３から第１０いずれか一の形態のデータ配置システムにおいて、
前記ノードエリア情報管理部は、前記閾値情報の範囲に収まる範囲で、一のノードに複数のエリアを関連付けるデータ配置システム。
［第１２の形態］
第１から第１０いずれか一の形態のデータ配置システムにおいて、
前記分散アクセスノードは、さらに、
前記クライアントノードからの送信データを格納していないノードを、電源オフ状態または休止状態に遷移させるノード管理部を備えるデータ配置システム。
［第１３の形態］
第１２の形態のデータ配置システムにおいて、
前記ノードエリア情報管理部は、前記ノードエリア情報の更新の際に、前記各ノードにデータを格納する余力があるか否かを判断し、前記余力が不足する場合、前記ノード管理部に対し、ノードの追加を要求し、
前記ノード管理部は、前記要求に応じて、前記クライアントノードからの送信データを格納していないノードを、電源オン状態または稼動状態に遷移させるデータ配置システム。
［第１４の形態］
（上記第２の視点による分散アクセスノード参照）
［第１５の形態］
（上記第３の視点によるデータ配置方法参照）
［第１６の形態］
（上記第４の視点によるプログラム参照）
なお、上記した第１４〜第１６の形態は、第２〜第１３の形態と同様に、派生する形態に展開することが可能である。
なお、前述の特許文献の開示を、本書に引用をもって繰り込むものとする。
本発明の全開示（請求の範囲および図面を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲および図面の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７７】
１１、１２、１３、１４  クライアントノード
２０                    ネットワーク
３０、３０Ａ、３０Ｂ    分散アクセスノード
４０                    分散システムネットワーク
５１、５２、５３、５４  ノード
３００１                格納状態判定部
３００２、３００２ａ    ノードエリア情報保持部
３００３                エリア特定部
３００４                ノード特定部
３００５、３００５ａ    クライアント監視部
３００６                ノードエリア情報管理部
３０１０                タイマー部
３０１１                データ削除部
３０２０                ノード管理部
３０７０                ＣＰＵ
３０７１                ＲＡＭ
３０７２                ＨＤＤ
３０７３                入出力部
【図１】
0006015660.tif 000002
【図２】
0006015660.tif 000003
【図３】
0006015660.tif 000004
【図４】
0006015660.tif 000005
【図５】
0006015660.tif 000006
【図６】
0006015660.tif 000007
【図７】
0006015660.tif 000008
【図８】
0006015660.tif 000009
【図９】
0006015660.tif 000010
【図１０】
0006015660.tif 000011
【図１１】
0006015660.tif 000012
【図１２】
0006015660.tif 000013
【図１３】
0006015660.tif 000014
【図１４】
0006015660.tif 000015
【図１５】
0006015660.tif 000016
【図１６】
0006015660.tif 000017