WO2009147847A1 - データベース並行編集方式 - Google Patents

データベース並行編集方式 Download PDF

Info

Publication number
WO2009147847A1
WO2009147847A1 PCT/JP2009/002491 JP2009002491W WO2009147847A1 WO 2009147847 A1 WO2009147847 A1 WO 2009147847A1 JP 2009002491 W JP2009002491 W JP 2009002491W WO 2009147847 A1 WO2009147847 A1 WO 2009147847A1
Authority
WO
WIPO (PCT)
Prior art keywords
edit
record
editing
copy
database
Prior art date
Application number
PCT/JP2009/002491
Other languages
English (en)
French (fr)
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/ja
Priority claimed from PCT/JP2008/001506 external-priority patent/WO2009147701A1/ja
Priority to JP2010515775A priority Critical patent/JP4855537B2/ja
Priority to US12/864,872 priority patent/US20110082833A1/en
Priority to CN200980128878.0A priority patent/CN102216910B/zh
Application filed by 株式会社 アテナテレコムラボ filed Critical 株式会社 アテナテレコムラボ
Publication of WO2009147847A1 publication Critical patent/WO2009147847A1/ja
Priority to US12/688,854 priority patent/US8171003B2/en
Priority to US13/024,330 priority patent/US20110137862A1/en
Priority to US13/251,295 priority patent/US20120023100A1/en
Priority to US13/714,422 priority patent/US20130110777A1/en
Priority to US13/726,549 priority patent/US20130179652A1/en
Priority to US13/802,740 priority patent/US20130204842A1/en
Priority to US15/449,961 priority patent/US20170177647A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Definitions

  • the present invention implements parallel editing (hereinafter referred to as “parallel DB editing”) for a database (hereinafter referred to as “DB”).
  • parallel DB editing parallel editing
  • DB database
  • Single DB access Operation to operate DB with only one computer. Since it is only this computer that can edit the DB, it is easy to prevent access conflicts, but it is not suitable for operations in which a plurality of computers access the DB.
  • Server DB access A server computer (hereinafter “server”) manages the DB, and a terminal computer (hereinafter “PC”) accesses the server and accesses the DB through server processing. Since only one PC directly accesses the DB, it is easy to prevent access conflicts, and a vestigec lock cursor (Non-Patent Document 1) and a transaction lock (Non-Patent Document 2) are used.
  • server manages the DB
  • PC terminal computer
  • Non-Patent Document 3 and Non-Patent Document 4 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 terminal computer, later (this) editing is invalidated. . 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”. This is called “optimistic concurrency control” (Non-Patent Document 3 and Non-Patent Document 4). However, the following inconveniences sometimes occur.
  • Non-Patent Document 5 is an invention related to file caching, and when an editing conflict (competition in this application) is detected, editing is simply rejected (10th line from the lower right on page 7 of Non-Patent Document 5) and recorded.
  • Create In Patent Document 1 when a server detects a DB editing collision, the server DB updated correctly is sent ("Solution means" and 36 levels).
  • Patent Document 2 an update with a later update time is valid, and in Patent Document 1, an update with a later update time is valid. Neither of them solves the above problem.
  • Patent Document 3 is an invention related to a condition for starting database synchronization, and the synchronization method merely shows a general synchronization concept of “synchronizing by notifying each other of update information”.
  • Patent Document 4 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.
  • Patent Literature 5, Patent Literature 6, Patent Literature 7, Patent Literature 8, and Patent Literature 9 were also investigated, but all differ from the present invention.
  • JP 9-91184 A Japanese Laid-Open Patent Publication No. 2004-13867 Japanese Laid-Open Patent Publication No. 2004-86800 Japanese Laid-Open Patent Publication No. 2006-284998 Japanese Patent Laid-Open No. 11-161535 JP 2005-503606 Gazette JP 2005-508050 A JP-A-8-16447 Special table 2000-501532 gazette William R.
  • 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.
  • local original DB an initial version, that is, an order number for identifying the update order, can be set.
  • the effectiveness of editing can be determined using the version.
  • 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.
  • the server records the edit records that have arrived from the PC together with the order of arrival.
  • the PC requests the server to send unedited edit records, and receives these edit records and their order (arrival at the server). If an edit version is specified in the edit record, this is also received.
  • Update of local original DB The PC extracts edit records in the specified order, determines the validity, and tries to update the “local original DB” based on the contents. When the version is set, the version of the local original DB is updated.
  • the initial local original DBs of all the PCs are the same, and edit records of local editing in each PC are taken out in the order of arrival at the server, and the local original DB is updated. Since the editing information of the same content is processed in the same order and with the same logic to update the local original DB, the resulting local original DB of each PC is the same. This is the reason why the local original DB of each PC is synchronized without updating the global original DB on the server.
  • the point is to give a unique order to the edit records created on each PC.
  • the order up to the server is used, but this order may be changed or the order may be set by other methods.
  • the order of uploading to the server may be changed according to its own criteria (for example, operator priority). It suffices if the order of taking out and updating the local original DB is the same on all related PCs.
  • the server or a specific PC determines the order (or time) of the editing records (notifies the PC that creates or holds the editing records) and creates or holds the editing records.
  • the PC which performs this may enter this order in the edit record and notify each other of the edit record. It suffices if the order of taking out and updating the local original DB is the same on all related PCs.
  • each PC Since each PC updates the duplicate DB at their convenience, the progress of the update with the local original DB of each PC varies in real time, but after updating with a specific editing record The state of the local original DB is the same. That is, the local original DB of each PC is synchronized with the order of editing and recording as a common time axis.
  • the “validity determination criterion” and the “local original DB update processing method” need to be the same in all related PCs. However, if it is the same, there is no restriction on the processing. If it is determined that all or part of each edit record is valid or invalid and the local original DB is updated in the same manner, the local original DB of each PC is set with the order of the edit records as a common time axis. Are synchronized.
  • this PC receives the latest editing record from the server and updates the local original DB.
  • the PC edits the local original DB and uploads the editing record.
  • the editing record may have been uploaded to the server from another computer.
  • the previous (unreceived) editing record is received from the server, the editing records are taken out in the designated order, and the local original DB is updated. In this process, some edits are determined to be valid and the local original DB is updated.
  • the editing record that was uploaded earlier is taken out, the invariant confirmation range is investigated, and the validity is determined. If it is determined to be invalid, the operator of this PC confirms the fact of invalidity and the reason for the invalidation, 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.
  • the main points of the present invention are listed as follows.
  • (Update 1) Each PC receives unedited edit records in order.
  • (Update 2) The local original DB is updated using the received editing records in the designated order.
  • (Edit 1) Each PC updates the local original DB and uploads this edit record to the server.
  • (Premise 1) The contents of the initial local original DB of each PC are the same.
  • (Premise 2) The content of the edit record used for updating the local original DB on each PC is the same.
  • the order of editing records used for updating the local original DB in each PC is the same.
  • (Premise 4) The logic used for updating the local original DB is the same on each PC.
  • the criteria for determining the validity of the edit record and the update procedure of the local original DB are not particularly defined, but it is generally considered common to determine that editing based on old information is invalid. Therefore, 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 this latest local original is updated. It is preferable to edit the DB and immediately edit the edit record after editing. If updated frequently, the local original DB is always kept up-to-date, so it can be said that “almost online operation”.
  • the editing version, version setting range, and invariant confirmation range are recorded in the editing contents, but the handling of these information becomes simple. However, it is not always necessary to record the editing contents. Even if they are recorded separately, it is sufficient if these correspondences can be grasped by other computers.
  • Invariant confirmation range is a range that affects this editing, and changing the value of information in this range indicates that this editing becomes meaningless. ing.
  • the “invariant confirmation range” can be variously specified in accordance with the information handled by the DB, particularly the characteristics of the information to be edited, but it is natural to put the information to be edited in the “invariant confirmation range”.
  • RDB relational DB
  • (Improved-3) Edit record and its order The edit record to be recorded in the operation server and its order are not necessarily the same as the contents and the order in which the PC is up. If the edit records and the order thereof are the same for all PCs, the local original DB to which these edit records are applied synchronizes with the order of the edit records as a common time axis.
  • the server or the PC in charge of management work may analyze the contents of the editing record, and delete a portion that becomes invalid due to an error or a redundant portion (same as doing nothing after all). There is no problem even if an error edit record or redundant edit record is deleted and the edit record is deleted as a result. Even if the order of editing and recording is changed, if the order used for (update of local original DB) processing in all PCs is the same, the local original DB of each PC is synchronized using the order of editing and recording as a common time axis.
  • the unit for assigning an introductory version of the version setting range and managing editing need not be an actual DB. If a part closely related to the influence of information correction is identified and set as a “version setting range”, and a version is set for each, it becomes easy to manage editing and version transition for that range.
  • the setting of the version setting range depends on the structure and contents of information handled by the DB, it cannot be determined without such knowledge, but in the case of RDB, it is logically related to records, tables, and tables. A table group, a specific record group among them, an entire DB, and the like are assumed.
  • the medical personal information will be described as an example.
  • a set of personal medical records is set as the setting of the version setting range. If one or more rows in the table are personal information, a version is set for this.
  • the DB has a lot of personal information, and a version is set for each.
  • the edit record there are one or more sets of “edit contents”, “edit version”, and “invariant confirmation range” corresponding to the individual.
  • the “invariant confirmation range” may be set appropriately in accordance with the correction contents, whether it is the entire personal record or limited to the corrected information (record in the case of RDB). If a table is configured for each personal information, a version is set for each table.
  • the version may be updated when the contents of the local original DB are actually updated, or the version may be updated every time an attempt is made to change the original DB in the change record regardless of whether there is a valid update.
  • the time when the development server received the editing as the version may be used as the version.
  • the version described in this specification will be read as this reception time. Previously, the version was described as an order number for identifying a sequence, but there is no problem because the time also represents the order.
  • the development PC with the version of the synchronous access time to the server obtains the time (from the server etc.) that accesses the server and confirms whether there is an unreceived edit record, and uses that time as the version A method is also possible. For each confirmation, a new time of the local original DB is set as a version even if there is no unreceived edit record. If there are unreceived editing records, these are received, the local original DB is updated using them, and this time is set as the version of the local original DB. Since the editing of the local original DB with 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.
  • the local original DB does not need to be synchronized with the entire global original DB, and it is sufficient if it is synchronized with a necessary part thereof. As a result, the size of the local original DB is reduced, and the synchronization (keeping the contents up to date) becomes light.
  • One method is a method in which the server invalidates the editing that has been uploaded to the prohibited section. It is a reliable method that makes use of X editing and does not cause contradictions. However, the effort on the side of creating this invalidated edit is wasted.
  • the PC that performs the editing X may be directly transmitted to another PC, or the PC that performs the editing X may be transmitted to the server and may be transmitted from the server to each PC.
  • the PC that performs editing X informs the server that editing of other PCs is prohibited at the time of requesting the server for the latest editing record before performing editing X.
  • the server that requested the latest editing record to the server may be notified of the prohibition of editing from the server, or may be notified together with a response to an inquiry about an unreceived editing record.
  • this PC does not perform editing even if the local original DB is updated. Then, the server requests the server for the latest editing record, and sends up to the editing record X. At the same time, the release of the prohibition of editing is notified. After updating the local original DB with the edit record X, this PC starts editing for this.
  • Parallel editing in this specification means that a copy of all or part of information in a global original DB (real or virtual) (intuitively DB original) is stored in a local original DB (intuitively in a PC). It is held as “Duplicate DB”) and edited. Editing information on the duplicate DB held by each PC is exchanged by the PC to update each duplicate DB. The reason why the replicated DBs of each PC are synchronized is that each PC updates each replicated DB using the same editing information in the same order. This is expressed in claim 1. Claim 2 is an expression of claim 1 by an apparatus.
  • a process for confirming the validity of the edit record is added to the process D of the first aspect.
  • Claim 4 shows that the concept of “invariant confirmation range” that affects editing is added to claim 3, and the validity of the edit record is confirmed using this concept.
  • Claim 5 shows that the concept of the version of the duplicate DB is added to claim 3, and the validity of the edit record is confirmed using this.
  • Claim 6 is the case where the version is designated as a part of information or a combination of information in the replication DB.
  • the seventh aspect is based on the fifth aspect, and is added to update the version of the duplicate DB even if the validity is denied.
  • Claim 8 is a method based on claim 5 in which the server enters the date and time of the upload in the uploaded edit record, and the PC uses this as the version of the duplicate DB.
  • a ninth aspect of the present invention is a method based on the fifth aspect, wherein the time when the PC accesses the server (from the server) is used as a version of the duplicate DB.
  • Parallel DB editing solves this problem, but several problems have been pointed out in the method based on the cache technology.
  • a local original DB synchronized with a virtual or real global original DB is created and used as a permanent cache. Then, the local original DB is synchronized with the global original DB when necessary, such as immediately before editing the local original DB.
  • problems such as the overhead of the conventional method of creating a copy for each editing and the determination of the cache validity are solved.
  • the object to be held and synchronized by the local original DB does not have to be the entire global original DB, but only a part of information necessary for the computer.
  • the local original DB of the patient computer holds only the medical information of the individual patient
  • the local original DB of the doctor computer holds only the medical information of the patient in charge. This solves the problem of the appropriate amount of cache, which was a problem with the conventional method.
  • Advantages of performing processing such as “determination of validity of editing record” and “update of local original DB” on the PC instead of the server are as follows. (1) If the necessary editing records and their order are taken in, communication with the server is unnecessary, and the response corresponding to the subsequent user operation is quickened. (2) Since the process of updating the local original DB is performed on this PC, the range of information (records) affected by specific editing can be investigated in detail. Further, more detailed information can be displayed according to the operator's request. (3) Generally, the computing power of individual computers is often surplus, and the processing is faster than placing processing on a server where processing load is concentrated. The response corresponding to the user's operation is accelerated due to the synergistic effect with the above (1).
  • editing is up. 0616 Confirmation (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.
  • 0617 Synchronization (by PC-B) 0618 Editing (by PC-B operator) 0619 Send edit (by PC-B).
  • editing is up. 0621 Confirmation (notification to PC-B) and synchronization (by PC-B).
  • 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.
  • 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.
  • the program is recorded in the secondary storage device 0106.
  • 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.
  • the computer is reconfigured into a collection of means for realizing the operation intended by the program developer.
  • 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.
  • 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 FIG. 2, the DB is simply displayed as the DB in the storage devices 0204 and 0205.
  • a PC 0201 receives the editing records, 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 0203 via a communication network 0202 such as the Internet.
  • a communication network 0202 such as the Internet.
  • 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.
  • the local original DB 0206 is not directly edited, and the editing result is the work DB 0209.
  • edit record 0208 is created.
  • an edit version that is, a version set in the local original DB is recorded.
  • 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 columns of the edit record 10218 and the edit record m0219.
  • An edit version and the like are recorded in the edit record. If an edit version is sent to the server separately from the edit record, the server records their correspondence.
  • the PC 0201 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.
  • the edit record n0210, edit record n + 12011, and edit record m0212 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.
  • FIG. 3 shows a process of uploading an edit record (that is, “edit record”) performed on the local original DB held by the PC to the server.
  • “Reserve editing record (memory area)” 0301 is executed.
  • “Obtain version of this version setting range and fill in edit record” 0304, “Identify invariant confirmation range corresponding to information to be edited and fill in edit record” 0305, “Identify information to be edited Information and editing contents are entered in the edit record "0306.
  • FIG. 4 shows a process of receiving from the server the editing record for the local original DB and the order designated for them.
  • FIG. 5 shows the processing steps of the updating means 0214 for updating the local original DB with the edit record received from the server.
  • the time is acquired from the server in the process of FIG. 4, and the time is acquired at the end of the process of FIG. Set as version.
  • the change in version in one embodiment is illustrated in FIG.
  • the DB in FIG. 6 is an RDB, and the version setting range is the entire DB, the version is an integer, and the invariant confirmation range is only the edited record.
  • the edit version at the time of editing this record is recorded as “record version” for each record, and the validity of the edit is confirmed using this.
  • PC-A 0602 and PC-B 0603 obtain the global initial original DB 0604 0610 and 0611, respectively, and set them as the local original DB 0605 and 0606, respectively. Since the global initial original DB 0604 of the server is copied, the base version of both is 0. Thereafter, Edit 1 to Edit 6 are uploaded to the server 0601. This is an edit uploaded by a PC other than PC-A0602 and PC-B0603. In FIG. 2, the PC-A 0602 accesses the server again, and edits the latest edition at that time and acquires the order 0612. At this time, since the edit 1 is taken in, the version of the local original DB 0605 becomes 1.
  • the PC-B 0603 obtains the edit 6 (latest as of this synchronization 0617) from the edit 0 from the server 0601 and updates the local original DB 0606 to 6 as the base version. Thereafter, it is assumed that the operator of the PC-B 0603 edits “Replica 0609 of record Z” 0618. At this time, the record version of “duplicate record Z 0609” becomes 6, and is uploaded to the server as an edit and is recorded as 0619 and edit 8.
  • the PC-A 0602 accesses the server 0601 and acquires editing 8 and editing 9 uploaded after editing 7 (already acquired) 0622.
  • edit 8 and edit 9 are sequentially applied to the local original DB 0608, “edit validity determination” is performed, and the local original DB 0608 is updated.
  • the base version of the manufactured DB 0608 becomes 9.
  • the contents of the copy 0609 of the record Z edited by the PC-B0603 become valid in the local original DB0605 of the PC-A0602, and the contents of the duplicate 0608 of the record Z edited by the PC-A0602 become invalid. It becomes clear (by PC-A0602).
  • a database is placed on a server and a plurality of computers access it in general.
  • the present invention proposes a full-fledged “parallel DB editing” in which a computer permanently holds a replicated DB, so that a mobile object that frequently occurs in a case where connection to a server is impossible, rescue in the event of a disaster, It can be used for so-called mission critical tasks such as medical care and finance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

従来はサーバーにデータベースが置かれ、複数の計算機がアクセスする運用が一般的であるが、本発明は計算機が永続的に複製DBを保持する、いわば本格的な「並行DB編集」を提案する。計算機相互に複製DBの編集情報を交換する事により、各計算機の複製DBが同期する。全ての関係するPCは、各PCにおけるローカルな編集の編集記録を、一意に特定される順番(サーバーへの到着順など)で取り出し、ローカル原本DBを更新する。同じ内容の編集情報を、同じ順番で、同じロジックで処理して、ローカル原本DBを更新するので、結果として得られる各PCのローカル原本DBも同期する。これは実時間でなく、編集記録の順番を共通の時間軸とした同期である。このため、頻繁に編集記録を取り込み更新する「ほぼオンライン運用」と、更新周期が長い「ほぼオフライン運用」が混在した運用が可能である。

Description

データベース並行編集方式
本発明はデータベース(以下「DB」)に対する並行編集(以下「並行DB編集」)を実現するものである。
DBの代表的な運用形態として以下が挙げられる。
「単独DBアクセス」
ひとつの計算機のみでDBを操作する運用。DBに対する編集が行えるのはこの計算機のみであるので、アクセスの競合防止は容易であるが、複数の計算機がDBにアクセスする運用には適さない。
「サーバーDBアクセス」
サーバー計算機(以下「サーバー」)がDBを管理し、端末計算機(以下「PC」)はサーバーにアクセスしサーバーの処理を通じてDBにアクセスする運用。DBに直接アクセスするのはひとつのPCのみであるので、アクセスの競合防止は容易で、ベシミステックロックカーソル(非特許文献1)やトランザクションのロック(非特許文献2)が用いられている。
筆者が指揮し開発したシステム「パワーアップ新聞販売」では閲覧のみに対して並行アクセスを許可している。しかし、編集前には「編集権」を取得する事とし、同時にはひとつのPCしか編集出来ない様にしている。これもロックである。
しかし、サーバーとの通信が不可能な状況ではデータへのアクセスは出来ないし、ロックの取得や返却も出来ない。移動体では通信不可能なケースが頻発するので、DB操作には大きな制限となる。災害時の救援、医療、金融などいわゆるミッションクリティカルな業務では通信不可能な状況下でも業務遂行が求められるが、これに応える事は出来ない。例え通信が確保出来ても、劣悪な通信環境では再送などによりサーバーの応答が極端に長くなり、実用とならない場合もある。
作業用の複製を作成して処理を行うキャシュの技術で、処理や通信の効率化を図る試みも行われている。マイクロソフトのADO.NETは、PCに当面の作業に必要なデータをサーバーからコピーし、サーバーとの接続を切断してから編集作業を行う。編集後に改めてサーバーと接続し編集内容をサーバーに送る。もし編集対象の情報が既に他の端末計算機から変更されていれば、後からの(この)編集を無効にする。。「ロックが結果として失敗した場合にはその編集を無効とする」と考えれば、編集ロックの一種とも言える。これは「オプティミスティック同時実行制御」(非特許文献3および非特許文献4)と呼ばれている。しかし、時として以下に示す不都合が生じる事がある。
(1)編集毎にコピーを作成するので、そのコピー処理と通信がオーバーヘッドとなる。(非特許文献1のp19)これを少なくするには、コピーの範囲を制限する必要があるが、これにはアプリケーションが対象とする情報の構造を熟知する必要がある。
(2)キャシュの情報がいつまで有効かの推定が困難である。コピー能率優先でキャシュ量を少なくするほど、次の編集では使えない可能性が高い。「オプティミスティック同時実行制御」では、一カ所でも変更されていれば無効となるので、キャシュ量を大きくするのも問題である。
(3)あるPCが過去に操作(入力、修正、削除)した情報が他のPCの操作により変更(削除、再修正、再入力)された事を検出するのは困難である。この問題は「サーバーDBアクセス」にも「キャシュ」にも共通する問題である。このPCによる編集の有効無効の判定結果は、アップ時に判明するが、それ以前に入力され一度は有効と判定された情報が変更されたのを迅速に把握するのは困難である。
その他の調査結果を以下に示す。非特許文献5は、ファイルのキャシュに関する発明で、編集の衝突(本願での競合)を検出した場合は単純に編集を拒否(非特許文献5の7頁の右下から10行目)し記録を作成する。特許文献1は、サーバーがDB編集の衝突を検出すると、正しく更新されたサーバーのDBを送り込む(「解決手段」および36段)。特許文献2では更新時刻が後の更新を有効とし、特許文献1では更新時刻が先の更新を有効としている。いずれも、上記の問題を解決するものでは無い。
特許文献3はデータベースの同期を起動する条件に関する発明であり、同期の方法については「更新情報を互いに通知し合って同期」と言う一般的な同期の概念を示しているにすぎない。
特許文献4は、編集の競合が起きた際に「全ての更新データを保持する」ことを目的とした発明である。競合が無いときにのみ原本を更新するのであり、本発明とは目的も内容も異なる。特許文献5、特許文献6、特許文献7、特特許文献8、特許文献9についても調査したが、いずれも本発明とは異なる。
特開平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日初版発行 「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
本格的な並行DBアクセスを明らかにし、キャシュを前提とした従来の並行DB編集の問題を解決する。
本発明を以下の例を用いて説明する。
(1)  準備
複数のPCに、原本DB(以下「グローバル原本DB」)の初期状態の複製DB(以下「ローカル原本DB」)を置く。このローカル原本DBには初期のバージョン、つまり更新の順番を識別する順序数、を設定する事が出来る。バージョンを用いて編集の有効性を判定が可能である。
(2)ローカル編集
各PCはそのローカル原本DBに対するローカルな編集を行う。この編集の前にローカル原本DBの作業用の複製を作成し、編集はこの複製に対して行う。また、編集時にはその編集内容を記録した「編集記録」を作成する。この編集記録には少なくとも「編集内容」が記録されるが、これに加え「編集バージョン」などを記録しても良い。
「編集内容」はどの情報をどの様に変更したか、どの情報を追加したか、どの情報を削除したか、などの一般的な編集内容である。「編集バージョン」は編集対象のローカル原本DBのバージョン、厳密に言えば、編集対象の作業DBの複製元となったローカル原本DBのバージョン、である。
(3)サーバーへの編集記録の送信
各PCは「編集記録」をサーバーに送信する。「編集記録」と「編集バージョン」を分けて記録している場合には、「編集記録」との対応を明示して「編集バージョン」も送信する。なお、「編集記録」の中に「編集バージョン」を記録する運用が、簡単で現実的と思われる。
(4)サーバーによる編集記録の受信
サーバーは、PCから到着した編集記録を、その到着の順番と共に記録しておく。
(5)サーバーからの編集記録の受信
PCはサーバーに対して、未受信の編集記録の送信を要求し、これらの編集記録、その(サーバーへの到着の)順番を受信する。編集記録に編集バージョンが指定されていれば、これも受信する。
(6)ローカル原本DBの更新
PCは指定された順番で編集記録を取り出し、その有効性を判定し、その内容に基づき、「ローカル原本DB」の更新を試みる。バージョンが設定されている場合はローカル原本DBのバージョンを更新する。
全てのPCの初期のローカル原本DBが同じで、各PCにおけるローカルな編集の編集記録を、サーバーへの到着順で取り出し、ローカル原本DBを更新する。同じ内容の編集情報を、同じ順番で、同じロジックで処理して、ローカル原本DBを更新するので、結果として得られる各PCのローカル原本DBも同じになる。サーバーでグローバル原本DBを更新しなくても各PCのローカル原本DBが同期するのはこの仕掛けによる。
ここで、各PCで作成した編集記録にユニークな順番を付けるのがポイントである。ここではサーバーにアップした順番を用いているが、この順番を変更する事も、他の方法で順番を付けても良い。サーバーにアップされた順番を独自の判断基準(例えば操作者の優先権など)で変更してもかまわない。全ての関係するPCで取り出しローカル原本DBを更新する順番が同じであれば良い。
編集記録の順番を付ける他の方法として、例えば、サーバーや特定のPCが編集記録の順番(または時間)を決定し(編集記録を作成または保持するPCに)通知し、編集記録を作成又は保持するPCはこの順番を編集記録に記入し、編集記録を互いに通知し合う方法でも良い。全ての関係するPCで取り出しローカル原本DBを更新する順番が同じであれば良い。
各PCはそれぞれの都合の良い時に複製DBの更新を行うので、実時間で見ると、各PCのローカル原本DBとの更新の進みは様々であるが、特定の編集記録で更新された後のローカル原本DBの状態は同じである。つまり、編集記録の順番を共通の時間軸とし各PCのローカル原本DBが同期する。
なお、「有効性の判定基準」と「ローカル原本DBの更新処理方法」は、関係する全てのPCで同一である必要がある。しかし、同じであればその処理に制限は無い。同じ基準で、編集記録毎にその全部又は一部が有効または無効と判定されて、同じにローカル原本DBを更新していれば、編集記録の順番を共通の時間軸とし各PCのローカル原本DBが同期する。
あるPCに注目した一連の動作例を説明する。このPCがサーバーから最新の編集記録を受信し、ローカル原本DBを更新したとする。そしてこのPCがこのローカル原本DBに対して編集を行い、その編集記録をアップする。なお、この編集の間に、別の計算機から編集記録がサーバーにアップされた可能性がある。
先の編集記録のアップの後で、それまでの(未受信の)編集記録をサーバーから受信し、編集記録を指定された順番で取り出し、ローカル原本DBの更新を試みる。この過程でいくつかの編集は有効と判定されローカル原本DBが更新される。
最後に先程アップした編集記録を取り出し、その不変確認範囲を調査し有効性の判定を行う。もし無効と判定されたなら、このPCの操作者は、無効となった事実とその理由を確認し、必要が有れば(最新の情報に対して)再度の編集を試みる。無効になった元の入力の記録があれば、その内容を再び入力するのは容易である。
PCの操作者にとって、「自分の入力した情報が有効となったか否か」「どの様な状況で無効となったか」を正確に知るこが必要である。並行DBアクセスにおいてオフライン編集した場合は、編集が有効であるか否かは即時ではなく、次の同期の時に判明するので、これらの情報は極めて重要である。情報が無効となった場合でも、全ての編集記録がPCに有り、その有効性の判定やローカル原本DBの更新の様子も全てこのPC内部で見ることが出来るので、再度入力する事も、入力を放棄するも、その状況から判断する事が出来る。
本発明の基本となる要点を箇条書きすると以下である。
(更新1)各PCは未受信の編集記録を順番に受信する。
(更新2)受信した編集記録を指定の順番で用いて、ローカル原本DBの更新を行う。
(編集1)各PCはローカル原本DBに対する更新を行い、この編集記録をサーバーにアップする。
(前提1)各PCの初期のローカル原本DBの内容は同じ。
(前提2)各PCでローカル原本DBの更新に用いる編集記録の内容が同じ。
(前提3)各PCでローカル原本DBの更新に用いる編集記録の順番が同じ。
(前提4)各PCでローカル原本DBの更新に用いるロジックが同じ。
以上の説明ではグローバル原本DBの更新については説明していない。実はグローバル原本DBはローカル原本DBの初期値としてのみ存在するとしても問題は無い。PCのプログラムで初期値のDBが作成出来るなら、サーバーが初期値を持つ必要も無い。各PCのローカル原本DBは互いに同期するので、仮想の(実在しない)グローバル原本DBと同期していると言うことが出来る。もちろん、以上の手順に加えて、実際にグローバル原本DBが有り、編集情報で更新しても良い。万が一、あるPCのローカル原本DBが破損した場合には、グローバル原本DBをコピーしても良いし、他のPCのローカル原本DBをコピーしても良い。初期のグローバル原本DBとそれまでの全ての編集記録から最新のローカル原本DBを再作成する事も可能である。
(ほぼオンライン運用)
本発明では、編集記録の有効性の判定基準やローカル原本DBの更新手順を特に規定するものではないが、一般に、古い情報に基づく編集を無効と判定するのは常識的と考えられる。従って、編集を行うPCが、その編集が無効と判定される可能性を出来るだけ少なくするには、編集の直前に最新の編集記録まで受信してローカル原本DBを更新し、この最新のローカル原本DBに対して編集を行い、編集後は速やかに編集記録をアップすると良い。頻繁に更新を行えば、ローカル原本DBは常に最新の状態に保たれるので、「ほぼオンライン運用」と言う事が出来る。
(ほぼオフライン運用)
しかし、編集の競合が稀な情報を扱う場合には、(更新1)および(更新2)によるローカル原本DBの更新から、(編集1)による編集のアップまでの時間を長くしても、編集が無効となる可能性は少ない。例えば、会社の組織ごとに支払伝票を入力するケースでは、レコードを修正するのは入力ミスや処理ミスを発見した場合であり、修正するとしてもレコードを入力した計算機で行う事が多い。この様なケースでは、更新から編集アップまでの期間を極端に長くした「ほぼオフライン運用」で問題は無い。たとえインターネット接続が出来ない状況でも支払伝票をゆっくり入力し、決算や検査の近くなってからまとめてアップすれば良い。
(改良-1)編集記録の内容の拡大
「編集内容」には、先に説明した一般的な編集内容や「編集バージョン」に加え、あとで詳しく説明する「バージョン設定範囲」や「不変確認範囲」を編集内容に含めることが出来る。DBの部分(複数可)にバージョンを設定する場合には、どの部分のバージョンを扱っているかを示す必要が有り、これを示すのが「バージョン設定範囲」である。
編集内容に、一般的な編集内容に加え、編集バージョン、バージョン設定範囲、不変確認範囲、を記録するとこれらの情報の扱いが単純になるが、必ずしも編集内容に記録する必要は無い。分けて記録してもこれらの対応が他の計算機で把握できれば良い。
(改良-2)不変確認範囲の導入
「不変確認範囲」は、この編集に影響を与える範囲であり、この範囲の情報の値が変更されることは、この編集が無意味になる事を示している。「不変確認範囲」はDBが扱う情報、特にその編集する対象の情報の特性に応じて様々な指定が可能であるが、編集対象の情報を「不変確認範囲」に入れるのは自然である。リレーショナルDB(以下「RDB」)の場合には、編集対象のテーブル、編集対象と論理的に関連しているテーブル群、そのなかの一部のレコード、またはDB全体などが想定される。
(改良-3)編集記録とその順番の操作
サーバーに記録する編集記録とその順番は、必ずしもPCがアップしたままの内容と順番である必要は無い。編集記録とその順番が全てのPCで同じであれば、これらの編集記録を適用したローカル原本DBは編集記録の順番を共通の時間軸として同期する。
サーバー又は、管理業務を担当するPCが編集記録の内容を分析し、エラーとなって無効とされる部分や、冗長な(結局は何もしないのと同じ)部分を削除しても良い。エラーの編集記録や冗長な編集記録を削除し、結果としてその編集記録が削除されても問題は無い。編集記録の順番を変更しても、全てのPCでの(ローカル原本DBの更新)処理に用いる順番が同じなら、編集記録の順番を共通の時間軸として各PCのローカル原本DBが同期する。
(改良-4)バージョン設定範囲の導入
バージョンを付与し編集を管理する単位は実際のDBである必要は無い。情報修正の影響が密接に関係している部分を特定して「バージョン設定範囲」とし、これ毎にバージョンを設定すれば、その範囲に関する編集とバージョンの推移を管理するのが容易になる。
バージョン設定範囲の設定はDBが扱う情報の構造や内容に依存するので、これらの知識無くして決定する事は出来ないが、RDBの場合にはレコード、テーブル、テーブルと論理的に関連しているテーブル群、そのなかの特定のレコード群、DB全体などが想定される。
DBをバージョン設定範囲と読み替える事により、本明細書で説明した手順をそのまま適用する事が出来る。なお、複数のバージョン設定範囲に対する編集の記録が、ひとつの編集記録の中に一緒に記載されていても問題は無い。バージョン設定範囲毎に「編集内容」「編集バージョン」「不変確認範囲」などが記載されていれば良い。
医療の個人情報を例に説明する。医療情報のDBで、個人の医療記録の固まりをバージョン設定範囲の設定として設定する。テーブルの1行又は数行が個人の情報なら、これに対してバージョンを設定する。DBには、多数の個人情報があり、それぞれにバージョンを設定する。編集記録には、個人に対応する「編集内容」「編集バージョン」「不変確認範囲」のセットが単数または複数存在する。「不変確認範囲」はこの個人記録全体でも、修正した情報(RDBならレコード)に限定しても、修正内容に応じて適切に設定すれば良い。個人情報毎にテーブルを構成していれば、テーブル毎にバージョンが設定される。
医療情報だけでなく、社会保証や銀行口座やローンなどの情報を個人毎に管理する事にも利用出来る。複数の部署で編集すると思われる犯罪者情報の管理にも使える。さらには、住民みずから一部のデータの編集が可能な「発展した形態の住民基本台帳の管理」など、個人対応の情報を扱う場合にも便利である。「(改良-8)ローカル原本DBの守備範囲の限定」で説明する様に、PC毎にその権限で読み込める範囲の個人情報についてのローカル原本DBを作成する事として、権限の範囲内の情報のみがこのPCに送られるなら、権限外の情報がハッキングされる恐れも無い。
なお、特定のPC(の操作者)にとってはサーバーに集められた編集記録の多くは必要無い場合は、ローカル原本DBがグローバル原本DBの一部のみと同期していれば十分である。これに対応するには、PCで全ての編集記録を受信した後で、不要な編集記録をスキップするのがひとつの方法である。サーバー側でPC毎に必要な編集記録を抜いて送ると通信量が少なくなる。不必要な編集記録が混ざっていてもPC側の処理で除外すれば問題は無い。編集情報に記録されたバージョン設定範囲を元にして、サーバーの管理する編集記録を分類しておくとPCに送るべき編集記録を迅速に判定する事が出来る。
(改良-5)バージョン付与のタイミング
DB原本(グローバル原本DB又はローカル原本DB)の全体又はやバージョン設定範囲に対してバージョンが付与されるが、その付与方法は、扱う情報の特性や運用の都合に応じて選択する事が出来る。
実際にローカル原本DBの内容が更新された場合にバージョンを更新しても良いし、有効な更新の有無に関係なく、変更記録で原本DBの変更を試みる毎にバージョンを更新しても良い。
(改良-6)編集のサーバー受け付け時刻をバージョンとする発展
サーバーが編集を受け付けた時刻をバージョンとして利用しても良い。本明細書で説明したバージョンはこの受け付け時刻と読み替える事になる。先に、バージョンは一連の順番を識別するための順序数と説明したが、時刻も順序を表すので何ら問題は無い。
(改良-7)サーバーへの同期アクセス時刻をバージョンとする発展
PCが、サーバーにアクセスし、未受信の編集記録の有無を確認した時刻を(サーバーなどから)取得し、その時刻をバージョンとする方法も可能である。この確認毎に、未受信の編集記録が無くてもローカル原本DBの新たなこの時刻をバージョンとして設定する。未受信の編集記録が有れば、これらを受信しこれらを用いてローカル原本DBを更新し、そしてこの時刻をローカル原本DBのバージョンとして設定する。より同期アクセスがより新しいローカル原本DBに対する編集が優先されるので、一つのDBを競争で操作する関係者にとって理解しやすくまた納得出来るルールである。
(改良-8)ローカル原本DBの守備範囲の限定
ローカル原本DBが、(仮想の又は実在する)グローバル原本DBの全体と同期すると仮定すると、説明は簡単である。しかし、ローカル原本DBが扱う範囲はグローバル原本DB一部分とした方が、実用的である。医療情報に限らず、一般にDB全体は巨大であるが、前記「(改良-4)バージョン設定範囲の導入」で説明した様に、個々の個人情報毎の集合体である。患者自身の計算機のローカル原本DBはこの患者の情報のみが有れば良いし、医師の計算機のローカル原本DBは受け持ちの患者の情報のみがあれば良い。つまり、ローカル原本DBは、グローバル原本DB全体と同期している必要は無く、その必要な一部分と同期していれば十分である。これにより、ローカル原本DBのサイズは小さくなり、その同期(内容を最新に保つ)操作は軽快になる。
(改良-9)編集記録の順番付与のバリエーション
順番を管理するサーバー(又はPC)を置く。編集記録を作成したPCはこのサーバーに順番を問い合わせ、指定された順番を編集記録に書き込む。編集記録自体はPCの間で直接送信したとしても、ここに書かれている順番はユニーク(一意)である。順番の替わりに時間を編集記録に記入して、順番として用いても良い。なお、PC毎の時間のずれが生じる事を考え、特定のPCが時間を管理するなどの工夫が必要である。
(改良-10)編集の一時的な禁止
DBのデータ構造自体を変更するなど、他の計算機と並行して編集を行う事が出来ない場合には、他の編集を一時的に禁止すると都合が良い。以下では説明のため、ある編集(X)について、この編集との並行編集を禁止する状況を想定する。つまりXの編集開始からXの編集が完了してサーバーにアップされるまでの期間を、他のPCの「編集禁止期間」とする。Xのサーバーへのアップの後で、この編集記録(X)記録を取り込んだ後のローカル原本DBに対する並行DB編集から禁止が解除される。
ひとつの方法は、サーバーがこの禁止区間にアップされた編集を無効とする方法である。Xの編集を生かし、かつ矛盾を起こさない確実な方法である。しかし、この無効とされた編集を作成した側の労力は無駄になる。
禁止区間であることを伝えるのが、もうひとつの方法である。編集Xを行うPCから他のPCに直接伝えても良いし、編集Xを行うPCから、サーバーに伝えて、サーバーから各PCに伝えても良い。
編集Xを行うPCは、編集Xを行う前に最新の編集記録をサーバーに要求する時点で、他のPCの編集禁止をサーバーに伝えておく。最新の編集記録をサーバーに要求したPCに対し、サーバーから編集禁止を通知しても、未受信の編集記録の問い合わせなどに対する応答と一緒に通知しても良い。
「サーバーから編集禁止が通知された場合」には、このPCはローカル原本DBの更新を行っても、編集は行わない。そして、改めて、最新の編集記録をサーバーに要求し、それに対して編集記録Xまでが送られ、これと同時に編集禁止解除が通知される。このPCは編集記録Xでローカル原本DBを更新した後、これに対する編集を開始する。
<出願時の請求項との対応>
本明細書の並行編集とは、(実在の又は仮想の)グローバル原本DB(直感的にはDB原本)の情報の全部または一部の複製を、PCの内部にローカル原本DB(直感的には「複製DB」)として保持し、これに対して編集を行う事である。各PCが保持する複製DBに対する編集情報を、PCが相互に交換してそれぞれの複製DBを更新する。なぜ各PCの複製DBが同期するかと言うと、各PCが同じ編集情報を同じ順番で用いてそれぞれの複製DBを更新するからである。これを表現したのが請求項1である。請求項2は請求項1を装置で表現したものである。
請求項1の工程Dに編集記録の有効性を確認する手順を加えたのが請求項3である。請求項4は編集に影響を与える「不変確認範囲」の概念を請求項3追加し、これを用いて、編集記録の有効性確認を行う事を示したものである。請求項5は複製DBのバージョンの概念を請求項3追加し、これを用いて、編集記録の有効性確認を行う事を示したものである。請求項6はバージョンが複製DBの一部の情報又は情報の組み合わせに指定されている場合のものである。
請求項7は請求項5をベースに、有効性が否定されても複製DBのバージョンの更新を行う事を追加したものである。請求項8は請求項5をベースに、アップされた編集記録にサーバーがアップ日時を記入するし、PCはこれを複製DBのバージョンとする方法である。請求項9は請求項5をベースに、PCがサーバーにアクセスした時間を(サーバーから貰い)複製DBのバージョンとする方法である。
サーバーDBアクセスでは、サーバーとの通信が不可能な状況ではデータへのアクセスは出来ないも問題があった。移動体では通信不可能なケースが頻発しDB操作に大きな制限となる。災害時の救援、医療、金融などいわゆるミッションクリティカルな業務では通信不可能な状況下でも業務遂行が求められるが、これに応える事は出来ない。
この問題を解決するのが並行DB編集であるが、キャシュの技術をベースにした方法にはいくつかの問題が指摘されていた。
本願では、仮想の又は実在のグローバル原本DB、と同期したローカル原本DBを作成し、永続的なキャシュとして用いる。そして、ローカル原本DBに対する編集を行う直前など、必要な時にローカル原本DBをグローバル原本DBと同期する。これにより、編集毎にコピーを作成する従来の方法のオーバーヘッドやキャシュ有効性の判定などの問題が解決される。
また、あるPCが過去に操作した情報が他のPCの操作により変更された事を検出するのは、従来の方法では困難であったが、この本格的な「並行DBアクセス編集」で容易に検出する事が可能になった。情報の編集状況を操作者が精査した上で、適切な対応を取ることが出来る。無効になったデータを再入力する事も、一部修正して再入力することも、最新のデータを修正する事も、無効とされたことを受け入れることも可能である。
さらに、ローカル原本DBが保持し同期する対象はグローバル原本DBの全体である必要は無く、その計算機に必要な一部の情報のみで良い。例えば、医療情報なら患者の計算機のローカル原本DBはこの患者個人の医療情報のみを保持し、医者の計算機のローカル原本DBには担当患者の医療情報のみを保持する。これにより、従来の方法で問題であったキャシュの適正量の問題も解決される。
「編集記録の有効性の判定」と「ローカル原本DBの更新」などの処理をサーバーで無くPCで行う事の長所として、以下が挙げられる。
(1)必要な編集記録とその順番を取り込んでしまえば、サーバーとの通信が不要なので、その後の利用者の操作に対応するレスポンスが早くなる。
(2)ローカル原本DBを更新する処理がこのPCで行われるので、特定の編集から影響を受ける情報(レコード)の範囲をきめ細かく調査する事ができる。また、操作者の要求に応じてより詳しい情報を表示する事が出来る。
(3)一般に、個々の計算機の計算能力は余っている事が多く、処理負荷が集中するサーバーに処理を置くよりも処理が高速になる。上記(1)との相乗効果で利用者の操作に対応するレスポンスが早くなる。
また、ローカル原本DBの更新の間隔を調整する事により、「ほぼオンライン運用」から「ほぼオンライン運用」まで、自由に選択出来る。編集アクセスの多い情報を扱う場合は頻繁にローカル原本DBの更新を行う「ほぼオンライン運用」を行えば良いし、支払伝票の入力の様に、修正が無いか修正があってもデータを入力した計算機で行う事が多い場合には、ローカル原本DBの更新の間隔を極端に延ばした「ほぼオフライン運用」で問題は無い。決算や検査が近くなってから編集をアップしても問題は無い。
複数のPCがそれぞれの事情に応じて「ほぼオンライン運用」か「ほぼオンライン運用」が選択でき、両者が混在して運用出来るのも都合が良い。
一般的な計算機の構成 PCとサーバーの関係 ローカル原本DBに対して行った編集の記録をサーバーにアップする工程 編集記録をサーバーから受信する工程 編集記録でローカル原本DBを更新する工程 単純化した実施例
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      ローカル原本DB内の編集対象情報を特定
0303      この情報が属するバージョン設定範囲を特定し編集記録に記入
0304      このバージョン設定範囲のバージョンを取得し編集記録に記入
0305      編集対象の情報に対応する不変確認範囲を特定し編集記録に記入
0306      編集対象の情報を特定する情報、編集の中身を編集記録に記入
0307      ローカル原本DBに上記編集を適用した作業DBを作成
0308      サーバーに編集記録を送る
0401      サーバーに前回の最終編集記録を通知
0402      サーバーから前回より後の編集記録のリストを受信
0403      編集記録を受信
0404      受信した編集記録を未処理編集記録リストにいれる
0405      編集禁止中を問い合わせる
0501      未処理の編集記録リストから編集記録を取り出し
0502      この編集記録の不変確認範囲と編集バージョンにより、現在のローカル原本DBに対して有効かを判定
0503      ローカル原本DBを更新
0504      ローカル原本DBのバージョンを更新
0602    PC-A
0603    PC-B
0604    初期DB
0605    (PC-Aの)ローカル原本DB更新
0606    (PC-Bの)ローカル原本DB更新
0608    (PC-Aの)レコードZの複製
0609    (PC-Bの)レコードZの複製
0610    (PC-Aによる)グローバル初期原本DBの取得
0611    (PC-Bによる)グローバル初期原本DBの取得
0612    (PC-Aによる)同期
0613    (PC-Aの操作者による)編集
0614    (PC-Aによる)編集の送信。つまり編集のアップ。
0616    (PC-Aへの)確認(通知)と(PC-Aによる)同期。なお、同期とは新たな編集とその順番の取得であり、他の記号の説明においても同じである。
0617    (PC-Bによる)同期
0618    (PC-Bの操作者による)編集
0619    (PC-Bによる)編集の送信。つまり編集のアップ。
0621    (PC-Bへの)確認(通知)と(PC-Bによる)同期。
0622    (PC-Bによる)同期
0623    (PC-Bの編集に基づくPC-AのレコードZの複製の)修正
本発明の方法は計算機のプログラムとして実現出来る。図1に典型的な計算機0101の構成を示す。演算装置0103、主記憶装置0104、二次記憶装置0106、入出力装置0107、表示装置0108がバス0109で接続されている。他の計算機とデータを交換する場合は通信装置0102を介して通信網0101に接続する。各請求項で言及している「データベース」が、二次記憶装置0106内のDB0111又は主記憶操作0104の内部のDB0105である。
プログラムは二次記憶装置0106に記録され、起動されると主記憶操作0104に展開され、プログラムに指定された手順で演算装置0103が動作する。この結果として計算機は、プログラム開発者が意図した動作を実現する手段の集合体に再構成される。
プログラムによるDBの操作は、DBの全体または一部を主記憶操作0104に展開してから行うのが一般的である。二次記憶装置0106内のDB0111の全部又は一部を主記憶操作0104に展開したDB0105を操作し、その編集結果を二次記憶装置0106内のDB0111に書き込む。しかし通常は、DBは二次記憶装置0106内に有るとし、主記憶操作0104に展開したDB0105と区別せず議論するので、図2では単に、記憶装置0204, 0205の中のDBとして表示する。
サーバー0203に編集記録0218, 0219を置き、PC0201がこの編集記録を受信し、PCのローカル原本DB0206を更新するケースを図2で説明する。PC0201がインターネットなどの通信網0202を介して、サーバー0203と接続している。一般にPCは複数存在するが、図2では1台のみを示している。
PC0201には記憶装置0204が有り、ローカル原本DB0206が記録されている。ローカル原本DB0206の初期値は、サーバー0203の記憶装置0205のグローバル初期原本DB0207をコピーしたものである。操作者の指示を受けて編集手段0213が編集を行うが、この時にはローカル原本DB0206を直接編集する事はせず、編集結果を作業DB0209とする。同時に編集記録0208を作成する。この編集記録には、編集バージョンつまり、ローカル原本DBに設定されているバージョンが記録される。
編集記録0208は送信手段0215により通信網0202を介してサーバー0203に送られる。サーバー0203は受信手段0221により受信し、編集記録10218, 編集記録m0219の列に加えられる。編集記録には編集バージョンなどが記録されている。もし、編集記録とは別に編集バージョンがサーバーに送られてきた場合には、サーバーは両者の対応を記録する。
PC0201がローカル原本DB0206の更新試みる場合は、まずサーバーに未受信の編集記録の送信を要求する。PC0201がそれまでに受信した編集記録の最後のバージョンを通知すると、送受信管理手段がそれ以降の編集記録を選別し、送信手段0220によりサーバーから送る。PCの送信の受信の協調作業は送受信管理手段0217により行われ、サーバーの送信の受信の協調作業は送受信管理手段0222により行われる。
PC0201が受信手段0216により受信した編集記録n0210, 編集記録n+12011, 編集記録m0212は記憶装置0204に記録される。更新手段0214がこれらを順番に取り出して、有効性を判定してローカル原本DB0206を更新し、そのバージョンを更新する。
図3に、PCが保持するローカル原本DBに対して行った編集の記録(つまり「編集記録」)をサーバーにアップする工程を示す。まず「編集記録(のメモリエリア)を確保」0301する。「ローカル原本DB内の編集対象情報を特定」0302し、「この情報が属するバージョン設定範囲を特定し編集記録に記入する」0303。さらに、「このバージョン設定範囲のバージョンを取得し編集記録に記入」0304し、「編集対象の情報に対応する不変確認範囲を特定し編集記録に記入」0305し、「編集対象の情報を特定する情報、編集の中身を編集記録に記入する」0306。そして「ローカル原本DBに、上記編集を適用した作業DBを作成」0307し、「サーバーに編集記録を送る」0308。
図4に、ローカル原本DBに対する編集記録と、これらに指定された順序を、サーバーから受信する工程を示す。まず「サーバーに前回の最終編集記録を通知」0401し、「サーバーから前回より後の編集記録のリストを受信」0402する。このリストに従って、「編集記録を受信」0403し、「受信した編集記録を未処理編集記録リストにいれる」0404。最後に「編集禁止中を問い合わせる」0405。編集禁止中でも、図5のサーバーから受信した編集記録でローカル原本DBを更新する手段0214は起動するが、編集手段0213(および図3の手順)によるローカル原本DB0206に対する編集とサーバーへの編集記録の送信は行わない。
図5に、サーバーから受信した編集記録でローカル原本DBを更新する更新手段0214の処理工程を示す。「未処理の編集記録リスト(編集記録n0210, 編集記録n+12011, 編集記録m0212のリスト)から編集記録を取り出し」0501、「この編集記録の不変確認範囲と編集バージョンにより、現在のローカル原本DBに対して有効かを判定」0502し、有効ならば「ローカル原本DBを更新」0503し、「ローカル原本DBのバージョンを更新」0504する。これを未処理の編集記録リストの全ての編集記録に対して行う。
編集記録に、サーバーがこの編集記録を受け付けた時間がその編集バージョンとして記録されていれば、これを更新されたローカル原本DBのバージョンとする。サーバーに未受信の編集記録の有無を問い合わせた日時をバージョンとする場合は、図4の工程でサーバーから時間を取得し、図5の工程の最後(終了の直前)でその時間をローカル原本DBのバージョンとして設定する。
ある実施例におけるバージョンの変化を図6で説明する。図6のDBはRDBで、バージョン設定範囲をDB全体、バージョンは整数、不変確認範囲は編集したレコードのみとしている。また、レコード毎にこのレコードを編集した時点の編集バージョンを「レコードバージョン」として記録し、これを用いて編集の有効性を確認している。
PC-A0602とPC-B0603はそれぞれグローバル初期原本DB0604を取得0610, 0611し、それぞれのローカル原本DB0605, 0606としている。サーバーのグローバル初期原本DB0604をコピーしているので、どちらもベースバージョンは0である。その後、サーバー0601に編集1から編集6がアップされているが、これはPC-A0602、PC-B0603以外のPC-がアップした編集である。図2では、PC-A0602はもう一度サーバーにアクセスしその時の最新の編集しその順番を取得している0612。このとき、編集1を取り込むので、ローカル原本DB0605のバージョンは1になる。
さて、PC-A0602の操作者が、ローカル原本DB0605内のレコードZの複製0608を編集したとする0613。この時、ローカル原本DB0605のベースバージョンが1なので、編集された「レコードZの複製0608」のレコードバージョンが1にセットされる。この編集結果がサーバーにアップされ0614、編集7として記録される。この直後に、PC-A0602は、(既に取得してある)編集1より後にアップされた、編集2から編集6を取得し、さらにPC-A0602先のアップ0614が編集7となった事を確認する。あらかじめ指定された「編集の有効性の判定」に基づき編集7までを順番に調査し、ローカル原本DB0605を更新する。ここでは、編集7が有効と判定されたとし、ローカル原本DB0605のベースバージョンが7になる。
一方、PC-B0603はサーバー0601から、編集1から(この同期0617時点での最新の)編集6を取得し0617、ローカル原本DB0606を更新してベースバージョンを6とする。その後PC-B0603の操作者が、「レコードZの複製0609」を編集した0618とする。この時、「レコードZの複製0609」のレコードバージョンが6になり、編集としてサーバーにアップされ0619、編集8として記録される。
その後別のPCから編集9がアップされた後、PC-A0602がサーバー0601にアクセスし、(既に取得してある)編集7より後にアップされた編集8と編集9を取得する0622。そしてローカル原本DB0608に編集8と編集9を順番に適用し、「編集の有効性の判定」を行い、ローカル原本DB0608を更新する。ここでローカル原本DB0608に編集9が反映されるので、製DB0608のベースバージョンが9になる。この時点で、先にPC-B0603が編集したレコードZの複製0609の内容がPC-A0602のローカル原本DB0605で有効になり、先にPC-A0602が編集したレコードZの複製0608内容が無効になった事が(PC-A0602で)判明する。
サーバーにデータベースが置かれ、複数の計算機がアクセスする運用が一般的に行われているが、サーバーにアクセス出来ないと編集が出来ないなどの問題もある。本発明は計算機が永続的に複製DBを保持する、いわば本格的な「並行DB編集」を提案しており、サーバーとの接続が不可能なケースが頻発する移動体や、災害時の救援、医療、金融などいわゆるミッションクリティカルな業務に用いる事が出来る。

Claims (9)

  1. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B)該複製に対して行った編集の編集記録を他の装置に送信する工程と、
    (C)該複製に対する編集記録を他の装置から受信する工程と、
    (D)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録を用いてデータベースの該複製を更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  2. データベースの編集装置であって、
    (A)データベースの全部または一部分の複製を保持する手段と、
    (B)該複製に対して行った編集の編集記録を他の装置に送信する手段と、
    (C)該複製に対する編集記録を他の装置から受信する手段と、
    (D)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録を用いてデータベースの該複製を更新する、一連の手順を実行する手段、
    を有する事を特徴とする方法。
  3. データベースの編集方法であって、
    データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B)該複製に対して行った編集の編集記録を他の装置に送信する工程と、
    (C)該複製に対する編集記録を他の装置から受信する工程と、
    (D1)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  4. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B1)該複製に対して行った編集の編集記録に、この編集に影響を与える情報の範囲を示した「不変確認範囲」を対応させ、該編集記録を他の装置に送信する工程と、
    (C1)該複製に対する編集記録と、該編集記録に対応する不変確認範囲を、他の装置から受信する工程と、
    (D2)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応した「不変確認範囲」を用いて該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  5. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B2)該複製に対して行った編集の編集記録に、該複製に指定されたバージョンを対応させ、該編集記録を他の装置に送信する工程と、
    (C2)該複製に対する編集記録と、該記録に対応するバージョンを、他の装置から受信する工程と、
    (D3)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応したバージョンを用いて該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新しバージョンを更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  6. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B3)該複製に対して行った編集の編集記録に、該複製の一部の情報又は情報の組み合わせに指定されているバージョンを対応させ、該編集記録を他の装置に送信する工程と、
    (C2)該複製に対する編集記録と、該記録に対応するバージョンを、他の装置から受信する工程と、
    (D3)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応したバージョンを用いて該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新しバージョンを更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  7. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B2)該複製に対して行った編集の編集記録に、該複製に指定されたバージョンを対応させ、該編集記録を他の装置に送信する工程と、
    (C2)該複製に対する編集記録と、該記録に対応するバージョンを、他の装置から受信する工程と、
    (D4)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応したバージョンを用いて該編集記録の有効性の判定を行い、データベースの該複製のバージョンを更新し、有効と判定された該編集記録を用いてデータベースの該複製を更新する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  8. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B2)該複製に対して行った編集の編集記録に、該複製に指定されたバージョンを対応させ、該編集記録を他の装置に送信する工程と、
    (C3)該複製に対する編集記録と、該記録に対応する日時を、他の装置から受信する工程と、
    (D5)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応したバージョンを用いて該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新新し、該編集記録に指定された日時を該複製のバージョンとして設定する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
  9. データベースの編集方法であって、
    (A)データベースの全部または一部分の複製を保持し、
    (B2)該複製に対して行った編集の編集記録に、該複製に指定されたバージョンを対応させ、該編集記録を他の装置に送信する工程と、
    (C4)該複製に対する編集記録と、該記録に対応するバージョンを、他の装置から受信し、さらに日時を受信する、一連の工程と、
    (D3)編集記録に指定されている順番、又は外部から指定された順番で、編集記録を取り出し、該編集記録に対応したバージョンを用いて該編集記録の有効性の判定を行い、有効と判定された該編集記録を用いてデータベースの該複製を更新し、工程C4で受信した該日時を該複製のバージョンとして設定する、一連の手順を実行する工程、
    を有する事を特徴とする方法。
