(57)【要約】【課題】効率的にデータを同期する。【解決手段】各データベース装置１０ａ〜１０ｄは、サイズが異なるレコードをそれぞれ有する複数のデータテーブルを記憶する記憶部１１１と、各データテーブルが有するレコードのサイズの順位を分析する順位分析手段１０１と、順位の昇順でのサイズの変化量をそれぞれ求め、求めた変化量の重心の値を算出する重心算出手段１０２と、レコードのサイズの最小値の順位と重心の値との差分である第１差分値と、レコードのサイズの最大値の順位と重心の値との差分である第２差分値とを求め、当該第１差分値と当該第２差分値との比率を算出し、求めた比率を各転送データが含む第１のレコードと、当該第１のレコードよりサイズが大きい第２のレコードの比率とする比率算出手段１０３と、算出された比率で形成された各データを他のデータベースに転送する転送手段１０５とを備える。【選択図】図４
2015156119.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベース装置が接続され、いずれかのデータベース装置で記憶されるデータを他のデータベース装置に送信し、送信されたデータを前記複数のデータベース装置で同期して記憶する分散データベースシステムであって、
前記各データベース装置は、
サイズが異なるレコードをそれぞれ有する複数のデータテーブルを記憶する記憶部と、
前記記憶部に記憶される各データテーブルが有するレコードのサイズの順位を分析する順位分析手段と、
前記順位分析手段が分析した順位の昇順でのサイズの変化量をそれぞれ求め、求めた変化量の重心の値を算出する重心算出手段と、
レコードのサイズの最小値の順位と前記重心算出手段が算出した重心の値との差分である第１差分値と、レコードのサイズの最大値の順位と前記重心の値との差分である第２差分値とを求め、当該第１差分値と当該第２差分値との比率を算出し、求めた比率を各転送データが含む第１のレコードと、当該第１のレコードよりサイズが大きい第２のレコードの比率とする比率算出手段と、
前記比率算出手段で算出された比率で形成された各データを他のデータベースに転送する転送手段と、
を備えることを特徴とする分散データベースシステム。
【請求項２】
複数のデータベース装置が接続され、いずれかのデータベース装置で記憶されるデータを他のデータベース装置に送信し、送信されたデータを前記複数のデータベース装置で同期して記憶する分散データベースシステムにおける前記データベース装置であって、
サイズが異なるレコードを有する複数のデータテーブルを記憶する記憶部と、
前記記憶部に記憶される各データテーブルが有するレコードのサイズの順位を分析する順位分析手段と、
順位の昇順でのサイズの変化量をそれぞれ求め、求めた変化量の重心の値を算出する重心算出手段と、
レコードのサイズの最小値の順位と前記重心算出手段が算出した重心の値との差分である第１差分値と、レコードのサイズの最大値の順位と前記重心の値との差分である第２差分値とを求め、当該第１差分値と当該第２差分値との比率を算出し、求めた比率を各転送データが含む第１のレコードと、当該第１のレコードよりサイズが大きい第２のレコードの比率とする比率算出手段と、
前記比率算出手段で算出された比率で形成された各データを他のデータベースに転送する転送手段と、
を備えることを特徴とするデータベース装置。
【請求項３】
複数のデータベース装置が接続される分散データベースシステムにおいて、いずれかのデータベース装置で記憶されるデータを他のデータベース装置に送信し、送信されたデータを前記複数のデータベース装置で同期するデータ同期方法であって、
テーブル記憶部に記憶され、サイズが異なるレコードを有する複数のデータテーブルが有するレコードのサイズの順位を分析するステップと、
順位の昇順でのサイズの変化量をそれぞれ求めるステップと、
求めた変化量の重心の値を算出するステップと、
レコードのサイズの最小値の順位と前記重心の値との差分である第１差分値と、レコードのサイズの最大値の順位と前記重心の値との差分である第２差分値とを求めるステップと、
前記第１差分値と前記第２差分値との比率を算出するステップと、
求めた比率を各転送データが含む第１のレコードと、当該第１のレコードよりサイズが大きい第２のレコードの比率と特定するステップと、
特定された比率で形成された各データを他のデータベースに転送するステップと、
を有することを特徴とするデータ同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースを有する分散データベースシステム、データベース装置及びデータ同期方法に関する。
【背景技術】
【０００２】
複数のデータベース装置（ＤＢ装置）を有し、各ＤＢ装置でデータが多重管理される分散データベースシステムがある。このような分散データベースシステムでは、各装置がＡＣＴ系（運用系）又はＳＢＹ系（待機系）として設定されている。通常は、外部の装置からのアクセスは、ＡＣＴ系のＤＢ装置に接続されるが、ＡＣＴ系のＤＢ装置が故障した場合等、ＡＣＴ系とＳＢＹ系が切り替わる。その後、外部の装置からのアクセスは、新たなＡＣＴ系のＤＢ装置に接続される。
【０００３】
分散データシステムでは、ＡＣＴ系とＳＢＹ系の切り替えを速やかに実行することで、通常の同期処理を再開することができる。例えば、特許文献１では、このような分散データベースシステムにおいて、複数のＤＢ装置間でデータ処理の負荷を軽減し、速やかに切り替えを完了し、通常の処理を再開する技術について記載されている。
【０００４】
また、分散データベースシステムでは、各ＤＢ装置間におけるデータの同期に必要なネットワークの負荷が高くなった場合、通常の処理に必要なネットワークのリソースが減少する。したがって、各ＤＢ装置間でデータを同期する際の各ＤＢ装置やネットワーク負荷を軽減することが好ましい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−４６３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１では、切り替えの際の負荷を軽減するものではあるが、通常のデータを同期する際のネットワーク負荷を軽減し、効率的にデータ同期を実行することについては考慮されていない。
【０００７】
上記課題に鑑み、本発明では、分散データベースシステムにおいて、効率的にデータを同期することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る分散データベースシステムは、複数のデータベース装置が接続され、いずれかのデータベース装置で記憶されるデータを他のデータベース装置に送信し、複数のデータベース装置でデータを同期して記憶し、各データベース装置は、サイズが異なるレコードをそれぞれ有する複数のデータテーブルを記憶する記憶部と、記憶部に記憶される各データテーブルが有するレコードのサイズの順位を分析する順位分析手段と、順位分析手段が分析した順位の昇順でのサイズの変化量をそれぞれ求め、求めた変化量の重心の値を算出する重心算出手段と、レコードのサイズの最小値の順位と重心算出手段が算出した重心の値との差分である第１差分値と、レコードのサイズの最大値の順位と重心の値との差分である第２差分値とを求め、当該第１差分値と当該第２差分値との比率を算出し、求めた比率を各転送データが含む第１のレコードと、当該第１のレコードよりサイズが大きい第２のレコードの比率とする比率算出手段と、比率算出手段で算出された比率で形成された各データを他のデータベースに転送する転送手段とを備える。
【発明の効果】
【０００９】
本発明によれば、分散データベースシステムにおいて効率的にデータを同期することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る分散データベースシステムを説明する概略図である。
【図２】図２は、実施形態に係るＤＢ装置の構成を説明するブロック図である。
【図３】図３は、ＤＢ装置が転送するデータの一例を説明する図である。
【図４】図４は、ＤＢ装置が転送するデータの他の例を説明する図である。
【図５】図５は、ＤＢ装置が転送するデータのサイズについて説明する図である。
【図６】図６は、実施形態に係るＤＢ装置が転送するデータの一例を説明する図である。
【図７】図７は、ＤＢ装置が転送対象とするデータのレコードのサイズの関係を説明する図である。
【図８】図８は、実施形態に係るデータ同期方法を説明する図である。
【図９】図９は、図８に続いて実施形態に係るデータ同期方法を説明する図である。
【図１０】図１０は、実施形態に係るデータ同期方法の効果を説明する図である。
【図１１】図１１は、第１のシミュレーション結果である。
【図１２】図１２は、第２のシミュレーション結果である。
【発明を実施するための形態】
【００１１】
以下に、図面を用いて本発明の各実施形態に係る分散データベースシステム、データベース装置及びデータ同期方法について説明する。なお、以下の説明において、同一の構成については同一の符号を付して説明を省略する。
【００１２】
図１に示すように、実施形態に係る分散データベースシステム１は、複数のデータベース装置（ＤＢ装置）１０ａ〜１０ｄを有し、各ＤＢ装置１０ａ〜１０ｄがデータを同期して記憶する。図１に示す分散データベースシステム１では、第１ＤＢ装置１０ａ及び第２ＤＢ装置１０ｂがＡＣＴ系（運用系）であり、第３ＤＢ装置１０ｃ及び第４ＤＢ装置１０ｄがＳＢＹ系（待機系）である。また、第１ＤＢ装置１０ａ及び第３ＤＢ装置１０ｃがマスタ（Master）として設定され、第２ＤＢ装置１０ｂ及び第４ＤＢ装置１０ｄがスレーブ（Slave）として設定される。
【００１３】
具体的には、通常、ユーザ端末２０からデータの更新が要求されると、マスタでＡＣＴ系の第１ＤＢ装置１０ａでデータが更新される。その後、スレーブでＡＣＴ系の第２ＤＢ装置１０ｂと、マスタでＳＢＹ系の第３ＤＢ装置１０ｃで、第１ＤＢ装置１０ａのデータと同期される。さらにその後、スレーブでＳＢＹ系の第４ＤＢ装置１０ｄで、第２ＤＢ１０ｂのデータと同期される。
【００１４】
仮に、第１ＤＢ装置１０ａがＡＣＴ系からＳＢＹ系に変更され、第３ＤＢ装置１０ｃがＳＢＹ系からＡＣＴ系に変更されると、ユーザ端末２０は第１ＤＢ装置１０ａではなく第３ＤＢ装置１０ｃにアクセスされ、第３ＤＢ装置１０ｃのデータが最初に更新される。また、その後、他のＤＢ装置１０ａ、１０ｂ、１０ｄにデータが同期される。
【００１５】
図２に示すように、実施形態に係る第１ＤＢ装置１０ａは、データ転送の際に転送対象のデータに含まれるレコードを分析する順位分析手段１０１と、レコードの分析結果から送信対象のレコードのサイズの重心を算出する重心算出手段１０２と、送信対象が含む異なる２種類のサイズの比率を算出する比率算出手段１０３と、算出された比率で生成した転送データを格納する格納処理手段１０４と、転送データを転送先のＤＢ装置１０ｂ、１０ｃに送信する転送手段１０５とを有する。また、第１ＤＢ装置１０ａは、ユーザ端末２０から入力されるデータをデータテーブル記憶部１１１に記憶し、データ転送の際に生成される転送データを転送バッファ１１２に記憶する。
【００１６】
図１に示すように、ＡＣＴ系でMasterに設定される第１ＤＢ装置１０ａから転送された転送データを受信するＤＢ装置１０ｂ、１０ｃは、受信した転送データを自装置の記憶装置１１０に記憶することで、データが同期される。
【００１７】
なお、図１に示す分散データベースシステム１では、ユーザ端末２０から入力されるデータは、ＡＣＴ系でMasterに設定される第１ＤＢ装置１０ａに記憶され、他のＤＢ装置１０ｂ〜１０ｄは第１ＤＢ装置１０ａと同期される。しかしながら、各ＤＢ装置１０ｂ〜１０ｄの設定が変更されると、ユーザ端末２０から入力されるデータがＤＢ装置１０ｂ〜１０ｄに記憶されることも考えられる。したがって、他のＤＢ装置１０ｂ〜１０ｄも図２に示す第１ＤＢ装置１０ａと同一の構成である。
【００１８】
図３（ａ）に示すように、分散データベースシステム１で記憶するデータであるテーブルＡ〜Ｄは、１レコードあたりのサイズ及びレコード数が異なる条件で形成される。例えば、テーブルＡは、「８」のレコードを有し、各レコードのサイズが「５」のデータである。また、テーブルＢは、「２０」のレコードを有し、各レコードのサイズが「２」のデータである。さらに、テーブルＣは、「９」のレコードを有し、各レコードのサイズが「７」のデータである。また、テーブルＤは、「１４」のレコードを有し、各レコードのサイズが「１」のデータである。
【００１９】
分散データベースシステム１において、例えば、図３（ａ）に示すように形成されるテーブルＡ〜Ｄを同期する際、各テーブルＡ〜Ｄのデータをシーケンシャルに転送バッファ１１２に格納して転送すると、効率的な送信とはいえない。具体的には、図３（ｂ）に示すように、転送バッファ１１２の上限サイズや転送レコードの上限数等のリソースの制約に達したタイミングでデータを送信することになり、各転送データのサイズが送信毎に変動する。なお、図３（ｂ）の場合、転送バッファ１１２の上限サイズは「４２」以上であるが、転送レコードの上限数が「６」であるため、レコード数が「６」以上の転送データを送信することができない。
【００２０】
したがって、各転送データのサイズが送信毎に変動することを防止するため、例えば、（１）転送レコード数を少なくする方法、（２）転送データのサイズの条件のみを設定し、転送レコード数を変動可能とする方法、が考えられる。例えば、図４で、上記（１）と（２）の方法とした場合に転送バッファ１１２に転送データを格納した例を説明する。
【００２１】
図４（ａ）は、図３（ｂ）と同一であって、所定のリソースの制約で転送バッファ１１２に転送データを格納した例である。図４（ｂ）は、各テーブルＡ〜Ｄのデータを、上記（１）の「転送レコード数を少なくする方法」により転送データを格納し、送信する例である。転送バッファ１１２に格納するレコード数が３に限定されたため、図４（ａ）の場合と比較して、各回で転送バッファ１１２に格納される転送データのデータサイズのばらつきは低減された。しかしながら、図４（ｂ）に示すように転送レコード数を少なくした場合、テータ転送回数が増え、転送時間が長くなる問題がある。
【００２２】
図４（ｂ）は、各テーブルＡ〜Ｄのデータを、上記（２）の「転送データのサイズの条件のみを設定し、転送レコード数を変動可能とする方法」により転送データを格納し、転送する例である。このように、転送レコード数の条件を設定しないことで、転送バッファ１１２に格納されるレコードの数を増加させ、転送回数は低減させることができる。しかしながら、転送中は対象レコードの更新がロックされるため、転送レコード数が増加した場合、対象レコードを利用した処理の制約が発生し、その制約率が上昇する。
【００２３】
図５に、転送バッファの上限サイズを「３０００」、転送レコードの上限数を「３０」とした場合のシミュレーション結果の一例を示す。図５（ａ）では、横軸を転送対象のテーブルに付された番号とし、縦軸を各テーブルが有するレコードのレコード数とする。また、図５（ｂ）では、横軸を転送データを格納した転送バッファ１１２の番号とし、縦軸を各転送バッファ１１２に格納した転送データのサイズとする。
【００２４】
このシミュレーションは、図５（ａ）に示すように、テーブル数が「１００」のデータを同期する場合の一例である。ここで、各テーブルが有するレコードのレコード数は１〜１００の値から乱数で決定し、また、各レコードのサイズは１〜１００の値から乱数で決定した。
【００２５】
この条件でシーケンシャルに、具体的には、テーブル番号順にテーブルを選択し、選択したテーブルのレコードを順に、転送バッファ１１２にデータを格納したとき、図５（ｂ）に示すように、転送バッファ１１２に格納される転送データのサイズは、ランダムになる。例えば、バッファ番号「４」や「５」で転送バッファ１１２に格納される転送データは、転送バッファ１１２の上限サイズに達していないにもかかわらず、転送レコードの上限値に達したことにより、これ以上のデータが格納されない状態になる。図５（ｂ）に示すシミュレーションでは、各バッファ番号の転送データのサイズは、標準偏差「６８３」で変動するという結果が得られた。
【００２６】
これに対し、実施形態に係る第１ＤＢ装置１０ａでは、図６に示すように、テーブル番号順に、転送バッファ１１２にデータを格納するのではなく、複数の異なるサイズのレコード含むデータを転送データとして転送バッファ１１２に格納する。これにより、各転送バッファ１１２のデータサイズのばらつきを低減することができる。
【００２７】
図６（ａ）は、分散データベースシステム１に記憶されるテーブルＡ〜Ｄを表す。例えば、テーブルＡは、「８」のレコードを有し、各レコードのサイズが「５」のデータである。また、図６（ａ）では、各レコードのサイズ及びレコード数に加え、各テーブルＡ〜Ｄのレコードのサイズを表す。図６（ａ）によれば、レコードのサイズは、テーブルＣ、Ａ、Ｂ、Ｄの順に大きい。このように構成されるテーブルＡ〜Ｄから、転送バッファ１１２に、それぞれ図６（ｂ）に示すように、複数の異なるサイズのレコードを含む転送データを格納する。
【００２８】
ここで、実施形態に係る第１ＤＢ装置１０ａでデータ同期方法が実行される際、転送バッファ１１２に格納する転送データを形成するため、記憶装置１１０が記憶する各テーブルのレコードを分析し、どのテーブルのレコードをそれぞれ組み合わせるかを特定する。例えば、各テーブルのレコードのサイズが図７に示すように、分析され、レコードサイズが小さいテーブルが多く、レコードサイズが大きいテーブルが少ないとする。この場合、第１ＤＢ装置１０ａは、大きいサイズのレコードが少なく、小さいサイズのレコードが多い転送データを生成することで、各転送データのデータサイズのばらつきを減少させることができる。
【００２９】
具体的には、順位分析手段１０１は、図８（ａ）に示すようなテーブル番号が１〜１００のテーブルを他のＤＢ装置１０ａ〜１０ｄに同期させる際、図８（ｂ）に示すように、各テーブルに含まれるレコードについてレコードサイズの順位を設定する。図８（ｂ）は、横軸を各レコードのサイズの順位とし、縦軸をレコードのサイズとする。ここで、図８（ａ）でテーブルの数が１００であるのに対し、図８（ｂ）でレコードのサイズの順位が１００以上あるのは、各テーブルが複数のレコードを含むためである。なお、ここでは、各テーブルは、１種のサイズのレコードを複数有するものとして説明する。
【００３０】
続いて、重心算出手段１０２は、順位分析手段１０１が分析した各レコードサイズの順位を用いて、順位の昇順で、サイズが変化する場合の変化量を、図９（ａ）に示すように求め、そのサイズ変化量の重心を算出する。
【００３１】
図９（ａ）は、横軸を各「レコードサイズの順位」とし、縦軸を順位の昇順での各「レコードサイズの変化量」である。なお、図９（ａ）で、横軸に合わせて付されている数字は、レコードサイズに変化があったレコードの順位を特定する「レコードサイズの順位」である。したがって、例えば、図９（ａ）に示す例では、最もサイズが小さいレコードのサイズと２番目にサイズが小さいレコードのサイズとは、順位「２１．５」に変化したことが分かる。
【００３２】
比率算出手段１０３は、レコードサイズの最小値の順位と重心算出手段１０２が算出した重心との差分である「第１差分値」と、レコードサイズの最大値の順位と重心との差分である「第２差分値」を求める。また、比率算出手段１０３は、第１差分値と第２差分値との比率を算出し、求めた比率を転送データが含む第１のレコードと第２のレコードとの比率とする。ここで、第１のレコードと第２のレコードとは、それぞれ異なるテーブルに含まれるレコードであって、第１レコードのサイズは、第２レコードのサイズより小さい。
【００３３】
図９（ａ）に示すように重心が算出されたとき、比率算出手段１０３は、図９（ｂ）に示すように、第１差分値と及び第２差分値を求める。図９（ｂ）に示す例では、第１のレコードと第２のレコードとの比率は、「２４２３：２５６８」になる。ここで、比率算出手段１０３で求める値は必ずしも各転送データの第１レコードと第２レコードとの比率を正確に特定することができるものではない。例えば、上記比率は、「１：１．０５９８…」となり、このような比率でデータを構成することができない。したがって、全ての送信データの第１レコードの合計と第２レコードの合計の比率が「２４２３：２５６８」であればよい。具体的には、全レコードの数は、「４９９１（２４２３＋２５６８）」であるため、全ての送信データの第１レコードの合計数が「２４２３」であって、第２レコードの合計数が「２５６８」であればよい。
【００３４】
格納処理手段１０４は、比率算出手段１０３が求めた比率で各テーブルのレコードのデータをデータテーブル記憶部１１１から読み出し、転送データとして転送バッファ１１２に格納する。
【００３５】
転送手段１０５は、格納処理手段１０４が転送バッファ１１２に転送データを記憶させると、転送バッファ１１２が記憶する転送データを対象のデータベース装置１０ｂ、１０ｃに送信する。ここで、転送手段１０５は、転送バッファ１１２に転送データが記憶されると、次の転送データが記憶されるまで待機する必要はなく、直ちに送信してよい。
【００３６】
図１０を用いて、シーケンシャル、すなわち、データテーブル記憶部１１１に記憶されるデータテーブルの順にレコードを抽出して転送データを生成した場合（図１０（ａ））と、実施形態に係るように第１のレコードと第２のレコードとを求められた割合で含む転送データを生成した場合（図１０（ｂ））との各転送データのデータサイズを比較する。ここで、図１０（ａ）及び図１０（ｂ）は共に、図８（ａ）で示した１００のテーブルのレコードから転送データを生成した場合の一例である。
【００３７】
図１０（ａ）に示すように、シーケンシャルに転送データを生成した場合、各転送データのサイズにはばらつきがあることが分かる。これに対し、図１０（ｂ）に示すように、第１のレコードと第２のレコードを求められた割合で含む方法、すなわち、実施形態に係るデータ同期方法において転送データを生成する場合、各転送データのばらつきは小さいことが分かる。実際に、転送データサイズの標準偏差を求めた場合、図１０（ａ）に示す例では、「６８３」であるのに対し、図１０（ｂ）に示す例では、「４１」となっている。
【００３８】
同様の比較を、別の例でも実行した。第１の例は、図１１（ａ）に示すような、レコードサイズとレコードサイズ順位のデータテーブルを対象とした一例である。シーケンシャルに転送データを生成した場合、図１１（ｂ）に示すように、各転送データの標準偏差は「２８６」とデータサイズにばらつきが生じる。これに対し、実施形態に係るデータ同期方法において転送データを生成した場合、図１１（ｃ）に示すように、各転送データの標準偏差は「４５」とデータサイズのばらつきは小さくなる。
【００３９】
第２の例は、図１２（ａ）に示すような、レコードサイズとレコードサイズ順位のデータテーブルを対象とした一例である。シーケンシャルに転送データを生成した場合、図１２（ｂ）に示すように、各転送データの標準偏差は「２１５」とデータサイズにばらつきが生じる。これに対し、実施形態に係るデータ同期方法で転送データを生成した場合、図１２（ｃ）に示すように、各転送データの標準偏差は「２５」とデータサイズのばらつきは小さくなる。
【００４０】
上述したように、実施形態に係る分散データベースシステム１では、異なるサイズのレコードを組み合わせて転送データを生成することで、効率的にデータを同期することができる。
【００４１】
以上、実施形態を用いて本発明を詳細に説明したが、本発明は本明細書中に説明した実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲の記載及び特許請求の範囲の記載と均等の範囲により決定されるものである。
【符号の説明】
【００４２】
１  分散データベースシステム
１０ａ〜１０ｄ  データベース装置（ＤＢ装置）
１０１  順位分析手段
１０２  重心算出手段
１０３  比率算出手段
１０４  格納処理手段
１０５  転送手段
１１０  記憶装置
１１１  データテーブル記憶部
１１２  転送バッファ
２０  ユーザ端末
【図１】
2015156119.tif 000003
【図２】
2015156119.tif 000004
【図３】
2015156119.tif 000005
【図４】
2015156119.tif 000006
【図５】
2015156119.tif 000007
【図６】
2015156119.tif 000008
【図７】
2015156119.tif 000009
【図８】
2015156119.tif 000010
【図９】
2015156119.tif 000011
【図１０】
2015156119.tif 000012
【図１１】
2015156119.tif 000013
【図１２】
2015156119.tif 000014