WO2009147846A1 - データベース並行編集の競合解消方式 - Google Patents
データベース並行編集の競合解消方式 Download PDFInfo
- Publication number
- WO2009147846A1 WO2009147846A1 PCT/JP2009/002490 JP2009002490W WO2009147846A1 WO 2009147846 A1 WO2009147846 A1 WO 2009147846A1 JP 2009002490 W JP2009002490 W JP 2009002490W WO 2009147846 A1 WO2009147846 A1 WO 2009147846A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- version
- database
- edit
- editing
- record
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Definitions
- 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.
- DB database
- parallel DB editing parallel DB editing
- 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.
- server server computer
- PC terminal computers
- a vestigec lock cursor Non-Patent Document 1
- Non-Patent Document 2 a transaction lock
- 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.
- OODB products Cache Non-Patent Document 6
- ObjectStore Non-Patent Document 7
- Patent Document 1 is also an edit lock.
- Non-Patent Document 8 Non-Patent Document 9
- 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.
- 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 editing priority” for comparison with other methods.
- Patent Document 4 also has the same problem because the update time is valid for the previous update.
- 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”.
- 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.).
- 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.
- 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.
- 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.
- Patent Literature 8 Patent Literature 9
- Patent Literature 10 Patent Literature 11
- 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 Japanese Patent Laid-Open No. 61-134553 JP 2005-216167 A JP 9-91184
- 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.
- 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.
- first-come-first-priority "first-edit priority”
- unconditional overwrite method which are extensions of the cache technology.
- 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.
- 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.
- 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.
- this local original DB an initial version, that is, an order number for identifying the update order, is set.
- 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.
- 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 “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.
- RDB relational DB
- 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.
- 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, 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.
- 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). Accordingly, the local original DB may be updated at a stretch until the last editing record received from the server, and the version may be updated thereafter (by the number of processed editing records).
- 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.
- 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.
- 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.
- the edit record Y that has been uploaded is taken out, the invariable confirmation range is investigated, and the relationship with the edit X 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.
- 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.
- 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.
- the “local original DB” is updated using a series of edits received from the server.
- the “local original DB” 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.
- the “local original DB” of each PC is synchronized. It can be said that it is synchronized with the virtual global original DB.
- a global original DB exists in the server, and each PC has a local original DB that is a copy of the PC.
- 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.
- 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.
- the setting of the optimal version setting range depends on the structure and contents of information to be handled.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the local original DB is synchronized with the entire (virtual or real) global original DB.
- the medical information DB described above has a large amount of personal information.
- 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.
- 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”.
- (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).
- 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.
- 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 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 update cancellation conditions 3 and 4 are the X editing period, that is, “while the version of the local original DB to be edited X is updated (to x) and then X is uploaded to the server”. 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.
- any PC can attempt to update the local original DB again.
- the version becomes nx or later if the local original DB is updated to the end of the fetched edit record.
- 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.
- the server updates the global original DB
- 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.
- the PC synchronizes the copy DB at hand with the original DB, the new primary key information is transmitted.
- 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.
- 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.
- 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.
- 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.
- Claim 7 corresponds to the case where the global original DB is updated in the server.
- 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.
- 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.
- 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”.
- 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.
- 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
- 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).
- editing is up. 1021 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 FIGS. 2 and 5, the storage devices 0204, Display as the middle DB.
- a PC 0201 is connected to a server 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 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.
- 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. 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.
- 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 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.
- 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.
- 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.
- the server 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.
- 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.
- a PC 0501 is connected to a server 0503 via a communication network 0502 such as the Internet.
- a communication network 0502 such as the Internet.
- 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.
- the local original DB 0506 is not directly edited, and the editing result is the work DB 0509.
- edit record 0508 is created.
- an edit version that is, a version set in the local original DB is recorded.
- 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.
- 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.
- FIG. 8 illustrates a procedure for transmitting “up prohibition” from the server to the PC for preventing update cancellation.
- 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.
- FIG. 9 illustrates a procedure for transmitting “edit prohibited” from the server to the PC for preventing update cancellation.
- the server 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.
- 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
- “operation without canceling update” is set.
- the edit version at the time of editing this record is recorded as “record version” for each record.
- “retrieve past edit record (X) whose invariant confirmation range information has been changed” is extracted. “Comparison of edit version (x) of past edit record (X) and edit version (y) of edit record (Y) to be processed” 0401 ⁇ ⁇ ⁇ can be performed.
- 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.
- the PC-A 1002 and the PC-B 1003 acquire the global initial original DB 1004 1010 and 1011 respectively, and make them 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.
- PC-A 1002 accesses the server once again, and obtains the latest editing order 1012 at that time. At this time, since edit 1 is captured, the version of the local original DB 1005 becomes 1.
- the PC-B 1003 acquires from the server 1001 the edit 6 (latest as of this synchronous 1017) from the edit 1, and updates the local original DB 1006 to 6 as the base version. 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.
- 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.
- the edit 9 is reflected in the local original DB 1008, the base version of the manufactured DB 1008 becomes 9.
- the content of the copy 1009 of the record Z edited by the PC-B 1003 becomes valid in the local original DB 1005 of the PC-A 1002, and the content of the copy 1008 of the record Z edited by the PC-A 1002 becomes invalid. It turns out (with PC-A1002).
- 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”.
- This method has a feature that “editing based on old information is determined to be invalid”.
- This method has a feature that “editing based on old information is determined to be invalid”.
- “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.
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
Description
複数のPCに、原本DB(以下「グローバル原本DB」)の初期状態の複製DB(以下「ローカル原本DB」)を置く。このローカル原本DBには初期のバージョン、つまり更新の順番を識別する順序数、が設定されている。
各PCはそれが保持するローカル原本DBに対するローカルな編集を行う。この編集の前にローカル原本DBの作業用の複製を作成し、編集はこの複製に対して行う。また、編集時にはその「編集記録」を作成する。この編集記録には「編集内容」「編集バージョン」「不変確認範囲」などが記録される。
各PCは「編集記録」をサーバーに送信する。「編集記録」と「編集バージョン」および「不変確認範囲」を分けて記録している場合には、「編集記録」との対応を明示して「編集バージョン」および「不変確認範囲」も送信する。なお、「編集記録」の中に「編集バージョン」と「不変確認範囲」も、さらには後で説明する「バージョン設定範囲」も、記録しておくと、通信手順が簡単になる。
サーバーは、PCから到着した編集記録を、その到着の順番と共に記録しておく。
PCはサーバーに対して、未受信の編集記録の送信を要求し、これらの編集記録、と対応する編集バージョン、必要なら不変確認範囲やバージョン設定範囲を受信する。同時に編集記録のサーバーへの到着の順番を受信する。サーバーがPCから到着した編集記録にその到着の順番を記録すると、通信手順が簡単になる。
PCは指定された順番でサーバーから受信した編集記録を取り出し、編集記録の有効性を判定する。この判定手順の詳細は後の「有効性の判定手順」で説明する。そしてローカル原本DBを更新してそのバージョンを更新する。バージョンが整数なら初期値の「0」から順番に1個ずつ上げていくのが自然である。なお、PCは指定された編集記録を全て最後まで処理する(途中で新たな編集作業は入れない)。従って、サーバーから受信した最後の編集記録まで一気にローカル原本DBを更新しその後での後で(処理した編集記録の数だけ)バージョンを更新しても良い。
全てのPCは、各PCにおけるローカルな編集の編集記録を、サーバーへの到着順で取り出し、ローカル原本DBを更新しそのバージョンを更新する。同じ情報を同じ順番で用いて、同じロジックで処理するので、結果として得られる各PCのローカル原本DBとそのバージョンは同期する。グローバル原本DBを更新しなくても、グローバル原本DBが存在しなくても、各PCのローカル原本DBが同期するのはこの仕掛けによる。
「編集記録の有効性の判定」が本発明の重要な部分である。編集記録(Y)により「ローカル原本DB」の更新を試みる場合には、まず、Yに指定された「不変確認範囲」の情報を更新した過去の編集記録を調査し、これらの全てに対してYが有効と判定された時に、Yを有効と判定する。ここで説明のため、Yに指定された「不変確認範囲」の情報を更新した過去の編集記録のひとつをXとし、以下の記号を用いる。
y:Yの編集バージョン=Yの編集対象であった「ローカル原本DB」のバージョン。
x:Xの編集バージョン=Xの編集対象であった「ローカル原本DB」のバージョン。
nx:Xに基づく更新により設定された原本のバージョン。当然「x<nx」。
あるPCに注目した一連の動作例を以下で説明する。このPCがサーバーから最新の編集記録を受信し、ローカル原本DBを更新したとする。その後、他のPCから編集記録がサーバーにアップされた後に、このPCがローカル原本DBに対する編集を行ったとする。これを編集記録Yとしてサーバーにアップし、次にそれまでの(未受信の)編集記録をサーバーから受信し、編集記録を指定された順番で取り出し、ローカル原本DBの更新を試みる。この過程でいくつかの編集(例えば編集X)は有効と判定されローカル原本DBが更新される。
PCの操作者は「古い情報に基づく編集は無効と判定される可能性が高い」事を理解していれば良い。編集を行うPCが、その編集が無効と判定される可能性を出来るだけ少なくするには、編集の直前に最新の編集記録まで受信してローカル原本DBを更新し、この最新のローカル原本DBに対して編集を行い、編集後は速やかに編集記録をアップすると良い。頻繁に更新を行えば、ローカル原本DBは常に最新の状態に保たれるので、「ほぼオンライン運用」と言う事が出来る。
発明の全容を実施例のバリエーションも含めて以下で説明する。
サーバーがPCに伝える編集記録とその順番は、必ずしもPCがアップした内容である必要も、アップの順番を守る必要も無い。編集記録とその順番が全てのPCで同じであれば、これらのローカル原本DBは同期する。
先の例では、サーバーから受け取った一連の編集を用いて「ローカル原本DB」を更新している。「ローカル原本DB」の初期値が同じ、それに適用する編集記録の順番とその内容が同じ、かつ同じロジックで「ローカル原本DB」の更新を行う事により、同じ編集記録まで受信したPCの「ローカル原本DB」の内容は一致する。「グローバル原本DB」は存在しないが、各PCの「ローカル原本DB」は同期している。仮想のグローバル原本DBと同期していると言える。
(a)グローバル原本DBがサーバーに有り、各PCはその複製であるローカル原本DBを持っている。
(b)各PCはそのローカル原本DBに対して編集を行う際には、編集記録を作成しサーバーに送る。
(c)サーバーは、PCからの編集記録の到着順に、編集の競合を確認し、有効と判定された編集でグローバル原本DBを更新し、そのバージョンを更新する。
(d)サーバーからの情報で、各PCはそれぞれのローカル原本DBとバージョンを更新、つまり同期、する。
グローバル原本DBを更新する場合は、最新のグローバル原本DBと各ローカル原本DBを同期する必要がある。グローバル原本DBのデータ量が多いと考えるのが常識的であり、その全体を送るのは非現実的である。編集記録(とその順番)を各PCに送れば、各PCでローカル原本DBを更新するのと同じであり、グローバル原本DBをサーバーが更新するメリットは小さい。結局、グローバル原本DB更新の差分情報を送るのが現実的である。
キャシュ技術を用いて「各PCにおける編集の前に、サーバーからグローバル原本DBの必要な部分のコピーを作成し、このコピーに対して編集を行う」方法に対しても、本願の「より最新の情報に基づく編集を優先」する方法が適用出来る。編集に必要なコピーを作成するときに、グローバル原本DBのバージョンも取得する。編集記録にはこのバージョンを編集バージョンとして設定しサーバーに送る。サーバーはこの編集バージョンを元に有効性を判定する。これにより、ADO.NETで見られたような、古いバージョンに対する編集の突然のアップによって最新のバージョンに対する編集が妨害されるケースは排除される。
先に説明した、各PCが「ローカル原本DB」を更新する方法では、編集記録をサーバーに集めた。サーバーがグローバル原本DBを更新する方法も説明した。どちらのサーバーも必要な機能が提供できるなら専用サーバーでもレンタルサーバーでも良い。本明細書でのPCのひとつが、同時に本明細書のサーバーの機能を提供しても何ら問題は無い。
バージョンを付与し編集を管理する単位が実際のDBである必要は無い。情報修正の影響が密接に関係している部分を「バージョン設定範囲」とし、これ毎にバージョンを設定すれば、その範囲に関する編集とバージョンの推移が管理できる。
DB原本(グローバル原本DB又はローカル原本DB)全体、またはその中の「バージョン設定範囲」に対してバージョンが付与されるが、その付与方法は、扱う情報の特性や運用の都合に応じて選択する事が出来る。
サーバーが編集記録を受け付けた時刻をバージョンとして利用する方法も可能である。以上で説明したバージョンはこの受け付け時刻と読み替える事になる。バージョンは一連の順番を識別するための順序数と説明したが、時刻も順序を表すので何ら問題は無い。
PCが、サーバーにアクセスし、未受信の編集記録の有無を確認した時刻をサーバーから取得し、その時刻を原本DBのバージョンとする方法も可能である。ローカル原本DBを更新する場合では、各PCは(未受信の編集の有無、およびその有効性に関係なく)サーバーに問い合わせた時刻(例えばサーバーが通知した時刻)をローカル原本DBのバージョンとする。
本願の説明を簡単にするには、ローカル原本DBが(仮想の又は実在する)グローバル原本DBの全体と同期すると都合が良い。しかし実際の利用を考えると、ローカル原本DBはグローバル原本DB一部と同期する方が現実的である。例えば、先に説明した医療情報のDBは多数の個人情報を持っている。このうち、PC毎にその権限で読み込める範囲の個人情報についてのローカル原本DBを作成すれば十分であり、ローカル原本DBがグローバル原本DB全体と同期する必要は無い。医者の計算機には担当の(複数の)患者の情報を保持するローカル原本DBが存在し、個人の計算機にはその人の個人情報のみを保持するローカル原本DBが存在する。
先の説明では「更新の取り消しが無い運用」を扱っていたが、編集バージョンが新しい編集を優先する原則を厳密に適用すると、(Yが有効となる条件2)において、Yによる「ローカル原本DB」の更新の前に、Xによる更新を取り消す場合が有る。これは「(x<)y<nx」の「編集の取り消し条件」が成立した場合である。
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への)更新が行われた。
データベースの構造を変更するなど、更新の取り消しを防止したいケースがある。
Xの編集期間に他のPCからの編集がアップされなければ、この期間に他のPCがそのローカル原本DBを更新(Y)してもバージョンはxになるだけで、xより後になる事は無い。つまり(Xの更新の取り消し条件3)が成立しない。Xのアップ(nx)の後のローカル原本DBの更新(Y)なら、(Xの更新の取り消し条件4)が成立しない。つまり、Xの編集期間に他のPCからアップを禁止すれば、Xが取り消しは防止出来る。
Xの編集期間に他のPCからの編集がアップされても、他のPCがローカル原本DBを更新するのを禁止すれば、Xの取り消しは防止出来る。サーバーから編集記録を送らないのもひとつの方法であり、編集記録を送ったとしてもその編集記録によるローカル原本DBの更新(Y)を禁止する方法でも良い。
Xの編集期間に他のPCからの編集がアップされ、他のPCがローカル原本DBを更新しても、この更新したローカル原本DBに対する編集を禁止すれば、Xの取り消しは防止出来る。サーバーから編集記録を送った時などに、その編集記録により更新したローカル原本DBに対する編集の禁止を通知する。
ある編集記録(上記のX)による更新が取り消しになった場合、この取り消しを完璧に行うには、以下の処理が必要になる。
(取り消から派生する処理1)Xにより無効とされた編集記録の有無を調査し、あれば有効か無効化の再評価を行う。
(取り消から派生する処理2)操作者がXにより無効とされた編集記録を参照し再度入力した情報があるなら、その入力を見直す。
(取り消から派生する処理3)Xによる更新を前提とした編集、つまりXによる更新で設定されたバージョン以降を編集バージョンとする編集記録の有効性を再評価する。
情報が新規に作成されたときも、編集記録を作成し、その時点の対象DBのバージョンを編集バージョンとして記録する。DBの情報の削除においても「削除対象、削除の事実、影響範囲、バージョン」を編集記録とする。この編集(削除)は無効になる可能性があるので、この段階ではローカル原本DBから実際に削除する事は出来ない。有効と判定された後ならば実際に削除する事も可能である。
RDBにおいてレコードに主キー(ID)を設定するには、他のレコードとキーが重複してはならない。並行DBアクセスではこのための配慮必要である。つまり、複数のPCが並行してレコードを追加する事により、同じ主キーのレコードが存在する事態を引き起こしてはならない。
あらかじめ、サーバーや管理PCから各PCに、新規に割り当て可能な主キーの範囲を有り当てておく事により、新規レコードの主キーの衝突を回避する事が出来る。主キーをUUIDにして、衝突を防止する方法も可能である。
次の主キーを記録しておくレコード(K)をDB内に設定する。新規に作成するレコード(Z)の主キーにこのKの値を用い、その後Kの値を更新する。Kの更新が「より最新の情報を対象にした編集を優先する」ルールに照らして有効とされればレコードの追加は完了だが、無効と判断された場合はKの値の更新が無効になり、レコード(Z)の追加も無効として処理する。
編集記録による「ローカル原本DB」の更新時に、新規レコードの主キーの衝突を検出した場合、編集バージョンの新しい編集記録のものを採用する。これは、編集バージョンの確認により有効と判定されても、さらに内容チェックにより無効と判定されるケースが存在する事を意味する。情報の整合性を保証するためには、さらなる検討が必要である。
各PCがそれぞれのローカル原本DBを更新するケースとサーバーによるグローバル原本DBを更新するケースでも原本DB(グローバル原本DBまたはローカル原本DB)を更新する処理は共通である。これを請求項1に示す。グローバル原本DB、その複製DB、ローカル原本DB、作業DBなどを包含する概念としてデータベースと言う言葉を用いている。これの方法「より最新の情報に基づく編集を優先」する方法であり、計算機が永続的に複製DBを保持する本格的な「並行DB編集」のみならず、計算機が一時的に複製DBを保持するケースでも有効である。
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の複製の)修正
図10にもう一つの実施例を示す。図10のDBはRDBで、バージョン設定範囲をDB全体、バージョンは整数、不変確認範囲は編集したレコードのみとし、「更新の取り消しを行わない運用」としている。
Claims (11)
- データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C)工程Aの該編集記録を用いて該データベースの更新を行う、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C1)工程Aの該編集記録を用いて該データベースの更新を行い、該データベースに記録されていたバージョンを更新する、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C2)工程Aの該編集記録を用いて該データベースの更新を行い、指定された情報の範囲に対して記録されていたバージョンを更新する、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョンつまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C3)工程Aの該編集記録を用いて該データベースの更新を行い、指定された時刻を該データベースのバージョンとして記録する、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程D)それまでに該データベースの複製に適用された編集記録のなかで、これらの編集記録の適用により更新された後の該データベースのバージョンが、工程Aの該編集記録に記録されたバージョンより新しい編集記録を特定し、
(工程E)工程Dで特定された該編集記録により該データベースの複製に対して行った更新を元に戻し、
(工程C)工程Aの前記編集記録を用いて該データベースの更新を行う、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B1)Aの該編集記録に指定された不変確認範囲に対し、それまでに適用された編集記録のバージョンよりも、Aの該編集記録のバージョンの方が新しい場合に
(工程C)工程Aの該編集記録を用いて該データベースの更新を行う、
一連の工程を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C)工程Aの該編集記録を用いて該データベースの更新を行う、
一連の工程と、
(工程F)更新した該データベースの情報を、他の計算機に送信する工程、
を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録された「編集対象のデータベースに記録されていたバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C4)工程Aの該編集記録を用いて該データベースの更新を行い、該編集記録が到着した時刻を該データベースのバージョンとする工程、
一連の工程と、
(工程F)最新の該データベースの情報を、他の計算機に送信する工程、
を特徴とする方法。 - データベースの編集方法であって、
(工程A1)データベースに対する編集記録で未受信の編集記録の有無を調査し、あれば未受信の該編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B2)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程A1で受信した該編集記録のバージョンの方が新しい場合に、
(工程C5)工程A1で受信した該編集記録を用いて該データベースの更新を行い、工程A1で未受信の編集記録の有無を調査した時刻を該データベースのバージョンとして記録する工程、
を特徴とする方法。 - データベースの編集方法であって、
(工程A1)データベースに対する編集記録で未受信の編集記録の有無を調査し、あれば未受信の該編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B2)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程A1で受信した該編集記録のバージョンの方が新しい場合に、
(工程C6)工程A1で受信した該編集記録を用いて該データベースの更新を行い、工程A1で未受信の該編集記録を受信した時刻を該データベースのバージョンとして記録する工程、
を特徴とする方法。 - データベースの編集方法であって、
(工程A)データベースに対する編集記録を受信し、該編集記録のバージョン、つまり該編集記録に対して記録されている「編集対象のデータベースのバージョン」、を取り出し、
(工程B)それまでに、該データベースの複製に適用された編集記録のバージョンよりも、工程Aの該編集記録のバージョンの方が新しい場合に、
(工程C)工程Aの編集記録を用いて該データベースの更新を行う、
一連の工程と、
(工程G)他の計算機に対し、編集の停止、または編集アップの停止、またはローカル原本DBの更新停止を通知する工程、
を特徴とする方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010515774A JP5543918B2 (ja) | 2008-06-04 | 2009-06-03 | データベース並行編集の競合解消方式 |
US12/995,158 US9678996B2 (en) | 2007-06-06 | 2009-06-03 | Conflict resolution system for database parallel editing |
US12/688,854 US8171003B2 (en) | 2007-06-06 | 2010-01-15 | Method and apparatus for changing reference of database |
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 |
---|---|---|---|
JPPCT/JP2008/001424 | 2008-06-04 | ||
PCT/JP2008/001424 WO2008149552A1 (ja) | 2007-06-06 | 2008-06-04 | データベース矛盾解消方式 |
PCT/JP2008/001506 WO2009147701A1 (ja) | 2008-01-08 | 2008-06-12 | データベースへの平行アクセスプログラム |
JPPCT/JP2008/001506 | 2008-06-12 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/995,158 A-371-Of-International US9678996B2 (en) | 2007-06-06 | 2009-06-03 | Conflict resolution system for database parallel editing |
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 |
---|---|
WO2009147846A1 true WO2009147846A1 (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 (4)
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 | データベースのデータ項目の平行編集方式 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2009147705A1 (ja) |
WO (5) | WO2009147704A1 (ja) |
Cited By (6)
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 |
KR20150111935A (ko) * | 2013-01-30 | 2015-10-06 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 콘텐트 큐레이션을 위한 애플리케이션 프로그래밍 인터페이스 |
JP2018510430A (ja) * | 2015-04-01 | 2018-04-12 | アリババ グループ ホウルディング リミテッド | データベースのための遠隔データ同期方法及び装置 |
US10105700B2 (en) | 2013-07-17 | 2018-10-23 | The Johns Hopkins University | Microfluidic chip for analysis of cell motility and methods for using same |
CN111523291A (zh) * | 2020-04-21 | 2020-08-11 | 四川川大智胜软件股份有限公司 | 一种低空雷达多席位空域数据编辑方法 |
JP7475086B1 (ja) | 2023-02-03 | 2024-04-26 | 株式会社ミヤワキ | 編集方法、編集装置及びプログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5356351B2 (ja) * | 2010-09-30 | 2013-12-04 | ヤフー株式会社 | ストレージサーバ、ファイル同期システム、ファイル衝突処理方法及びプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000284998A (ja) * | 1999-03-31 | 2000-10-13 | Ricoh Co Ltd | データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
Family Cites Families (11)
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 | 複数のコンピュータ間におけるファイルの同期方法 |
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 | 共有データベースの制御システム及び共有データベースの制御方法並びにコンピュータプログラム |
-
2008
- 2008-07-01 WO PCT/JP2008/001719 patent/WO2009147704A1/ja active Application Filing
- 2008-07-15 WO PCT/JP2008/001900 patent/WO2009147705A1/ja active Application Filing
- 2008-07-15 JP JP2010515675A patent/JPWO2009147705A1/ja active Pending
-
2009
- 2009-06-03 WO PCT/JP2009/002491 patent/WO2009147847A1/ja active Application Filing
- 2009-06-03 WO PCT/JP2009/002501 patent/WO2009147851A1/ja active Application Filing
- 2009-06-03 WO PCT/JP2009/002490 patent/WO2009147846A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000284998A (ja) * | 1999-03-31 | 2000-10-13 | Ricoh Co Ltd | データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
Non-Patent Citations (2)
Title |
---|
ANDREW S. TANENBAUM: "DISTRIBUTED SYSTEMS", PEARSON EDUCATION JAPAN, 20 October 2003 (2003-10-20), pages 614 - 634, 698-701 * |
MARK DODGE: "Microsoft Office Excel 2003", OFFICIAL MANUAL, 12 July 2004 (2004-07-12), pages 535 - 548 * |
Cited By (9)
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 |
KR20150111935A (ko) * | 2013-01-30 | 2015-10-06 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 콘텐트 큐레이션을 위한 애플리케이션 프로그래밍 인터페이스 |
KR102283274B1 (ko) | 2013-01-30 | 2021-07-28 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 콘텐트 큐레이션을 위한 애플리케이션 프로그래밍 인터페이스 |
US10105700B2 (en) | 2013-07-17 | 2018-10-23 | The Johns Hopkins University | Microfluidic chip for analysis of cell motility and methods for using same |
JP2018510430A (ja) * | 2015-04-01 | 2018-04-12 | アリババ グループ ホウルディング リミテッド | データベースのための遠隔データ同期方法及び装置 |
US10877990B2 (en) | 2015-04-01 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Remote database synchronization |
CN111523291A (zh) * | 2020-04-21 | 2020-08-11 | 四川川大智胜软件股份有限公司 | 一种低空雷达多席位空域数据编辑方法 |
CN111523291B (zh) * | 2020-04-21 | 2023-04-18 | 四川川大智胜软件股份有限公司 | 一种低空雷达多席位空域数据编辑方法 |
JP7475086B1 (ja) | 2023-02-03 | 2024-04-26 | 株式会社ミヤワキ | 編集方法、編集装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2009147704A1 (ja) | 2009-12-10 |
WO2009147847A1 (ja) | 2009-12-10 |
WO2009147705A1 (ja) | 2009-12-10 |
WO2009147851A1 (ja) | 2009-12-10 |
JPWO2009147705A1 (ja) | 2011-10-20 |
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 | |
CN108932282B (zh) | 一种数据库迁移方法、装置和存储介质 | |
US9251163B2 (en) | File sharing system and file sharing method | |
US10795881B2 (en) | Table replication in a database environment | |
JP4414381B2 (ja) | ファイル管理プログラム、ファイル管理装置、ファイル管理方法 | |
WO2009147846A1 (ja) | データベース並行編集の競合解消方式 | |
US10430281B2 (en) | Space efficient cascading point in time copying | |
US20110035428A1 (en) | Tracking file contents | |
CN108021338B (zh) | 用于实现两层提交协议的系统和方法 | |
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 (ja) | データベース並行編集の競合解消方式 | |
JP4855537B2 (ja) | データベース並行編集方式 | |
US20170177647A1 (en) | Parallel database editing | |
JP5543899B2 (ja) | データベースのデータ項目の平行編集方式 | |
JP4923140B2 (ja) | データベース並行編集方式 | |
WO2009147701A1 (ja) | データベースへの平行アクセスプログラム | |
US9424261B2 (en) | Techniques to take clean database file snapshot in an online database | |
JP5543901B2 (ja) | データベース並行編集方式 | |
JP4855538B2 (ja) | データベースのデータ項目の平行編集方式 | |
WO2004031957A1 (ja) | データベース複製方法、データベース複製装置、データベース創成方法およびデータベース創成装置 | |
US20130110777A1 (en) | Synchronization of data edited in parallel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09758113 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010515774 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12995158 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09758113 Country of ref document: EP Kind code of ref document: A1 |