PCT/JP2009/002491 2007-06-06 2009-06-03 データベース並行編集方式 WO2009147847A1 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP2010515775A JP4855537B2 (ja) 2008-06-04 2009-06-03 データベース並行編集方式
US12/864,872 US20110082833A1 (en) 2007-06-06 2009-06-03 Database parallel editing method
CN200980128878.0A CN102216910B (zh) 2007-06-06 2009-06-03 并行编辑数据库的方法
US12/688,854 US8171003B2 (en) 2007-06-06 2010-01-15 Method and apparatus for changing reference of database
US13/024,330 US20110137862A1 (en) 2008-06-12 2011-02-10 Method and apparatus for parallel edit to editable objects
US13/251,295 US20120023100A1 (en) 2007-06-06 2011-10-03 Method and apparatus for changing references between objects
US13/714,422 US20130110777A1 (en) 2007-06-06 2012-12-14 Synchronization of data edited in parallel
US13/726,549 US20130179652A1 (en) 2007-06-06 2012-12-25 Support for synchronization of data edited in parallel
US13/802,740 US20130204842A1 (en) 2007-06-06 2013-03-14 Method and system for synchronization of data edited in parallel
US15/449,961 US20170177647A1 (en) 2008-06-04 2017-03-05 Parallel database editing

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
PCT/JP2008/001424 WO2008149552A1 (ja) 2007-06-06 2008-06-04 データベース矛盾解消方式
JPPCT/JP2008/001424 2008-06-04
JPPCT/JP2008/001506 2008-06-12
PCT/JP2008/001506 WO2009147701A1 (ja) 2008-01-08 2008-06-12 データベースへの平行アクセスプログラム

