(57)【要約】【課題】整合性を保ったままバックアップを行うこと。【解決手段】クライアントコンピュータ１１及び１２からバックアップ要求を受け付けた複数のノード３１〜３３のうち書き込み対象とするノードのトークンをキーに基づいて算出し、該算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノード３１又は３２又は３３を特定し、該特定したノード３１又は３２又は３３に対して該当するキーの値の取得を要求し、該要求したキーの値を自ノードのデータベース４１又は４２又は４３から取得し、該取得したキーの値を要求元のノード３１又は３２又は３３へ転送し、該ノード３１又は３２又は３３へ要求したデータをマージし、１つのバックアップファイルとして生成してクライアントコンピュータ１１及び１２へ返送するバックアップシステム。【選択図】図１
2015011434.tif 000002
【特許請求の範囲】
【請求項１】
自己に記憶したデータのバックアップを要求するためのバックアップコマンドを発行する複数のクライアントコンピュータに接続され、該クライアントコンピュータに記憶したデータに一意のキーを付与して分散格納するための複数のデータベース及び該データベースを個別に管理する複数のノードを含む分散データベース環境部とを備え、前記複数のノードが、前記クライアントコンピュータからバックアップデータを取得するデータ取得部と、該データ取得部が取得したバックアップデータを生成して各データベースに格納するバックアップ生成部とを備え、予め定められたノードの範囲を整数値のトークンとして管理するバックアップシステムにおいて、
前記分散データベース環境部が、
任意のノードに対するノードが前記クライアントコンピュータからバックアップ要求を受け付ける第１工程と、
該第１工程により受け付けた複数のノードのうち書き込み対象とするノードのトークンをキーに基づいて算出する第２工程と、
該第２工程により算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノードを特定する第３工程と、
該第３工程により特定したトークンに基づいて各ノードに対して該当するキーの値の取得を要求する第４工程と、
該第４工程により要求されたキーの値を自ノードのデータベースから取得し、該取得したキーの値を要求元のノードへ転送する第５工程と、
該第５工程により各ノードへ要求したデータをマージし、１つのバックアップファイルとして生成する第６工程と、
該第６工程により生成したバックアップファイルを要求のあったクライアントコンピュータへ返送する第７工程とを実行することを特徴とするバックアップシステム。
【請求項２】
前記データベースに格納するデータにタイムスタンプを設け、前記第２工程によりクライアントコンピュータからバックアップ要求するとき、タイムスタンプの範囲を指定して書き込み対象とするノードのトークンを算出することを特徴とする請求項１記載のバックアップシステム。
【請求項３】
前記第３工程が、予め定められたトークン範囲が値０から９までの範囲の整数とし、前記キーが値１０で除算した剰余の値の範囲にマップされ、トークンと比較することによって、トークンに対するキー書込先のノードを特定することを特徴とする請求項１又は２記載のバックアップシステム。
【請求項４】
自己に記憶したデータのバックアップを要求するためのバックアップコマンドを発行する複数のクライアントコンピュータに接続され、該クライアントコンピュータに記憶したデータに一意のキーを付与して分散格納するための複数のデータベース及び該データベースを個別に管理する複数のノードを含む分散データベース環境部とを備え、前記複数のノードが、前記クライアントコンピュータからバックアップデータを取得するデータ取得部と、該データ取得部が取得したバックアップデータを生成して各データベースに格納するバックアップ生成部とを備え、予め定められたノードの範囲を整数値のトークンとして管理するコンピュータシステムのバックアップ方法であって、
前記分散データベース環境部が、
任意のノードに対するノードが前記クライアントコンピュータからバックアップ要求を受け付ける第１工程と、
該第１工程により受け付けた複数のノードのうち書き込み対象とするノードのトークンをキーに基づいて算出する第２工程と、
該第２工程により算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノードを特定する第３工程と、
該第３工程により特定したトークンに基づいて各ノードに対して該当するキーの値の取得を要求する第４工程と、
該第４工程により要求されたキーの値を自ノードのデータベースから取得し、該取得したキーの値を要求元のノードへ転送する第５工程と、
該第５工程により各ノードへ要求したデータをマージし、１つのバックアップファイルとして生成する第６工程と、
該第６工程により生成したバックアップファイルを要求のあったクライアントコンピュータへ返送する第７工程とを実行することを特徴とするバックアップ方法。
【請求項５】
前記データベースに格納するデータにタイムスタンプを設け、前記第２工程によりクライアントコンピュータからバックアップ要求するとき、タイムスタンプの範囲を指定して書き込み対象とするノードのトークンを算出することを特徴とする請求項４記載のバックアップ方法。
【請求項６】
前記第３工程が、予め定められたトークン範囲が値０から９までの範囲の整数とし、前記キーが値１０で除算した剰余の値の範囲にマップされ、トークンと比較することによって、トークンに対するキー書込先のノードを特定することを特徴とする請求項４又は５記載のバックアップ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大量のデータを複数データベースに分散して格納するバックアップ方法及びバックアップシステムに係り、特に制御ノードを使用せずに大量のデータを複数データベースに格納する際に整合性を保ったままバックアップを行うことができるバックアップ方法及びバックアップシステムに関する。
【背景技術】
【０００２】
近年のコンピュータシステムにおいては、インターネット等の通信手段の発達にともなって爆発的に増大した構造化されていない莫大な量のビッグデータが取り扱われており、この膨大な量のデータを取り扱うデータベース管理システムにおいては、データを格納するサーバ（ノード）を複数用意し、データを分散して配置する分散型データベースシステムが採用されている。この分散型データベースシステムにおけるデータの管理技術としては、（１）１つのノードをマスターとし、該マスターからデータを分散配置する集中管理技法と、（２）制御ノードを持たずに全てのノードに同一の機能を設け、各ノードがデータを分散配置する分散管理技法とが採用されている。
【０００３】
前記集中管理技法が記載された文献としては下記の特許文献１が挙げられ、この特許文献１には、マスターノードに対して更新を行い、その更新結果をもとにスレーブノードに更新を行うことで同期をとる技術が記載され、制御ノードを持たないシステムにおいては、各ノードにデータを複製して格納することにより、可用性と並列アクセスによる性能の向上を図る技術が採用されている。これら分散型データの管理技術におけるデータの一貫性の確保は、例えば、各ノードで更新されたデータがある程度の時間経過後に他ノードに反映され、結果的に全ての更新処理が反映されてデータの一貫性を保つ結果整合性技術があり、障害時の備えが記載された文献としては、下記非特許文献が挙げられ、非特許文献１にはデータを格納しているテーブル（表）をノード単位でファイルに出力してデータのバックアップを取る技術が記載され、非特許文献２には、制御ノードを持たない分散型データベースにおいて、複数のノードに同じデータを複製する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３４５１８号公報
【非特許文献】
【０００５】
【非特許文献１】Ｅｂｅｎ  Ｈｅｗｉｔｔ著「Ｃａｓｓａｎｄｒａ」株式会社オライリージャパン、２０１１／１２／２４
【非特許文献２】本橋信也他著「ＮＯＳＱＬの基礎知識  ビッグデータを活かすデータベース技術」株式会社リックテレコム、２０１２／４／２５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述の膨大な量のデータを取り扱うデータベース管理システムにおいては、格納するデータの障害時の対策を考える際、データ複製では操作ミスなどヒューマンエラーによるデータの改廃も複製されるため、ある時点のデータのバックアップを取る必要があり、このためマスターノードを持つ集中管理技法による分散型データベースシステムでは、特許文献１に記載のように、マスターノードを介して全ての更新処理を行ってマスターノードが更新された情報の全てを把握しているため、マスターノード経由で整合性の取れたバックアップを取得することができる。
【０００７】
しかしながら、制御ノードを持たない分散管理技法の分散型データベースシステムにおいては、ひとつのノードのデータだけが更新された後、他のノードで更新前のバージョンが読みだされる可能性があるため、ノード単位でのバックアップでは整合性を取ることが困難であり、全体で整合性の取れたバックアップを取得するためには、事前にバックアップ処理の途中で更新が行われないよう分散型データベースへの書き込みを行うサービスを停止し、このサービス停止中にノード間のデータの同期を行う必要があり、整合性の取れたバックアップをオンライン処理中に取得することは困難であるという課題があった。
【０００８】
本発明の目的は、前述の従来技術による課題を解決しようとするものであり、制御ノードを持たない分散管理技術により複数サーバにデータを分散して格納する分散型データベースにおいて、オンライン処理中に整合性を保ったままバックアップを行うことができるバックアップ方法及びバックアップシステムを提供することである。
【課題を解決するための手段】
【０００９】
前記目的を達成するため本発明は、自己に記憶したデータのバックアップを要求するためのバックアップコマンドを発行する複数のクライアントコンピュータに接続され、該クライアントコンピュータに記憶したデータに一意のキーを付与して分散格納するための複数のデータベース及び該データベースを個別に管理する複数のノードを含む分散データベース環境部とを備え、前記複数のノードが、前記クライアントコンピュータからバックアップデータを取得するデータ取得部と、該データ取得部が取得したバックアップデータを生成して各データベースに格納するバックアップ生成部とを備え、予め定められたノードの範囲を整数値のトークンとして管理するバックアップシステムにおいて、
前記分散データベース環境部が、
任意のノードに対するノードが前記クライアントコンピュータからバックアップ要求を受け付ける第１工程と、
該第１工程により受け付けた複数のノードのうち書き込み対象とするノードのトークンをキーに基づいて算出する第２工程と、
該第２工程により算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノードを特定する第３工程と、
該第３工程により特定したトークンに基づいて各ノードに対して該当するキーの値の取得を要求する第４工程と、
該第４工程により要求されたキーの値を自ノードのデータベースから取得し、該取得したキーの値を要求元のノードへ転送する第５工程と、
該第５工程により各ノードへ要求したデータをマージし、１つのバックアップファイルとして生成する第６工程と、
該第６工程により生成したバックアップファイルを要求のあったクライアントコンピュータへ返送する第７工程とを実行することを第１の特徴とする。
【００１０】
また、本発明は、第１の特徴のバックアップシステムにおいて、前記データベースに格納するデータにタイムスタンプを設け、前記第２工程によりクライアントコンピュータからバックアップ要求するとき、タイムスタンプの範囲を指定して書き込み対象とするノードのトークンを算出することを第２の特徴とし、
前記何れかの特徴のバックアップシステムにおいて、前記第３工程が、予め定められたトークン範囲が値０から９までの範囲の整数とし、前記キーが値１０で除算した剰余の値の範囲にマップされ、トークンと比較することによって、トークンに対するキー書込先のノードを特定することを第３の特徴とする。
【００１１】
更に、本発明は、自己に記憶したデータのバックアップを要求するためのバックアップコマンドを発行する複数のクライアントコンピュータに接続され、該クライアントコンピュータに記憶したデータに一意のキーを付与して分散格納するための複数のデータベース及び該データベースを個別に管理する複数のノードを含む分散データベース環境部とを備え、前記複数のノードが、前記クライアントコンピュータからバックアップデータを取得するデータ取得部と、該データ取得部が取得したバックアップデータを生成して各データベースに格納するバックアップ生成部とを備え、予め定められたノードの範囲を整数値のトークンとして管理するコンピュータシステムのバックアップ方法であって、
前記分散データベース環境部が、
任意のノードに対するノードが前記クライアントコンピュータからバックアップ要求を受け付ける第１工程と、
該第１工程により受け付けた複数のノードのうち書き込み対象とするノードのトークンをキーに基づいて算出する第２工程と、
該第２工程により算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノードを特定する第３工程と、
該第３工程により特定したトークンに基づいて各ノードに対して該当するキーの値の取得を要求する第４工程と、
該第４工程により要求されたキーの値を自ノードのデータベースから取得し、該取得したキーの値を要求元のノードへ転送する第５工程と、
該第５工程により各ノードへ要求したデータをマージし、１つのバックアップファイルとして生成する第６工程と、
該第６工程により生成したバックアップファイルを要求のあったクライアントコンピュータへ返送する第７工程とを実行することを第４の特徴とする。
【００１２】
また、本発明は、該第４の特徴のバックアップ方法において、前記データベースに格納するデータにタイムスタンプを設け、前記第２工程によりクライアントコンピュータからバックアップ要求するとき、タイムスタンプの範囲を指定して書き込み対象とするノードのトークンを算出することを第５の特徴とし、前記何れかの特徴のバックアップ方法において、前記第３工程が、予め定められたトークン範囲が値０から９までの範囲の整数とし、前記キーが値１０で除算した剰余の値の範囲にマップされ、トークンと比較することによって、トークンに対するキー書込先のノードを特定することを第６の特徴とする。
【発明の効果】
【００１３】
本発明によるバックアップ方法及びバックアップシステムは、クライアントコンピュータからバックアップ要求を受け付けた複数のノードのうち書き込み対象とするノードのトークンをキーに基づいて算出し、該算出したトークンと前記予め定められたトークン範囲と比較して該トークンに対するキー書込先のノードを特定し、該特定したトークンに基づいて各ノードに対して該当するキーの値の取得を要求し、該要求したキーの値を自ノードのデータベースから取得し、該取得したキーの値を要求元のノードへ転送し、該ノードへ要求したデータをマージし、１つのバックアップファイルとして生成してクライアントコンピュータへ返送することによって、制御ノードを持たない分散管理技術により複数サーバにデータを分散して格納する分散型データベースにおいて、オンライン処理中に整合性を保ったままバックアップを行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態によるバックアップ方法を適用したバックアップシステムを説明するための図。
【図２】本発明の実施形態によるデータベースのデータ例を示す図。
【図３】本発明の実施形態によるバックアップデータ形式を示す図。
【図４】本発明の実施形態によるバックアップデータ内容の一例を示す図。
【図５】本発明の実施形態による各ノードのトークン表を示す図。
【図６】本発明の実施形態によるバックアップ生成部の処理フローを示す図。
【図７】本発明の実施形態によるデータ取得部の処理フローを示す図。
【発明を実施するための形態】
【００１５】
以下、本発明によるバックアップ方法を適用したバックアップシステムの一実施形態を図面を参照して詳細に説明する。
［構成］
本実施形態によるバックアップシステムは、図１に示す如く、各種データ処理を行い、自己に記憶したデータのバックアップを要求するためのバックアップコマンドを発行するクライアントコンピュータ１１及び１２に接続され、該クライアントコンピュータ１１及び１２に記憶したデータを分散して格納するための複数のデータベース４１〜４３及び該データベース４１〜４３を個別に管理する複数のノード３１〜３３を含む分散データベース環境部２１とを備え、各ノード３１〜３３は、各クライアントコンピュータ１１及び１２からバックアップデータを取得するデータ取得部５２と、該データ取得部５２とが取得したバックアップデータを生成して各データベース４１〜４３に格納するバックアップ生成部５１とを備える。
【００１６】
前記データベース４１〜４３に格納するデータ形式は、図２に示す如く、データ毎に一意に付与されたキー（ＫＥＹ）毎にデータをアップした年月日・該データをアップしたユーザ名・該ユーザによるコメント等の複数のＶＡＬＵＥ（バリュー：値）及び該コメントに付与されたタイムスタンプにより１レコードを構成し、図示の例では、ＫＥＹ「０００００００１」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ａ」のアップしたコメントが「今日は晴れ」・該アップしたタイムスタンプが「２０１２１００１０８００００」が格納され、ＫＥＹ「０００００００２」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ｂ」のアップしたコメントが「誕生日おめでとう！」・該アップしたタイムスタンプが「２０１２１００１０９００２０」が格納され、ＫＥＹ「０００００００３」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ａ」のアップしたコメントが「昼ご飯はカレー」・該アップしたタイムスタンプが「２０１２１００１０９００３０」が格納され、ＫＥＹ「０００００００４」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ｃ」のアップしたコメントが「写真載せました」・該アップしたタイムスタンプが「２０１２１００１０９００４０」が格納され、ＫＥＹ「０００００００５」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ｂ」のアップしたコメントが「明日はお祝いだ」・該アップしたタイムスタンプが「２０１２１００１０９００５０」が格納され、ＫＥＹ「０００００００６」のレコードに「２０１２／１０／１」・ユーザ「Ｕｓｅｒ＿ｃ」のアップしたコメントが「日記始めました」・該アップしたタイムスタンプが「２０１２１００１０９０２１０」が順次格納され、この後に、前記ＫＥＹ「０００００００２」レコードが削除（状態Ａ）され、前記ＫＥＹ「０００００００３」レコードのコメント「昼ご飯はカレー」が「昼ご飯はうどん」に更新（状態Ｂ）され、前記ＫＥＹ「０００００００６」レコードのコメント「今日はお祝いだ」を「明日はお祝いだ」に更新（状態Ｃ）された例において、各データベース４１〜４３に図２（ａ）〜（ｃ）に図示した如く各データ（値）が格納されているものとする。
【００１７】
本例においては、本来は図２に示したデータベース４１〜４３に格納した全データが瞬時に同期することが望ましいが、実際のシステムにおいては、データ更新時刻他の要因によってデータベース４１では図２（ａ）の如くＫＥＹ「０００００００２」レコードが削除されずに残った状態Ａ、ＫＥＹ「０００００００３」レコードが更新されていない状態Ｂとなり、データベース４２では図２（ｂ）の如くＫＥＹ「０００００００５」レコードが更新されない状態Ｃとなり、データベース４３では図２（ｃ）の如くＫＥＹ「０００００００６」レコードが他のデータベース４１及び４２にレプリケーション（複製）されていない状態Ｄとなることがある。
【００１８】
即ち、分散データベースシステムにおいては、他のノードへのレプリケーション（複写）に時間を要することがあり、その場合、データベース４１上で削除されても即時にはデータベース４３へ変更が反映されないため、一定時間はノード間でキーに紐付くデータ及びタイムスタンプ値の同期が取れていない状態となり、この状態で個々のデータベースでバックアップを取得した場合、データベース４３上で取得したバックアップに本来、データベース４１上で削除済みであるＫＥＹ「０００００００２」が残留して不整合なバックアップデータとなるおそれや、ＫＥＹ「０００００００３」及びＫＥＹ「０００００００５」のデータの値が更新されたにも関わらず、他のノードに反映されていないため、この状態で各ノード単位に個々にバックアップを取得すると、同一のキーで複数の値が存在することになり整合性を保つことができない状態となるおそれがあった。尚、図２のＫＥＹ「０００００００６」レコードは、登録後に他のノードにレプリケーションされていない状態であるが、バックアップを取得する場合においては問題とはならない。
【００１９】
また、分散データベース環境部２１で参照できるデータ形式は、図３に示す如く、図２で示した個々のデータベースのデータをＫＥＹに基づいてマージした内容であり、バックアップのデータ形式は、例えば、図４に示す如く、バックアップの範囲として、タイムスタンプの範囲を「２０１２１００１０９００００」〜「２０１２１００１０９０１５０」とした場合、アップデート日付とユーザ名とコメントとタイムスタンプの各項目情報とから構成され、各ノードのトークン（ｔｏｋｅｎ：本例ではデータ）は、図５に示す如く、ノード３１〜３３の範囲において、ノード３１のトークンが「２」、ノード３２のトークンが「４」、ノード３３のトークンが「６」として表される。
【００２０】
［動作］
次に本発明のバックアップ方法及びバックアップシステムの一実施形態の動作を説明する。
本実施形態によるバックアップ方法を適用するバックアップシステムは、図６に示す如く、分散データベース環境部２１に属するノード３１、ノード３２、ノード３３のいずれかのノードがバックアップ要求をクライアントコンピュータ１１及び１２から受け付けるステップＳ１０１と、キー毎にデータを取得すべきノードを特定するため、分散データベース環境部２１に対して登録要求があった場合、どのノードを最初の書き込み先とするかを、入力されたタイムスタンプ値の範囲を対象としてキーを元にハッシュ値を算出するステップＳ１０２とを実行する。本実施形態では、バックアップ対象となるタイムスタンプの範囲を「２０１２１００１０９００００」〜「２０１２１００１０９０１５０」とし、説明を容易にするためトークンは０〜９までの範囲の整数としたとき、キーは１０で割った剰余によってこの範囲にマップピングし、トークンと比較されるものとする。尚、トークンの範囲やキーから受け持つトークンを決定するためのアルゴリズムは他の手法であっても良く、例えば、トークンを０から２の１２７乗までの整数の範囲とし、キーはＭＤ５ハッシュによってこの範囲にマップピングし、トークンと比較する手法で有っても良い。本実施形態での計算方法によれば、図２のＫＥＹ＝「０００００００１」は、トークン＝「１」となる。
【００２１】
次いで、本システムは、前記ステップＳ１０２で求めたトークンと図４に示した各ノードのトークン表とを照らし合わせ、トークン＝「１」がノード３１の範囲であることを特定し、同様に各キーのトークンを計算することにより各キーが書き込まれた先のノードを特定するステップＳ１０３と、該ステップＳ１０３により算出されたトークンを元に各ノードに対して、該当するキーの値を取得するよう要求するステップＳ１０４を実行する。このステップＳ１０４においては、例えば図２に示したＫＥＹ＝「０００００００２」で表すデータの場合、書き込み先ノードがノード３１となるため、書き込み先ではないノード３３上にある削除されたにも関わらず反映されていない状態のデータはバックアップ対象とならないため整合性を保つと共に、対象とするキーはバックアップ要求の際に指定されたタイムスタンプの範囲内のキーとする（図２のＫＥＹ＝「０００００００１」、ＫＥＹ＝「０００００００２」、ＫＥＹ＝「０００００００６」はタイムスタンプが範囲外）ことによって、バックアップ対象から除外するように動作する。
【００２２】
更に、本システムは、要求のあったキーの値を取得して取得した値を要求元のノードに転送するデータ取得を行うステップＳ１０５（具体的には、図７に示す如く、要求されたキーの値を自ノードのデータベースから取得するステップＳ２０１及び該ステップＳ２０１で取得したキーの値を要求元のノードへ転送するステップＳ２０２を実行する。）と、該ステップＳ１０５で各ノードへ要求したデータをマージし、一つのバックアップファイルとして生成するステップＳ１０６と、該ステップＳ１０６により生成したバックアップファイルを要求のあったクライアントへ返すステップＳ１０７とを実行するように動作する。
【００２３】
本実施形態によるバックアップ方法及びバックアップシステムは、キーに対してハッシュ等の手法により特定の他キーと重複しない値となるトークンを計算し、該トークンに基づいて書き込みを行ったノードに対してバックアップ取得の読み取り要求を送信することによって、制御ノードを持たない分散データベース環境において整合性が保証されたバックアップを可能とすることができ、バックアップ処理の要求時にバックアップ対象の範囲を示すタイムスタンプを与えることによって、特定の時刻における整合性が保証されたバックアップを可能とすることができる。
【符号の説明】
【００２４】
３１〜３３  ノード、４１〜４３  データベース、
１１及び１２  クライアントコンピュータ、２１  分散データベース環境部、
５１  バックアップ生成部、５２  データ取得部
【図１】
2015011434.tif 000003
【図２】
2015011434.tif 000004
【図３】
2015011434.tif 000005
【図４】
2015011434.tif 000006
【図５】
2015011434.tif 000007
【図６】
2015011434.tif 000008
【図７】
2015011434.tif 000009