(57)【特許請求の範囲】
【請求項１】
マスターノード及び少なくとも１つ以上のデータノードで構成された時系列データベースのデータ複製方法であって、
データベースシステムを構成するノード装置により、
１つのノードの複数のデータ領域及び複数のインデックス領域で構成されるテーブル領域にデータ及びインデックスを格納するステップと、
複製する前の前記１つのノード内の前記複数のインデックス領域を１つのインデックス領域に併合するステップと、
前記併合された１つのインデックス領域を用いて前記複数のデータ領域及び１つのインデックス領域で構成されたテーブル領域を他のノードに複製するステップと、を含むことを特徴とするデータ複製方法。
【請求項２】
前記格納するステップは、
テーブル領域の割り当てを受けるステップと、
前記割り当てされたテーブル領域にデータ及びインデックスを格納するステップと、を含むことを特徴とする、請求項１に記載のデータ複製方法。
【請求項３】
前記インデックスは、ビットマップ方式で所定個数のデータの格納位置及びデータ値に関する情報を含むことを特徴とする、請求項１または２に記載のデータ複製方法。
【請求項４】
前記併合するステップは、
前記複数のインデックス領域にそれぞれ格納されたビットマップを１つのビットマップに併合して１つのインデックス領域に格納するステップを含むことを特徴とする、請求項３に記載のデータ複製方法。
【請求項５】
前記複数のインデックス領域に格納された各インデックスがＬＳＭＴ（Ｌｏｇ  Ｓｔｒｕｃｔｕｒｅｄ  Ｍｅｒｇｅ  Ｔｒｅｅ）インデックスであることを特徴とする、請求項１または４に記載のデータ複製方法。
【請求項６】
マスターノード及び少なくとも１つ以上のデータノードで構成された時系列データベース内の１つのノードのデータを受信するデータ受信部と、
前記１つのノードの複数のデータ領域及び複数のインデックス領域で構成されるテーブル領域に前記受信されたデータ及び前記データのインデックスを格納するデータ格納部と、
複製する前の前記１つのノード内の前記複数のインデックス領域を１つのインデックス領域に併合し、前記併合された１つのインデックス領域を用いて前記複数のデータ領域及び前記１つのインデックス領域で構成されたテーブル領域を他のノードに複製する複製部と、を含むことを特徴とするデータベースのノード装置。
【請求項７】
請求項１乃至５の何れか一項に記載の方法を行うためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチノード環境でデータベースのデータを複製する方法及びその装置に関する。
【背景技術】
【０００２】
センサ及び装備から発生する各種データは時系列的に発生し、このような時系列データをリアルタイムで格納して分析するデータベースを時系列データベースと言う。
【０００３】
一般に、時系列データベースは、格納されたデータの変更、すなわち、更新（ｕｐｄａｔｅ）演算が殆ど発生せず、ただデータの挿入（ｉｎｓｅｒｔ）、削除（ｄｅｌｅｔｅ）、または選択（ｓｅｌｅｃｔ）などの演算が主に発生する。
【０００４】
時系列データベースは、障害などによるデータ損失を防止するために、格納されたデータを少なくとも１つ以上の他の場所に複製して格納するが、１つの時系列データベースが時系列データの受信及び複製などを全て受信する場合、負荷が集中してデータ処理速度が遅くなるなどの性能低下の問題が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国特許出願第１０‐２０１２‐００５１５５８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が達成しようとする技術的課題は、データベースの特定ノードに負荷が集中することを防止し、複製による所要時間を短縮することができるデータ複製方法及びその装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の技術的課題を達成するための、本発明によるデータ複製方法の一例は、マスターノード及び少なくとも１つ以上のデータノードで構成された時系列データベースのデータ複製方法であって、データベースシステムを構成するノード装置により、複数のデータ領域及び複数のインデックス領域で構成されるテーブル領域にデータ及びインデックスを格納するステップと、前記複数のインデックス領域を１つのインデックス領域に併合するステップと、前記複数のデータ領域及び１つのインデックス領域で構成されたテーブル領域を他のノードに複製するステップと、を含む。
【０００８】
上記の技術的課題を達成するための、本発明によるデータベースのノード装置の一例は、データを受信するデータ受信部と、複数のデータ領域及び複数のインデックス領域で構成されるテーブル領域にデータ及びインデックスを格納するデータ格納部と、前記複数のインデックス領域を１つのインデックス領域に併合し、前記複数のデータ領域及び前記１つのインデックス領域で構成されたテーブル領域を他のノードに複製する複製部と、を含む。
【発明の効果】
【０００９】
本発明によると、複数のノードが分散してデータを格納するため、データベースシステムの負荷を分散させることができる。また、各ノードは、所定以上のデータが積まれると、それを他のノードに複製する際にインデックスファイルを１つのファイルとして複製を行うため、複製による所要時間を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明による複数のノードで構成されたデータベースシステムの一例を示した図である。
【図２】本発明によるデータベースシステムを構成するノードの一例の構成を示した図である。
【図３】本発明による一般テーブルの一実施形態を示した図である。
【図４】本発明による複製テーブルの一実施形態を示した図である。
【図５】本発明によるビットマップインデックスの併合例を示した図である。
【図６】本発明によるデータ複製方法の一例を示した図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明によるデータ複製方法及びその装置について詳細に説明する。
【００１２】
図１は本発明による複数のノードで構成されたデータベースシステムの一例を示した図である。
【００１３】
図１を参照すると、データベースシステムは、マスターノード１００と、少なくとも１つ以上のデータノード１１０、１２０と、で構成される。マスターノード１００とデータノード１１０、１２０は、それぞれテーブルの割り当てを受けてデータを格納するとともに、入力されたデータが所定以上積まれると他のノードに複製する。
【００１４】
本実施形態は、時系列データを格納する時系列データベースに適用可能であり、この場合、データベースの更新過程が殆ど行われないため、複数のインデックスファイルを併合してファイル入出力（Ｉ／Ｏ）のオーバーヘッドを減らすことで、複製を迅速に行うことができる。
【００１５】
また、本実施形態のデータには、時間に従って順次に増加または減少する形態のデータ識別子（ＲＩＤ）が付与されることができる。例えば、データ識別子は、年月日時分秒（ナノ秒）などの時間に基づいて生成されることができる。
【００１６】
図２は本発明によるデータベースシステムを構成するノードの一例の構成を示した図である。
【００１７】
図２を参照すると、マスターノード１００またはデータノード１１０、１２０は、データ受信部２００と、テーブル割り当て部２１０と、テーブル管理部２２０と、データ格納部２３０と、複製部２４０と、ローカル格納部２５０と、を含む。
【００１８】
データ受信部２００は外部からデータを受信する。
【００１９】
テーブル割り当て部２１０は、テーブル管理部２２０からテーブル領域の割り当てを受ける。
【００２０】
テーブル管理部２２０は、各テーブルをどのノードに割り当てるかに関する情報を有している。例えば、マスターノードに第１、３テーブルを割り当て、第１データノードに第２、４テーブルを割り当て、第２データノードに第５、６テーブルを割り当てる内容が、テーブル管理部２２０に予め設定されている。
【００２１】
実施形態によって、テーブル管理部２２０はマスターノード１００のみに存在してもよい。この場合、データノード１１０、１２０のテーブル割り当て部２１０は、マスターノード１００のテーブル管理部２２０にテーブル割り当てを要請して受信することができる。他の例として、マスターノード１００を初めとする各データノード１１０、１２０の全てが、同じテーブル割り当て情報を含むテーブル管理部２２０を含んでもよい。
【００２２】
データ格納部２３０は、テーブル割り当て部２１０により割り当てられたテーブル領域にデータを格納する。データが格納される一般テーブルは、複数のデータ領域及び複数のインデックス領域で構成される。各データ領域は各データファイルで構成され、各インデックス領域は各インデックスファイルで構成される。
【００２３】
データ格納部２３０は、データ領域にデータを格納し、インデックス領域に該当データの格納位置を含む各種インデックス情報を格納する。データが格納される一般テーブルの一例は図３に示されている。
【００２４】
複製部２４０は、テーブルに所定大きさ以上のデータが格納されると、ローカル格納部２５０に格納されたデータを他のノードに複製する。テーブルを複製すべき対象ノードは、様々な方法により動的または静的に設定されることができる。本実施形態では、各ノード毎のテーブルの複製対象ノードが予め設定されていると仮定する。
【００２５】
複製部２４０は、データを他のノードに複製する時に、ローカル格納部に格納された一般テーブルをそのまま用いて複製するのではなく、テーブル内に存在する複数のインデックス領域を１つの領域に併合し、それを用いて複製を行う。
【００２６】
換言すれば、複製部２４０は、複数のインデックスファイルを１つのファイルに併合した後、併合された１つのインデックスファイルを用いて各データ領域のデータを複製するため、Ｉ／Ｏオーバーヘッドを減らすことができる。インデックス領域が併合された複製テーブルの一例は、図４に示されている。インデックス領域を統合する方法については、図５でさらに説明する。複製部２４０は、他のノードから複製テーブルの伝達を受け、それをローカル格納部２５０に格納することができる。
【００２７】
ローカル格納部２５０は、受信したデータを格納する図３のような一般テーブル３００と、他のノードから伝達された図４のような複製テーブル４００と、を含む。
【００２８】
図３は本発明による一般テーブルの一実施形態を示した図である。
【００２９】
図３を参照すると、各ノードが受信したデータを格納する一般テーブルは、複数のデータ領域３１０、３１２、３１４及び複数のインデックス領域３２０、３２２、３２４を含む。本実施形態では、説明の便宜のために領域と表現しているが、各データ領域３１０、３１２、３１４及び各インデックス領域３２０、３２２、３２４は、それぞれのファイルで構成されており、以下の実施形態でも同様である。各インデックス領域は、ＬＳＭ（Ｌｏｇ  Ｓｔｒｕｃｔｕｒｅｄ  Ｍｅｒｇｅ）‐Ｔｒｅｅインデックスファイルとして生成されることができる。
【００３０】
各データ領域３１０、３１２、３１４は所定の大きさを有するため、格納されるデータの大きさによって、各データ領域に含まれるデータの数が互いに異なり得る。これに対し、インデックス領域３２０、３２２、３２４は所定個数のインデックスを含む。
【００３１】
したがって、各データ領域３１０、３１２、３１４に含まれるデータの大きさによって、データ領域３１０、３１２、３１４とインデックス領域３２０、３２２、３２４が一対一の関係ではないこともある。例えば、第１データ領域３１０と第２データ領域３１２の大きさは同一であるが、各データ領域に格納されるデータの大きさが互いに異なるため、第１データ領域３１０には２０個のデータが格納され、第２データ領域３１２には１０個のデータが格納されることができる。各インデックス領域が１０個のインデックスを格納するとすれば、第１インデックス領域３２０は第１データ領域３１０に格納された１０個のデータに対するインデックスを格納し、第２インデックス領域３２２は第１データ領域３１０の残りの１０個のデータに対するインデックスを格納する。
【００３２】
このような場合、第１データ領域のデータを複製するためには、第１インデックス領域３２０に該当するファイルと第２インデックス領域３２２に該当するファイルをそれぞれ参照しなければならないため、インデックスファイルのＩ／Ｏオーバーヘッドが発生する。インデックス領域が１０００個である場合には、複製のために最小１０００個のインデックスファイルを参照しなければならない。
【００３３】
したがって、本実施形態では、図３の一般テーブルをそのまま複製するのではなく、図４の複製テーブルを用いて複製を行う。
【００３４】
図４は本発明による複製テーブルの一実施形態を示した図である。
【００３５】
図４を参照すると、複製テーブル４００は、複数のデータ領域３１０、３１２、３１４及び１つのインデックス領域４１０で構成される。複数のデータ領域３１０、３１２、３１４は、図３で説明した複数のデータ領域と同一である。
【００３６】
インデックス領域４１０は、図３の複数のインデックス領域３２０、３２２、３２４を１つに統合した領域である。すなわち、インデックス領域４１０は、図３の複数のインデックスファイルを１つのファイルに統合したものである。しかし、図３のインデックス領域３２０、３２２、３２４の統合は、一般的な文書統合のように単に１つのファイルとすることではなく、複製による所要時間を減らすために、図５のようなビットマップ形態で構成されたインデックス領域の統合である。
【００３７】
図５は本発明によるビットマップインデックスの併合例を示した図である。
【００３８】
図５を参照すると、図３の各インデックス領域３２０、３２２、３２４に含まれたインデックスはビットマップインデックス５００、５１０である。ビットマップインデックス５００、５１０はデータ値及び各データ識別子の行列で構成されており、各要素はデータの存在有無を示す０または１の値を有する。
【００３９】
データは時間に従って順次に増加または減少する形態のデータ識別子を有するため、各インデックス領域に格納されたビットマップインデックス５００、５１０を統合する時に、データ識別子区間を拡張して１つのビットマップインデックス５００に統合することができる。例えば、第１ビットマップインデックス５００に格納されたデータ識別子区間がＲＩＤ_１〜ＲＩＤ_ｋであり、第２ビットマップインデックス５１０に格納されたデータ識別子区間がＲＩＤ_（ｋ＋１）〜ＲＩＤ_ｍである場合、ビットマップインデックスの列をＲＩＤ_１〜ＲＩＤ_ｍとしてビットマップインデックスを統合することができる。
【００４０】
図６は本発明によるデータベース複製方法の一例を示した図である。
【００４１】
図６を参照すると、データベースシステムを構成するマスターノードまたはデータノードの装置（以下、「ノード装置」という）は、それぞれデータを受信する（Ｓ６００）。ノード装置は、割り当てられたテーブル領域の割り当てを受けてデータを格納する（Ｓ６１０、Ｓ６２０）。ノード装置は、図３で説明した複数のデータ領域及び複数のインデックス領域で構成された一般テーブルを用いてデータを格納する。
【００４２】
ノード装置は、複製条件を満たすか否かを判断する（Ｓ６３０）。複製条件は、実施形態によって多様に予め設定されることができ、一例として、テーブルに所定大きさ以上のデータが積まれると複製条件を満たすと判断することができる。
【００４３】
ノード装置は、複製のために、図４のように複数のインデックス領域を１つの領域に統合する（Ｓ６４０）。そして、１つのインデックス領域に統合されたテーブルを用いて他のノードにデータを複製する（Ｓ６５０）。この場合、ノード装置は、各データ領域に対するインデックスファイルを一々確認するのではなく、統合された１つのインデックスファイルを用いて、複製時におけるインデックスファイルのＩ／Ｏオーバーヘッドを減らすことで、複製をより迅速に行うことができる。
【００４４】
本発明は、また、コンピュータにより読み取り可能な記録媒体に、コンピュータにより読み取り可能なコードとして実現することができる。コンピュータにより読み取り可能な記録媒体は、コンピュータシステムにより読み取り可能なデータが格納される全ての種類の記録装置を含む。コンピュータにより読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ‐ＲＯＭ、磁気テープ、フロッピーディスク、光データ記憶装置などが挙げられる。また、コンピュータにより読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散され、分散方式でコンピュータにより読み取り可能なコードが格納されて実行されることができる。
【００４５】
以上、本発明についてその好ましい実施形態を中心に説明した。本発明が属する技術分野において通常の知識を有する者であれば、本発明の本質的な特性から外れない範囲で変形された形態で実現できることを理解することができるであろう。したがって、ここで開示された実施形態は、限定的な観点でなく、説明的な観点で考慮すべきである。本発明の範囲は上述の説明ではなく、特許請求の範囲に示されており、それと同等範囲内にある全ての違いは、本発明に含まれるものであると解釈されるべきである。
【図１】
0006440773.tif 000002
【図２】
0006440773.tif 000003
【図３】
0006440773.tif 000004
【図４】
0006440773.tif 000005
【図５】
0006440773.tif 000006
【図６】
0006440773.tif 000007