Related Child Applications (8)

Application Number Title Priority Date Filing Date
PCT/JP2008/001424 Continuation-In-Part WO2008149552A1 (ja) 2007-06-06 2008-06-04 データベース矛盾解消方式
US12/864,872 A-371-Of-International US20110082833A1 (en) 2007-06-06 2009-06-03 Database parallel editing method
US12601005 A-371-Of-International 2009-06-03
US12/688,854 Continuation-In-Part US8171003B2 (en) 2007-06-06 2010-01-15 Method and apparatus for changing reference of database
US60100510A Continuation-In-Part 2007-06-06 2010-04-13
US13/024,330 Continuation-In-Part US20110137862A1 (en) 2007-06-06 2011-02-10 Method and apparatus for parallel edit to editable objects
US13/251,295 Continuation-In-Part US20120023100A1 (en) 2007-06-06 2011-10-03 Method and apparatus for changing references between objects
US13/714,422 Continuation-In-Part US20130110777A1 (en) 2007-06-06 2012-12-14 Synchronization of data edited in parallel

Publications (1)

Publication Number Publication Date
WO2009147847A1 true WO2009147847A1 (ja) 2009-12-10

Family

ID=41397796

Family Applications (5)

Application Number Title Priority Date Filing Date
PCT/JP2008/001719 WO2009147704A1 (ja) 2007-06-06 2008-07-01 テーブルとテーブル項目の平行編集プログラム
PCT/JP2008/001900 WO2009147705A1 (ja) 2008-06-04 2008-07-15 データベース接続プログラムおよび装置
PCT/JP2009/002491 WO2009147847A1 (ja) 2007-06-06 2009-06-03 データベース並行編集方式
PCT/JP2009/002501 WO2009147851A1 (ja) 2007-06-06 2009-06-03 データベースのデータ項目の平行編集方式
PCT/JP2009/002490 WO2009147846A1 (ja) 2007-06-06 2009-06-03 データベース並行編集の競合解消方式

