JP5449471B2 - 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム - Google Patents
共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム Download PDFInfo
- Publication number
- JP5449471B2 JP5449471B2 JP2012160780A JP2012160780A JP5449471B2 JP 5449471 B2 JP5449471 B2 JP 5449471B2 JP 2012160780 A JP2012160780 A JP 2012160780A JP 2012160780 A JP2012160780 A JP 2012160780A JP 5449471 B2 JP5449471 B2 JP 5449471B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- update
- update process
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
また、更新が発生した時刻に基づいて同期処理を行うシステムでは、ある時刻以前の更新処理が反映されているか否かを簡単に確認する方法がない。また、反映されていない処理を発見した場合の対応に時間がかかる。
さらに、更新処理の順序を表す通し番号に基づいて同期処理を行うシステムでは、同期処理間の依存関係を簡単に確認する方法がなく、依存関係のない独立した更新処理に遅延が発生した場合でも後続の更新処理すべてに遅延が波及する。
‐更新されるデータを識別するデータキーと、
‐更新後のデータ内容を表すデータボディと、
‐更新処理よりも順序関係において先の更新処理を識別するプレイベントIDと、
‐先の更新処理を要求したアプリケーションを識別するプレサービスIDと、
‐先の更新処理によって更新されたデータを識別するプレデータキーと、
を取得するステップと、
起点ノードが、
‐当該更新処理を識別するイベントIDと、
‐データキーと、
‐データボディと、
‐プレイベントIDと、
‐プレサービスIDと、
‐プレデータキーと、
を含む反映要求メッセージを、他のノードに送信するステップと、
反映要求メッセージを受信したノードが、更新処理の反映ノードとして、プレイベントIDと、当該反映要求メッセージより前に受信されたイベントIDとに基づき、その反映ノードにおいて先の更新処理がすでに実行されたか否かを判定するステップと、
反映ノードにおいて先の更新処理が実行されていない場合に、その更新反映ノードが、
‐プレサービスIDと、
‐プレデータキーと、
を含む欠落データ要求メッセージを、他のノード(ただし起点ノードを含んでもよい)に送信するステップと、
欠落データ要求メッセージに含まれるプレサービスIDに対応するノードが、欠落データ要求メッセージに含まれるプレデータキーによって識別されるデータボディを含む欠落データ応答メッセージを、反映ノードに送信するステップと
を含む。
欠落データ要求メッセージは、イベントIDおよびプレイベントIDのいずれも含まないものであってもよい。
反映ノードにおいて、欠落データ要求メッセージを送信するステップは、反映要求メッセージを受信した後、所定時間が経過するまでは実行されないものであってもよい。
各ノードは、演算手段および記憶手段を備えるコンピュータによって構成されてもよい。
‐起点ノード、
‐反映ノード、および
‐欠落データ応答メッセージを送信するノード
として機能させる。
‐更新されるデータを識別するデータキーと、
‐更新後のデータ内容を表すデータボディと、
‐更新処理よりも順序関係において先の更新処理を識別するプレイベントIDと、
‐先の更新処理を要求したアプリケーションを識別するプレサービスIDと、
‐先の更新処理によって更新されたデータを識別するプレデータキーと、
を取得するステップと、
起点ノードが、
‐当該更新処理を識別するイベントIDと、
‐データキーと、
‐データボディと、
‐プレイベントIDと、
‐プレサービスIDと、
‐プレデータキーと、
を含む反映要求メッセージを、他のノードに送信するステップと、
反映要求メッセージを受信したノードが、更新処理の反映ノードとして、プレイベントIDと、当該反映要求メッセージより前に受信されたイベントIDとに基づき、その反映ノードにおいて先の更新処理がすでに実行されたか否かを判定するステップと、
反映ノードにおいて先の更新処理が実行されていない場合に、その更新反映ノードが、
‐プレサービスIDと、
‐プレデータキーと、
を含む欠落データ要求メッセージを、他のノード(ただし起点ノードを含んでもよい)に送信するステップと、
欠落データ要求メッセージに含まれるプレサービスIDに対応するノードが、欠落データ要求メッセージに含まれるプレデータキーによって識別されるデータボディを含む欠落データ応答メッセージを、反映ノードに送信するステップと
を含むので、整合性を維持しながらノード間のデータを高速に同期させることができる。
また、この発明に係るデータ共有システムは、複数のノードを備え、上述の方法を実行するので、整合性を維持しながらノード間のデータを高速に同期させることができる。
また、この発明に係るデータ共有プログラムは、コンピュータを、上述の
‐起点ノード、
‐反映ノード、および
‐欠落データ応答メッセージを送信するノード
として機能させるので、整合性を維持しながらノード間のデータを高速に同期させることができる。
実施の形態1.
図1に、本発明の実施の形態1に係るデータ共有システムの構成の例を示す。このデータ共有システムは、複数のノードによって共有される共有データに対する更新処理を扱うものであり、本発明の実施の形態1に係る同期処理方法を実行する。
スレーブノードは、対応するマスタノードが正常に動作している間はアプリケーションを実行せず、データ同期処理のみを実行する。そして、対応するマスタノードにおいて障害が発生した場合には、スレーブノードがマスタノードと同一のアプリケーションを実行する。
ただし、待機中のスレーブノードはサービスIDを持たない。すなわち、ノードA、BおよびCは互いに異なるサービスIDを有し、ノードA’、B’およびC’はサービスIDを持たない。そして、たとえばノードAにおいて障害が発生すると、ノードA’が、それまでのノードAと同じサービスIDを与えられてマスターノードへと切り替わる。
ノードAは、周知のコンピュータとしての構成を有し、演算を行う演算手段10と、情報を格納する記憶手段20とを備える。演算手段10はCPU(中央処理装置)を含み、記憶手段20は半導体メモリおよびHDD(ハードディスクドライブ)等の記憶媒体を含む。
図3に共有データ保存領域21の構成の例を示す。共有データ保存領域21は共有データを保存するための領域であり、データ共有システムはこの共有データを各ノードについて同期させるよう動作する。共有データ保存領域21に保存される共有データは、データの値を表すデータボディと、データボディを一意に識別するデータキーとを含む。データキーおよびデータボディはたとえば可変長であり、データキーはたとえば最大250バイトであり、データボディはたとえば最大1メガバイトである。データキーおよびデータボディは、共有データ保存領域21を管理するためのデータ共有システム内部管理データを含んでもよい。
各マスタノードのアプリケーション処理部11に対して、複数の更新処理の順序関係(たとえば図5の有向グラフを表すデータ)があらかじめ指定されている。アプリケーション処理部11は、この順序関係に従って、共有データの更新処理を依頼する。図5の例では、まずノードAのアプリケーション処理部11が更新処理A1に係る更新依頼を共有データ処理部12に送信する。そして、各ノードの共有データ処理部12が各ノードにおいて更新後のデータを同期させ、各ノードのアプリケーション処理部11に更新完了を通知する。この通知を受けたノードBのアプリケーション処理部11は、更新処理B1およびB2に係る更新依頼を共有データ処理部12に送信する。同様にして更新後のデータが同期され、次にノードCにおいて更新処理C1〜C3の更新依頼が送信される。このようにしてすべての更新処理が完了する。
‐その更新依頼を一意に識別する更新処理ID
‐更新されるデータを識別するデータキー
‐更新後のデータ内容を表すデータボディ
‐該当する更新処理よりも順序関係において先の更新処理を識別するプレイベントID
‐先の更新処理に係るアプリケーションを識別するプレサービスID
‐先の更新処理によって更新されたデータを識別するプレデータキー
ただし、先の更新処理が存在しない場合(すなわち、他の更新処理とは独立して実行可能な更新処理である場合)には、プレイベントID、プレサービスIDおよびプレデータキーは含まれない。
ステップS1は、共有データ処理部12を主体として見ると、外部の構成要素であるアプリケーション処理部11から送信されてきた更新依頼M1を受信し、これによって更新処理ID、データキー、データボディ、プレイベントID、プレサービスIDおよびプレデータキーを取得するステップであると解釈できる。一方、アプリケーション処理部11および共有データ処理部12を含むノード全体を主体として見ると、まず更新処理ID、データキー、データボディ、プレイベントID、プレサービスIDおよびプレデータキーを取得し、これに応じて更新依頼M1を内部で送受信するステップであると解釈できる。
ステップS2において、まず共有データ処理部12は、更新依頼M1に従って共有データを更新する(ステップS21)。すなわち、データキーによって特定されるデータの値を、データボディによって表される値に書き換える。次に、共有データ処理部12は、当該ノード内でこの更新処理を一意に識別するイベントIDを生成する(ステップS22)。
このように、共有データ処理部12は、アプリケーション処理部11に対する完了通知と、他のノードへの同期処理とを非同期に実行するので、データ共有システム全体の動作が比較的高速となる。
‐更新処理を識別するためのイベント識別情報
‐更新依頼M1において指定された更新処理ID
‐起点ノードのアプリケーション処理部11を一意に識別するサービスID
‐更新依頼M1において指定されたデータキー
‐更新依頼M1において指定されたデータボディ
‐更新依頼M1において指定された先の更新処理を識別するためのプレイベント識別情報
‐更新依頼M1において指定されたプレサービスID
‐更新依頼M1において指定されたプレデータキー
このようにしてステップS2(図6)が実行され、その後、共有データ処理部12の処理はステップS1に戻る。
ステップS4において、まず共有データ処理部12は、反映要求メッセージM2に先の更新処理が指定されているか否かを判定する(ステップS41)。この判定は、たとえば反映要求メッセージM2がプレイベント識別情報を含むか否かを判定することによって行われる。
先の更新処理が既に実行されていた場合、処理は上述のステップS47以降に進む。
‐反映要求メッセージM2において指定されたプレサービスID
‐反映要求メッセージM2において指定されたプレデータキー
このように、欠落データ要求メッセージM3は、反映要求メッセージM2自体の再送を要求するものではないが、実質的に最新のデータの再送信処理を要求するものであり、再送要求と解釈することもできる。なお、欠落データ要求メッセージM3はイベントの一種として扱われてもよく、図9の反映要求メッセージM2と同様に、イベントの種別、反映ノードのノードID、イベントID等の情報を含んでもよい。
‐欠落データ要求メッセージM3において指定されたプレデータキー
‐当該プレデータキーによって特定されるデータの内容を表すデータボディ
その後、共有データ処理部12の処理は、上述のステップS47以降に進む。なお、この場合、ステップS47における更新処理は、反映要求メッセージM2ではなく欠落データ応答メッセージM4に従って行われる。なお、欠落データ応答メッセージM4はイベントの一種として扱われてもよく、図9の反映要求メッセージM2と同様に、イベントの種別、応答ノードのノードID、イベントID等の情報を含んでもよい。
図13に、ステップS7の詳細を示す。ステップS7は、より詳細な処理として、ステップS71およびS72を含む。
ステップS7において、まず共有データ処理部12は、欠落データ応答メッセージM4を作成し(ステップS71)、ネットワーク処理部13を介して他の各ノードにブロードキャストする(ステップS72)。欠落データ応答メッセージM4は、図12に示すように、欠落データ要求メッセージM3に含まれるプレデータキーと、このプレデータキーによって識別されるデータボディとに基づいて作成される。
各ノードのアプリケーション処理部11は、図5に示す有向グラフに沿って更新処理を依頼する。ここで、ノードBが更新処理B2を行い、その反映がノードCにおいて完了したとする。ただし、何らかの原因によりノードAではこの反映がなされなかったものとする。
‐更新されるデータを識別するデータキーと、
‐更新後のデータ内容を表すデータボディと、
‐更新処理よりも順序関係において先の更新処理を識別するプレイベントIDと、
‐先の更新処理を要求したアプリケーションを識別するプレサービスIDと、
‐先の更新処理によって更新されたデータを識別するプレデータキーと、
を取得するステップと、
起点ノードが、
‐当該更新処理を識別するイベントIDと、
‐データキーと、
‐データボディと、
‐プレイベントIDと、
‐プレサービスIDと、
‐プレデータキーと、
を含む反映要求メッセージを、他のノードに送信するステップと、
反映要求メッセージを受信したノードが、更新処理の反映ノードとして、プレイベントIDと、当該反映要求メッセージより前に受信されたイベントIDとに基づき、その反映ノードにおいて先の更新処理がすでに実行されたか否かを判定するステップと、
反映ノードにおいて先の更新処理が実行されていない場合に、その更新反映ノードが、
‐プレサービスIDと、
‐プレデータキーと、
を含む欠落データ要求メッセージを、他のノード(ただし起点ノードを含んでもよい)に送信するステップと、
欠落データ要求メッセージに含まれるプレサービスIDに対応するノードが、欠落データ要求メッセージに含まれるプレデータキーによって識別されるデータボディを含む欠落データ応答メッセージを、反映ノードに送信するステップと
を含む。
また、この発明に係るデータ共有システムは、複数のノードを備え、上述の方法を実行する。
また、この発明に係るデータ共有プログラムは、コンピュータを、上述の
‐起点ノード、
‐反映ノード、および
‐欠落データ応答メッセージを送信するノード
として機能させる。
よって、本発明の実施の形態1に係る同期処理方法、データ共有システムおよびデータ共有プログラムによれば、共有データの更新が発生した場合において、整合性を維持しながらノード間のデータを高速に同期させることができる。
実施の形態1では6つのノードが存在するが、ノードの数は少なくとも2であればよい。また、実施の形態1では3つのノードがそれぞれ異なる更新処理を実行するが、ノードの数や更新処理の数に関わらず、少なくとも2つの更新処理がそれぞれ異なるノードによって実行される構成であれば本発明を適用することができる。
A,B,C,A’,B’,C’ ノード(起点ノード、反映ノード、欠落データ応答メッセージを送信するノード)、A1,B1,B2,C1〜C3 更新処理、
M1 更新依頼、M2 反映要求メッセージ、M3 欠落データ要求メッセージ、M4 欠落データ応答メッセージ。
Claims (7)
- 複数のノードによって共有される共有データに対する更新処理の同期処理方法であって、
前記共有データに対して、互いに順序関係を有する複数の更新処理が実行され、
前記複数の更新処理のうち少なくとも2つが、それぞれ異なるノードによって実行され、
各ノードには、前記更新処理を要求したアプリケーションを識別するサービスIDのいずれかが関連付けられる
更新処理の同期処理方法において、
前記ノードの少なくとも1つが、更新処理の起点ノードとして、
‐更新されるデータを識別するデータキーと、
‐更新後のデータ内容を表すデータボディと、
‐前記更新処理よりも順序関係において先の更新処理を識別するプレイベントIDと、
‐前記先の更新処理を要求したアプリケーションを識別するプレサービスIDと、
‐前記先の更新処理によって更新されたデータを識別するプレデータキーと、
を取得するステップと、
前記起点ノードが、
‐当該更新処理を識別するイベントIDと、
‐前記データキーと、
‐前記データボディと、
‐前記プレイベントIDと、
‐前記プレサービスIDと、
‐前記プレデータキーと、
を含む反映要求メッセージを、他のノードに送信するステップと、
前記反映要求メッセージを受信したノードが、更新処理の反映ノードとして、前記プレイベントIDと、当該反映要求メッセージより前に受信されたイベントIDとに基づき、その反映ノードにおいて前記先の更新処理がすでに実行されたか否かを判定するステップと、
前記反映ノードにおいて前記先の更新処理が実行されていない場合に、その更新反映ノードが、
‐前記プレサービスIDと、
‐前記プレデータキーと、
を含む欠落データ要求メッセージを、他のノード(ただし前記起点ノードを含んでもよい)に送信するステップと、
前記欠落データ要求メッセージに含まれる前記プレサービスIDに対応するノードが、前記欠落データ要求メッセージに含まれる前記プレデータキーによって識別されるデータボディを含む欠落データ応答メッセージを、前記反映ノードに送信するステップと
を含む、同期処理方法。 - 前記反映要求メッセージ、前記欠落データ要求メッセージおよび前記欠落データ応答メッセージは、いずれもブロードキャスト方式のメッセージである、請求項1に記載の方法。
- 前記欠落データ要求メッセージは、前記イベントIDおよび前記プレイベントIDのいずれも含まない、請求項1または2に記載の方法。
- 前記反映ノードにおいて、前記欠落データ要求メッセージを送信するステップは、前記反映要求メッセージを受信した後、所定時間が経過するまでは実行されない、請求項1〜3のいずれか一項に記載の方法。
- 各前記ノードは、演算手段および記憶手段を備えるコンピュータによって構成される、請求項1〜4のいずれか一項に記載の方法。
- 複数のノードを備え、請求項1〜5のいずれか一項に記載の方法を実行するデータ共有システム。
- コンピュータを、請求項1〜5のいずれか一項に記載の
‐起点ノード、
‐反映ノード、および
‐欠落データ応答メッセージを送信するノード
として機能させるデータ共有プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012160780A JP5449471B2 (ja) | 2012-07-19 | 2012-07-19 | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012160780A JP5449471B2 (ja) | 2012-07-19 | 2012-07-19 | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014021778A JP2014021778A (ja) | 2014-02-03 |
JP5449471B2 true JP5449471B2 (ja) | 2014-03-19 |
Family
ID=50196572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012160780A Expired - Fee Related JP5449471B2 (ja) | 2012-07-19 | 2012-07-19 | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5449471B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110599005B (zh) * | 2019-08-23 | 2023-01-31 | 东软集团股份有限公司 | 流程解析方法、装置、计算机可读存储介质和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008268587A (ja) * | 2007-04-20 | 2008-11-06 | Yamaichi Electronics Co Ltd | 車載用光モジュール |
JP2009230369A (ja) * | 2008-03-21 | 2009-10-08 | Konica Minolta Holdings Inc | 共有データの同期方法、共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステム |
-
2012
- 2012-07-19 JP JP2012160780A patent/JP5449471B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014021778A (ja) | 2014-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6382454B2 (ja) | 分散ストレージ及びレプリケーションシステム、並びに方法 | |
JP5714571B2 (ja) | キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理 | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
US8671151B2 (en) | Maintaining item-to-node mapping information in a distributed system | |
US10114848B2 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
US10831612B2 (en) | Primary node-standby node data transmission method, control node, and database system | |
KR102038527B1 (ko) | 분산 클러스터 관리 시스템 및 그 방법 | |
US20140059315A1 (en) | Computer system, data management method and data management program | |
WO2017152860A1 (zh) | 一种心跳信息发送方法、装置及心跳发送节点 | |
US11640261B2 (en) | Log processing method to avoid log collision, and related device and system | |
US9043283B2 (en) | Opportunistic database duplex operations | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
CN112015595B (zh) | 主从数据库的切换方法、计算设备及存储介质 | |
JP5449471B2 (ja) | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム | |
WO2016183735A1 (zh) | 一种同步虚拟网络功能vnf状态的方法、装置和设备 | |
US8089987B2 (en) | Synchronizing in-memory caches while being updated by a high rate data stream | |
JP2014016953A (ja) | 無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラム | |
US20120191645A1 (en) | Information processing apparatus and database system | |
KR100492167B1 (ko) | 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 | |
JP5480046B2 (ja) | 分散トランザクション処理システム、装置、方法およびプログラム | |
JP5464449B2 (ja) | 障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム | |
JP2010134583A (ja) | データベース処理方法、データベース処理プログラム、および、データベース指示装置 | |
CN113037797A (zh) | 数据处理方法及其装置 | |
JP2015041146A (ja) | サーバ装置、クライアント装置、システム、情報処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5449471 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |