JP5543918B2 - Conflict resolution method for parallel database editing - Google Patents

Conflict resolution method for parallel database editing Download PDF

Info

Publication number
JP5543918B2
JP5543918B2 JP2010515774A JP2010515774A JP5543918B2 JP 5543918 B2 JP5543918 B2 JP 5543918B2 JP 2010515774 A JP2010515774 A JP 2010515774A JP 2010515774 A JP2010515774 A JP 2010515774A JP 5543918 B2 JP5543918 B2 JP 5543918B2
Authority
JP
Japan
Prior art keywords
version
edit
editing
database
new
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.)
Active
Application number
JP2010515774A
Other languages
Japanese (ja)
Other versions
JPWO2009147846A1 (en
Inventor
邦夫 上村
Original Assignee
株式会社アテナテレコムラボ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from PCT/JP2008/001424 external-priority patent/WO2008149552A1/en
Priority claimed from PCT/JP2008/001506 external-priority patent/WO2009147701A1/en
Application filed by 株式会社アテナテレコムラボ filed Critical 株式会社アテナテレコムラボ
Priority to JP2010515774A priority Critical patent/JP5543918B2/en
Priority claimed from PCT/JP2009/002490 external-priority patent/WO2009147846A1/en
Publication of JPWO2009147846A1 publication Critical patent/JPWO2009147846A1/en
Application granted granted Critical
Publication of JP5543918B2 publication Critical patent/JP5543918B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はデータベース(以下「DB」)の、複数の複製に対して、並行して編集(以下「並行DB編集」)が行われた場合に発生する、編集の競合を解決するものである。 The present invention solves editing conflicts that occur when a database (hereinafter “DB”) is edited in parallel (hereinafter “parallel DB editing”) for a plurality of replicas.

一般的にはサーバー計算機(以下「サーバー」)にデータベースが置かれ、複数の端末計算機(以下「PC」)がアクセスする運用が行われている。アクセスの競合を防ぐため、ベシミステックロックカーソル(非特許文献1)やトランザクションのロック(非特許文献2)が用いられている。 In general, a database is placed in a server computer (hereinafter “server”), and an operation is performed in which a plurality of terminal computers (hereinafter “PC”) access. In order to prevent access conflicts, a vestigec lock cursor (Non-Patent Document 1) and a transaction lock (Non-Patent Document 2) are used.

MVCC(非特許文献3)も編集ロック(非特許文献4、非特許文献5)を用い、OODB製品のCache(非特許文献6)とObjectStore(非特許文献7)も編集ロックを用いている。リレーショナルDB(RDB)のPostgreSQLでは「同時に起こりうる更新を避けるためには適切なLOCK TABLE 文を使用する」(非特許文献5)とあり、これも編集ロックである。特許文献1も編集ロックである。 MVCC (Non-Patent Document 3) also uses an edit lock (Non-Patent Document 4 and Non-Patent Document 5), and OODB products Cache (Non-Patent Document 6) and ObjectStore (Non-Patent Document 7) also use an edit lock. In PostgreSQL of relational DB (RDB), “Use appropriate LOCK TABLE statement to avoid updates that can occur at the same time” (Non-Patent Document 5) is also an edit lock. Patent Document 1 is also an edit lock.

作業用の複製を作成して処理を行うキャシュの技術で、処理や通信の効率化を図る試みも行われている。マイクロソフトのADO.NETは、PCに当面の作業に必要なデータをサーバーからコピーし、サーバーとの接続を切断してから編集作業を行う。編集後に改めてサーバーと接続し編集内容をサーバーに送る。もし編集対象の情報が既に他のPCから変更されていれば、後からの(この)編集を無効にする。これは「オプティミスティック同時実行制御」(非特許文献8および非特許文献9)と呼ばれている。「ロックが結果として失敗した場合にはその編集を無効とする」と考えれば、編集ロックの一種とも言える。本願では、他の方法との比較のため、この方法を「先着優先」と呼ぶ。この「先着優先」では、時として以下に示す不都合が生じる事がある。 Attempts have been made to improve the efficiency of processing and communication by using a cache technology that performs processing by creating a working copy. Microsoft's ADO.NET copies the data necessary for the immediate work to the PC from the server, cuts the connection with the server, and then edits. After editing, connect to the server again and send the edited content to the server. If the information to be edited has already been changed from another PC, the later (this) editing is invalidated. This is called “optimistic concurrency control” (Non-Patent Document 8 and Non-Patent Document 9). It can be said that it is a kind of editing lock if it is considered that “the editing is invalidated when the lock fails as a result”. In the present application, this method is referred to as “first-come-first-served” for comparison with other methods. This “first-come-first-served” sometimes causes the following inconveniences.

(1)最新情報を基にした編集が無効となるケースが存在する。最新情報を基にした編集はその時点での最善の判断の可能性が高いので、これが無効になると実際の運用においては問題となる。 (1) There are cases where editing based on the latest information is invalid. Editing based on the latest information is likely to be the best decision at the time, and if this becomes invalid, it becomes a problem in actual operation.

例えば、PC−Xの操作者は朝9時に必要なデータをサーバーからコピーし、「この顧客は冷やかしなので、親切な対応は不要」と書き込みその後しばらく放置したとする。一方PC−Yの操作者は、お昼の12時に「この顧客から高額な取引の提案有り」との情報を得て、「契約に向け、最大限の接待を行う」と書き込み、サーバーにアップしたとする。しかし、その1分前にPC−Xからの編集がアップされると、PC−Yの編集のアップは後からなので無効となる。最新情報を元にしたPC−Yの編集が、PC−Xの操作者の気まぐれな操作で妨害されている。 For example, it is assumed that the operator of the PC-X copies necessary data from the server at 9:00 am, writes “This customer is chilly, so no friendly response is required”, and then left for a while. On the other hand, the operator of PC-Y got the information “There is a proposal for an expensive transaction from this customer” at 12:00 noon, wrote “I will do the maximum entertainment for the contract” and uploaded it to the server. And However, if editing from the PC-X is uploaded one minute before that, the editing of the PC-Y is invalidated since it is later. Editing of the PC-Y based on the latest information is obstructed by a whimsical operation of the PC-X operator.

(2)編集毎にコピーを作成(非特許文献1のp19)するので、そのコピー作成の処理と通信がオーバーヘッドとなる。このオーバーヘッドを少なくするには、コピーの範囲を制限する必要があるが、これにはアプリケーションが対象とする情報の構造を熟知している必要がある。これはキャシュに基づく方法に共通する問題である。 (2) Since a copy is created for each edit (p19 of Non-Patent Document 1), the copy creation processing and communication become overhead. To reduce this overhead, it is necessary to limit the scope of copying, but this requires knowledge of the structure of the information targeted by the application. This is a common problem with cache-based methods.

特許文献2でも、指定した範囲のレコードが更新されていると後からの更新を無効としている。具体的には、引用発明の頁(6)の下部に「他の処理によって当該レコードを更新されている事が判明すると・・・更新は拒否され」とある。これは「先着優先」であり、ADO.NETと同じ問題を抱えている。 Even in Patent Document 2, if a record in a specified range is updated, later update is invalidated. Specifically, at the bottom of page (6) of the cited invention, “If it is found that the record has been updated by another process, the update is rejected”. This is “first-come-first-served” and has the same problem as ADO.NET.

特許文献3では、複製DBでの編集時刻を基に、競合する編集のバージョンを、「時刻の早い順からバージョンをふり直す(ステップS604)」(特許文献3の段落0065、段落0079)、そして「日時が最も古いコンテンツ情報を最新のバージョンに更新する」(段落0097)としている。つまり、先に編集した方を優先としている。本願では、他の方法との比較のため、この方法を「先編集優先」 と呼ぶ。 In Patent Document 3, based on the editing time in the duplicate DB, the competing editing versions are “re-referenced from the earliest time (Step S604)” (paragraph 0065 and paragraph 0079 in Patent Document 3), and “Update content information with the oldest date and time to the latest version” (paragraph 0097). In other words, the one that was edited first is given priority. In the present application, this method is referred to as “first edit priority” for comparison with other methods.

「先編集優先」でも問題が生じる場合がある。例えば、ある時点(例えば1年前)の編集結果があるPCの中に存在しており、ある日突然サーバーにアップされて有効になると、他のPCによって過去1年間に編集されアップされていた編集内容が全て無効になってしまう。この様な運用は通常は許されないと思われる。なお、特許文献4も更新時刻が先の更新を有効としており、同じ問題を抱えている。 There may be a problem even with “first edit priority”. For example, if there is an editing result at a certain time (for example, one year ago) in a PC, and it is suddenly uploaded to the server one day and activated, it has been edited and uploaded by the other PC in the past year. All edits will be invalid. Such operations are not normally allowed. Note that Patent Document 4 also has the same problem because the update time is valid for the previous update.

特許文献5では更新時刻が後の更新を有効としている。本願では、他の方法との比較のため、この方法を「無条件上書き」と呼ぶ。この文献ではPCでの修正がほぼリアルタイムに他のPCに伝わる運用を前提としているので、後からの編集はそれまでの編集状況を全て把握した上での修正と推定される。この条件ならば「無条件上書き」でも問題は無いと思われる。 In Patent Document 5, an update with a later update time is valid. In the present application, this method is referred to as “unconditional overwrite” for comparison with other methods. In this document, it is assumed that the correction on the PC is transmitted to another PC almost in real time. Therefore, the later editing is presumed to be correction after grasping all the editing statuses up to that point. Under this condition, there seems to be no problem with "Unconditional Overwrite".

しかし本願の様に、複数のPCが並行して、それぞれが保持する複製DBの内容を変更するケースでは、他のPCでの編集状況が即時には伝わらない。この状況、単に更新時刻が後であれば常に上書きする「無条件上書き」を適用するならば、PCの操作者には直接は理解出来ない理由で編集の有効性が決定される事になる。編集の時刻を決定するPC毎の時計がずれる事も、意図的にずらされる可能性も考える必要がある。「無条件上書き」を並行編集に適用するには、検討を要する多くの問題がある。 However, in the case where a plurality of PCs change the contents of the duplicate DB held by each of the PCs as in the present application, the editing status on the other PCs is not immediately transmitted. In this situation, if “unconditional overwrite”, which is always overwritten if the update time is later, is applied, the effectiveness of editing is determined for reasons that cannot be directly understood by the PC operator. It is necessary to consider the possibility that the clock of each PC that determines the editing time may be shifted or that the clock may be shifted intentionally. There are many issues that need to be considered when applying "Unconditional Overwrite" to parallel editing.

その他の調査結果を以下に示す。特許文献6はデータベースの同期を起動する条件に関する発明であり、同期の方法については「更新情報を互いに通知し合って同期」と言う一般的な同期の概念を示しているにすぎない。平行して作成された更新(本願では「編集記録」)を互いに通知するだけでは、様々な理由(エラー再送などによる遅れ、送信タイミングのずれ等)により、DBに適用する順番がPC毎に異なる可能性があり、それぞれの複製DBの内容が異なるという重大な問題が予想される。しかし、これについての対策は示されていない。 Other survey results are shown below. Patent Document 6 is an invention relating to a condition for starting the synchronization of a database, and the synchronization method merely shows a general synchronization concept of “synchronizing by notifying each other of update information”. By simply notifying each other of updates created in parallel (“edit record” in the present application), the order of application to the DB differs for each PC for various reasons (delay due to error retransmission, transmission timing deviation, etc.). There is a possibility that a serious problem is expected that the contents of each replicated DB are different. However, no countermeasure has been shown for this.

特許文献7は、編集の競合が起きた際に「全ての更新データを保持する」ことを目的とした発明である。競合が無いときにのみ原本を更新するのであり、本発明とは目的も内容も異なる。 Patent Document 7 is an invention for the purpose of “holding all update data” when an editing conflict occurs. The original is updated only when there is no conflict, and the object and contents are different from the present invention.

非特許文献10は、ファイルのキャシュに関する発明で、編集の衝突(本願での競合)を検出した場合は単純に編集を拒否する(非特許文献10の7頁の右下から10行目)のみであり、本願の様に衝突した編集のうちどれを有効にするかの判定は行わない。 Non-Patent Document 10 is an invention related to file caching, and when it detects an edit conflict (competition in this application), it simply rejects the edit (10th line from the lower right on page 7 of Non-Patent Document 10). Therefore, it is not determined which of the edited editing is effective as in the present application.

特許文献8、特許文献9、特許文献10、特特許文献11、特許文献12についても調査したが、いずれも本願の目的である、並行DB編集による矛盾の解決には適用出来ない。
特開平11−272534号公報 特開昭61−134853号公報 特開2005−216167号公報 特開平9−91184号広報 特開2004−13867号広報 特開2004−86800号広報 特開2006−284998号広報 特開平11−161535号公報 特表2005−503606号公報 特表2005−508050号公報 特開平8−16447号公報 特表2000−501532号公報 William R. Vaughn, 株トップスタジオ訳、伊藤由紀子監修、Windows(登録商標)データベースプログラミング ADO.NET専修講座 VB.NET 編、2003年8月4日初版発行、翔泳社 超図解SQLハンドブック、C&R研究所、2005年8月12日初版発行 「主な機能とメリット」、[online]、2007年4月22日検索、インターネット(URL:http://www.sonicsoftware.co.jp/products/object_store/function.html) 「MVCC(多版型同時実行制御)9.1. はじめに」、[online]、2007年4月22日検索、インターネット(URL:http://www.postgresql.jp/document/pg721doc/user/ mvcc.html #MVC C-INTRO) 「9.5. アプリケーションレベルでのデータの一貫性チェック」、[online]、2007年4月22日検索、インターネット(http://www.postgresql.jp/document/pg721doc/user/applevel-consistency.html) 「Cache Technology Guide」、[online]、2007年4月22日検索、インターネット(URL: http://www.intersystems.co.jp/cache/technologyguide/technologyguide.html) 「主な機能とメリット」、[online]、2007年4月22日検索、インターネット(URL:http://www.sonicsoftware.co.jp/products/object_store/function.html) 「ADO.NET におけるデータ同時実行制御の概要」、2007年1月、MSDNサブスクリプションライブラリー(msdn subscriptions Library)、ディスクファイル(URL:ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2-34d9e6661664.htm) 「チュートリアル : 同時実行例外の処理」、2007年1月、MSDNサブスクリプションライブラリー(msdn subscriptions Library)、ディスクファイル(URL: ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm) 「世界規模分散ファイルシステムSKINNY 」、情報処理学会研究報告, 95-OS-70, (学術刊行物 情処研報 Vol. 95, No.79 ISSN 0919-6072
Although Patent Literature 8, Patent Literature 9, Patent Literature 10, Patent Literature 11, and Patent Literature 12 were also investigated, none of them can be applied to the contradiction resolution by parallel DB editing, which is the purpose of the present application.
Japanese Patent Laid-Open No. 11-272534 JP-A-61-134853 JP 2005-216167 A JP 9-91184 A Japanese Laid-Open Patent Publication No. 2004-13867 JP 2004-86800 A JP 2006-284998 A JP 11-161535 A JP 2005-503606 Gazette Special table 2005-508050 gazette JP-A-8-16447 JP 2000-501532 A William R. Vaughn, translation of top studio, supervised by Yukiko Ito, Windows (registered trademark) database programming ADO.NET special course VB.NET edition, August 4, 2003, first edition issued, Shosuisha Super Illustrated SQL Handbook, C & R Laboratories, first published on August 12, 2005 “Main functions and benefits”, [online], search on April 22, 2007, Internet (URL: http://www.sonicsoftware.co.jp/products/object_store/function.html) "MVCC (Multi-version concurrent execution control) 9.1. Introduction", [online], search on April 22, 2007, Internet (URL: http://www.postgresql.jp/document/pg721doc/user/mvcc.html #MVC C-INTRO) “9.5. Checking Data Consistency at the Application Level”, [online], April 22, 2007 search, Internet (http://www.postgresql.jp/document/pg721doc/user/applevel-consistency.html) "Cache Technology Guide", [online], search April 22, 2007, Internet (URL: http://www.intersystems.co.jp/cache/technologyguide/technologyguide.html) “Main functions and benefits”, [online], search on April 22, 2007, Internet (URL: http://www.sonicsoftware.co.jp/products/object_store/function.html) "Outline of data concurrency control in ADO.NET", January 2007, MSDN subscription library (msdn subscriptions Library), disk file (URL: ms-help: //MS.MSDNQTR.v80.en/MS. MSDN.v80 / MS.VisualStudio.v80.en / dv_raddata / html / d5293098-4a88-4110-abd2-34d9e6661664.htm) “Tutorial: Handling Concurrency Exceptions”, January 2007, MSDN Subscriptions Library, disk file (URL: ms-help: //MS.MSDNQTR.v80.en/MS.MSDN.v80 /MS.VisualStudio.v80.en/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm) "World-wide distributed file system SKINNY", Information Processing Society of Japan Research Report, 95-OS-70, (Academic Publications Institute of Information Processing Vol. 95, No. 79 ISSN 0919-6072

本願の目的は、DB複製が複数のPCに有り、これらに対して並行して並行DB編集が行われた場合に発生する、「編集の競合」を解決する事にある。キャシュ技術の延長である「先着優先」、「先編集優先」、「無条件上書き方式」を検討したが、これらには様々な問題があった。各PCが保持する複製DBは、キャシュとしての一時的な複製として位置付けられ、多少の問題は無視する割り切りと推定される。本願では、各PCが永続的に複製DBを保持する、いわば本格的な「並行DB編集」を提案するとともに、これに適した、編集の競合の解決方法を明らかにする。また、キャシュ技術への適用も検討する。 An object of the present application is to solve an “editing conflict” that occurs when DB replication exists in a plurality of PCs and parallel DB editing is performed on these PCs in parallel. Although the "first-come-first-priority", "first-edit priority", and "unconditional overwrite method", which are extensions of the cache technology, were examined, these had various problems. The replica DB held by each PC is positioned as a temporary replica as a cache, and it is estimated that some problems are ignored. The present application proposes a full-fledged “parallel DB editing” in which each PC permanently holds a duplicate DB, and clarifies a method of editing conflict resolution suitable for this. Also consider application to cache technology.

本発明では、並行DB編集における編集の衝突を「より最新の情報に基づく編集を優先」する方針で解決する。そして本格的な並行DB編集に用いたケースや、キャシュ技術への適用を説明する。以下では一つの適用例に基づいて説明する。 In the present invention, editing conflicts in parallel DB editing are resolved with a policy of “prioritizing editing based on the latest information”. The case used for full-fledged parallel database editing and its application to cache technology will be described. Below, it demonstrates based on one example of application.

(1)準備
複数のPCに、原本DB(以下「グローバル原本DB」)の初期状態の複製DB(以下「ローカル原本DB」)を置く。このローカル原本DBには初期のバージョン、つまり更新の順番を識別する順序数、が設定されている。
(1) Preparation A replica DB (hereinafter “local original DB”) in an initial state of an original DB (hereinafter “global original DB”) is placed on a plurality of PCs. In this local original DB, an initial version, that is, an order number for identifying the update order, is set.

この順序数の簡単な実現例は整数で、初期値として「0」を設定するのが自然である。本願ではこのバージョンを用いて衝突の解決が行う。各PCはそれぞれの(多分操作者の)都合の良い時に複製DBの更新を行い、バージョンを更新する。この詳細を以下で説明する。 A simple implementation of this order number is an integer, and it is natural to set “0” as the initial value. In this application, this version is used to resolve conflicts. Each PC updates the version of the duplicate DB at their respective (possibly operator's) convenience. Details of this will be described below.

(2)ローカル編集
各PCはそれが保持するローカル原本DBに対するローカルな編集を行う。この編集の前にローカル原本DBの作業用の複製を作成し、編集はこの複製に対して行う。また、編集時にはその「編集記録」を作成する。この編集記録には「編集内容」「編集バージョン」「不変確認範囲」などが記録される。
(2) Local editing Each PC performs local editing on the local original DB held by the PC. Before this editing, a working copy of the local original DB is created, and editing is performed on this copy. In addition, the “edit record” is created at the time of editing. In this edit record, “edit contents”, “edit version”, “invariant confirmation range”, and the like are recorded.

「編集内容」はどの情報をどの様に変更したか、どの情報を追加したか、どの情報を削除したか、などの一般的な編集内容である。「編集バージョン」は編集対象のローカル原本DBのバージョン、厳密に言えば、編集対象の作業DBの複製元となったローカル原本DBのバージョン、である。 “Edited contents” are general edited contents such as which information has been changed in what manner, which information has been added, and which information has been deleted. “Edited version” is the version of the local original DB to be edited, strictly speaking, the version of the local original DB that is the replication source of the work DB to be edited.

「不変確認範囲」はこの編集が前提とする情報の範囲である。もしこの編集が確定する前にこの範囲の情報の変更されてしまえば、この編集は無意味になる事を示している。「不変確認範囲」はDBが扱う情報、特にその編集する対象の情報の特性に応じて様々な指定が可能である。一般的な運用では、編集対象の情報は「不変確認範囲」にはいると思われるが、必ず入れる必要は無い。リレーショナルDB(以下「RDB」)の場合には、編集対象のテーブル、編集対象と論理的に関連しているテーブル群、そのなかの一部のレコード、またはDB全体などが考えられる。 The “invariant confirmation range” is a range of information assumed by this editing. If this range of information is changed before the edit is finalized, this indicates that the edit is meaningless. The “invariant confirmation range” can be specified in various ways according to the characteristics of information handled by the DB, particularly the information to be edited. In general operation, the information to be edited seems to be in the “invariant confirmation range”, but it is not always necessary to enter it. In the case of a relational DB (hereinafter “RDB”), a table to be edited, a group of tables logically related to the object to be edited, a part of the records, or the entire DB can be considered.

情報の性質に応じて適切な不変確認範囲が設定する事により、DBの使い勝手が良くなる。「不変確認範囲」が小さければ多くの並行編集が問題なく行えるので、必要不可欠な最小限の情報(の組み合わせ)を不変範囲として設定するのが良い。 By setting an appropriate invariant confirmation range according to the nature of the information, the usability of the DB is improved. If the “invariant confirmation range” is small, many parallel editing can be performed without any problem. Therefore, it is preferable to set the indispensable minimum information (combination) as the invariable range.

(3)サーバーへの編集記録の送信
各PCは「編集記録」をサーバーに送信する。「編集記録」と「編集バージョン」および「不変確認範囲」を分けて記録している場合には、「編集記録」との対応を明示して「編集バージョン」および「不変確認範囲」も送信する。なお、「編集記録」の中に「編集バージョン」と「不変確認範囲」も、さらには後で説明する「バージョン設定範囲」も、記録しておくと、通信手順が簡単になる。
(3) Transmission of edit record to server Each PC transmits “edit record” to the server. If "Edit Record", "Edit Version", and "Invariant Confirmation Range" are recorded separately, "Edit Version" and "Invariant Confirm Range" are also sent clearly indicating the correspondence with "Edit Record" . If the “edit version” and “invariant confirmation range” and “version setting range” described later are recorded in the “edit record”, the communication procedure is simplified.

(4)サーバーによる編集記録の受信
サーバーは、PCから到着した編集記録を、その到着の順番と共に記録しておく。
(4) Receiving edit records by the server The server records the edit records that have arrived from the PC together with the order of arrival.

(5)サーバーからの編集記録の受信
PCはサーバーに対して、未受信の編集記録の送信を要求し、これらの編集記録、と対応する編集バージョン、必要なら不変確認範囲やバージョン設定範囲を受信する。同時に編集記録のサーバーへの到着の順番を受信する。サーバーがPCから到着した編集記録にその到着の順番を記録すると、通信手順が簡単になる。
(5) Receiving edit records from the server The PC requests the server to send unedited edit records, and receives these edit records, the corresponding edit versions, and if necessary the invariant confirmation range and version setting range. To do. At the same time, the order of arrival of edit records to the server is received. If the server records the arrival order in the edit record that arrives from the PC, the communication procedure is simplified.

(6)ローカル原本DBの更新
PCは指定された順番でサーバーから受信した編集記録を取り出し、編集記録の有効性を判定する。この判定手順の詳細は後の「有効性の判定手順」で説明する。そしてローカル原本DBを更新してそのバージョンを更新する。バージョンが整数なら初期値の「0」から順番に1個ずつ上げていくのが自然である。なお、PCは指定された編集記録を全て最後まで処理する(途中で新たな編集作業は入れない)。従って、サーバーから受信した最後の編集記録まで一気にローカル原本DBを更新しその後での後で(処理した編集記録の数だけ)バージョンを更新しても良い。
(6) The local original DB update PC retrieves the edit records received from the server in the specified order, and determines the validity of the edit records. Details of this determination procedure will be described later in “Effectiveness Determination Procedure”. Then, the local original DB is updated to update its version. If the version is an integer, it is natural to increase the value one by one from the initial value “0”. Note that the PC processes all the specified editing records to the end (no new editing work is entered on the way). Therefore, the local original DB may be updated at a stroke until the last editing record received from the server, and the version may be updated thereafter (by the number of processed editing records).

< バージョンと言う時間での同期 >
全てのPCは、各PCにおけるローカルな編集の編集記録を、サーバーへの到着順で取り出し、ローカル原本DBを更新しそのバージョンを更新する。同じ情報を同じ順番で用いて、同じロジックで処理するので、結果として得られる各PCのローカル原本DBとそのバージョンは同期する。グローバル原本DBを更新しなくても、グローバル原本DBが存在しなくても、各PCのローカル原本DBが同期するのはこの仕掛けによる。
<Synchronization in time called version>
All PCs take out edit records of local edits in each PC in the order of arrival at the server, update the local original DB, and update its version. Since the same information is used in the same order and processed by the same logic, the local original DB of each PC obtained and the version are synchronized. It is this mechanism that the local original DB of each PC is synchronized even if the global original DB is not updated or the global original DB does not exist.

各PCはそれぞれの都合の良い時に、それぞれのローカル原本DBの更新を行うので、実時間で見ると、各PCのローカル原本DBのバージョンの進み方は様々である。しかし、バージョンが更新される順番は同じであり、同じバージョンならローカル原本DBの内容は同じである。つまり、バージョンが、並行DBアクセスにおける各PCに共通の時間に相当する。つまり本発明ではバージョンと言う時間で各PCのローカル原本DBが同期する。 Each PC updates its local original DB when it is convenient, so when viewed in real time, the progress of the version of the local original DB of each PC varies. However, the order in which the versions are updated is the same. If the versions are the same, the contents of the local original DB are the same. That is, the version corresponds to a time common to each PC in parallel DB access. In other words, in the present invention, the local original DB of each PC is synchronized in the time called version.

DB全体に対してひとつのバージョンを設定する場合の説明は以上であるが、後で説明する、情報のグループを「バージョン設定範囲」として設定する場合は、その範囲の情報が更新(追加、変更、削除)された時に、その範囲のバージョンを更新し、それぞれの範囲に対してバージョンを記録する。 The description of setting one version for the entire DB is above. However, when setting a group of information as “version setting range”, which will be described later, the information in the range is updated (added or changed). , Delete), update the version of the range and record the version for each range.

< 有効性の判定手順 >
「編集記録の有効性の判定」が本発明の重要な部分である。編集記録(Y)により「ローカル原本DB」の更新を試みる場合には、まず、Yに指定された「不変確認範囲」の情報を更新した過去の編集記録を調査し、これらの全てに対してYが有効と判定された時に、Yを有効と判定する。ここで説明のため、Yに指定された「不変確認範囲」の情報を更新した過去の編集記録のひとつをXとし、以下の記号を用いる。
y:Yの編集バージョン=Yの編集対象であった「ローカル原本DB」のバージョン。
x:Xの編集バージョン=Xの編集対象であった「ローカル原本DB」のバージョン。
nx:Xに基づく更新により設定された原本のバージョン。当然「x<nx」。
<Effectiveness judgment procedure>
“Determining the validity of an edit record” is an important part of the present invention. When attempting to update the “local original DB” with the edit record (Y), first, the past edit record in which the information of the “invariant confirmation range” specified in Y has been updated is investigated, and all of these are checked. When Y is determined to be valid, Y is determined to be valid. Here, for the sake of explanation, one of the past editing records in which the information of the “invariant confirmation range” designated by Y is updated is X, and the following symbols are used.
y: Y edit version = the version of the “local original DB” that was the edit target of Y.
x: Edit version of X = version of “local original DB” that was the edit object of X.
nx: version of the original set by updating based on X. Naturally, “x <nx”.

YがXに対して無効である条件は、以下二つのどれかを満たした場合である。なお、少なくとも一つのXに対して無効であれば、Yは無効と判定され、Yによるローカル原本DBの更新は実行されない。 The condition that Y is invalid with respect to X is when one of the following two conditions is satisfied. If at least one X is invalid, Y is determined to be invalid, and the local original DB is not updated by Y.

(Yが無効となる条件1)XがYの「不変確認範囲」の情報を更新しており、かつ「y<x」。つまり、Yの編集バージョンがXより古いので、Yを無効と判定する。 (Condition 1 in which Y becomes invalid) Information of “invariant confirmation range” in which X is Y is updated, and “y <x”. That is, since the edited version of Y is older than X, Y is determined to be invalid.

(Yが無効となる条件2)XがYの「不変確認範囲」の情報を更新しており、かつ「y=x」。つまり、編集バージョンが一致した場合は、先着のXを有効としYを無効と判定する。 (Condition 2 for invalidating Y) Information of “invariant confirmation range” in which X is Y is updated, and “y = x”. In other words, if the edited versions match, it is determined that the first X is valid and Y is invalid.

従来の「先着優先」や「先編集優先」の方法では、古い情報に基づく編集が最新の情報に基づく編集よりも優先される問題があったが、本発明では以上の2条件でこれらの問題を排除している。 In the conventional “first-come-first-priority” or “first-edit priority” method, there is a problem that editing based on old information is prioritized over editing based on the latest information. Is eliminated.

逆に、YがXに対して有効である条件は以下2つのどれかを満たした場合である。なお、全てのXに対して有効な場合にYが有効となり、Yによるローカル原本DBの更新は実行される。 Conversely, the condition that Y is valid for X is when one of the following two conditions is satisfied. Note that Y is valid when valid for all X, and updating of the local original DB by Y is executed.

(Yが有効となる条件1)XがYの「不変確認範囲」の情報を更新していない場合は、この条件だけでYはXに対して有効。 (Condition 1 for Y to be valid) When X is not updated with the information of “invariant confirmation range” where Y is Y, Y is valid for X only under this condition.

(Yが有効となる条件2)XがYの「不変確認範囲」の情報を更新しており、かつ「x<y」の場合、YはXに対して有効となる。 (Condition 2 for Y to be valid) When “invariant confirmation range” information in which X is Y is updated and “x <y”, Y is valid for X.

全てのXに対して有効な場合にYが有効となり、Yによりローカル原本DBを更新する。編集バージョンが新しい編集を優先する原則を厳密に適用する場合には、yとnxの関係によりその更新手順が分かれる。 When valid for all X, Y becomes valid, and the local original DB is updated by Y. When the principle that the edit version prioritizes the new edit is strictly applied, the update procedure is divided depending on the relationship between y and nx.

「(x<)nx<=y」の場合:Yの編集対象のローカル原本DBにはXの変更が含まれている。従って、Xによる更新を生かしたままYによる更新を実行する。 In the case of “(x <) nx <= y”: the local original DB to be edited of Y includes X changes. Therefore, the update by Y is executed while the update by X is utilized.

「(x<)y<nx」の場合:Xの変更が含まれていないローカル原本DBに対してYが行われでいる。従って「より最新の情報に基づく編集を優先」する思想を厳密に適用するならば、Xによる更新を取り消した後にYによる更新を実行する。なお、「(x<)y<nx」の条件を、Xの「編集の取り消し条件」と呼ぶ。 In the case of “(x <) y <nx”: Y is performed on the local original DB that does not include the change of X. Therefore, if the idea of "prioritizing editing based on the latest information" is strictly applied, the update by Y is executed after the update by X is canceled. The condition “(x <) y <nx” is referred to as an “edit cancellation condition” for X.

実は、上記の(Yが有効となる条件2)でYが有効となった場合に、上記「(x<)y<nx」の条件の確認を行わず、直ちに、Xによる更新を生かしたままYによる上書き更新を実行する方法が実用的である。当然、「編集バージョンが新しい編集を優先する」原則に外れる場合が生じる可能性があるが、一度適用された更新が取り消される事は無いのは運用上都合が良い。有効性の判定手順が単純明快で並行DBアクセスの関係者にとってデータベースの動作に対する理解が容易であるし、システムの開発も容易になる。なお「更新の取り消しが有る運用」の詳細については後で説明する。 Actually, when Y is valid in the above (Condition 2 where Y is valid), the condition of “(x <) y <nx” is not confirmed, and the update by X is immediately utilized. A method of executing overwrite update by Y is practical. Naturally, there is a possibility that the principle of “edit version prioritizes new edit” may be lost, but it is convenient for operation that the update applied once is not canceled. The procedure for determining validity is simple and clear, and it is easy for the parties involved in parallel DB access to understand the operation of the database, and the development of the system becomes easy. The details of “operation with cancellation of update” will be described later.

<一般的な動作の流れ>
あるPCに注目した一連の動作例を以下で説明する。このPCがサーバーから最新の編集記録を受信し、ローカル原本DBを更新したとする。その後、他のPCから編集記録がサーバーにアップされた後に、このPCがローカル原本DBに対する編集を行ったとする。これを編集記録Yとしてサーバーにアップし、次にそれまでの(未受信の)編集記録をサーバーから受信し、編集記録を指定された順番で取り出し、ローカル原本DBの更新を試みる。この過程でいくつかの編集(例えば編集X)は有効と判定されローカル原本DBが更新される。
<General operation flow>
A series of operation examples focusing on a certain PC will be described below. It is assumed that this PC receives the latest editing record from the server and updates the local original DB. After that, after the editing record is uploaded from another PC to the server, this PC performs editing on the local original DB. This is uploaded to the server as an edit record Y, then the previous (unreceived) edit record is received from the server, the edit records are taken out in the designated order, and an attempt is made to update the local original DB. In this process, some editing (for example, editing X) is determined to be valid, and the local original DB is updated.

最後に先程アップした編集記録Yが取り出され、その不変確認範囲を調査し、編集Xなどとの関係を「有効性の判定手順」で評価する。一つのXに介して無効ならYは無効と判定される。このPCの操作者は、無効となった事実とその理由を確認し、必要が有れば(最新の情報に対して)再度の編集を試みる。無効になった元の入力の記録があれば、その内容を再び入力するのは容易である。有効なら編集記録Yでローカル原本DBを更新する。 Finally, the edit record Y that has been uploaded earlier is taken out, the invariant confirmation range is investigated, and the relationship with the edit X or the like is evaluated by the “validity determination procedure”. If it is invalid through one X, Y is judged invalid. The operator of this PC confirms the fact of the invalidation and the reason thereof, and tries to edit again (for the latest information) if necessary. If there is a record of the original input that has been invalidated, it is easy to enter the contents again. If it is valid, the local original DB is updated with the edit record Y.

<ほぼオンライン運用とほぼオフライン運用>
PCの操作者は「古い情報に基づく編集は無効と判定される可能性が高い」事を理解していれば良い。編集を行うPCが、その編集が無効と判定される可能性を出来るだけ少なくするには、編集の直前に最新の編集記録まで受信してローカル原本DBを更新し、この最新のローカル原本DBに対して編集を行い、編集後は速やかに編集記録をアップすると良い。頻繁に更新を行えば、ローカル原本DBは常に最新の状態に保たれるので、「ほぼオンライン運用」と言う事が出来る。
<Almost online operation and almost offline operation>
The operator of the PC only needs to understand that “the editing based on the old information is likely to be determined to be invalid”. In order to minimize the possibility that the editing PC determines that the editing is invalid, the latest editing record is received immediately before editing, the local original DB is updated, and the latest local original DB is updated. It is recommended that the editing be performed and that the editing record be uploaded immediately after editing. If updated frequently, the local original DB is always kept up-to-date, so it can be said that “almost online operation”.

しかし、編集の競合が稀な情報を扱う場合には、ローカル原本DBの更新から編集のアップまでの時間を長くしても編集が無効となる可能性は小さい。例えば、会社の組織ごとに支払伝票を入力するケースでは、レコードを修正するのは入力ミスや処理ミスを発見した場合であり、修正するとしてもレコードを入力した計算機で行う事が多い。この様なケースでは、更新から編集アップまでの期間を極端に長くした「ほぼオフライン運用」でも問題は無い。たとえインターネット接続が出来ない状況でも支払伝票をゆっくり入力し、決算や検査の近くなってからまとめてアップすれば良い。 However, when handling information with rare editing conflicts, it is unlikely that editing will be invalidated even if the time from updating the local original DB to editing is increased. For example, in the case where a payment slip is input for each organization of a company, the record is corrected when an input error or a processing error is found, and even if it is corrected, it is often performed by a computer that inputs the record. In such a case, there is no problem even with “almost offline operation” in which the period from update to edit-up is extremely long. Even if you can't connect to the Internet, you can enter payment slips slowly and upload them together when it is close to the settlement or inspection.

<< 課題を解決するための手段の全容 >>
発明の全容を実施例のバリエーションも含めて以下で説明する。
<< Overall of the means to solve the problem >>
The full scope of the invention is described below, including variations of the embodiments.

(1)編集記録とその順番の操作
サーバーがPCに伝える編集記録とその順番は、必ずしもPCがアップした内容である必要も、アップの順番を守る必要も無い。編集記録とその順番が全てのPCで同じであれば、これらのローカル原本DBは同期する。
(1) Edit record and its order The edit record and its order transmitted from the operation server to the PC do not necessarily have to be the contents that the PC is up, and it is not necessary to keep the up order. If the edit record and the order are the same for all PCs, these local original DBs are synchronized.

サーバー又は管理業務を担当するPCが編集記録の内容を分析し、エラーとなって無効とされる部分や、冗長(結局は何もしないのと同じ)な部分を削除しても良い。エラーの編集記録や冗長な編集記録を削除して、編集記録の順番を詰めても問題は無い。操作者の優先順位などを考慮して意図的に編集記録の順番を変更したとしても、ローカル原本DBは同期する。 The server or the PC in charge of management work may analyze the contents of the edit record, and delete a portion that becomes invalid due to an error or a redundant portion (same as nothing to do after all). There is no problem even if the editing records of errors or redundant editing records are deleted and the order of editing records is reduced. Even if the order of editing and recording is intentionally changed in consideration of the priority of the operator, the local original DB is synchronized.

(2)サーバーによるグローバル原本DBの更新
先の例では、サーバーから受け取った一連の編集を用いて「ローカル原本DB」を更新している。「ローカル原本DB」の初期値が同じ、それに適用する編集記録の順番とその内容が同じ、かつ同じロジックで「ローカル原本DB」の更新を行う事により、同じ編集記録まで受信したPCの「ローカル原本DB」の内容は一致する。「グローバル原本DB」は存在しないが、各PCの「ローカル原本DB」は同期している。仮想のグローバル原本DBと同期していると言える。
(2) In the example of the update destination of the global original DB by the server, the “local original DB” is updated using a series of edits received from the server. By updating the “local original DB” with the same initial value of the “local original DB”, the same order and contents of the edit records applied to it, and the same logic, the “local original DB” of the PC that has received up to the same edit record The contents of the “original DB” match. Although there is no “global original DB”, the “local original DB” of each PC is synchronized. It can be said that it is synchronized with the virtual global original DB.

グローバル原本DBを実際にサーバーに置き、サーバーがこのグローバル原本DBを更新する運用も可能である。その要点は以下である。
(a)グローバル原本DBがサーバーに有り、各PCはその複製であるローカル原本DBを持っている。
(b)各PCはそのローカル原本DBに対して編集を行う際には、編集記録を作成しサーバーに送る。
(c)サーバーは、PCからの編集記録の到着順に、編集の競合を確認し、有効と判定された編集でグローバル原本DBを更新し、そのバージョンを更新する。
(d)サーバーからの情報で、各PCはそれぞれのローカル原本DBとバージョンを更新、つまり同期、する。
It is also possible to operate the global original DB actually placed on the server and the server updating the global original DB. The main points are as follows.
(A) A global original DB exists in the server, and each PC has a local original DB that is a copy of the PC.
(B) When editing each local original DB, each PC creates an edit record and sends it to the server.
(C) The server confirms the editing conflict in the order of arrival of the editing records from the PC, updates the global original DB with the editing determined to be valid, and updates the version.
(D) With the information from the server, each PC updates, that is, synchronizes with, its local original DB.

原本DBをサーバーに置くと処理の説明は簡単だが、実際の処理は逆に複雑になる。ひとつは、処理過程をPCに通知するのが困難、つまり、どの編集が無効と判定され、それがどの様にして無効と判定されたかを、その編集を行ったPCの操作者に伝えるのが困難な事である。先の「ローカル原本DB」を各PCが更新する方法ならば、各PCの内部で全ての編集の有効または無効の状況が把握出来るが、サーバーが原本DBを更新する場合は、その状況を詳しく各PCに伝えるには複雑な処理が必要である。 If the original DB is placed on the server, the explanation of the process is simple, but the actual process becomes conversely complicated. One is that it is difficult to notify the PC of the processing process, that is, it is determined which editing is determined to be invalid and how it is determined to be invalid to the operator of the PC that performed the editing. It is difficult. If each PC updates the previous “local original DB”, it is possible to grasp the validity / invalidity of all edits within each PC, but if the server updates the original DB, the situation is detailed. Complicated processing is required to communicate to each PC.

サーバーがグローバル原本DBを更新する運用なら「サーバーの処理プログラムの更新で更新処理のアップグレード出来る」長所があるが、以上の処理の複雑さとのバランスを考え、扱うデータの特性や利用者の便宜などを考え、適切な運用を選択する事になる。 If the server updates the global original DB, there is an advantage that "updating the update process can be performed by updating the server processing program", but considering the balance with the complexity of the above process, the characteristics of the data handled and the convenience of the user Therefore, we will select an appropriate operation.

(2.1)PCへの通知
グローバル原本DBを更新する場合は、最新のグローバル原本DBと各ローカル原本DBを同期する必要がある。グローバル原本DBのデータ量が多いと考えるのが常識的であり、その全体を送るのは非現実的である。編集記録(とその順番)を各PCに送れば、各PCでローカル原本DBを更新するのと同じであり、グローバル原本DBをサーバーが更新するメリットは小さい。結局、グローバル原本DB更新の差分情報を送るのが現実的である。
(2.1) Notification to PC When updating the global original DB, it is necessary to synchronize the latest global original DB and each local original DB. It is common sense to think that there is a large amount of data in the global original DB, and sending the whole is unrealistic. Sending edit records (and their order) to each PC is the same as updating the local original DB on each PC, and the advantage of the server updating the global original DB is small. After all, it is realistic to send the difference information of the global original DB update.

(2.2)キャシュへの適用
キャシュ技術を用いて「各PCにおける編集の前に、サーバーからグローバル原本DBの必要な部分のコピーを作成し、このコピーに対して編集を行う」方法に対しても、本願の「より最新の情報に基づく編集を優先」する方法が適用出来る。編集に必要なコピーを作成するときに、グローバル原本DBのバージョンも取得する。編集記録にはこのバージョンを編集バージョンとして設定しサーバーに送る。サーバーはこの編集バージョンを元に有効性を判定する。これにより、ADO.NETで見られたような、古いバージョンに対する編集の突然のアップによって最新のバージョンに対する編集が妨害されるケースは排除される。
(2.2) Application to the cache For the method of “Creating a copy of the necessary part of the global original DB from the server and editing this copy before editing on each PC” using the cache technology However, the method of “prioritizing editing based on the latest information” of the present application can be applied. When creating a copy necessary for editing, the version of the global original DB is also acquired. In the editing record, this version is set as the editing version and sent to the server. The server determines the validity based on the edited version. As a result, ADO. The case where the editing for the latest version is disturbed by the sudden increase in editing for the old version, as seen in NET, is eliminated.

(3)サーバー機能の配置
先に説明した、各PCが「ローカル原本DB」を更新する方法では、編集記録をサーバーに集めた。サーバーがグローバル原本DBを更新する方法も説明した。どちらのサーバーも必要な機能が提供できるなら専用サーバーでもレンタルサーバーでも良い。本明細書でのPCのひとつが、同時に本明細書のサーバーの機能を提供しても何ら問題は無い。
(3) In the method of updating the “local original DB” described in the server function location, edit records are collected on the server. We also explained how the server updates the global original DB. Both servers can be dedicated servers or rental servers if they can provide the necessary functions. There is no problem even if one of the PCs in this specification provides the functions of the server in this specification at the same time.

(4)バージョン設定範囲の導入
バージョンを付与し編集を管理する単位が実際のDBである必要は無い。情報修正の影響が密接に関係している部分を「バージョン設定範囲」とし、これ毎にバージョンを設定すれば、その範囲に関する編集とバージョンの推移が管理できる。
(4) It is not necessary that the unit for assigning the introduction version of the version setting range and managing editing is an actual DB. If the influence of the information modification is closely related to the “version setting range” and a version is set for each, the editing and version transition of the range can be managed.

最適なバージョン設定範囲の設定は、扱う情報の構造や内容に依存する。RDBの場合にはレコード、テーブル、テーブルと論理的に関連しているテーブル群、そのなかの特定のレコード群、又はDB全体などが想定される。 The setting of the optimal version setting range depends on the structure and contents of information to be handled. In the case of RDB, a record, a table, a table group logically related to the table, a specific record group among them, a whole DB, or the like is assumed.

以上で説明した手順は、DBをバージョン設定範囲と読み替える事により、適用出来る。なお、複数のバージョン設定範囲に対する編集がひとつの編集記録に記載されていても問題は無い。バージョン設定範囲毎に「編集内容」「編集バージョン」「不変確認範囲」などが記載されていれば良い。 The procedure described above can be applied by replacing DB with a version setting range. There is no problem even if editing for a plurality of version setting ranges is described in one editing record. For each version setting range, “edited contents”, “edited version”, “invariable confirmation range”, etc. may be described.

医療の個人情報を例に説明する。医療情報のDBで、個人の医療記録をバージョン設定範囲として設定する。テーブルの1行又は数行が個人の情報なら、これの固まりに対してバージョンを設定する。DBには、多数の個人情報があり、それぞれにバージョンが設定される。編集記録には、個人毎の「編集内容」「編集バージョン」「不変確認範囲」のセットが単数または複数存在する。「不変確認範囲」はこの個人記録全体でも、修正した情報(RDBならレコード)でも、修正内容と目的に応じて適切に設定すれば良い。個人情報毎にテーブルを構成していれば、テーブル毎にバージョンが設定される。 The medical personal information will be described as an example. The personal medical record is set as the version setting range in the medical information DB. If one or more rows in the table are personal information, a version is set for this chunk. The DB has a lot of personal information, and a version is set for each. In the edit record, there are one or more sets of “edit contents”, “edit version”, and “invariant confirmation range” for each individual. The “invariant confirmation range” may be set appropriately according to the content and purpose of the correction, whether it is the entire personal record or the corrected information (record for RDB). If a table is configured for each personal information, a version is set for each table.

医療情報だけでなく、社会保証や銀行口座やローンなどの情報を個人毎に管理する事にも利用出来る。複数の部署で編集すると思われる犯罪者情報の管理にも使える。さらには、住民みずから一部のデータの編集が可能な「発展した形態の住民基本台帳の管理」など、個人対応の情報を扱う場合にも便利である。「(5)ローカル原本DBの複製範囲」で説明する様に、PC毎にその権限で読み込める範囲の個人情報についてのローカル原本DBを作成する事として、権限の範囲内の情報のみがこのPCに送られるなら、権限外の情報がハッキングされる恐れも無い。 In addition to medical information, it can also be used to manage information such as social guarantees, bank accounts and loans for each individual. It can also be used to manage criminal information that seems to be edited by multiple departments. Furthermore, it is also convenient when handling personal information such as “Management of the Basic Resident Register in a developed form” where some data can be edited by the residents. As explained in “(5) Local original DB replication range”, only the information within the scope of authority is stored in this PC. If sent, there is no risk of unauthorized information being hacked.

(4.1) バージョン付与のタイミング
DB原本(グローバル原本DB又はローカル原本DB)全体、またはその中の「バージョン設定範囲」に対してバージョンが付与されるが、その付与方法は、扱う情報の特性や運用の都合に応じて選択する事が出来る。
(4.1) Version assignment timing A version is assigned to the entire DB original (global original DB or local original DB), or the “version setting range” in the DB original. And can be selected according to operational circumstances.

「有効とされた編集でバージョンを更新」する方法は、有効と判定された変更記録で、原本DBまたはバージョン設定範囲が変更された時に、バージョンを更新する。次に有効な編集記録で更新されるまでは同じバージョンであり、この期間に同期されたローカル原本DBのバージョンは同じである。 In the method of “updating a version by valid editing”, the version is updated when the original DB or the version setting range is changed in the change record determined to be valid. The version is the same until it is updated with the next valid editing record, and the version of the local original DB synchronized during this period is the same.

有効な変更記録で原本DBの内容が変更されなくても、バージョンを更新するのが「有効または無効に関わらず全ての編集記録でバージョンを更新」する方法である。無効な編集のアップの前後でバージョンが異なり、原本DBの内容が同じでも後から同期されたローカル原本DBのバージョンの方が進んでいる。 Even if the contents of the original DB are not changed by a valid change record, updating the version is a method of “updating the version by all edit records regardless of validity or invalidity”. The version is different between before and after invalid editing, and the version of the local original DB synchronized later is advanced even if the contents of the original DB are the same.

(4.2) 編集のサーバー受け付け時刻への発展
サーバーが編集記録を受け付けた時刻をバージョンとして利用する方法も可能である。以上で説明したバージョンはこの受け付け時刻と読み替える事になる。バージョンは一連の順番を識別するための順序数と説明したが、時刻も順序を表すので何ら問題は無い。
(4.2) Development to server reception time of editing It is also possible to use the time when the server received the editing record as a version. The version described above will be read as this reception time. The version is described as an order number for identifying a series of orders, but there is no problem because the time also represents the order.

(4.3) サーバーへの同期アクセス時刻への発展
PCが、サーバーにアクセスし、未受信の編集記録の有無を確認した時刻をサーバーから取得し、その時刻を原本DBのバージョンとする方法も可能である。ローカル原本DBを更新する場合では、各PCは(未受信の編集の有無、およびその有効性に関係なく)サーバーに問い合わせた時刻(例えばサーバーが通知した時刻)をローカル原本DBのバージョンとする。
(4.3) Development to the time of synchronous access to the server There is also a method in which the PC accesses the server, acquires the time when the presence or absence of the unrecorded editing record is confirmed, and sets the time as the version of the original DB. Is possible. When updating the local original DB, each PC makes the time (for example, the time notified by the server) inquired of the server (regardless of whether or not editing has not been received and its validity) as the version of the local original DB.

サーバーがグローバル原本DBを更新する場合は、あるPCからアクセスが有った時にその時刻を原本DBのバージョンとし、(必要ならば)そのPCのローカル原本DBとグローバル原本DBと同期し、同時にバージョン(つまり直近のアクセス時刻)も同期する。同期アクセスがより新しいローカル原本DBに対する編集が優先されるので、一つのDBを競争で操作する関係者にとって理解しやすくまた納得出来るルールである。 When the server updates the global original DB, the time of the access from a PC is used as the version of the original DB, and if necessary, it is synchronized with the local original DB and the global original DB of the PC and simultaneously (That is, the latest access time) is also synchronized. Since editing to a local original DB with a newer synchronous access is given priority, it is a rule that can be easily understood and understood by those who operate one DB in competition.

(5)ローカル原本DBの複製範囲
本願の説明を簡単にするには、ローカル原本DBが(仮想の又は実在する)グローバル原本DBの全体と同期すると都合が良い。しかし実際の利用を考えると、ローカル原本DBはグローバル原本DB一部と同期する方が現実的である。例えば、先に説明した医療情報のDBは多数の個人情報を持っている。このうち、PC毎にその権限で読み込める範囲の個人情報についてのローカル原本DBを作成すれば十分であり、ローカル原本DBがグローバル原本DB全体と同期する必要は無い。医者の計算機には担当の(複数の)患者の情報を保持するローカル原本DBが存在し、個人の計算機にはその人の個人情報のみを保持するローカル原本DBが存在する。
(5) Replication range of local original DB To simplify the description of the present application, it is convenient that the local original DB is synchronized with the entire (virtual or real) global original DB. However, considering actual use, it is more realistic that the local original DB is synchronized with a part of the global original DB. For example, the medical information DB described above has a large amount of personal information. Of these, it is sufficient to create a local original DB for personal information in a range that can be read with the authority for each PC, and the local original DB does not need to be synchronized with the entire global original DB. The doctor's computer has a local original DB that holds information on the patient (several) patients, and the personal computer has a local original DB that holds only the personal information of the person.

ローカル原本DBがグローバル原本DBの一部のみと同期している場合は、特定のPCにとってはサーバーに集められた編集記録の多くは必要無い。PCで全ての編集記録を受信した後で、不要な編集記録をスキップするのがひとつの方法である。サーバー側でPC毎に必要な編集記録を抜いて送ると通信量が削減されるし、権限外の情報へのハッキングも防げる。たとえ、不必要な編集記録が残っていてもPC側の処理で除外すれば良い。編集情報に記録されたバージョン設定範囲を元にして、サーバーの管理する編集記録を分類しておくとPCに送るべき編集記録を迅速に判定する事が出来る。 When the local original DB is synchronized with only a part of the global original DB, many editing records collected on the server are not necessary for a specific PC. One method is to skip unnecessary editing records after all editing records are received by the PC. If the necessary edit records are extracted and sent for each PC on the server side, the amount of communication is reduced and hacking to unauthorized information is also prevented. For example, even if unnecessary editing records remain, they can be excluded by processing on the PC side. If the edit records managed by the server are classified based on the version setting range recorded in the edit information, the edit records to be sent to the PC can be quickly determined.

(6) 更新の取り消しが有る運用
先の説明では「更新の取り消しが無い運用」を扱っていたが、編集バージョンが新しい編集を優先する原則を厳密に適用すると、(Yが有効となる条件2)において、Yによる「ローカル原本DB」の更新の前に、Xによる更新を取り消す場合が有る。これは「(x<)y<nx」の「編集の取り消し条件」が成立した場合である。
(6) In the explanation of the operation destination with update cancellation, “operation without update cancellation” was dealt with. However, if the principle that the edit version prioritizes the new edit is strictly applied, (Y becomes valid condition 2 ), The update by X may be canceled before the update of “local original DB” by Y. This is a case where the “edit cancellation condition” of “(x <) y <nx” is satisfied.

(6.1)更新の取り消しの分析その1
Yにより、過去の更新(上記X)が取り消されるのは、少なくとも以下の全ての条件を満たす必要が有る。なお、以下の(Xの更新の取り消し条件3と4)は上記の「編集の取り消し条件」に相当する。
(Xの更新の取り消し条件1)別の編集記録によっても、Yは無効とならない。
(Xの更新の取り消し条件2)Yの不変確認範囲をXが更新していた。
(Xの更新の取り消し条件3)「x<y」。Yの編集バージョンがXの後。なお、これが成立しない場合はYが無効であり、Xの取り消し要因とはならない。
(Xの更新の取り消し条件4)「y<nx」。Xによるバージョンの更新が伝わる前に、Yの編集対象のローカル原本DBの(yへの)更新が行われた。
(6.1) Cancellation analysis 1
In order for Y to cancel a past update (X above), at least all of the following conditions must be satisfied. The following (X update cancellation conditions 3 and 4) correspond to the “edit cancellation conditions” described above.
(X update cancellation condition 1) Y is not invalidated by another editing record.
(X update cancellation condition 2) X updated the invariant confirmation range of Y.
(X update cancellation condition 3) “x <y”. After Y edit version X. If this is not true, Y is invalid and does not become a canceling factor for X.
(X update cancellation condition 4) “y <nx”. Before the version update by X is transmitted, the local original DB to be edited by Y is updated (to y).

Xが取り消されるのは、この条件に加えてさらにYのサーバーへのアップのタイミングが関係する。もしYのアップがXのアップ(nx)よりも前なら、Xによる「ローカル原本DB」の更新の際に、Xは無効と判定され、取り消しには至らない。 In addition to this condition, the timing of X being canceled is related to the timing of Y's up to the server. If the Y-up is before the X-up (nx), X is determined to be invalid when the “local original DB” is updated by X, and the cancellation is not canceled.

(Xの更新の取り消し条件1)により、Xを無効にする更新記録は限定される。つまり、編集バージョンが古く無効と判定された編集は、それまでの編集を取り消す要因にはならない。 Update records for invalidating X are limited by (X update cancellation condition 1). In other words, an edit whose edit version is determined to be invalid is not a factor for canceling the previous edit.

(Xの更新の取り消し条件2)は、不変確認範囲の指定が更新の取り消しの可能性を左右する事を示している。不変確認範囲を不用意に大きくしない事により、更新取り消しの可能性を小さくする事が出来る。 (X update cancellation condition 2) indicates that the designation of the invariant confirmation range affects the possibility of update cancellation. By not increasing the invariant confirmation range carelessly, the possibility of canceling the update can be reduced.

(Xの更新の取り消し条件3と4)は、Xの編集期間、つまり「Xの編集対象のローカル原本DBのバージョンが(xに)更新されてから、Xがサーバーにアップされる間」に、「ローカル原本DB」のバージョンが(yに)更新され、これがYの編集対象となったケースである。XのPCによる編集(X)のアップを迅速に行う事により、Xの取り消しの可能性を小さくできる。 (X update cancellation conditions 3 and 4) is the X editing period, that is, “while X is updated to the server after the version of the local original DB to be edited X is updated (to x)” In this case, the version of “local original DB” is updated (to y), and this is the editing target of Y. The possibility of canceling X can be reduced by speeding up editing (X) by X PC.

(6.2) 更新の取り消し防止方法
データベースの構造を変更するなど、更新の取り消しを防止したいケースがある。
(6.2) Update cancellation prevention method There are cases where it is desirable to prevent update cancellation, such as changing the structure of the database.

(更新の取り消し防止方法その1:アップ禁止)
Xの編集期間に他のPCからの編集がアップされなければ、この期間に他のPCがそのローカル原本DBを更新(Y)してもバージョンはxになるだけで、xより後になる事は無い。つまり(Xの更新の取り消し条件3)が成立しない。Xのアップ(nx)の後のローカル原本DBの更新(Y)なら、(Xの更新の取り消し条件4)が成立しない。つまり、Xの編集期間に他のPCからアップを禁止すれば、Xが取り消しは防止出来る。
(Prevention of reversal of update # 1: No upload)
If editing from another PC is not uploaded during the editing period of X, even if another PC updates (Y) its local original DB during this period, the version will only be x, and it will not be later than x. No. That is, (X update cancellation condition 3) is not satisfied. If the local original DB is updated (Y) after X is up (nx), (X update cancellation condition 4) is not satisfied. That is, if the uploading from another PC is prohibited during the editing period of X, cancellation of X can be prevented.

(更新の取り消し防止方法その2:更新禁止)
Xの編集期間に他のPCからの編集がアップされても、他のPCがローカル原本DBを更新するのを禁止すれば、Xの取り消しは防止出来る。サーバーから編集記録を送らないのもひとつの方法であり、編集記録を送ったとしてもその編集記録によるローカル原本DBの更新(Y)を禁止する方法でも良い。
(Update cancellation prevention method 2: Update prohibited)
Even if editing from another PC is uploaded during the editing period of X, cancellation of X can be prevented if other PCs are prohibited from updating the local original DB. It is one method not to send an edit record from the server, and even if an edit record is sent, a method of prohibiting updating (Y) of the local original DB by the edit record may be used.

Xのアップ後は再び、どのPCもローカル原本DBの更新試みる事が出来る。この時、サーバーから取り込まれる編集記録にはXが含まれるので、取り込んだ編集記録の最後まで用いてローカル原本DBを更新すれば、そのバージョンはnx以降となる。ローカル原本DBの更新が禁止れさていたPCでは、X到着後にこの禁止が解除され、Xまで用いてローカル原本DBを更新しバージョンはnx以降となる。従って、これらに対する編集記録のバージョンは nx<yとなり、「編集の取り消し条件」は発生しない。 After X is up, any PC can attempt to update the local original DB again. At this time, since X is included in the edit record fetched from the server, the version becomes nx or later if the local original DB is updated to the end of the fetched edit record. In the PC in which the update of the local original DB is prohibited, the prohibition is canceled after X arrives, the local original DB is updated using X, and the version is nx or later. Therefore, the version of the edit record for these is nx <y, and the “edit cancellation condition” does not occur.

「サーバーへの同期アクセス時刻」をバージョンとして用いる方法の場合は、PCからの要求に対して、サーバーから「アクセスロック中」を返して、アクセス時刻の通知を行わない事で、同じ効果が得られる。 In the case of the method using “synchronous access time to server” as the version, the same effect can be obtained by not returning the access time by returning “access locked” from the server to the request from the PC. It is done.

(更新の取り消し防止方法その3:編集禁止)
Xの編集期間に他のPCからの編集がアップされ、他のPCがローカル原本DBを更新しても、この更新したローカル原本DBに対する編集を禁止すれば、Xの取り消しは防止出来る。サーバーから編集記録を送った時などに、その編集記録により更新したローカル原本DBに対する編集の禁止を通知する。
(Prevention of update cancellation part 3: Editing prohibited)
Even if editing from another PC is uploaded during the editing period of X and the other PC updates the local original DB, cancellation of X can be prevented by prohibiting editing on the updated local original DB. When an edit record is sent from the server, for example, the prohibition of edit to the local original DB updated by the edit record is notified.

(6.3)更新の取り消しの分析その2
ある編集記録(上記のX)による更新が取り消しになった場合、この取り消しを完璧に行うには、以下の処理が必要になる。
(取り消から派生する処理1)Xにより無効とされた編集記録の有無を調査し、あれば有効か無効化の再評価を行う。
(取り消から派生する処理2)操作者がXにより無効とされた編集記録を参照し再度入力した情報があるなら、その入力を見直す。
(取り消から派生する処理3)Xによる更新を前提とした編集、つまりXによる更新で設定されたバージョン以降を編集バージョンとする編集記録の有効性を再評価する。
(6.3) Analysis of update cancellation, part 2
When the update by a certain editing record (X mentioned above) is cancelled, the following processing is necessary to perform the cancel perfectly.
(Process 1 Derived from Cancellation) The presence / absence of the edit record invalidated by X is investigated, and if it is valid, the validity / invalidity is re-evaluated.
(Process 2 Derived from Cancellation) If there is information that the operator has entered again with reference to the editing record invalidated by X, the input is reviewed.
(Process 3 Derived from Cancellation) The validity of the editing record in which editing based on the update by X, that is, the version set after the update by X is used as the edit version is re-evaluated.

上記(処理1)と(処理3)の一部を自動的に実行する事は可能である。しかし、(処理2)など、操作者の協力が必要な部分が有るので完全な自動実行は困難である。Xの取り消しの後、上記(処理1)(処理2)(処理3)の派生処理は実行せず、Xの取り消し事実を正確に操作者に伝え、その後は操作者の判断により再入力にゆだねるのが現実的である。無効になった事実、その対象と理由が明確に伝われば、操作者は合理的に対応する事が出来る。 It is possible to automatically execute a part of the above (Process 1) and (Process 3). However, since there are parts that require the cooperation of the operator, such as (Process 2), complete automatic execution is difficult. After canceling X, the derivation process of (Process 1), (Process 2), and (Process 3) is not executed, but the cancellation fact of X is accurately communicated to the operator, and then re-input is made at the operator's discretion. Is realistic. If the fact of invalidity, its object and reason are clearly communicated, the operator can respond reasonably.

取り消しの派生処理を行わない事により、Xを無効とした判定が再度覆る事は無い。従って、これに対応して、操作者は再入力などの適切な操作を行う事が出来る。 By not performing the cancellation derivation process, the determination that X is invalid is not covered again. Accordingly, in response to this, the operator can perform an appropriate operation such as re-input.

(7) 情報の追加と削除
情報が新規に作成されたときも、編集記録を作成し、その時点の対象DBのバージョンを編集バージョンとして記録する。DBの情報の削除においても「削除対象、削除の事実、影響範囲、バージョン」を編集記録とする。この編集(削除)は無効になる可能性があるので、この段階ではローカル原本DBから実際に削除する事は出来ない。有効と判定された後ならば実際に削除する事も可能である。
(7) Even when information addition and deletion information is newly created, an edit record is created, and the version of the target DB at that time is recorded as an edit version. Even when deleting DB information, “deletion target, fact of deletion, influence range, version” is set as an edit record. Since this editing (deletion) may become invalid, it cannot be actually deleted from the local original DB at this stage. It is possible to actually delete it after it is determined to be valid.

(7.1) 情報追加に関する補足
RDBにおいてレコードに主キー(ID)を設定するには、他のレコードとキーが重複してはならない。並行DBアクセスではこのための配慮必要である。つまり、複数のPCが並行してレコードを追加する事により、同じ主キーのレコードが存在する事態を引き起こしてはならない。
(7.1) Supplementary information regarding information addition In order to set a primary key (ID) in a record in the RDB, the key must not overlap with other records. In parallel DB access, consideration for this is necessary. That is, a situation in which a record with the same primary key exists cannot be caused by a plurality of PCs adding records in parallel.

サーバーがグローバル原本DBを更新する場合なら、各PCが新規レコードに与えた主キーが衝突した場合は、重複が無い様に付け替えることで問題は解決する。PCが手元の複製DBを原本DBと同期する事により、新しい主キーの情報が伝わる。 In the case where the server updates the global original DB, if the primary keys given by the PCs to the new record collide, the problem is solved by replacing them so that there is no duplication. When the PC synchronizes the copy DB at hand with the original DB, the new primary key information is transmitted.

グローバル原本DBを置かず、各PCがローカル原本DBを更新する場合には、主キーの衝突を回避する方法がいくつか存在する。 When there is no global original DB and each PC updates the local original DB, there are several methods for avoiding a primary key collision.

(主キー重複回避方法1)
あらかじめ、サーバーや管理PCから各PCに、新規に割り当て可能な主キーの範囲を有り当てておく事により、新規レコードの主キーの衝突を回避する事が出来る。主キーをUUIDにして、衝突を防止する方法も可能である。
(Primary key duplication avoidance method 1)
By previously assigning a range of primary keys that can be newly assigned to each PC from the server or management PC, it is possible to avoid collision of primary keys of new records. A method of preventing a collision by using a UUID as a primary key is also possible.

(主キー重複回避方法2)
次の主キーを記録しておくレコード(K)をDB内に設定する。新規に作成するレコード(Z)の主キーにこのKの値を用い、その後Kの値を更新する。Kの更新が「より最新の情報を対象にした編集を優先する」ルールに照らして有効とされればレコードの追加は完了だが、無効と判断された場合はKの値の更新が無効になり、レコード(Z)の追加も無効として処理する。
(Duplicate primary key avoidance method 2)
A record (K) for recording the next primary key is set in the DB. This K value is used as the primary key of the newly created record (Z), and then the K value is updated. If the update of K is enabled in accordance with the “prioritize editing for more recent information” rule, the addition of the record is complete, but if it is determined to be invalid, the update of the K value is disabled. The addition of record (Z) is also treated as invalid.

(主キー重複回避方法3)
編集記録による「ローカル原本DB」の更新時に、新規レコードの主キーの衝突を検出した場合、編集バージョンの新しい編集記録のものを採用する。これは、編集バージョンの確認により有効と判定されても、さらに内容チェックにより無効と判定されるケースが存在する事を意味する。情報の整合性を保証するためには、さらなる検討が必要である。
(Primary key duplication avoidance method 3)
When a collision of a primary key of a new record is detected when the “local original DB” is updated by the edit record, the edit version of the new edit record is adopted. This means that even if it is determined to be valid by checking the edited version, there is a case where it is further determined to be invalid by the content check. Further studies are needed to ensure the integrity of the information.

<<出願時の請求項との対応>>
各PCがそれぞれのローカル原本DBを更新するケースとサーバーによるグローバル原本DBを更新するケースでも原本DB(グローバル原本DBまたはローカル原本DB)を更新する処理は共通である。これを請求項1に示す。グローバル原本DB、その複製DB、ローカル原本DB、作業DBなどを包含する概念としてデータベースと言う言葉を用いている。これの方法「より最新の情報に基づく編集を優先」する方法であり、計算機が永続的に複製DBを保持する本格的な「並行DB編集」のみならず、計算機が一時的に複製DBを保持するケースでも有効である。
<< Correspondence with Claims at Filing >>
The process of updating the original DB (global original DB or local original DB) is common to the case where each PC updates its local original DB and the case where the server updates the global original DB. This is shown in claim 1. The term database is used as a concept including a global original DB, a duplicate DB, a local original DB, a work DB, and the like. This method "prioritizes editing based on the latest information" is not only a full-fledged "parallel DB editing" in which the computer permanently holds the replication DB, but also the computer temporarily holds the replication DB It is also effective in cases where

データベースのバージョン更新処理を明記したのが請求項2である。バージョン設定範囲の概念を明記したのが請求項3である。ここでは単に「指定された情報の範囲」としているが、あらかじめシステムで事前に指定されている場合や、編集記録に指定されている場合など、様々な指定方法を想定しており、特定の指定方法に限定するものではない。 Claim 2 specifies the database version update process. Claim 3 specifies the concept of the version setting range. Here, it is simply referred to as “specified range of information”, but various specification methods are assumed, such as when specified in advance by the system or when specified for editing records. It is not limited to the method.

請求項4は、バージョンの代わりに、サーバーが編集記録を受け付けた時刻を利用する方法や、サーバーへの同期アクセス時刻を利用する方法に対応する。これは「指定された時刻」の指定方法を限定するものではない。請求項5は更新の取り消しが有る運用に対応するもので、工程BとCの間に工程DとEが挿入れさている。請求項1に「不変確認範囲」の概念を明記したのが請求項6である。 Claim 4 corresponds to a method of using the time when the server accepts the edit record, or a method of using the synchronous access time to the server instead of the version. This does not limit the method of specifying the “specified time”. The fifth aspect corresponds to an operation in which update is canceled, and steps D and E are inserted between steps B and C. Claim 6 specifies the concept of “invariant confirmation range” in claim 1.

サーバーにおいてグローバル原本DBを更新するケースに対応するのが請求項7であり、請求項1に加え、サーバーから各PCに更新されたグローバル原本DBの情報を送信する工程Fが追加されている。編集記録がサーバーに到着した時刻をデータベースのバージョンとするのが、請求項8である。 Claim 7 corresponds to the case where the global original DB is updated in the server. In addition to claim 1, a process F for transmitting information of the global original DB updated from the server to each PC is added. The time when the edit record arrives at the server is used as the database version.

請求項2をベースに、サーバーへの同期アクセス時刻をローカル原本DBのバージョンとする事を加えたのが請求項9である。請求項10はサーバーから編集記録をダウンロードした時刻を更新されたローカル原本DBのバージョンとする事を加えたものである。請求項1をベースに、他の計算機に「編集の停止、または編集アップの停止、またはローカル原本DBの更新停止」を通知する工程を加えたのが請求項11である。 On the basis of claim 2, claim 9 adds the synchronous access time to the server as the version of the local original DB. The tenth aspect of the present invention adds the time of downloading the edit record from the server to the updated version of the local original DB. On the basis of claim 1, claim 11 includes a step of notifying other computers of “stop of editing, stop of editing up, or stop of updating of local original DB”.

従来のキャシュ技術の延長で並行DB編集お行おうとすると、編集毎にコピーを作成するので、そのコピーの処理と通信がオーバーヘッドとなる問題があった。PC毎のローカル原本DBを永続的に利用する方法により、この問題を解決する。ローカル原本DBは各PCが作成した編集記録に基づき更新される。なお、膨大なDBの全てを複製したローカル原本DBを作成する必要は無く、計算機に必要な部分のみを保持するローカル原本DBで十分である。 If an attempt is made to perform parallel DB editing by extension of the conventional cache technology, a copy is created for each editing, and there is a problem in that the copy processing and communication become overhead. This problem is solved by a method of permanently using the local original DB for each PC. The local original DB is updated based on the edit record created by each PC. Note that it is not necessary to create a local original DB that duplicates all of the enormous DB, and a local original DB that holds only a part necessary for the computer is sufficient.

従来のキャシュの技術に基づく「先着優先」方法では、最新情報を基にした判断が無効となるケースが存在したが、本発明の「より最新の情報に基づく編集を優先」する方針に基づいた方法でこれらの問題が解決される。 In the “first-come-first-served” method based on the conventional cache technology, there were cases where the judgment based on the latest information was invalid, but based on the policy of “prioritizing editing based on the latest information” of the present invention. The method solves these problems.

従来の「先編集優先」の方法では、ある時点で有効と判定された編集が、後から到着した編集により無効とされるケースが有り運用上問題であった。しかし本願の「更新の取り消しが無い運用」を用いれば問題は無い。なお、本願の「更新の取り消しが有る運用」でも、取り消しが発生するのはごく限られた状況である。ローカル原本DBを同期して編集して編集記録をアップする周期を短くする事により、取り消しの可能性を小さくする事が出来る。 In the conventional “prior editing priority” method, editing that is determined to be valid at a certain point in time may be invalidated by editing that arrives later, which is an operational problem. However, there is no problem if the “operation without cancellation of update” of the present application is used. Even in the “operation with update cancellation” of the present application, cancellation occurs in a very limited situation. The possibility of cancellation can be reduced by shortening the period of editing the local original DB in synchronization and uploading the edit record.

本発明の「より最新の情報に基づく編集を優先」する基準は、「より最新の情報に基づく判断はより確からしい」と考える思想であり、データを扱う人間に受け入れやすい基準である。 The criterion of “prioritizing editing based on the latest information” according to the present invention is an idea that “a judgment based on the latest information is more likely”, and is a criterion that is easily accepted by humans who handle data.

本発明のバージョン設定範囲の概念により、DBを実際に分割する事なく、DBを分割したのと同様に、情報の更新の管理が明確になる。さらに「不変確認範囲」の概念により、本当に解決すべき競合のみを的確に検出できる。 According to the concept of the version setting range of the present invention, management of updating information becomes clear as in the case of dividing a DB without actually dividing the DB. Furthermore, only the conflict that should be resolved can be accurately detected by the concept of “invariant confirmation range”.

ローカル原本DBのバージョンを、(最後に)適用した編集記録がサーバーで受け付けられた日時、または、計算機が(最後に)編集記録の有無を確認した日時とする事により、「より最新の情報に基づく編集を優先」をより重視した運用が可能になる。 By setting the version of the local original DB to the date and time when the last applied edit record was accepted by the server, or the date and time when the computer checked for the presence of the edit record (last) Operation with greater emphasis on “priority editing” is possible.

本発明ではさらに、編集、編集アップ、ローカル原本DBの更新の停止により、更新の取り消しを防止する仕掛けを明らかにした。 In the present invention, a mechanism for preventing cancellation of update by editing, editing up, and stopping update of the local original DB has been clarified.

一般的な計算機の構成General computer configuration PCのローカル原本DBを更新するケースCase of updating local original DB of PC ローカル原本DBの更新手順(その1)Procedure for updating the local original DB (part 1) ローカル原本DBの更新手順(その2)Update procedure of local original DB (2) サーバーのグローバル原本DBを更新するケースThe case of updating the server's global original DB グローバル原本DBの更新手順(その1)Global original DB update procedure (1) グローバル原本DBの更新手順(その2)Global original DB update procedure (2) アップ禁止をサーバーからPCに伝える手順Procedure to tell server to PC from prohibition of upload 編集禁止をサーバーからPCに伝える手順Procedure to inform the PC that editing is prohibited 単純化した実施例Simplified example

0100 計算機
0102 通信装置
0103 演算装置
0104 主記憶装置
0105 主記憶装置内のDB(データベース)
0106 二次記憶装置
0107 入出力装置
0108 表示装置
0109 バス
0110 通信網
0111 二次記憶装置内のDB(データベース)
0201 PC
0202 インターネットなどの通信網
0203 サーバー
0204 (PCの)記憶装置
0205 (サーバーの)記憶装置
0206 ローカル原本DB
0207 グローバル初期原本DB
0208 編集記録
0209 作業DB
0210 編集記録n
0210 編集記録n+1
0211 編集記録m
0213 編集手段
0214 更新手段
0215 送信手段
0216 受信手段
0217 送受信管理手段
0218 編集記録1
0219 編集記録m
0220 送信手段
0221 受信手段
0222 送受信管理手段
0301 未受信の編集記録を受信
0302 未処理の編集記録のリストにいれる
0303 未処理の編集記録リストからひとつ編集記録(Y)を取り出し
0304 処理対象の編集記録(Y)から編集バージョン(y)と不変確認範囲を取り出す
0305 不変確認範囲の情報を変更した過去の編集記録(X)を取り出す
0401 過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を比較する
0402 xとyを比較
0403 不変確認範囲の情報を変更した過去の編集記録(X)を(再び)順に取り出す
0404 取り出した過去の編集記録(X)により、更新されたローカル原本DBのバージョン(nx)を特定する
0405 nxとyを比較
0406 取り出した過去の編集バージョン(X)によるローカル原本DBの更新を取り消す
0407 処理対象の編集記録(Y)でローカル原本DBを更新する
0408 ローカル原本DBのバージョンを更新
0501 PC
0502 インターネットなどの通信網
0503 サーバー
0504 (PCの)記憶装置
0505 (サーバーの)記憶装置
0506 ローカル原本DB
0507 グローバル原本DB
0508 編集記録
0509 作業DB
0510 ローカル原本DB更新情報
0511 編集手段
0512 更新手段
0513 送信手段
0515 受信手段
0515 送受信管理手段
0516 ローカル原本DB更新情報
0517 更新手段
0518 送信手段
0519 受信手段
0520 送受信管理手段
0601 編集記録を受信
0602 処理対象の編集記録(Y)から編集バージョン(y)と不変確認範囲を取り出す
0603 不変確認範囲の情報を変更した過去の編集記録(X)を取り出し
0604 取り出した過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を比較する
0605 xとyを比較
0701 不変確認範囲の情報を変更した過去の編集記録を再び順に取り出す
0702 取り出した過去の編集記録(X)により、更新されたクローバル原本DBのバージョン(nx)を特定する
0703 nxとyを比較
0704 取り出した過去の編集バージョン(X)によるクローバル原本DBの更新を取り消す
0705 処理対象の編集記録(Y)でローカル原本DBを更新する
0706 クローバル原本DBのバージョンを更新する
0801 編集記録の送信要求(前回最終番号付き)を受信
0802 アップ禁止中の確認
0803 アップ禁止を通知
0804 未送信、つまり前回最終番号以降の、編集記録のリストを作成
0805 送信
0806 完了通知
0901 編集記録の送信要求(前回最終番号付き)を受信
0902 未送信の編集記録のリストを作成
0903 送信
0904 編集禁止中の判定
0905 編集禁止を通知
0906 完了通知
1002 PC−A
1003 PC−B
1004 初期DB
1005 (PC−Aの)ローカル原本DB更新
1006 (PC−Bの)ローカル原本DB更新
1008 (PC−Aの)レコードZの複製
1009 (PC−Bの)レコードZの複製
1010 (PC−Aによる)グローバル初期原本DBの取得
1011 (PC−Bによる)グローバル初期原本DBの取得
1012 (PC−Aによる)同期
1013 (PC−Aの操作者による)編集
1014 (PC−Aによる)編集の送信。つまり編集のアップ。
1016 (PC−Aへの)確認(通知)と(PC−Aによる)同期。なお、同期とは新たな編集とその順番の取得であり、他の記号の説明においても同じである。
1017 (PC−Bによる)同期
1018 (PC−Bの操作者による)編集
1019 (PC−Bによる)編集の送信。つまり編集のアップ。
1021 (PC−Bへの)確認(通知)と(PC−Bによる)同期。
1022 (PC−Bによる)同期
1023 (PC−Bの編集に基づくPC−AのレコードZの複製の)修正
0100 Calculator
0102 Communication device
0103 Arithmetic unit
0104 Main memory
0105 DB (database) in main storage
0106 secondary storage
0107 I / O device
0108 display device
0109 Bus
0110 communication network
0111 DB (database) in secondary storage
0201 PC
0202 Communication network such as the Internet
0203 server
0204 (PC) storage device
0205 (server) storage device
0206 Local original DB
0207 Global Early Original DB
0208 Editing record
0209 Work DB
0210 Editing record n
0210 Editing record n + 1
0211 Editing record
0213 Editing means
0214 Update means
0215 Transmission means
0216 Receiving means
0217 Transmission / reception management means
0218 Editing record 1
0219 Editing record m
0220 Transmission means
0221 Receiving means
0222 Transmission / reception management means
0301 Receive unedited edit record
0302 Enter the list of unprocessed edit records
0303 Take one edit record (Y) from the unprocessed edit record list
0304 Extract edit version (y) and invariant confirmation range from edit record (Y) to be processed
[0305] Extract past edit record (X) whose information of invariant confirmation range has been changed
[0401] The edit version (x) of the past edit record (X) is compared with the edit version (y) of the edit record (Y) to be processed.
0402 Compare x and y
[0403] Past edit records (X) whose information of the invariant confirmation range has been changed are extracted in order (again).
[0404] The updated version (nx) of the local original DB is specified by the past editing record (X) taken out.
0405 Compare nx and y
[0406] Cancel the update of the local original DB by the extracted past edit version (X)
0407 Update local original DB with edit record (Y) to be processed
0408 Update local original DB version
0501 PC
0502 Communication networks such as the Internet
0503 server
0504 (PC) storage device
0505 (server) storage device
0506 Local original DB
0507 Global Original DB
0508 Editing record
0509 Work DB
0510 Local original DB update information
0511 Editing means
0512 Update method
0513 Transmission means
0515 Receiving means
0515 Transmission / reception management means
0516 Local original DB update information
0517 Update means
0518 Transmission method
0519 Receiving means
0520 Transmission / reception management means
0601 Edit record received
0602 Extract edit version (y) and invariant confirmation range from edit record (Y) to be processed
0603 Takes out past edit record (X) in which information of immutable confirmation range was changed
[0604] The editing version (x) of the past editing record (X) taken out is compared with the editing version (y) of the editing record (Y) to be processed.
0605 Compare x and y
0701 Retake past edit records whose information in the invariant confirmation range has been changed again.
0702 The version (nx) of the updated global original DB is specified by the past editing record (X) taken out
0703 Compare nx and y
0704 Cancel the update of the original clobber DB with the past edited version (X)
0705 Update local original DB with edit record (Y) to be processed
0706 Update the global original DB version
0801 Receive edit record transmission request (with last last number)
0802 Confirmation when uploading is prohibited
0803 Notify up prohibition
0804 Create a list of edit records that have not been sent yet, that is, after the last number
0805 Send
0806 Completion notification
0901 Received edit record send request (with last last number)
0902 Create a list of unsent edit records
0903 send
0904 Judgment when editing is prohibited
0905 Notify editing prohibited
0906 Completion notification
1002 PC-A
1003 PC-B
1004 Initial DB
1005 Local original DB update (of PC-A)
1006 Local original DB update (of PC-B)
1008 Copy of record Z (PC-A)
1009 Copy of record Z (PC-B)
1010 Acquisition of global initial original DB (by PC-A)
1011 Acquisition of global initial original DB (by PC-B)
1012 Synchronization (by PC-A)
1013 Editing (by PC-A operator)
1014 Send edit (by PC-A). In other words, editing is up.
1016 Confirmation (notification to PC-A) and synchronization (by PC-A). The synchronization is new editing and acquisition of the order thereof, and the same applies to the description of other symbols.
1017 Synchronization (by PC-B)
1018 Editing (by PC-B operator)
1019 Send edit (by PC-B). In other words, editing is up.
1021 Confirmation (to PC-B) (notification) and synchronization (by PC-B).
1022 Synchronization (by PC-B)
1023 Correction (of PC-A record Z copy based on PC-B edit)

本発明の方法は計算機のプログラムとして実現出来る。図1に典型的な計算機0101の構成を示す。演算装置0103、主記憶装置0104、二次記憶装置0106、入出力装置0107、表示装置0108がバス0109で接続されている。他の計算機とデータを交換する場合は通信装置0102を介して通信網0101に接続する。各請求項で言及している「データベース」が、二次記憶装置0106内のDB0111又は主記憶操作0104の内部のDB0105である。 The method of the present invention can be realized as a computer program. FIG. 1 shows the configuration of a typical computer 0101. An arithmetic device 0103, a main storage device 0104, a secondary storage device 0106, an input / output device 0107, and a display device 0108 are connected by a bus 0109. When exchanging data with another computer, it connects to the communication network 0101 via the communication device 0102. The “database” mentioned in each claim is the DB 0111 in the secondary storage device 0106 or the DB 0105 in the main storage operation 0104.

プログラムは二次記憶装置0106に記録され、起動されると主記憶操作0104に展開され、プログラムに指定された手順で演算装置0103が動作する。この結果として計算機は、プログラム開発者が意図した動作を実現する手段の集合体に再構成される。 The program is recorded in the secondary storage device 0106. When the program is activated, the program is expanded to the main storage operation 0104, and the arithmetic unit 0103 operates according to the procedure specified in the program. As a result, the computer is reconfigured into a collection of means for realizing the operation intended by the program developer.

プログラムによるDBの操作は、DBの全体または一部を主記憶操作0104に展開してから行うのが一般的である。二次記憶装置0106内のDB0111の全部又は一部を主記憶操作0104に展開したDB0105を操作し、その編集結果を二次記憶装置0106内のDB0111に書き込む。しかし通常は、DBは二次記憶装置0106内に有るとし、主記憶操作0104に展開したDB0105と区別せず議論するので、図2および図5では単に、記憶装置0204, 0205, 0504, 0505の中のDBとして表示する。 In general, a DB operation by a program is performed after all or a part of the DB is expanded to the main memory operation 0104. The DB 0105 in which all or part of the DB 0111 in the secondary storage device 0106 is expanded to the main memory operation 0104 is operated, and the editing result is written in the DB 0111 in the secondary storage device 0106. However, normally, it is assumed that the DB is in the secondary storage device 0106 and will be discussed without distinction from the DB 0105 expanded in the main storage operation 0104. Therefore, in FIGS. Display as the middle DB.

複数のPC0201が作成した編集記録をサーバー0203集め、PC0201がサーバーに集められた編集記録を受信し、PCのローカル原本DB0206を更新するケースを図2で説明する。PC0201がインターネットなどの通信網0202を介して、サーバーと接続している。一般にPCは複数存在するが、図2では1台のみを示している。 A case in which edit records created by a plurality of PCs 0201 are collected by the server 0203, the PC 0201 receives the edit records collected by the server, and the local original DB 0206 of the PC is updated will be described with reference to FIG. A PC 0201 is connected to a server via a communication network 0202 such as the Internet. In general, there are a plurality of PCs, but only one is shown in FIG.

PC0201には記憶装置0204が有り、ローカル原本DB0206が記録されている。ローカル原本DB0206の初期値は、サーバー0203の記憶装置0205のグローバル初期原本DB0207をコピーしたものである。PC0201の操作者の指示を受けて編集手段0213が編集を行うが、この時にはローカル原本DB0206を直接編集する事はせず、編集結果を作業DB0209とする。同時に編集記録0208を作成する。この編集記録には、編集バージョンつまり、ローカル原本DBに設定されているバージョンが記録される。 The PC 0201 has a storage device 0204, in which a local original DB 0206 is recorded. The initial value of the local original DB 0206 is a copy of the global initial original DB 0207 of the storage device 0205 of the server 0203. The editing unit 0213 performs editing in response to an instruction from the operator of the PC 0201. At this time, the local original DB 0206 is not directly edited, and the editing result is set as the work DB 0209. At the same time, edit record 0208 is created. In this edit record, an edit version, that is, a version set in the local original DB is recorded.

編集記録0208は送信手段0215により通信網0202を介してサーバー0203に送られる。サーバー0203は受信手段0221により受信し、編集記録10218, 編集記録m0219の列に加えられる。編集記録には編集バージョンなどが記録されているとする。もし、編集記録とは別に編集バージョンがサーバーに送られてきた場合には、サーバーは両者の対応を記録する。 The edit record 0208 is sent to the server 0203 via the communication network 0202 by the transmission means 0215. The server 0203 is received by the receiving means 0221 and added to the edit record 10218 and edit record m0219 columns. It is assumed that an edit version is recorded in the edit record. If an edit version is sent to the server separately from the edit record, the server records their correspondence.

PC0201がローカル原本DB0206の更新試みる場合は、まずサーバーに未受信の編集記録の送信を要求する。PC0201がそれまでに受信した編集記録の最後のバージョンを通知すると、送受信管理手段がそれ以降の編集記録を選別し、送信手段0220によりサーバーから送る。PCの送信の受信の協調作業は送受信管理手段0217により行われ、サーバーの送信の受信の協調作業は送受信管理手段0222により行われる。 When the PC 0201 attempts to update the local original DB 0206, it first requests the server to transmit an unreceived edit record. When the PC 0201 notifies the last version of the edit record received so far, the transmission / reception management unit selects the subsequent edit record and sends it from the server by the transmission unit 0220. The PC transmission / reception cooperative work is performed by the transmission / reception management unit 0217, and the server transmission / reception cooperative work is performed by the transmission / reception management unit 0222.

PC0201が受信手段0216により受信した編集記録0210, 2011, 0212は記憶装置0204に記録される。更新手段0214がこれらを順番に取り出して、有効性を判定してローカル原本DB0206を更新し、そのバージョンを更新する。 The edit records 0210, 2011, 0212 received by the receiving unit 0216 by the PC 0201 are recorded in the storage device 0204. The update unit 0214 extracts them in order, determines the validity, updates the local original DB 0206, and updates the version.

図2のPC0201の更新手段0214による、ローカル原本DB0206の更新手順を図3と図4に示す。PC0201はまず「未受信の編集記録を受信」0301しては、「未処理の編集記録のリストにいれる」0302。これを全ての未受信の編集記録に対して繰り返す。未処理の編集記録のリストが図2の編集記録n0210, 編集記録n+10211, 編集記録m0212に相当する。 The update procedure of the local original DB 0206 by the update unit 0214 of the PC 0201 in FIG. 2 is shown in FIGS. The PC 0201 first receives “unreceived edit record” 0301 and then “enters the unprocessed edit record list” 0302. This is repeated for all unreceived editing records. The list of unprocessed edit records corresponds to edit record n0210, edit record n + 1021, and edit record m0212 in FIG.

次に「未処理の編集記録リストからひとつ編集記録(Y)を取り出し」0303、この「処理対象の編集記録(Y)から編集バージョン(y)と不変確認範囲を取り出す」0304、そしてこの「不変確認範囲の情報を変更した過去の編集記録(X)を取り出す」0305、「過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を比較する」0401。「xとyを比較」0402し、y<xまたはy=xの場合は処理対象の編集記録(Y)を無効とし、更新処理は行わない。そして次の未処理の編集記録に移る(0303に移る)。 Next, “Extract one edit record (Y) from the unprocessed edit record list” 0303, “Extract edit version (y) and invariant confirmation range from edit record (Y) to be processed” 0304, and “Invariant” Extract past edit record (X) whose confirmation range information has been changed ”0305,“ Compare edit version (x) of past edit record (X) and edit version (y) of edit record (Y) to be processed 0401. If “compare x and y” 0402, and y <x or y = x, the edit record (Y) to be processed is invalidated and the update process is not performed. Then, it moves to the next unprocessed editing record (goes to 0303).

y>xの場合は、このXに対してYが有効なので次の過去の編集記録の調査に移る(0305に移る)。「不変確認範囲の情報を変更した過去の編集記録(X)を特定」0305が全て完了して、全てに対して未処理の編集記録(Y)が有効な時、有効と判定され次の処理に移る(0403に移る)。 In the case of y> x, since Y is valid for X, the process proceeds to the investigation of the next past edit record (moves to 0305). “Identify past edit record (X) whose invariant confirmation range information has been changed” 0305 is completed, and when the unprocessed edit record (Y) is valid for all, it is determined to be valid and the next process (Go to 0403)

次に「不変確認範囲の情報を変更した過去の編集記録を編集記録(X)を(再び)順に取り出す」0403。有れば「取り出した過去の編集記録(X)により、更新されたローカル原本DBのバージョン(nx)を特定する」0404。「nxとyを比較」0405し、y<nxの場合に「取り出した過去の編集バージョン(X)によるローカル原本DBの更新を取り消す」0406。 Next, “retrieve editing records (X) in which the information of the invariant confirmation range has been changed is retrieved in order (again)” 0403. If there is, “specify the version (nx) of the updated local original DB from the past editing record (X) taken out” 0404. “Compare nx and y” 0405, and when y <nx, “cancel update of local original DB by extracted past edit version (X)” 0406.

「不変確認範囲の情報を変更した過去の編集記録を再び取り出す」0403で全ての過去の編集記録を取り出し処理が完了した後で、「処理対象の編集記録(Y)でローカル原本DBを更新」0407し、「ローカル原本DBのバージョンを更新」0408する。 “Retrieve past edit records whose information in the invariant confirmation range has been changed” 0403 After all past edit records are extracted and processing is completed, “Update local original DB with edit record (Y) to be processed” 0407 and “update the version of the local original DB” 0408.

バージョン設定範囲が指定されており、不変確認範囲と一致する場合は、以下の手順となる。なお、バージョン設定範囲は編集記録に指定されているものとする。「取り出した過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を特定する」0401処理では、処理対象の編集記録(Y)に指定されているバージョン設定範囲について「過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を特定する」。そしてこれ以降のバージョンの比較はこれに対して行われる。 If the version setting range is specified and it matches the invariant confirmation range, the procedure is as follows. It is assumed that the version setting range is specified in the edit record. “Specify edit version (x) of past edit record (X) taken out and edit version (y) of edit record (Y) to be processed” 0401 In process 0401, it is designated as the edit record (Y) to be processed For the version setting range that is present, “specify edit version (x) of past edit record (X) and edit version (y) of edit record (Y) to be processed”. And later versions are compared against this.

サーバーが編集記録を受け付けた時刻をバージョンとする運用の場合は、サーバーが編集記録にその受付時間を記録する。そしてPCは「ローカル原本DBのバージョンを更新」0408において、更新に用いた編集記録に記録されている受付時間を、更新されたローカル原本DBのバージョンとして記録する0408。 In the case of operation using the version when the server receives the edit record, the server records the reception time in the edit record. Then, in “update the version of the local original DB” 0408, the PC records the reception time recorded in the editing record used for the update as the updated version of the local original DB 0408.

PCが、サーバーにアクセスし、未受信の編集記録の有無を確認した時刻をサーバーから取得し、その時刻を原本DBのバージョンとする運用の場合は、「未受信の編集記録を受信」0301と「未処理の編集記録のリストにいれる」0302の前後または途中で、サーバーへのアクセス時間を取得する。PC毎の時間のズレを考えると、この時間はサーバーから貰うのが望ましい。そしてこの時間を記録しておき、受信した編集記録の最後の編集記録で「ローカル原本DBを更新」0407した後、記録しておいた時間をローカル原本DBのバージョンとして記録する0408。 If the PC accesses the server, obtains the time from the server to confirm whether there is an unreceived edit record, and uses the time as the version of the original DB, “Receive unreceived edit record” 0301 Get the access time to the server before, during, or during "Entering the list of unprocessed edit records" 0302. Considering the time lag for each PC, it is desirable to receive this time from the server. Then, this time is recorded, and after updating the local original DB 0407 with the last editing record of the received editing record, the recorded time is recorded as a version of the local original DB 0408.

サーバーでグローバル原本DBを更新するケースを図5で説明する。PC0501がインターネットなどの通信網0502を介して、サーバー0503と接続している。一般にPCは複数存在するが、図5では1台のみを示している。 A case where the global original DB is updated by the server will be described with reference to FIG. A PC 0501 is connected to a server 0503 via a communication network 0502 such as the Internet. In general, there are a plurality of PCs, but only one is shown in FIG.

PC0501には記憶装置0504が有り、ローカル原本DB0506が記録されている。PC0501の操作者の指示を受けて編集手段0511が編集を行うが、この時にはローカル原本DB0506を直接編集する事はせず、編集結果を作業DB0509とする。同時に編集記録0508を作成する。この編集記録には、編集バージョンつまり、ローカル原本DBに設定されているバージョンが記録される。 The PC 0501 has a storage device 0504, in which a local original DB 0506 is recorded. The editing unit 0511 performs editing in response to an instruction from the operator of the PC 0501. At this time, the local original DB 0506 is not directly edited, and the editing result is the work DB 0509. At the same time, edit record 0508 is created. In this edit record, an edit version, that is, a version set in the local original DB is recorded.

編集記録0508は送信手段0513により通信網0502を介してサーバー0503に送られる。サーバー0503は受信手段0519により受信し、編集記録に記録されていたバージョンで有効性を判定し、グローバル原本DB0507を更新する。この時、ローカル原本DB更新情報0516を作成する。ローカル原本DB更新情報0516はサーバーの送信手段0518によりPC0501に送られ、受信手段0514により受信され、記憶装置0504に記録される。更新手段0512はこのローカル原本DB更新情報0510を用いて、ローカル原本DB0506を更新する。PCの送信の受信の協調作業は送受信管理手段0515により行われ、サーバーの送信の受信の協調作業は送受信管理手段0520により行われる。 The edit record 0508 is sent to the server 0503 via the communication network 0502 by the transmission means 0513. The server 0503 receives the reception unit 0519, determines the validity with the version recorded in the editing record, and updates the global original DB 0507. At this time, local original DB update information 0516 is created. The local original DB update information 0516 is sent to the PC 0501 by the transmission means 0518 of the server, received by the reception means 0514, and recorded in the storage device 0504. The updating unit 0512 updates the local original DB 0506 using the local original DB update information 0510. Coordination work for PC transmission reception is performed by transmission / reception management means 0515, and server transmission reception cooperation work is performed by transmission / reception management means 0520.

サーバー0503でグローバル原本DBを更新する手順を図6と図7に示す。PC0501からの「編集記録を受信」0601し、この「処理対象の編集記録(Y)から編集バージョン(y)と不変確認範囲を取り出す」0602。そしてこの「不変確認範囲の情報を変更した過去の編集記録(X)を取り出し」0603、「取り出した過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を比較する」0604。「xとyを比較」0605し、y<xまたはy=xの場合は処理対象の編集記録(Y)を無効とし、更新処理は行わない。 The procedure for updating the global original DB on the server 0503 is shown in FIGS. “Receive edit record” 0601 from PC 0501 and “take out edit version (y) and invariant confirmation range from edit record (Y) to be processed” 0602. Then, “Retrieve past edit record (X) whose information of invariant confirmation range has been changed” 0603, “Edit version (x) of retrieved past edit record (X) and edit record (Y) to be processed Compare version (y) "0604. “Compare x and y” 0605. If y <x or y = x, the edit record (Y) to be processed is invalidated, and the update process is not performed.

y>xの場合は、このXに対してYが有効なので次の過去の編集記録の調査に移る(0603に移る)。「不変確認範囲の情報を変更した過去の編集記録(X)を取り出す」0603が全て完了して、全てに対して未処理の編集記録(Y)が有効な時、有効と判定され次の処理に移る(0701に移る)。 In the case of y> x, since Y is valid for X, the process proceeds to the investigation of the next past editing record (moves to 0603). When “Extract past edit record (X) whose invariant confirmation range information has been changed” 0603 is all completed and unprocessed edit record (Y) is valid for all, it is determined to be valid and the next process (Go to 0701)

次に、「不変確認範囲の情報を変更した過去の編集記録を再び順に取り出す」0701。有れば「取り出した過去の編集記録(X)により、更新されたグローバル原本DBのバージョン(nx)を特定する」0702。「nxとyを比較」0703し、y<nxの場合に「取り出した過去の編集バージョン(X)によるグローバル原本DBの更新を取り消す」0704。 Next, “retrieve past edit records in which the information of the invariant confirmation range has been changed again in order” 0701. If there is, “specify the version (nx) of the updated global original DB by the extracted past editing record (X)” 0702. “Compare nx and y” 0703, and if y <nx, “cancel update of global original DB by retrieved past edit version (X)” 0704.

「不変確認範囲の情報を変更した過去の編集記録を再び取り出す」0701で全ての過去の編集記録を取り出し処理が完了した後で、「処理対象の編集記録(Y)でローカル原本DBを更新」0705し、「クローバル原本DBのバージョンを更新」0706する。 “Retrieve past edit records whose information in the invariant confirmation range has been changed” 0701. After all the past edit records are extracted and the processing is completed, “Update local original DB with edit record (Y) to be processed” 0705, and “update the version of the global original DB” 0706.

更新の取り消し防止のための「アップ禁止」をサーバーからPCに伝える手順を説明したのが図8である。PCから「編集記録の送信要求(前回最終番号付き)を受信」0801したとき、サーバーは「アップ禁止中」0802であるかを判定する。あるPCからの要請に基づき、サーバーがアップ禁止中の状態であれば、編集記録の送信要求したPCに対して「アップ禁止を通知」0803する。アップ禁止中でなければ「未送信、つまり前回最終番号以降の、編集記録のリストを作成」0804し、これらをPCに対して「送信」0805し、最後に「完了通知」0806を送る。 FIG. 8 illustrates a procedure for transmitting “up prohibition” from the server to the PC for preventing update cancellation. When the server receives “edit record transmission request (with last last number) received” 0801 from the PC, the server determines whether it is “up prohibited” 0802. Based on a request from a certain PC, if the server is in the state of prohibiting up, “notify up prohibition” 0803 is sent to the PC that has requested transmission of the edit record. If the upload is not prohibited, “unsent, that is, create a list of edit records after the last final number” 0804, “send” 0805 to the PC, and finally send “completion notice” 0806.

更新の取り消し防止のための「編集禁止」をサーバーからPCに伝える手順を説明したのが図9である。PCから「編集記録の送信要求(前回最終番号付き)を受信」0901すると、サーバーは「未送信(つまり前回最終番号以降)の編集記録のリストを作成」0902し、これらをPCに対して「送信」0903する。この後で、サーバーは「(ローカル原本DBの)編集禁止中」0904であるかを判定する。あるPCからの要請に基づき、更新禁止中であれば、編集記録の送信要求をしたPCに対して「編集禁止を通知」0905し、最後に「完了通知」0906を送る。 FIG. 9 illustrates a procedure for transmitting “edit prohibited” from the server to the PC for preventing update cancellation. When “Receiving edit record transmission request (with last last number)” 0901 from the PC, the server “creates a list of edit records that have not been sent (that is, after the last last number)” 0902 and sends these to the PC. Send "0903. After this, the server determines whether the editing is “prohibited editing (in the local original DB)” 0904. If updating is prohibited based on a request from a certain PC, “notify editing prohibited” 0905 is sent to the PC that has requested the editing record transmission, and finally “completion notification” 0906 is sent.

<単純化した実施例>
図10にもう一つの実施例を示す。図10のDBはRDBで、バージョン設定範囲をDB全体、バージョンは整数、不変確認範囲は編集したレコードのみとし、「更新の取り消しを行わない運用」としている。
<Simplified embodiment>
FIG. 10 shows another embodiment. The DB in FIG. 10 is an RDB, the version setting range is the entire DB, the version is an integer, the invariant confirmation range is only the edited record, and “operation without canceling update” is set.

また、レコード毎にこのレコードを編集した時点の編集バージョンを「レコードバージョン」として記録している。これにより編集解消のレコードのバージョンと処理対象の編集記録(Y)の編集バージョン(y)を比較するだけで、「不変確認範囲の情報を変更した過去の編集記録(X)を取り出す」0305と「過去の編集記録(X)の編集バージョン(x)と処理対象の編集記録(Y)の編集バージョン(y)を比較する」0401 の処理が行える。 In addition, the edit version at the time of editing this record is recorded as “record version” for each record. Thus, only by comparing the version of the record to be edited and the edited version (y) of the edit record (Y) to be processed, “retrieve past edit record (X) whose invariant confirmation range information has been changed” is extracted. The process of “Compare the editing version (x) of the past editing record (X) with the editing version (y) of the editing record (Y) to be processed” 0401 can be performed.

この様に単純化されているが、バージョンの移り変わりを見るには都合が良い。図10ではサーバーに、グローバル初期原本DB、編集記録とその到着順(アップ順)が記録されている。サーバーの縦軸はその時点で最も新しい編集を示している。 Although simplified in this way, it is convenient to see the changes in version. In FIG. 10, the global initial original DB, the edit record, and the arrival order (up order) are recorded on the server. The vertical axis of the server shows the most recent edit at that time.

PC−A1002とPC−B1003はそれぞれグローバル初期原本DB1004を取得1010, 1011し、それぞれのローカル原本DB1005, 1006としている。サーバーのグローバル初期原本DB1004をコピーしているので、どちらもベースバージョンは0である。その後、サーバー1001に編集1から編集6がアップされているが、これはPC−A1002、PC−B1003以外のPC−がアップした編集である。 The PC-A 1002 and the PC-B 1003 acquire the global initial original DB 1004 1010 and 1011 respectively, and use them as the local original DBs 1005 and 1006, respectively. Since the global initial original DB 1004 of the server is copied, the base version of both is 0. Thereafter, edits 1 to 6 are uploaded to the server 1001, which is an edit uploaded by a PC- other than the PC-A 1002 and PC-B 1003.

図2では、PC−A1002はもう一度サーバーにアクセスしその時の最新の編集しその順番を取得している1012。このとき、編集1を取り込むので、ローカル原本DB1005のバージョンは1になる。 In FIG. 2, the PC-A 1002 accesses the server once again, and acquires the order of the latest editing at that time 1012. At this time, since edit 1 is captured, the version of the local original DB 1005 becomes 1.

さて、PC−A1002の操作者が、ローカル原本DB1005内のレコードZの複製1008を編集したとする1013。この時、ローカル原本DB1005のベースバージョンが1なので、編集された「レコードZの複製1008」のレコードバージョンが1にセットされる。この編集記録がサーバーにアップされ1014、編集7として記録される。この直後に、PC−A1002は、(既に取得してある)編集1より後にアップされた、編集2から編集6を取得し、さらにPC−A1002先のアップ1014が編集7となった事を確認する。あらかじめ指定された「編集の有効性の判定」に基づき編集7までを順番に調査し、ローカル原本DB1005を更新する。ここでは、編集7が有効と判定されたとし、ローカル原本DB1005のベースバージョンが7になる。 Now, let us say that the operator of the PC-A 1002 has edited the copy 1008 of the record Z in the local original DB 1005 1013. At this time, since the base version of the local original DB 1005 is 1, the edited record version of “replicated record Z 1008” is set to 1. This edit record is uploaded to the server and recorded as 1014 and edit 7. Immediately after this, PC-A 1002 acquires edit 6 from edit 2 that has been uploaded after edit 1 (which has already been acquired), and confirms that up 1014 ahead of PC-A 1002 is now edit 7. To do. Based on the “determination of the validity of editing” designated in advance, the editing up to editing 7 is investigated in order, and the local original DB 1005 is updated. Here, assuming that edit 7 is valid, the base version of the local original DB 1005 is 7.

一方、PC−B1003はサーバー1001から、編集1から(この同期1017時点での最新の)編集6を取得し1017、ローカル原本DB1006を更新してベースバージョンを6とする。その後PC−B1003の操作者が、「レコードZの複製1009」を編集した1018とする。この時、「レコードZの複製1009」のレコードバージョンが6になり、編集記録がサーバーにアップされ1019、編集8として記録される。 On the other hand, the PC-B 1003 acquires from the server 1001 the edit 6 (latest at the time of this synchronization 1017) 1017 and updates the local original DB 1006 to the base version 6. Thereafter, it is assumed that the operator of the PC-B 1003 has edited 1018 “duplicate record Z 1009”. At this time, the record version of “duplicate record Z 1009” becomes 6, and the edit record is uploaded to the server 1019 and recorded as edit 8.

その後別のPC−から編集9がアップされた後、PC−A1002がサーバー1001にアクセスし、(既に取得してある)編集7より後にアップされた編集8と編集9を取得する1022。そしてローカル原本DB1008に編集8と編集9を順番に適用し、「編集の有効性の判定」を行い、ローカル原本DB1008を更新する。ここでローカル原本DB1008に編集9が反映されるので、製DB1008のベースバージョンが9になる。この時点で、先にPC−B1003が編集したレコードZの複製1009の内容がPC−A1002のローカル原本DB1005で有効になり、先にPC−A1002が編集したレコードZの複製1008内容が無効になった事が(PC−A1002で)判明する。 Then, after the editing 9 is uploaded from another PC-, the PC-A 1002 accesses the server 1001, and acquires the editing 8 and the editing 9 uploaded after the editing 7 (already acquired) 1022. Then, edit 8 and edit 9 are applied to the local original DB 1008 in order, “edit validity determination” is performed, and the local original DB 1008 is updated. Here, since the edit 9 is reflected in the local original DB 1008, the base version of the manufactured DB 1008 becomes 9. At this time, the contents of the record Z replica 1009 edited by the PC-B 1003 become valid in the local original DB 1005 of the PC-A 1002, and the contents of the record Z duplicate 1008 edited by the PC-A 1002 become invalid. It turns out (by PC-A1002).

データベースを複数の計算機から並行して編集出来ると使い勝手は良いが、並行編集の競合解消が問題である。本願の競合解消方法は「より最新の情報に基づく編集を優先」する仕組みであり、計算機が永続的に複製DBを保持する本格的な「並行DB編集」においても、計算機が一時的に複製DBを保持するケースにおいても有効である。この方法には「古い情報に基づく編集は無効と判定される」特徴がある。競合が予想される情報を編集する場合は「最新の情報との同期、編集、編集記録の送信」を迅速に行う「ほぼオンライン運用」により、この編集が無効となる可能性を小さくする事が出来る。逆に競合が予想されない情報を編集する場合は、情報の同期の後でゆっくり編集を行い、編集記録をまとめて送信する「ほぼオフライン運用」で良い。本願の方法により、幅広い応用分野でのデータベースの並行編集が可能となった。 It is convenient to edit a database from multiple computers in parallel, but the problem is parallel conflict resolution. The conflict resolution method of the present application is a mechanism that “priorizes editing based on the latest information”, and even in full-fledged “parallel DB editing” in which a computer permanently holds a replication DB, the computer temporarily stores the replication DB. It is also effective in cases where This method has a feature that “editing based on old information is determined to be invalid”. When editing information that is expected to conflict, it is possible to reduce the possibility that this editing will be invalidated by “almost online operation” that quickly performs “synchronization with the latest information, editing, and sending of edit records”. I can do it. Conversely, when editing information for which no conflict is expected, “almost offline operation” in which editing is performed slowly after information synchronization and the editing records are sent together may be used. The method of the present application enables parallel editing of databases in a wide range of application fields.

Claims (5)

データベースの複製(以下「複製データベース」)の編集方法であって、
(1)該複製データベースに対してバージョン(該複製データベースの更新に伴い更新される順序数)が記録され、
(2)該複製データベースの作業用コピーを対象とした編集の記録(以下「編集記録」)に対して、該作業用コピーを作成した時点の該複製データベースの該バージョンの値(以下「編集バージョン」)が記録され、
(3)該複製データベースを更新する複数の編集記録には、該データベースの他の複製に対する編集記録が含まれ、
さらに
(工程A)既に該複製データベースの更新に用いられていた編集記録に対し記録されていた編集バージョンの値と、新たな編集記録(以下「新編集記録」)に対して記録されている編集バージョンの値(以下「新バージョン」)を比較し、
(工程B)該「新バージョン」の方が新しい場合に、該「新編集記録」を用いて該複製データベースを更新し、該複製データベースに対して記録されていた該バージョンを更新し、
(工程C)該「新バージョン」の方が古い場合には、該「新編集記録」を用いた該複製データベースの更新は行わない、
一連の工程を特徴とする方法。
A method for editing a database replica (hereinafter referred to as “Duplicate Database”) ,
(1) versions for the duplicate database (ordinal number to be updated with the update of the replicated database) is recorded,
(2) the recording of the editing intended for working copy of the replicated database (hereinafter "Edit recording"), the version value (hereinafter "edit version of the replicated database at the time of creating the copy the work )) Is recorded,
(3) The plurality of edit records for updating the duplicate database include edit records for other duplicates of the database,
And (Step A) already editing recorded value of edited version that was recorded with respect to edited record that was used to update the said replicated database, for a new edit recording (hereinafter "new editing records") Compare version values (hereinafter “new version”)
If (step B) those of the "new version" is new, and update the duplicate database by using the "New Edit Record", to update the version that has been recorded with respect to the replicated database,
If (step C) towards the "new version" is older, update of the replicated database using the "New Edit Record" is not performed,
A method characterized by a series of steps.
データベースの複製(以下「複製データベース」)の編集方法であって、
(1)該複製データベースに対してバージョン(該複製データベースの更新に伴い更新される順序数)が記録され、
(2)該複製データベースの作業用コピーを対象とした編集の記録(以下「編集記録」)に対して、該作業用コピーを作成した時点の該複製データベースの該バージョンの値(以下「編集バージョン」)が記録され、
(3)該複製データベースを更新する複数の編集記録には、該データベースの他の複製に対する編集記録が含まれ、
さらに
(工程A)該複製データベースの更新に用いる編集記録(以下「新編集記録」)に対して指定されていた情報の範囲(以下「不変確認範囲」)に対し、それまでに適用された編集記録に対して記録されていた編集バージョンの値と、該新編集記録に対して記録されていた編集バージョンの値(以下「新バージョン」)を比較し、
(工程B)該「新バージョン」の方が新しい場合に、該「新編集記録」を用いて該複製データベースを更新し、該複製データベースに対して記録されていた該バージョンを更新し、
(工程C)該「新バージョン」の方が古い場合には、該「新編集記録」を用いた該複製データベースの更新は行わない、
一連の工程を特徴とする方法。
A method for editing a database replica (hereinafter referred to as “Duplicate Database”) ,
(1) versions for the duplicate database (ordinal number to be updated with the update of the replicated database) is recorded,
(2) the recording of the editing intended for working copy of the replicated database (hereinafter "Edit recording"), the version value (hereinafter "edit version of the replicated database at the time of creating the copy the work )) Is recorded,
(3) The plurality of edit records for updating the duplicate database include edit records for other duplicates of the database,
Further edited to (Step A) range of information that has been specified for the edit recording (hereinafter "new editing records") used for updating of the duplicate database (hereinafter "invariant check range"), which is applied to the far and compares the value of the editing version that had been recorded for the record, the value of the edited version that was recorded for該新editing records (hereinafter referred to as the "new version"),
If (step B) those of the "new version" is new, and update the duplicate database by using the "New Edit Record", to update the version that has been recorded with respect to the replicated database,
If (step C) towards the "new version" is older, update of the replicated database using the "New Edit Record" is not performed,
A method characterized by a series of steps.
データベースの複製(以下「複製データベース」)の編集方法であって、
(1)該複製データベースの一部分の情報(以下「バージョン設定範囲」)に対してバージョン(該バージョン設定範囲の内容の更新に伴い更新される順序数)が記録され、
(2)該複製データベースの作業用コピーを対象とした編集の記録(以下「編集記録」)に対して、該作業用コピーを作成した時点の該バージョン設定範囲の該バージョンの値(以下「編集バージョン」)が記録され、
(3)該複製データベースを更新する複数の編集記録には、該データベースの他の複製に対する編集記録が含まれ、
さらに
(工程A)既に該複製データベースの更新に用いられていた編集記録に対し記録されていた編集バージョンの値と、新たな編集記録(以下「新編集記録」)に対して記録されている編集バージョンの値(以下「新バージョン」)を比較し、
(工程B)該「新バージョン」の方が新しい場合に、該「新編集記録」を用いて該複製データベースを更新し、該「バージョン設定範囲」の内容が変更された場合には、該「バージョン設定範囲」に対して記録されていた該バージョンを更新し、
(工程C)該「新バージョン」の方が古い場合には、該「新編集記録」を用いた該複製データベースの更新は行わない、
一連の工程を特徴とする方法。
A method for editing a database replica (hereinafter referred to as “Duplicate Database”) ,
(1) Version against a portion of the replicated database information (hereinafter "Version Range") (the number of the order to be updated with the update of the contents of the version set range) is recorded,
(2) the recording of the editing intended for working copy of the replicated database (hereinafter "Edit recording"), the value (hereinafter "Editing of the version of the version set range at the time of creating the copy the work Version ") is recorded,
(3) The plurality of edit records for updating the duplicate database include edit records for other duplicates of the database,
And (Step A) already editing recorded value of edited version that was recorded with respect to edited record that was used to update the said replicated database, for a new edit recording (hereinafter "new editing records") Compare version values (hereinafter “new version”)
If (step B) those of the "new version" is new, when you update the replicated database by using the "new editing records", the contents of the "version Setting range" has been changed, the " Update the version recorded for “Version setting range”
If (step C) towards the "new version" is older, update of the replicated database using the "New Edit Record" is not performed,
A method characterized by a series of steps.
データベースの複製(以下「複製データベース」)の編集方法であって、
(1)該複製データベースに対してバージョン(該複製データベースの更新に伴い更新される時刻情報)が記録され、
(2)該複製データベースの作業用コピーを対象とした編集の記録(以下「編集記録」)に対して、該作業用コピーを作成した時点の該複製データベースの該バージョンの値(以下「編集バージョン」)が記録され、
(3)該編集記録、編集記録を中継する装置(以下「サーバー」)へ送信
(4)未受信の編集記録を該サーバーより受信し、これら未受信の編集記録の有無を該サーバーに確認した時刻をサーバーから受信し、該データベースのバージョンの値とし、
さらに
(工程A)既に該複製データベースの更新に用いられていた編集記録に対し記録されていた編集バージョンの値と、新たな編集記録(以下「新編集記録」)に対して記録されている編集バージョンの値(以下「新バージョン」)を比較し、
(工程B)該「新バージョン」の方が新しい場合には、該「新編集記録」を用いて該複製データベースを更新し、該「新バージョン」を該複製データベースの該バージョンの値として設定し、
(工程C)該「新バージョン」の方が古い場合には、該「新編集記録」を用いた該複製データベースの更新は行わない、
一連の工程を特徴とする方法。
A method for editing a database replica (hereinafter referred to as “Duplicate Database”) ,
(1) versions for the duplicate database (time information which is updated with the updating of the duplicate database) is recorded,
(2) the recording of the editing intended for working copy of the replicated database (hereinafter "Edit recording"), the version value (hereinafter "edit version of the replicated database at the time of creating the copy the work )) Is recorded,
(3) the editing record, is transmitted to the device that relays the editing records (hereinafter referred to as "server"),
(4) Editing recording unreceived received from the server, the presence or absence of editing records of unreceived receive time confirming to the server from the server, the value of the version of the database,
And (Step A) already editing recorded value of edited version that was recorded with respect to edited record that was used to update the said replicated database, for a new edit recording (hereinafter "new editing records") Compare version values (hereinafter “new version”)
If (step B) those of the "new version" is new, by using the "New Edit Record" to update the replicated database, and set the "new version" as the value of the version of the plurality party database ,
If (step C) towards the "new version" is older, update of the replicated database using the "New Edit Record" is not performed,
A method characterized by a series of steps.
データベースの複製(以下「複製データベース」)の編集方法であって、
(1)該複製データベースの全体または一部分に対してバージョン(該複製データベースの更新に伴い更新される順序数)が記録され、
(2)該複製データベースの作業用コピーを対象とした編集の記録(以下「編集記録」)に対して、該作業用コピーを作成した時点の該複製データベースの該バージョンの値(以下「編集バージョン」)が記録され、
(3)該複製データベースを更新する複数の編集記録には、該データベースの他の複製に対する編集記録が含まれ、
さらに
(工程A)既に該複製データベースの更新に用いられていた編集記録に対し記録されていた編集バージョンの値と、新たな編集記録(以下「新編集記録」)に対して記録されている編集バージョンの値(以下「新バージョン」)を比較し、
(工程B)該「新バージョン」の方が新しい場合に、該「新編集記録」を用いて該複製データベースを更新し、該複製データベースに対して記録されていた該バージョンの値を更新する、
一連の工程を特徴とする方法。
A method for editing a database replica (hereinafter referred to as “Duplicate Database”) ,
(1) versions for all or a portion of the replicated database (ordinal number to be updated with the update of the replicated database) is recorded,
(2) the recording of the editing intended for working copy of the replicated database (hereinafter "Edit recording"), the version value (hereinafter "edit version of the replicated database at the time of creating the copy the work )) Is recorded,
(3) The plurality of edit records for updating the duplicate database include edit records for other duplicates of the database,
And (Step A) already editing recorded value of edited version that was recorded with respect to edited record that was used to update the said replicated database, for a new edit recording (hereinafter "new editing records") Compare version values (hereinafter “new version”)
(Step B) When the “new version” is newer, the duplicate database is updated using the “new edit record”, and the value of the version recorded in the duplicate database is updated.
A method characterized by a series of steps.
JP2010515774A 2008-06-04 2009-06-03 Conflict resolution method for parallel database editing Active JP5543918B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010515774A JP5543918B2 (en) 2008-06-04 2009-06-03 Conflict resolution method for parallel database editing

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JPPCT/JP2008/001424 2008-06-04
PCT/JP2008/001424 WO2008149552A1 (en) 2007-06-06 2008-06-04 Database contradiction solution method
PCT/JP2008/001506 WO2009147701A1 (en) 2008-01-08 2008-06-12 Parallel access program of database
JPPCT/JP2008/001506 2008-06-12
JP2010515774A JP5543918B2 (en) 2008-06-04 2009-06-03 Conflict resolution method for parallel database editing
PCT/JP2009/002490 WO2009147846A1 (en) 2008-06-04 2009-06-03 Conflict resolution system for database parallel editing

Publications (2)

Publication Number Publication Date
JPWO2009147846A1 JPWO2009147846A1 (en) 2011-10-27
JP5543918B2 true JP5543918B2 (en) 2014-07-09

Family

ID=51409609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010515774A Active JP5543918B2 (en) 2008-06-04 2009-06-03 Conflict resolution method for parallel database editing

Country Status (1)

Country Link
JP (1) JP5543918B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678996B2 (en) 2007-06-06 2017-06-13 Kunio Kamimura Conflict resolution system for database parallel editing
JP2017191599A (en) * 2016-04-13 2017-10-19 三星電子株式会社Samsung Electronics Co.,Ltd. Data storage method for data storage system providing zero-contention parallel data stack

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0785020A (en) * 1993-09-20 1995-03-31 Hitachi Ltd Document managing method
JP2000089994A (en) * 1998-09-16 2000-03-31 Daikin Ind Ltd Method and device for managing data base
WO2000033193A1 (en) * 1998-11-30 2000-06-08 Hitachi, Ltd. Method, apparatus and system for delivering information and recording medium
JP2000284998A (en) * 1999-03-31 2000-10-13 Ricoh Co Ltd Data update control system and method and computer readable recording medium storing program for executing the method
JP2000339211A (en) * 1999-05-25 2000-12-08 Casio Comput Co Ltd File processor, file processing system and storage medium
JP2007058275A (en) * 2005-08-22 2007-03-08 Brother Ind Ltd Node device, shared information updating processing program, shared information updating method, and information-sharing system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0785020A (en) * 1993-09-20 1995-03-31 Hitachi Ltd Document managing method
JP2000089994A (en) * 1998-09-16 2000-03-31 Daikin Ind Ltd Method and device for managing data base
WO2000033193A1 (en) * 1998-11-30 2000-06-08 Hitachi, Ltd. Method, apparatus and system for delivering information and recording medium
JP2000284998A (en) * 1999-03-31 2000-10-13 Ricoh Co Ltd Data update control system and method and computer readable recording medium storing program for executing the method
JP2000339211A (en) * 1999-05-25 2000-12-08 Casio Comput Co Ltd File processor, file processing system and storage medium
JP2007058275A (en) * 2005-08-22 2007-03-08 Brother Ind Ltd Node device, shared information updating processing program, shared information updating method, and information-sharing system

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND199900110027; 'MSDN Selection(2) Microsoft Windows NT Active Directory技術概要' アスキーNT 第3巻 第7号, 19980701, pp.268〜276, 株式会社アスキー *
CSND200400787012; 藤田将幸: '効きめバツグン! Active Directory実践テクニック 最終回 複製の競合に関するトラブル' Windows 2000 World 第8巻 第6号, 20030601, pp.171〜173, 株式会社IDGジャパン *
CSNG200600684050; 荒木拓也ほか2名: 'マスターレスなDB同期システムとシームレスな動画視聴システムへの応用' 情報処理学会研究報告 第2006巻 第14号, 20060217, pp.299〜304, 社団法人情報処理学会 *
JPN6013016034; 荒木拓也ほか2名: 'マスターレスなDB同期システムとシームレスな動画視聴システムへの応用' 情報処理学会研究報告 第2006巻 第14号, 20060217, pp.299〜304, 社団法人情報処理学会 *
JPN6013041828; 藤田将幸: '効きめバツグン! Active Directory実践テクニック 最終回 複製の競合に関するトラブル' Windows 2000 World 第8巻 第6号, 20030601, pp.171〜173, 株式会社IDGジャパン *
JPN6013041829; 'MSDN Selection(2) Microsoft Windows NT Active Directory技術概要' アスキーNT 第3巻 第7号, 19980701, pp.268〜276, 株式会社アスキー *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678996B2 (en) 2007-06-06 2017-06-13 Kunio Kamimura Conflict resolution system for database parallel editing
JP2017191599A (en) * 2016-04-13 2017-10-19 三星電子株式会社Samsung Electronics Co.,Ltd. Data storage method for data storage system providing zero-contention parallel data stack

Also Published As

Publication number Publication date
JPWO2009147846A1 (en) 2011-10-27

Similar Documents

Publication Publication Date Title
US9678996B2 (en) Conflict resolution system for database parallel editing
US11003689B2 (en) Distributed database transaction protocol
US10970260B2 (en) Moving data between partitions
US9251163B2 (en) File sharing system and file sharing method
JP4414381B2 (en) File management program, file management apparatus, and file management method
CN108932282B (en) Database migration method and device and storage medium
WO2009147846A1 (en) Conflict resolution system for database parallel editing
US9020916B2 (en) Database server apparatus, method for updating database, and recording medium for database update program
US10430281B2 (en) Space efficient cascading point in time copying
CN108021338B (en) System and method for implementing a two-layer commit protocol
US11599504B2 (en) Executing a conditional command on an object stored in a storage system
US20130041868A1 (en) Data synchronization
US20060004877A1 (en) Method and system for data processing with data replication for the same
JP5543918B2 (en) Conflict resolution method for parallel database editing
JP4855537B2 (en) Database parallel editing method
JP5543899B2 (en) Parallel editing method for database data items
US20170177647A1 (en) Parallel database editing
JP4923140B2 (en) Database parallel editing method
WO2009147701A1 (en) Parallel access program of database
JP5543901B2 (en) Database parallel editing method
JP4855538B2 (en) Parallel editing method for database data items
US20180075076A1 (en) Maintaining immutable data and mutable metadata in a storage system
JP2010015344A (en) Database system
WO2004031957A1 (en) Database copying method, database copying apparatus, database creation method, and database creation apparatus
US20130110777A1 (en) Synchronization of data edited in parallel

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131108

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: 20140422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140509

R150 Certificate of patent or registration of utility model

Ref document number: 5543918

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250