Family Applications Before (2)

Application Number Title Priority Date Filing Date
PCT/JP2008/001719 WO2009147704A1 (ja) 2007-06-06 2008-07-01 テーブルとテーブル項目の平行編集プログラム
PCT/JP2008/001900 WO2009147705A1 (ja) 2008-06-04 2008-07-15 データベース接続プログラムおよび装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
PCT/JP2009/002501 WO2009147851A1 (ja) 2007-06-06 2009-06-03 データベースのデータ項目の平行編集方式
PCT/JP2009/002490 WO2009147846A1 (ja) 2007-06-06 2009-06-03 データベース並行編集の競合解消方式

Country Status (2)

Country Link
JP (1) JPWO2009147705A1 (ja)
WO (5) WO2009147704A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012079045A (ja) * 2010-09-30 2012-04-19 Yahoo Japan Corp ストレージサーバ、ファイル同期システム、ファイル衝突処理方法及びプログラム
US8171003B2 (en) 2007-06-06 2012-05-01 Kunio Kamimura Method and apparatus for changing reference of database

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946691B2 (en) * 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
WO2015009688A1 (en) 2013-07-17 2015-01-22 The Johns Hopkins University Microfluidic chip for analysis of cell motility and methods for using same
CN106156094B (zh) 2015-04-01 2019-09-17 阿里巴巴集团控股有限公司 一种数据库的远程数据同步方法和装置
CN111523291B (zh) * 2020-04-21 2023-04-18 四川川大智胜软件股份有限公司 一种低空雷达多席位空域数据编辑方法
JP7475086B1 (ja) 2023-02-03 2024-04-26 株式会社ミヤワキ 編集方法、編集装置及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233405A (ja) * 1992-02-18 1993-09-10 Hitachi Ltd データベース変更監視方式
JPH07191898A (ja) * 1993-12-27 1995-07-28 Fujitsu Ltd データベース排他制御装置
CA2152528C (en) * 1994-07-29 2000-04-18 Chung-Hwa Herman Rao Distributed systems with replicated files
JP3534596B2 (ja) * 1997-12-05 2004-06-07 富士通株式会社 インテリジェントネットワーク内のデータベースの同期方法と装置
JP4187302B2 (ja) * 1998-03-25 2008-11-26 富士通株式会社 リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体
JP2000020370A (ja) * 1998-06-29 2000-01-21 Sharp Corp データ同期処理装置
JP2000194592A (ja) * 1998-12-25 2000-07-14 Nippon Telegr & Teleph Corp <Ntt> デ―タベ―スシステム、デ―タベ―スアクセスシステム、およびデ―タベ―スアクセスプログラムを記録した記録媒体
JP2000222268A (ja) * 1999-01-29 2000-08-11 Hitachi Ltd 複数のコンピュータ間におけるファイルの同期方法
JP2000284998A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6938070B2 (en) * 2001-12-17 2005-08-30 Dassault Systemes Conflict resolution for collaborative work system
JP4279499B2 (ja) * 2002-03-01 2009-06-17 シャープ株式会社 情報処理装置
JP2007179105A (ja) * 2005-12-26 2007-07-12 World Planning:Kk 共有データベースの制御システム及び共有データベースの制御方法並びにコンピュータプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Microsoft Access 97 for Windows Ver.8.0", MICROSOFT CORP., 25 March 1998 (1998-03-25), pages 569 - 599 *
ANDREW S. TANENBAUM, DISTRIBUTED SYSTEMS, 20 October 2003 (2003-10-20), pages 698 - 701 *
MARK DODGE, MICROSOFT OFFICE EXCEL 2003 OFFICIAL MANUAL, 12 July 2004 (2004-07-12), pages 535 - 548 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171003B2 (en) 2007-06-06 2012-05-01 Kunio Kamimura Method and apparatus for changing reference of database
JP2012079045A (ja) * 2010-09-30 2012-04-19 Yahoo Japan Corp ストレージサーバ、ファイル同期システム、ファイル衝突処理方法及びプログラム

