(57)【要約】【課題】参照関係のある親データと子データを同一のメモリに格納し、それらデータの増減によって生じる各メモリでのデータ使用量の偏りを解消すること。【解決手段】予め保持している対応表を参照し、処理要求に含まれるデータと参照関係のあるデータが登録されているデータベースを確認する。また、各データベースに登録されているデータの登録件数に基づいて処理要求を適切なデータベースに振り分け、既に登録されているデータを各データベースのメモリに再配置する。【選択図】図１
2014203376.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースに対してデータの処理要求を振り分けるデータ処理要求振分装置において、
各データベースの識別子と、前記各データベースのいずれかに記憶されている各親データを識別する識別子と、前記各親データに紐付く子データの記憶件数とを対応付けた対応表データを記憶しておく記憶手段と、
前記記憶手段から読み出した対応表データを用いて、受け付けた処理要求に含まれる子データと参照関係のある親データを記憶しているデータベースを決定する参照手段と、
前記処理要求に含まれるデータの親子種別及び／又は処理内容に応じて前記対応表データにレコードを追加若しくは削除し、又は前記記憶件数を更新する更新手段と、
前記決定されたデータベースに前記処理要求を送信する振分手段と、
を有することを特徴とするデータ処理要求振分装置。
【請求項２】
前記参照手段は、
前記データの親子種別が親であり、前記処理内容がデータの追加である場合、前記対応表データを用いて親データと子データの合計件数をデータベース毎に計算し、当該合計件数が最小のデータベースを振分先として決定することを特徴とする請求項１記載のデータ処理要求振分装置。
【請求項３】
前記記憶手段は、過去に受け付けた各処理要求に含まれる親データ及び／又は子データをマスタデータとして記憶しておき、
前記参照手段は、前記処理内容がデータの再配置である場合、前記対応表データにおける子データの記憶件数が降順又は昇順になるように各親データの識別子を並び替え、
前記更新手段は、並び替えられた各親データの識別子に対して先頭から順に前記データベースの識別子を振り直し、
前記振分手段は、
前記振り直しによる更新後の対応表データに適合するように各データベースに前記マスタデータを送信することを特徴とする請求項１又は２記載のデータ処理要求振分装置。
【請求項４】
前記データベースは、主副２つの記憶媒体を備えたデータベースであって、
前記振分手段は、
前記マスタデータを副記憶媒体に記憶させ、使用する記憶媒体を主記憶媒体から前記副記憶媒体に切り替えさせ、前記主記憶媒体に記憶しているデータを削除させることを特徴とする請求項３記載のデータ処理要求振分装置。
【請求項５】
コンピュータを請求項１乃至４のいずれかに記載のデータ処理要求振分装置として機能させるためのデータ処理要求振分プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースに対してデータの処理要求を振り分ける技術に関する。
【背景技術】
【０００２】
記憶容量の上限という制約から、例えば数テラバイトの大規模なデータをメモリに格納する場合、そのデータを分割して複数のメモリにそれぞれ記憶させる方法が用いられる。データを複数のメモリに分けて格納するため、そのデータに係る処理負荷を複数のデータベースに分散することができる。
【０００３】
一方、処理負荷を分散することにより、データベース毎に処理負荷が偏ってしまう。これについて、特許文献１によれば、メモリ上のデータ配置を最適化する方法を提供し、非特許文献１によれば、トランザクション処理に係るメモリ使用量を推定し、それに基づいて全体の処理負荷を均等化する方法を提供している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２３８０７２号公報
【非特許文献】
【０００５】
【非特許文献１】Sameh Elnikety、外２名、“Tashkent+: Memory-Aware Load Balancing and Update Filtering in Replicated Databases”、SIGOPS Oper. Syst. Rev.、Vol.41、No.3、2007年、p.399-412
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、参照関係のある親データと子データを同一のメモリに記憶させなければならない場合、上述した処理負荷の分散以外に、メモリ使用量の分散を考慮する必要がある。
【０００７】
例えば、コンテンツの配信サービスの場合、親データ（コンテンツ情報）は、ラウンドロビン等の既存分割方法を用いて複数のメモリに順次振り分けることにより、メモリ使用量を均等に分散させることができる。しかし、人気のあるコンテンツの親データが１つのメモリに集中した場合、それに紐付く膨大な子データ（コンテンツに対する感想情報等）も同じメモリに併せて格納されるため、容量の限界により子データを登録不能なメモリが出現してしまう。
【０００８】
本発明は、上記事情を鑑みてなされたものであり、参照関係のある親データと子データを同一の記憶媒体に格納することを第１の目的とし、それらデータの増減によって生じる各記憶媒体での記憶領域の使用量の偏りを改善することを第２の目的とする。
【課題を解決するための手段】
【０００９】
請求項１記載のデータ処理要求振分装置は、複数のデータベースに対してデータの処理要求を振り分けるデータ処理要求振分装置において、各データベースの識別子と、前記各データベースのいずれかに記憶されている各親データを識別する識別子と、前記各親データに紐付く子データの記憶件数とを対応付けた対応表データを記憶しておく記憶手段と、前記記憶手段から読み出した対応表データを用いて、受け付けた処理要求に含まれる子データと参照関係のある親データを記憶しているデータベースを決定する参照手段と、前記処理要求に含まれるデータの親子種別及び／又は処理内容に応じて前記対応表データにレコードを追加若しくは削除し、又は前記記憶件数を更新する更新手段と、前記決定されたデータベースに前記処理要求を送信する振分手段と、を有することを要旨とする。
【００１０】
本発明によれば、各データベースの識別子と、各データベースのいずれかに記憶されている各親データを識別する識別子と、各親データに紐付く子データの記憶件数とを対応付けた対応表データを記憶しておき、その対応表データを用いて、受け付けた処理要求に含まれる子データと参照関係のある親データを記憶しているデータベースを決定し、決定されたデータベースに当該処理要求を送信するため、参照関係のある親データと子データを同一の記憶媒体に格納することができる。
【００１１】
請求項２記載のデータ処理要求振分装置は、請求項１記載のデータ処理要求振分装置において、前記参照手段は、前記データの親子種別が親であり、前記処理内容がデータの追加である場合、前記対応表データを用いて親データと子データの合計件数をデータベース毎に計算し、当該合計件数が最小のデータベースを振分先として決定することを要旨とする。
【００１２】
本発明によれば、データの親子種別が親であり、処理内容がデータの追加である場合、対応表データを用いて親データと子データの合計件数をデータベース毎に計算し、その合計件数が最小のデータベースを振分先として決定するため、参照関係のある親データと子データを同一の記憶媒体に格納しつつ、親データを追加する際、常にデータ使用量の少ないデータベースに登録することができる。
【００１３】
請求項３記載のデータ処理要求振分装置は、請求項１又は２記載のデータ処理要求振分装置において、前記記憶手段は、過去に受け付けた各処理要求に含まれる親データ及び／又は子データをマスタデータとして記憶しておき、前記参照手段は、前記処理内容がデータの再配置である場合、前記対応表データにおける子データの記憶件数が降順又は昇順になるように各親データの識別子を並び替え、前記更新手段は、並び替えられた各親データの識別子に対して先頭から順に前記データベースの識別子を振り直し、前記振分手段は、前記振り直しによる更新後の対応表データに適合するように各データベースに前記マスタデータを送信することを要旨とする。
【００１４】
本発明によれば、過去に受け付けた各処理要求に含まれる親データ及び／又は子データをマスタデータとして記憶しておき、各親データの識別子に対して先頭から順にデータベースの識別子を振り直し、その振り直しによる更新後の対応表データに適合するように各データベースにマスタデータを送信するため、参照関係のある親データと子データを同一の記憶媒体に格納しつつ、これまでのデータの増減によって生じる各データベースでのデータ使用量の偏りを一括解消することができる。
【００１５】
請求項４記載のデータ処理要求振分装置は、請求項３記載のデータ処理要求振分装置において、前記データベースは、主副２つの記憶媒体を備えたデータベースであって、前記振分手段は、前記マスタデータを副記憶媒体に記憶させ、使用する記憶媒体を主記憶媒体から前記副記憶媒体に切り替えさせ、前記主記憶媒体に記憶しているデータを削除させることを要旨とする。
【００１６】
本発明によれば、マスタデータを副記憶媒体に記憶させ、使用する記憶媒体を主記憶媒体から副記憶媒体に切り替えさせ、主記憶媒体に記憶しているデータを削除させるため、参照関係のある親データと子データを同一の記憶媒体に格納しつつ、各データベースでのデータ使用量の偏りを無中断で一括解消することができる。
【００１７】
請求項５記載のデータ処理要求振分プログラムは、コンピュータを請求項１乃至４のいずれかに記載のデータ処理要求振分装置として機能させることを要旨とする。
【発明の効果】
【００１８】
本発明によれば、参照関係のある親データと子データを同一の記憶媒体に格納することができ、それらデータの増減によって生じる各記憶媒体での記憶領域の使用量の偏りを解消することができる。
【図面の簡単な説明】
【００１９】
【図１】データ処理要求振分システムの全体構成を示す図である。
【図２】処理要求の種別を示す図である。
【図３】データ処理要求振分システムの処理フローを示す図である。
【図４】対応表の例を示す図である。
【図５】対応表参照部の処理フローを示す図である。
【図６】仮想表の例を示す図である。
【図７】子データ件数で降順に並び替えた対応表を示す図である。
【図８】対応表更新部の処理フローを示す図である。
【図９】親データ追加時の対応表を示す図である。
【図１０】子データ追加時の対応表を示す図である。
【図１１】親データ削除時の対応表を示す図である。
【図１２】子データ削除時の対応表を示す図である。
【図１３】データベース識別子の再割当て後の対応表を示す図である。
【図１４】データベース増設時におけるデータベース識別子の再割当て後の対応表を示す図である。
【図１５】データベース減設時におけるデータベース識別子の再割当て後の対応表を示す図である。
【発明を実施するための形態】
【００２０】
本発明は、予め保持している対応表を参照し、処理要求に含まれるデータと参照関係のあるデータが登録されているデータベースを確認することにより、参照関係のある親データと子データを同一のメモリに格納するようにしている。
【００２１】
また、各データベースに登録されているデータの登録件数に基づいて処理要求を適切なデータベースに振り分けることや、既に登録されているデータを各データベースのメモリに再配置することにより、各データベースのメモリ使用量を均一化するようにしている。
【００２２】
以下、本発明を実施する一実施の形態について図面を用いて説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。
【００２３】
図１は、データ処理要求振分システムの全体構成を示す図である。データ処理要求振分システムは、データの処理を要求する処理入力装置１０と、受け付けたデータの処理要求をいずれかのデータベースに振り分けるデータ処理要求振分装置１００と、振り分けられた処理要求に基づいてデータを処理する複数のデータベース２００〜４００とで構成される。
【００２４】
尚、データの処理要求とは、その処理要求に含まれるデータをデータベース内のメモリに追加し、更新し、又は削除する要求や、既にメモリに登録されているデータを各データベースのメモリに再配置する要求である。本実施の形態では、図２に示す各種別の処理要求を用いる。
【００２５】
続いて、データ処理要求振分装置１００の機能について説明する。データ処理要求振分装置１００は、処理要求受付部１１０と、マスタデータ登録部１２０と、記憶部１３０と、対応表参照部１４０と、対応表更新部１５０と、マスタデータ取得部１６０と、処理振分部１７０とで構成される。以下、それら各部の特徴的機能について説明し、それ以外については後述の処理フロー内で説明する。
【００２６】
処理要求受付部１１０は、処理入力装置１０から送信されたデータの処理要求を受け付ける機能を有している。
【００２７】
マスタデータ登録部１２０は、受け付けた処理要求の処理種別がデータ登録の場合に、その処理要求に含まれるデータ本体を記憶部１３０のマスタデータベース１３１に記憶させる機能を有している。
【００２８】
記憶部１３０は、過去に受け付けた各処理要求に含まれるデータ本体（親データや子データ）をマスタデータとしてマスタデータベース１３１に記憶する機能を有している。また、各データベース２００〜４００を識別するデータベース識別子と、各データベース２００〜４００のいずれかに登録されている各親データを識別する親データ識別子と、各親データに紐付く子データが登録されている子データ件数とを対応付けた対応表１３２を記憶する機能を有している。
【００２９】
対応表参照部１４０は、対応表１３２を参照し、受け付けた処理要求に含まれるデータと参照関係のあるデータを登録しているデータベースを決定する機能を有している。また、特に親データを新規に追加する場合（データ種別が親データであり、登録種別がデータの追加である場合）には、対応表１３２を用いて親データと子データの登録件数をデータベース毎に合計し、その合計件数が最小のデータベースを振分先のデータベースとして決定する機能を有している。
【００３０】
対応表更新部１５０は、受け付けた処理要求に含まれるデータのデータ種別や登録種別に応じて、対応表１３２にレコードを追加し若しくは削除し、又は子データ件数を更新する機能を有している。また、受け付けた処理要求の処理種別が再配置の場合には、対応表１３２の各親データ識別子に対してデータベース識別子を振り直す機能を有している。
【００３１】
マスタデータ取得部１６０は、受け付けた処理要求の処理種別が再配置の場合に、記憶部１３０のマスタデータベース１３１からマスタデータを取得する機能を有している。
【００３２】
処理振分部１７０は、対応表参照部１４０により決定されたデータベースに対して、受け付けたデータの処理要求を送信する機能を有している。また、受け付けた処理要求の処理種別が再配置の場合には、対応表更新部１５０により更新された対応表１３２に適合するように各データベースにマスタデータを送信する機能を有している。
【００３３】
続いて、各データベース２００〜４００の機能について説明する。各データベース２００〜４００は、冗長化された２つのメモリ（主メモリ領域と副メモリ領域）を備え、データ処理要求振分装置１００から送信されたデータの処理要求に応じてデータをメモリに追加、更新、又は削除する機能や、使用するメモリを切り替える機能を有している。
【００３４】
次に、データ処理要求振分システムの動作について説明する。図３は、データ処理要求振分システムの処理フローを示すフローチャートである。但し、親子間のデータのサイズには極端な差がないものとし、現在の対応表は図４に示す状態とする。尚、Ｂ２００、Ｃ３００、Ｄ４００は、それぞれ、データベース２００〜４００の識別子である。
【００３５】
まず、処理要求受付部１１０は、要求受け付け可能状態であれば処理入力装置１０から処理要求を受信する（Ｓ１００）。但し、処理要求受付部１１０が処理中（要求受け付け不可状態）であれば、処理入力装置１０からの処理要求に対してエラー応答を返却する。
【００３６】
次に、処理要求受付部１１０は、受信した処理要求の処理種別を判定する（Ｓ２００）。処理種別がデータ登録（データの追加、データの更新、データの削除のいずれか）である場合、マスタデータ登録部１２０に処理要求を送信する（Ｓ３００のＹＥＳ）。一方、処理種別が再配置である場合、対応表参照部１４０に処理要求を送信する（Ｓ３００のＮＯ）。
【００３７】
次に、マスタデータ登録部１２０は、処理要求受付部１１０から処理要求を受け取り、記憶部１３０のマスタデータベース１３１に対して、そのデータベースに合った要求電文に加工した処理要求を送信する。マスタデータベース１３１は、受信した処理要求に従いデータを登録し、データ登録の完了後に、マスタデータ登録部１２０にマスタデータ登録完了応答を返却する。マスタデータ登録部１２０は、マスタデータベース１３１からマスタデータ登録完了応答を受信した場合、対応表参照部１４０に処理要求を送信する（Ｓ４００）
次に、対応表参照部１４０は、処理要求受付部１１０又はマスタデータ登録部１２０から処理要求を受信し、記憶部１３０の対応表１３２を参照する処理又は並べ替える処理を実行する（Ｓ５００）。
【００３８】
ここで、図５を参照しながら、対応表参照部１４０の具体的な処理内容について説明する。
【００３９】
まず、処理種別がデータ登録であり（Ｓ５１０のＹＥＳ）、登録種別がデータの追加である場合（Ｓ５２０のＹＥＳ）、データ本体が親データであれば（Ｓ５３０のＮＯ）、記憶部１３０の対応表１３２（図４）からデータベース識別子と親子のデータ件数とを列に持つビュー（実体のある表から任意のデータを選択して生成する仮想的な仮想表（図６））を生成し、その件数が最小のデータベース識別子を取得し（Ｓ５４０）、対応表更新部１５０に処理要求（データ本体、データ種別（親）、処理種別（データ登録（データの追加）））とデータベース識別子とを送信する（Ｓ５７０）。
【００４０】
また、データ本体が子データであれば（Ｓ５３０のＹＥＳ）、子データに含まれる参照先の親データの識別子を対応表１３２から検索し、該当行の持つデータベース識別子を取得し（Ｓ５５０）、対応表更新部１５０に処理要求（データ本体、データ種別（子）、処理種別（データ登録（データの追加）））とデータベース識別子とを送信する（Ｓ５７０）。
【００４１】
また、処理種別がデータ登録であり（Ｓ５１０のＹＥＳ）、登録種別がデータの更新又は削除である場合（Ｓ５２０のＮＯ）、データ本体に含まれる親データの識別子を対応表１３２から検索し、該当行の持つデータベース識別子を取得し（Ｓ５５０）、対応表更新部１５０に処理要求（データ本体、データ種別（親又は子）、処理種別（データ登録（データの更新又は削除）））とデータベース識別子とを送信する（Ｓ５７０）。
【００４２】
一方、処理種別が再配置である場合（Ｓ５１０のＮＯ）、対応表１３２を子のデータ件数で降順（昇順も可）に並べ替え（Ｓ５６０）（図７）、対応表更新部１５０に処理要求（処理種別（再配置））を送信する（Ｓ５７０）。
【００４３】
次に、対応表更新部１５０は、対応表参照部１４０から処理要求とデータベース識別子を受信し又は処理要求のみを受信し、記憶部１３０の対応表１３２を書き換える処理を実行する（Ｓ６００）。
【００４４】
ここで、図８を参照しながら、対応表更新部１５０の具体的な処理内容について説明する。
【００４５】
まず、処理種別がデータ登録（Ｓ６１０のＹＥＳ）、登録種別がデータの追加であり（Ｓ６２０）、データ種別が親である場合（Ｓ６３０のＮＯ）、対応表１３２に対して１行追記し、追記後の対応表を仮更新状態対応表とする（Ｓ６３１）。
【００４６】
尚、この１行には、親データの識別子と、受信したデータベース識別子と、子のデータ件数（０）とが含まれる。例えば、図９に示すように、０００ｈの識別子を持つ親データを追加する場合、０００ｈの親データ識別子と、親子データの合計件数が最小のデータベースであるＢ２００のデータベース識別子と、０件の子データ件数との行が追記される。
【００４７】
そして、追記完了後、対応表更新部１５０は、処理振分部１７０に処理要求（データ本体、処理種別（データ登録（データの追加）））とデータベース識別子とを送信する（Ｓ６５０、Ｓ７００のＹＥＳ）。
【００４８】
また、処理種別がデータ登録（Ｓ６１０のＹＥＳ）、登録種別がデータの追加であり（Ｓ６２０）、データ種別が子である場合（Ｓ６３０のＹＥＳ）、対応表１３２の親データの識別子をもつ行の子のデータ件数に１を加算し、加算後の対応表を仮更新状態対応表とする（Ｓ６３２）。例えば、図１０に示すように、０００ｃの親データ識別子を参照先に持つ子データを追加する場合、その子データ件数に１を加算する。
【００４９】
そして、加算完了後、対応表更新部１５０は、処理振分部１７０に処理要求（データ本体、処理種別（データ登録（データの追加）））とデータベース識別子とを送信する（Ｓ６５０、Ｓ７００のＹＥＳ）。
【００５０】
また、処理種別がデータ登録（Ｓ６１０のＹＥＳ）、登録種別がデータの更新である場合（Ｓ６２０）、処理振分部１７０に処理要求（データ本体、処理種別（データ登録（データの更新）））とデータベース識別子とを送信する（Ｓ６５０、Ｓ７００のＹＥＳ）。
【００５１】
また、処理種別がデータ登録（Ｓ６１０のＹＥＳ）、登録種別がデータの削除であり（Ｓ６２０）、データ種別が親である場合（Ｓ６４０のＮＯ）、対応表１３２の親データの識別子をもつ行を１行削除し、削除後の対応表を仮更新状態対応表とする（Ｓ６４１）。
【００５２】
尚、この１行には、親データの識別子と、データベース識別子と、子のデータ件数とが含まれる。例えば、図１１に示すように、０００ｄの識別子を持つ親データを削除する場合、その対象の１行を削除する。
【００５３】
そして、削除完了後、対応表更新部１５０は、処理振分部１７０に処理要求（データ本体、処理種別（データ登録（データの削除）））とデータベース識別子とを送信する（Ｓ６５０、Ｓ７００のＹＥＳ）。
【００５４】
また、処理種別がデータ登録（Ｓ６１０のＹＥＳ）、登録種別がデータの削除であり（Ｓ６２０）、データ種別が子である場合（Ｓ６４０のＹＥＳ）、対応表１３２の親データの識別子をもつ行の子のデータ件数から１を減算し、減算後の対応表を仮更新状態対応表とする（Ｓ６４２）。例えば、図１２に示すように、０００ｅの親データ識別子を参照先に持つ子データを削除する場合、その子データ件数から１を減算する。
【００５５】
そして、減算完了後、対応表更新部１５０は、処理振分部１７０に処理要求（データ本体、処理種別（データ登録（データの削除）））とデータベース識別子とを送信する（Ｓ６５０、Ｓ７００のＹＥＳ）。
【００５６】
一方、処理種別が再配置である場合（Ｓ６１０のＮＯ）、子のデータ件数で並べ替えられた対応表１３２に対して、先頭から順にデータベース識別子を振り直す処理を実行する（Ｓ６６０）。
【００５７】
具体的には、各データベース２００〜４００にデータを分散させる場合は、３つのデータベースの識別子をラウンドロビンで順番に割り当てる（図１３）。このとき、識別子がＥ５００のデータベースを１台増設する場合は、４つのデータベースの識別子をラウンドロビンで順番に割り当てる（図１４）。また、各データベース２００〜４００のいずれか１台（例えば、識別子がＤ４００のデータベース）を減設する場合は、残り２つのデータベースの識別子をラウンドロビンで順番に割り当てる（図１５）。これにより、データベースの増減設を同時に実現することができる。
【００５８】
識別子割り当て後の対応表を仮更新状態対応表とし、データベース識別子の割り当て後、対応表更新部１５０は、マスタデータ取得部１６０にマスタデータ取得要求を送信する（Ｓ６７０、Ｓ７００のＮＯ）。
【００５９】
次に、マスタデータ取得部１６０は、対応表更新部１５０からマスタデータ取得要求を受信し、記憶部１３０にマスタデータ取得要求を送信する（Ｓ７１０）。
【００６０】
次に、記憶部１３０は、マスタデータ取得部１６０からマスタデータ取得要求を受信した場合、仮更新状態の対応表１３２を参照し、１つのデータベースの識別子に対応する親データの識別子の集合を取得する。そして、マスタデータベース１３１に対して、取得した親データの識別子を持つ親データと子データのデータ本体の集合を取得する（Ｓ８００）。
【００６１】
データ本体の集合取得完了後、記憶部１３０は、マスタデータ取得部１６０にデータ本体の集合を含むマスタデータ取得完了応答を返却する。そして、マスタデータ取得部１６０は、記憶部１３０からマスタデータ取得完了応答を受信した場合、処理振分部１７０に処理要求（データ本体の集合、処理種別（再配置（データの追加）））とデータベース識別子とを送信する。
【００６２】
その後、処理振分部１７０は、対応表更新部１５０からは、処理要求としてデータ本体と、処理種別と、データベース識別子との組み合わせを受信し、マスタデータ取得部１６０からは、処理要求としてデータ本体の集合と、処理種別と、データベース識別子との組み合わせ、又はメモリ切り替え要求（後述）を受信する。
【００６３】
次に、処理振分部１７０は、対応表更新部１５０から処理要求を受信した場合（処理種別がデータ登録である場合）、受信したデータベース識別子を登録先データベースに指定し、指定されたデータベース（データベース２００〜４００のいずれか）にデータ本体の登録要求（追加、更新、削除のいずれか）を送信する（Ｓ９００）。
【００６４】
一方、マスタデータ取得部１６０から処理要求を受信した場合（処理種別が再配置で操作種別がデータの追加である場合）、受信したデータベース識別子を登録先データベースに指定し、指定されたデータベースにデータ本体の集合の登録要求（データの追加）を送信する（Ｓ９００）。
【００６５】
このとき、データ本体の集合は親データ集合と子データ集合に分割し、親データ集合の追加完了後に子データ集合の追加を実行する。また、データ本体の集合は、仮更新状態の対応表１３２に適合するように各データベースに送信する。例えば図１３に示した対応表の場合、０００ｆと０００ｂと０００ａとの識別子を持つ親データの集合とそれに紐付く子データの集合とをＢ２００のデータベース２００に送信する。
【００６６】
また、マスタデータ取得部１６０から処理要求を受信した場合（処理種別が再配置で操作種別がメモリ領域切り替えである場合）、分散している全データベース２００〜４００に対してメモリ領域切り替え要求を送信する（Ｓ９００）。
【００６７】
次に、各データベース２００〜４００は、データ処理要求振分装置１００からデータ登録又は再配置（データの追加）を受信した場合、主メモリ領域又は副メモリ領域にデータを登録し、その登録完了後、処理振分部１７０に登録完了応答を返却する（Ｓ１０００）。
【００６８】
一方、メモリ領域切り替え要求を受信した場合、使用するメモリを切り替え（主メモリ領域から副メモリ領域へ切り替え、又は副メモリ領域から主メモリ領域へ切り替え）、その切り替え処理完了後に、切り替え前のメモリに記憶されていたデータを消去し、処理振分部１７０にメモリ領域切り替え完了応答を返却する（Ｓ１０００）。
【００６９】
次に、処理振分部１７０は、各データベース２００〜４００から登録完了応答を受信した場合、データ受信元（登録要求元である対応表更新部１５０又はマスタデータ取得部１６０）に対して振り分け完了応答を返却する。一方、メモリ領域切り替え完了応答を受信した場合、マスタデータ取得部１６０に対してメモリ領域切り替え完了応答を返却する。
【００７０】
次に、マスタデータ取得部１６０は、処理振分部１７０から振り分け完了応答を受信した場合であっても、その受信回数が分散するデータベースの総数に満たない場合（Ｓ１１１０のＮＯ）にはＳ８００に戻る。但し、Ｓ８００の再処理中に仮更新状態の対応表１３２を参照する際は、前回とは異なる１つのデータベース識別子を選択する。一方、その受信回数が分散するデータベースの数と一致する場合にはＳ９００に戻り、処理振分部１７０に処理要求（処理種別（再配置（メモリ領域切り替え）））を送信する。
【００７１】
また、マスタデータ取得部１６０は、処理振分部１７０からメモリ切り替え完了応答を受信した場合、対応表更新部１５０に対して登録完了応答を返却する（Ｓ１１００のＹＥＳ）。
【００７２】
次に、対応表更新部１５０は、処理振分部１７０又はマスタデータ取得部１６０から振り分け完了応答又は登録完了応答を受信した場合、自機能部が直前に更新した仮更新状態の対応表１３２を確定させ、対応表参照部１４０に登録完了応答を返却する（Ｓ１１２０）。
【００７３】
次に、対応表参照部１４０は、対応表更新部１５０から登録完了応答を受信した場合、データ受信元（登録要求元である処理要求受付部１１０又はマスタデータ登録部１２０）に登録完了応答を返却する（Ｓ１１３０）。
【００７４】
次に、マスタデータ登録部１２０は、対応表参照部１４０から登録完了応答を受信した場合、マスタデータベース１３１の登録処理を確定させ、処理要求受付部１１０に登録完了応答を返却する（Ｓ１１４０）。
【００７５】
次に、処理要求受付部１１０は、対応表参照部１４０又はマスタデータ登録部１２０から登録完了応答を受信した場合、要求受け付けを可能状態に遷移させ、Ｓ１００に戻る（Ｓ１１５０）。
【００７６】
尚、分散配置された複数のデータベースが別のネットワーク上にある場合は、対応表１３２に記憶しているデータベースの識別子を、そのデータベースを有するサーバのネットワーク上のアドレス、ポート番号、ログインのためのユーザ識別子、パスワードなど、そのデータベースにアクセスするために必要な情報群と紐付けて記憶するものとする。
【００７７】
以上より、対応表１３２を参照して、参照関係のある親データと子データを同一のデータベースのメモリに配置しながら、分散するデータベースのメモリ使用量の偏りを無中断で解消することが可能となる。また、偏り解消処理中のメモリの切り替えのタイミングを利用することにより、データベースの増減設も無中断で行うことが可能となる。
【００７８】
つまり、本実施の形態によれば、各データベース２００〜４００を識別するデータベース識別子と、各データベース２００〜４００のいずれかに登録されている各親データを識別する親データ識別子と、各親データに紐付く子データが登録されている子データ件数とを対応付けた対応表１３２を記憶しておき、その対応表１３２を用いて、受け付けた処理要求に含まれる子データと参照関係のある親データを登録しているデータベースを決定し、決定されたデータベースに当該処理要求を送信するので、参照関係のある親データと子データを同一のメモリに格納することができる。
【００７９】
また、本実施の形態によれば、データ種別が親データであり、登録種別がデータの追加である場合、対応表１３２を用いて親データと子データの登録件数をデータベース毎に合計し、その合計件数が最小のデータベースを振分先のデータベースとして決定するので、参照関係のある親データと子データを同一のメモリに格納しつつ、親データを追加する際、常にデータ使用量の少ないデータベースに登録することができる。
【００８０】
また、本実施の形態によれば、過去に受け付けた各処理要求に含まれるデータ本体（親データや子データ）をマスタデータとして記憶しておき、各親データの識別子に対して先頭から順にデータベースの識別子を振り直し、その振り直しによる更新後の対応表１３２に適合するように各データベース２００〜４００にマスタデータを送信するので、参照関係のある親データと子データを同一の記憶媒体に格納しつつ、これまでのデータの増減によって生じる各データベース２００〜４００でのデータ使用量の偏りを一括解消することができる。
【００８１】
また、本実施の形態によれば、マスタデータを副又は主メモリ領域に記憶させ、使用するメモリを主又は副メモリ領域から副又は主メモリ領域に切り替えさせ、主又は副メモリ領域に記憶していたデータを削除させるので、参照関係のある親データと子データを同一の記憶媒体に格納しつつ、各データベース２００〜４００でのデータ使用量の偏りを無中断で一括解消することができる。
【００８２】
最後に、本実施の形態で説明したデータ処理要求振分装置１００は、メモリやＣＰＵを備えたコンピュータで実現できる。また、各機能部の処理は、それらを実行可能なプログラムにより実現できる。
【符号の説明】
【００８３】
１０…処理入力装置
１００…データ処理要求振分装置
１１０…処理要求受付部
１２０…マスタデータ登録部
１３０…記憶部
１３１…マスタデータベース
１３２…対応表データ
１４０…対応表参照部
１５０…対応表更新部
１６０…マスタデータ取得部
１７０…処理振分部
２００〜４００…データベース
Ｓ１００〜Ｓ１１５０…ステップ
【図１】
2014203376.tif 000003
【図２】
2014203376.tif 000004
【図３】
2014203376.tif 000005
【図４】
2014203376.tif 000006
【図５】
2014203376.tif 000007
【図６】
2014203376.tif 000008
【図７】
2014203376.tif 000009
【図８】
2014203376.tif 000010
【図９】
2014203376.tif 000011
【図１０】
2014203376.tif 000012
【図１１】
2014203376.tif 000013
【図１２】
2014203376.tif 000014
【図１３】
2014203376.tif 000015
【図１４】
2014203376.tif 000016
【図１５】
2014203376.tif 000017