Also Published As

Publication number Publication date
WO2009147846A1 (ja) 2009-12-10
WO2009147704A1 (ja) 2009-12-10
WO2009147851A1 (ja) 2009-12-10
JPWO2009147705A1 (ja) 2011-10-20
WO2009147705A1 (ja) 2009-12-10

Similar Documents

Publication Publication Date Title
KR102579190B1 (ko) 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원
CN108932282B (zh) 一种数据库迁移方法、装置和存储介质
US20110082833A1 (en) Database parallel editing method
US8392386B2 (en) Tracking file contents
CN1746893B (zh) 事务文件系统
CA2626227C (en) Apparatus and method for creating a real time database replica
WO2009147847A1 (ja) データベース並行編集方式
CN108021338B (zh) 用于实现两层提交协议的系统和方法
US20130332566A1 (en) Providing local access to managed content
EP2800013B1 (en) Integration database framework
JP2008527571A5 (ja)
JP2010092464A (ja) 階層ストレージ管理(hsm)制御ストレージ環境で双方向オーファン照合を行う方法、システムおよぶコンピュータ・プログラム
US7194486B2 (en) Method and system for data processing with data replication for the same
CN105989049A (zh) 一种数据中间层实现方法及系统
JP4855537B2 (ja) データベース並行編集方式
WO2015145587A1 (ja) データベースシステム、情報処理装置、方法およびプログラム
JP4923140B2 (ja) データベース並行編集方式
JP5543918B2 (ja) データベース並行編集の競合解消方式
JP5543899B2 (ja) データベースのデータ項目の平行編集方式
US20170177647A1 (en) Parallel database editing
JP5543901B2 (ja) データベース並行編集方式
US9424261B2 (en) Techniques to take clean database file snapshot in an online database
US11392557B1 (en) Efficient data backup in a distributed storage system
JP4855538B2 (ja) データベースのデータ項目の平行編集方式
WO2004031957A1 (ja) データベース複製方法、データベース複製装置、データベース創成方法およびデータベース創成装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980128878.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09758114

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010515775

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09758114

Country of ref document: EP

Kind code of ref document: A1