CN102216910B - 并行编辑数据库的方法 - Google Patents
并行编辑数据库的方法 Download PDFInfo
- Publication number
- CN102216910B CN102216910B CN200980128878.0A CN200980128878A CN102216910B CN 102216910 B CN102216910 B CN 102216910B CN 200980128878 A CN200980128878 A CN 200980128878A CN 102216910 B CN102216910 B CN 102216910B
- Authority
- CN
- China
- Prior art keywords
- reference record
- database
- order
- authentic copy
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/23—Updating
- G06F16/2308—Concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information 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
通常情况下,多台计算机是访问一台服务器提供的一个数据库。本发明提供了一种使用固定保存复制数据库的、大体称为成熟的“并行数据库编辑”。计算机基于复制数据库来交换信息,计算机中的复制数据库与其他数据库进行同步。所有相关的每台PC机都按照唯一顺序(例如按照到达该服务器的顺序)取出在其他PC机中的本地编辑记录,并且更新其本地源数据库。该编辑信息包括具有相同逻辑方法按相同顺序进行处理的相同内容,接下来,本地源数据库被更新。因此,多台PC机中的本地源数据库相互进行同步。同步操作不仅实时建立,而且还按通常编辑记录的顺序时间基准来建立。因此,可以频繁地对编辑记录“实际在线操作”和更新,而且,具有长时间更新循环周期的“实际离线操作”可以混合起来执行。
Description
技术领域
本发明实现了对于数据库(下文分别称为“数据库”和“并行数据库编辑”)的并行编辑。
背景技术
传统的数据库操作具有如下几个类型:
“单数据库访问”是一种只通过一台计算机操作数据库的方式。由于只有一台计算机可以执行对数据库的编辑操作,因此可以轻易地避免访问冲突的出现。然而,该方式并不适于一个操作中包括多台计算机访问一个数据库的情况。
“服务器数据库访问”是一种由多台终端计算机(下文称为“PCs”)访问一台管理数据库的服务器计算机(下文称为“服务器”)的操作方式。每一台PC通过服务器的程序方法来访问数据库。由于只有一台计算机能直接访问数据库,因此可以很容易地避免访问冲突的情况。封闭式指针(参见非专利文献1)和交易锁(参见非专利文献2)中都采用了该操作方式。
由本发明作者所开发的“通电新闻售卖系统”中,只允许并行的读取操作。在该系统中,对于一台PC进行编辑之前应该获得“编辑权限”;并且某一时间点只允许一台PC的编辑操作。这也是一种锁。
然而,如果不能与服务器进行通信,那么就不能访问数据,也不可能获得或释放一个锁。这将是一个很大的限制,因为对于移动设备而言,经常发生无法进行通信的情况。因此,不能实现紧急任务的持续请求指令,例如:医学行为、金融活动及严重事故发生时的救济行为。即使可以通信,由于响应时间非常之久(可能是由于重新传输或其他原因导致的结果)而造成的低劣通信环境远不能适合用户的需求。
通过为临时工作任务而创建副本的缓存技术,人们试图提高通信和方法的效率。通过微软公司的ADO.NET,PC机从服务器制作了一个数据备份文件(即对于当前工作是必需的),切断对该服务器的连接并执行编辑操作。在编辑操作完成之后,PC机再与服务器连接并把这个编辑的结果发送到该服务器中。假如该编辑操作的目标信息已被其他多台终端计算机所更改,后者的(该)编辑信息会被判定为无效。我们可以将上述情况解释为:“当一个锁作为一个失效结果时,该编辑操作被判定为无效”。它也是编辑锁的一类。这也被称为“优化并行控制”(参见非专利文献3和非专利文献4)。然而,在如下一些情况时,它往往会产生很多不便。
(1)由于副本是为每一个编辑操作而创建的,因此对于服务器的拷贝程序和通信操作便成为额外的工作(参见非专利文献1的第19页)。为了减少这些工作,必须限制拷贝的范围。然而,这种限制需要(通过应用程序)对目标信息结构的全面知识才能完成。
(2)预测“缓存信息到何时是有效”是很困难的。如果为了提高拷贝效率而减少缓存数量,一个可能出现的情况是将被用于下一编辑操作的拷贝会被减少。大容量的缓存也会出现问题。即使只有一部分缓存被编辑,“优化并行控制”的策略将使得这个缓存无效。
(3)检测“一台PC所操作(输入、更改、删除)、且被其他PC机所修改(删除、再次更改、再次输入)的信息”是很困难的。上述问题在“服务器数据库访问”方式和“缓存”方法中十分常见。在“发送”的时候,关于(由该台PC机所进行的)编辑操作的有效性判断结果变得很清楚。然而,实时检测以往输入信息的更改情况且在某时判断一次其有效性,这是很困难的。
以下示出了其他的研究情况。非专利文献5提及了一种有关文件缓存的技术。当检测到在多个编辑操作中的冲突(也就是本发明所指的“争用”)情况时,编辑操作将被简单地拒绝(参见非专利文献5中第7页10行的右下部分)并记录下来。专利文献1(参见“解决方法”和36段)示出了如下方法:当检测到对数据库的编辑冲突时,正确更新的(服务器的)数据库被提交。在专利文献2中,较后时间所进行的编辑操作被判定为有效。在专利文献1中,较早时间所进行的编辑操作被判定为有效。它们两者都没有解决上面所提及的问题。
专利文献3提供了一种开始数据库同步的有关环境的发明。它描述了“通过更改编辑的信息来执行同步操作”的同步方法。然而,这仅仅是提出了一个非常笼统的同步概念而已。
专利文献4提供了一种发明,其目的在于当编辑争用发生时,能够保存所有编辑的数据。只有在没有争用情况发生时,才会执行原始数据的更新。(该文献的)发明目的和发明内容与本发明均不相同。尽管专利文献5、6、7、8及9都对上述问题进行了研究,但均与本发明有所区别。
【专利文献1】专利申请(JP) H9-91184, A
【专利文献2】专利申请(JP) 2004-13867, A
【专利文献3】专利申请(JP) 2004-86800, A
【专利文献4】专利申请(JP) 2006-284998, A
【专利文献5】专利申请(JP) H11-161535, A
【专利文献6】专利申请(JP)专利文献 2005-503606, A
【专利文献7】专利申请(JP) 2005-508050, A
【专利文献8】专利申请(JP) H8-16447, A
【专利文献9】专利申请(JP) 2000-501532, A
【非专利文献1】William R. Vaughn, Top Studio翻译,Yukio Ito编辑并督导的“视窗,(TM)数据库编程”,ADO.NET专业讲义,VB.NET卷,2003年4月4日(第一次修订),SHOEISHA
【非专利文献2】C&R实验室,“超级实例:SQL手册”,2005年8月12日(第一次修订)
【非专利文献3】MSDN图书馆,“在AD.NET上数据并行控制概述”,2007年01月,(光盘文件地址 URL:second-help://MS.MSDNQTR.v80. ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2-34d9e6661664.htm)
【非专利文献4】MSDN图书馆,“并行例外的方法指导”,2007年01月,(光盘文件地址 URL:ms-help://MS.MSDNQTR.v80. ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm)
【非专利文献5】“全球文件分配系统SKINNY”,IPSJSIG Notes 95-S-70-1,(学术出版IPSJ SIG,注脚95卷,79卷,ISSN0919-6072)
发明内容
本发明解决的技术问题
本发明阐述了完全成熟的并行数据库访问方式,解决了基于缓存的传统并行数据库编辑操作所产生的问题。
解决技术问题的手段
本发明可以采用下例进行说明。
(1)预备
多台PC机具有由原始数据库(下文称为“全局源数据库”)的初始状态所复制而成的“复制数据库”(下文称为“本地源数据库”)。这些本地源数据库中包括有初始的序列号,以识别用于确定更新顺序的版本。由此,我们可以通过这些版本来判断编辑内容的有效性。
(2)本地编辑
每一台PC对每一个本地源数据库都执行本地的编辑操作。在编辑之前,将会针对临时的编辑工作来创建一个本地源数据库的副本。编辑操作将在该副本上执行。在接下来的编辑时,编辑工作所记录内容的一组“编辑记录”将被创建。这组“编辑记录”至少包括“该编辑工作的内容”。除此之外,还包括有“编辑版本”。
“编辑工作的内容”是指总的编辑内容,例如:“更改的信息及如何更改”、“添加的信息”、“删除的信息”等等。“编辑版本”是指本地源数据库的一个版本,即是该编辑的目标。严格地说,它(“编辑版本”)是本地源数据库的一个版本,该版本是“该编辑目标副本”的原文。
(3)发送“编辑记录”到服务器
每一台PC将把“编辑记录”传输给服务器。当“编辑记录”和“编辑版本”被分别保存时,带有与“编辑记录”相关信息的“编辑版本”也被发送。简单可行的方法就是在包括“编辑版本”的“编辑记录”中执行一个操作。
(4)通过服务器接收“编辑记录”
服务器记录从多台PC机发出的“编辑记录”组以及它们送达的顺序。
(5)从服务器接收“编辑记录”
PC机向服务器发出将未接收到的“编辑记录”发送的请求。接着PC机在这些记录到达服务器时,接收记录和它们的顺序。如果“编辑记录”中指定了“编辑版本”,PC机也接收这些内容。
(6)本地源数据库的复原
PC机按照指定给这些记录的顺序,将“编辑记录”组取出,判断它们的有效性,并尝试通过它们的内容来更新本地源数据库。如果版本已经被设置,那么本地源数据库的版本将被更新。
所有的PC机都具有相同的初始本地源数据库。每一台PC机都是(在记录送达该服务器的时候)按照它们的顺序取出“编辑记录”组,并更新每一个本地源数据库。每一个本地源数据库由相同的程序方法、将使用相同的编辑信息和相同的顺序进行更新。每一个本地源数据库的结果是相同的。这个机制使得“PC机的每一个本地源数据库不需要更新服务器的全局数据库就可以相互进行同步”。
要点是“由每台PC机创建的每组编辑记录都附带着唯一的顺序”。尽管此处(在它们被发送到服务器时)使用了这些顺序,我们仍然可以通过其他方法来更改这些顺序或设置其他的顺序,也可以通过另一个准则(例如,指定给操作者的优先级别,等等)来(在它们被发送到服务器时)更改这些顺序。假如“在每一台PC机取出和更新每一个本地源数据库的时候,所有的PC机都使用相同的顺序”,这是完全足以实现的。
如下则介绍了另一个方法。一组“编辑记录”的顺序(或时序)是由服务器或一台指定的PC机来判定和通知(给创建或保存该“编辑记录”的PC机)的。(创建或保存该“编辑记录”的)PC机将这个顺序写入到将在其中相互交换的“编辑记录”中。假如“在每一台PC机取出和更新每一个本地源数据库的时候,所有的PC机都使用相同的顺序”,以上也是完全可以实现的。
由于每一台PC机可能会在任一便利的时机更新每一个复制数据库,多个PC机中本地源数据库的更新进度在实时都各不相同。然而,如果这些本地源数据库均是处于刚刚被某个指定的“编辑记录”更新后的情况,那么它们则处于同一状态。也就是说,任何一台PC机中每一个本地源数据库基于共同的基准来相互进行同步,这个基准就是指定给“编辑记录”组的顺序。
此处,所有的PC机都应该具有相同的“有效性判断基准”和相同的“本地源数据库更新程序方法”。然而,如果它们是相同的话,对于这些程序方法就没有任何限制。每一组“编辑记录”由相同的基准进行判断,全部或一部分“编辑记录”将被判定为有效或无效。上述数据基于相同方法来更新本地源数据库。接着,任何PC机的每一个本地源数据库基于共同的基准,即是指定给“编辑记录”组的顺序来相互进行同步。
下面说明一台PC机中的一系列操作。我们假设这台PC机从服务器接收了最新的“编辑记录”并更新了本地源数据库。这台PC机对这个本地源数据库执行了一个编辑工作,然后将这个“编辑记录”发送。在上述编辑工作的过程中,有可能另一台计算机也将“编辑记录”发送给服务器。
将之前所述的“编辑记录”组发送之后 ,该PC机从服务器接收到(直到那时尚未接收到的)“编辑记录”组。PC机基于指定顺序取出它们并试图用于更新本地源数据库。
最后,通过研究它的“确认未更改的范围”,之前被发送的“编辑记录”组被取出并判断其有效性。当“编辑记录”组被判断为无效时,这台PC机的操作者将在需要时确认事实和原因并尝试基于最新信息来编辑它们。如果之前输入了记录,那么重新输入这些记录是很容易的。
PC机的操作者需要很明确地了解以下情况:“自己所输入的信息是变得有效还是变得无效”、“在何种情况下信息会变得无效”。上述信息是非常重要的,因为“在并行数据库访问模式下进行了离线的编辑时,不能立即获得对于编辑是否有效的响应”。上述响应是在下一个同步操作进行之时才变得清楚。“即使当信息变为无效时,由于所有的‘编辑记录’组还保存在这台PC机中,所有信息仍然可以在PC机中被浏览”。“判断有效性的程序方法”和“本地源数据库的更新情况”可以在这台PC机中被浏览。由上,我们可以决定是否需要将信息重新输入或放弃该信息。
以下是详细列举了本发明的要点。
(更新1)每一台PC机按顺序接收(尚未接收到的)“编辑记录”组。
(更新2)接收到的“编辑记录”组基于它们指定的顺序而被取出,并用于更新本地源数据库。
(编辑1)每一台PC更新本地源数据库,一组更新的“编辑记录”将被发送给服务器。
(前提1)每台PC机中初始“本地源数据库”的内容是相同的。
(前提2)每台PC机用于更新本地源数据库的“编辑记录”是相同的。
(前提3)指定给每台PC机用于更新本地源数据库的“编辑记录”组的顺序是相同的。
(前提4)每台PC机使用相同的逻辑方法来更新本地源数据库。
上述说明并未解释对全局源数据库的更新。即使全局源数据库是作为一个初始本地源数据库而存在,这也是毫无问题的。如果通过PC机的一个程序方法可以创建初始数据库,服务器则不需要去初始化它。每台PC机的每一个本地源数据库互相同步。因此,我们可以说每一个本地源数据库与虚拟(不存在的)全局源数据库进行同步。当然,全局源数据库可以是实际存在的数据库。全局源数据库可以通过编辑信息来进行更新。如果某台PC机的本地源数据库被破坏了,这台PC机可以从全局源数据库或从其他任一台PC机的本地源数据库拷贝副本。到那时,我们也可以根据初始的全局源数据库和所有“编辑记录”来重建最新的本地源数据库。
(实质在线操作)
本发明既没有具体说明判断“编辑记录”有效性的准则,也没有指出更新“本地源数据库”的具体过程。然而,可以很容易的得出如下判断结论:基于旧数据所进行的编辑是无效的。为了降低对PC机中所进行编辑操作被判定为无效的可能性,这台PC机将执行如下操作:
PC机在开始编辑工作之前,接收最新的“编辑记录”;接下来,PC机更新本地源数据库,编辑最新的本地源数据库;最后,PC机在上述编辑操作完成之后,立即将“编辑记录”发送。
如果本地源数据库被频繁地更新,那么它将保持在最新的状态。该数据库可以被称为“实质在线操作”。
(实质离线操作)
假设编辑的信息被认为很少出现争用的情况。即使从“通过(更新1)和(更新2)更新本地源数据库”到“发送通过(编辑1)所执行的编辑”的时间非常长,“编辑操作被判断为无效”的可能性是很小的。例如,当某个公司的每一个部门输入收入传票的过程中,只有发现输入或操作错误时,这些记录将会被更改。大部分的更改是在输入这些记录的PC机上进行的。在那样的情况下,(具有从“更新”到“发送记录的编辑内容”之间长时间段的)实质离线操作很少会出现问题。即使在不能连接到因特网的时候,仍然可以慢慢地输入收入传票。用户具有足够的时间来集中地发送这些记录,这很接近于我们的解决方案和研究方案。
(改进1)扩展了“编辑记录”的内容
“编辑记录”可以包括之前所提到的总的“编辑内容”和“编辑版本”,进一步地,“编辑记录”还可以包括“版本控制的范围”和“确认未更改的范围”,这将在后面详细说明。当将版本设置给数据库的(一个或多个)部分时,需要指出“被处理的版本”和“与该版本相关的部分”。“版本控制范围”表明了上述内容。
假如“编辑记录”包括了总的编辑内容,且进一步包括了“编辑版本”、“版本控制的范围”和“确认未更改的范围”,那么可以采用一个简单的方法来处理它们。然而,上述内容并没有要求必须包含在“编辑记录”中。当它们被分开记录时,上述内容之间的关联关系可以通过其他PC机来获取。
(改进2)“确认未更改的范围”的介绍
“确认未更改的范围”是指影响这个记录的一个范围。假如这个范围中的信息已经被更改,这意味着“该编辑变得没有意义”。基于数据库处理的信息,特别是基于作为编辑目标的信息特征,“确认未更改的范围”可能会有不同的设置。我们很容易想到,“确认未更改的范围”包括有编辑的目标。对于关联数据库(下文称为“RDB”)来说,假设目标表被编辑,在逻辑上与该目标表关联的表将被编辑,这些表当中会包括有数据库的一些记录或整个数据库。
(改进3)“编辑记录”和指定顺序的运用
我们并没有规定:“编辑记录”和指定给每组“编辑记录”的一个顺序应该是它们被发送时所具有的初始内容。如果所有的PC机使用“编辑记录”组和指定给它们的相同顺序,每台(应用这些“编辑记录”的)本地源数据库使用共同的基准来相互进行同步,该基准就是指定给“编辑记录”组的顺序。
执行管理任务的服务器或PC机分析“编辑记录”和删除“由于错误所撤销的部分”或删除“根本没有执行任何操作的冗余”。即使整个“编辑记录”组都被删除错误部分或冗余部分而被删除,那也是没有问题的。我们假设(指定给“编辑记录”组的)顺序是可以更改的。如果在所有PC机上(应用这些组来更新每一个本地源数据库)的顺序是相同的,每台PC机的本地源数据库基于共同的基准来相互进行同步,该基准也就是指定给“编辑记录”组的顺序。
对于指定一个版本且通过编辑操作来进行管理的一个单元应该是实际存在的数据库,这并不是必须的。如果“版本控制的范围”被设置给一个(对于更新影响最相关的)部分且版本被指定给每一个部分,那么对于编辑操作和版本传输的管理可以很容易地进行。
“版本控制的范围”的建立是基于数据库处理信息的结构和内容,并且需要对于它们的知识和了解。对于“RDB”来说,假设存在多个记录、多个表以及与某个表逻辑关联的一组表,上述内容中包括有一些指定的记录或整个数据库。
通过读取作为“版本控制的范围”的数据库,上述说明中所介绍的方法是可行的。如果“编辑内容”、“编辑版本”、“确认未更改的范围”被记录给相关的每一个“版本控制的范围”,这是完全足够的。
对于涉及医疗方面信息的数据库,存放于数据库中有关医疗信息的一块独立医疗记录可以是“版本控制的范围”。如果表的一行或几行是针对某个个体的信息,一个版本将被创建并设置给上述信息。数据库包含了许多组个人的信息。一个版本将创建给它们中的每一个。“编辑记录”可以包括单个或多组的“编辑内容”、“编辑版本”和“确认未更改的范围”。每一组与每一个体之间相互关联。“确认未更改的范围”可以根据更新的内容来恰当地创建。例如,“确认未更改的范围”可以创建给一个个体的所有记录或创建给一条更新的信息(即当数据库是关联数据库时的一条记录)。如果每一个表是由个体信息所构成的,版本可以针对每一个表来创建。
上述方法可以用来管理个体的信息,不仅可以是有关医疗方面的信息,而且还可以是社会福利、银行账户、贷款等等方面的信息。它还可以用来对可被多个部门所编辑的犯罪信息进行管理。它对于处理独立的个体信息是很有用的,例如:“常住人口登记的高级管理系统”,该系统中常住居民可以编辑属于他们自己的一部分数据。本地源数据库可以只针对每台PC机授权的个人信息限制部分而创建,如同我们在之后的“(改进8)本地源数据库的范围限制”中所解释的。并且,只有在授权范围内的信息才会被发送给每台PC机。因此,不需要担心出现绕过授权机构的黑客信息。
当一些集中在服务器的“编辑记录”组对于(某个操作者的)特定PC机而言不是必须的时候,本地源数据库只与全局源数据库的一部分进行同步就足够了。实现上述同步的一个方法是:在接收到所有“编辑记录”之后,跳过一些不必要的“编辑记录”。如果服务器选择一些对于每台PC机必须使用的“编辑记录”并将它们发送给PC机,通讯量将大大减少。若其中包括了一些不必要的“编辑记录”,那么这些不必要的“编辑记录”会被PC机的程序方法排除在外,这是不会产生问题的。假如(服务器所管理的)“编辑记录”是通过包含在编辑信息中的“版本控制的范围”来进行分类的,那么(应该被发送给PC机的)“编辑记录”的列表可以被快速地判断。
(改进5)设置版本的时序
版本是被创建和设置给整个原始数据库(全局源数据库或本地源数据库)或“版本控制的范围”。可以通过认定信息的特征或根据操作的便利性来选择设置它们的方法。
当本地源数据库的内容在实际上被更新时,一个版本可以被更新。或者是,一旦该源数据库被每一个“编辑记录”试图更新时,一个版本将被更新。上述版本更新的操作并不取决于有效更新的存在。
(改进6)推导:服务器所执行编辑的接收时间可以用作一个版本
服务器所执行编辑的接收时间可以用来作为一个版本。此处所解释的“版本”可以在接收时读取。在这之前,版本可以解释为一个在序列中识别某个顺序的原始编号。由于时间也可以是一个原始编号,因此上述内容也不会出现问题。
(改进7)推导:同步访问服务器的时间可以用作一个版本
从服务器所接收的是在PC机访问服务器和确认是否存在尚未接收到的“编辑记录”的时间。这个时间可以用来作为一个版本。在每一次进行确认时,即使不存在未接收到的“编辑记录”,这个时间被设置为本地源数据库的版本。假如一些辑记录”组还未接收到,PC机将接收它们,更新本地源数据库并把“这个时间”作为本地源数据库的一个版本来创建。由于是通过较新的同步访问来针对本地源数据库的编辑工作设置优先级别,这个规则很容易被由于争用而操作一个数据库的操作者所理解和信服。
如果我们假设本地源数据库与整个(虚拟或实际存在的)全局源数据库进行同步,这是很容易解释的。然而,事实上本地源数据库只是覆盖了全局源数据库的一些部分。尽管不仅医疗方面的信息,而且整个数据库通常非常庞大,正如我们在“(改进4)版本控制的范围的介绍”中所说明的,数据库是一个个人信息的集合。某位病人计算机的本地源数据库应该只有这位病人的信息。某位医生计算机的本地源数据库中应该只有该医生所管辖病人的信息。也就是说,本地源数据库完全没有必要与整个全局源数据库进行同步。本地源数据库针对该PC机所必须的内容进行部分同步就足够了。因此,本地源数据库变小且(根据最新信息所保持的内容来进行的)同步操作变得容易很多。
(改进9)为“编辑记录”组指定顺序的变化
下面介绍管理顺序的服务器(或PC机)。创建一组“编辑记录”的PC机向该服务器询问顺序并把设置的顺序写入到该组中。即使“编辑记录”组在PC机中是直接进行交换,包含(写入)在这些组中的顺序是唯一的。与顺序相反的是,时间也被写入这个“编辑记录”组中。需要做的是一个包含有管理时间的PC机、支持在多台PC机中具有不同时间的计划。
(改进10)编辑操作的临时禁止
如果不能由其他计算机进行并行编辑工作,例如:在数据库的数据结构被更改的情况下,那么临时禁止其他编辑操作将会给当前编辑操作带来便利。为了进一步详细解释,我们假设有如下情况:存在一个记录(X),(对于该记录)的并行编辑操作是禁止的。也就是说,由其他PC机所进行的由“开始编辑(X)”到“完成该编辑(X)后发送给服务器”的编辑工作将被禁止。在X被发送后,并行编辑操作的禁止会被取消,通过接收“编辑记录(X)”,更新对于本地源数据库的编辑操作。
一个方法是在禁止阶段(由服务器)撤销发送的编辑操作。这是一个正面的方法,通过这个方法,编辑X可以被充分使用且不会发生不一致的情况。不过,被撤销的创建编辑的工作变为无效。
另一个方法是通知禁止阶段。编辑X的PC机可以直接告知其他PC机,或者能够告知其他PC机的服务器。
在执行编辑X之前 ,请求对服务器的“最新编辑记录”之时,执行编辑X操作的PC机通知其他PC机对服务器编辑操作的禁止命令。之后,服务器通知对请求上述“最新编辑记录”的其他PC机的“编辑禁止”;或者,服务器将对于未接收“编辑记录”等等的查询响应一并通知其他PC机。
在接收来自服务器的编辑禁止通知后,尽管PC机可以更新本地源数据库,然而该PC机并不执行编辑工作。接着,PC机向服务器请求最新的“编辑记录”,并接收“编辑记录”组到X。PC机通过“编辑记录X”来更新本地源数据库。之后,这台PC机才开始执行编辑工作。
与原始提交权利要求的相关部分
下面是本说明书中的“并行编辑”的说明。“PC机在其中保存和编辑一个本地源数据库”。这个本地源数据库(直观称呼为“复制数据库”)是部分或全部(虚拟或已存在的)全局源数据库(直观称呼为“原始数据库”)的一个拷贝。对于保存在每台PC机中复制数据库的编辑信息在PC机之间进行交换。每一台PC机更新每一个复制数据库。由于每台PC机使用相同的编辑信息、应用相同顺序和更新每一个复制数据库,因此,每台PC机的复制数据库相互之间进行同步操作。权利要求1表示了上述内容,权利要求2表述了作为一个设备来描述的权利要求1的内容。
在权利要求3中,在权利要求1的步骤D中添加了一个确认“编辑记录”有效性的过程。在权利要求4中,把“确认未更改的范围”概念加入了权利要求3;通过这个概念,“确认编辑记录有效性的过程”将被执行。在权利要求5中,在权利要求3中添加了“复制数据库”的概念;通过这个概念,“确认编辑记录有效性的过程”将被执行。权利要求6阐述了一种情况:一个版本被创建给复制数据库的“部分信息”或复制数据库的“信息的组合”。
在“权利要求7”中,添加了一种机制到权利要求5,通过该机制,即使在有效性被否定时,仍然可以更新复制数据库的版本。“权利要求8”是“权利要求5”加上设置作为复制数据库版本的某个时间的过程;这个时间由服务器写入被发送的“编辑记录”。“权利要求9”是“权利要求5”加上设置作为复制数据库版本的某个时间的过程;这里的时间是PC机访问该服务器的时间,该时间是由服务器给出的。
本发明的有益效果
“通过服务器访问数据库”具有一个问题,也就是,“当不能与服务器进行通信时,不可能对数据进行访问”。在移动通信领域,不可能经常保持通信。对于数据库的操作,这将是一个很大的限制。因而也不可能实现非常重要任务中连续的请求,例如医疗方面活动、财务活动和在巨大灾难发生时的救济行为。
并行数据库编辑解决了这个问题;然而,需要指出的是:基于缓存技术方法中存在的几个问题。
本发明创建(将与虚拟或实际存在的全局数据库进行同步的)本地源数据库来作为固定缓存。(一旦开始对于本地源数据库的编辑等操作之前)在被请求时,本地源数据库将被同步到全局源数据库。这解决了传统方法中对于每一个编辑操作创建一个副本所带来的问题,如:“超负荷”、“缓存有效性判断”等等。
当我们使用传统方法时,很难检测到由一台PC机操作的信息被其他PC机修改的信息。然而,成熟的“并行数据库(访问)编辑”可以很容易地检测到。在操作者仔细检查编辑情况之后,可以采取合适的操作。一种可能是将变得无效的数据重新输入,或者将更新的数据部分地重新输入,或者接受数据变得无效的这个事实。
我们并没有要求:“本地源数据库中保存和同步的对象必须是整个全局源数据库”。只要“对象是(数据库中)对于该台计算机所必须信息的一部分”,那就足够了。如下是有关医疗方面信息的几个例子,一台属于病人的计算机的本地源数据库中只能具有这个病人的信息,一台属于医生的计算机的本地源数据库中只能具有这个医生所管辖病人的信息。因此,采用恰当数量的缓存来解决了传统方法中的问题。
多个过程,例如判断“编辑记录”有效性的过程,以及更新本地源数据库的过程,都是由PC机来执行,而不是由服务器执行。以下列出了这个机制的优点:
(1)接收必须的“编辑记录”组和它们的顺序之后,不需要与该服务器进行通信。这样便使得机器能够快速响应用户的多个顺序操作指令。
(2)更新本地源数据库的过程是在PC机中执行的。这台PC机可以详细研究被一个指定编辑操作所影响的信息(记录)的范围。进一步地,这台PC机还可以响应操作者的请求来显示更详细的信息。
(3)总的来说,在很多情况下,每一台计算机都具有一些没有使用的容量或功能。相对于保存在服务器中被集中载入的过程,这些过程可以被更快的执行。这使得它具有与上述(1)条相互促进的有益效果、能够快速响应用户的操作。
我们可以随意地从“完全在线操作”到“完全离线操作”中进行选择,调整本地源数据库进行更新的间隔时间。经常地更新本地源数据库的“完全在线操作”对于下列情况是有益的:访问中被认为具有大量编辑的信息。如果数据更新是由初始输入原始数据(例如债方票据)的一台计算机所执行,或者假如数据没有被更新,则可以使用“完全离线操作”。即使在本地源数据库的更新间隔被扩展得很大时,这个方法也不会产生问题。如果这些编辑操作被集中发送,且变得接近解决方案或研究方向时,这个方法也不会有问题。
每一台PC机可以根据自己的实际情况来选择“完全离线操作”或“完全在线操作”。这使得在同时存在于所有PC机类型中的混合操作成为可能。这是它的一个优点。
附图说明
[图1] 计算机的总体结构
[图2] 服务器和PC机之间的关联关系
[图3] 发送本地源数据库执行的“编辑记录”到服务器的过程
[图4] 从服务器接收“编辑记录”的过程
[图5] 通过“编辑记录”来更新本地源数据库的过程
[图6] 简化的例子
标记说明
0100 计算机
0102 通信单元
0103 运算单元
0104 主存储单元
0105 主存储单元中的DB(数据库)
0106 第二存储器
0107 输入/输出单元
0108 监控单元
0109 总线
0110 通信网络
0111 第二存储器中的DB(数据库)
0201 PC
0202 通信网络,如因特网
0203 服务器
0204 PC的存储单元
0205 服务器的存储单元
0206 本地源数据库
0207 初始的全局源数据库
0208 编辑记录
0209 临时工作的数据库
0210 “编辑记录”n
0211 “编辑记录”n+1
0212 “编辑记录”m
0213 编辑装置
0215 更新装置
0215 发送装置
0216 接收装置
0217 控制发送和接收的装置
0218 “编辑记录”1
0219 “编辑记录”m
0220 发送装置
0221 接收装置
0222 控制发送和接收的装置
0301 为“记录编辑的内容”预留存储区
0302 在本地源数据库中指定编辑目标信息
0303 指定一个“版本控制的范围”给这个“编辑记录”所属对象,并将其写入到这个“编辑记录”中
0304 获取这个“版本控制的范围”的版本,并将其写入到这个“编辑记录”中
0305 指定与编辑目标信息相关的“确认未改变的范围”,并将其写入到这个“编辑记录”中
0306 把指定编辑目标信息的编辑内容和信息写入到这个“编辑记录”中
0307 创建将(上述)编辑内容应用到本地源数据库而建立的临时工作数据库
0308 发送“编辑记录”到服务器
0401 通知服务器在之前时间所进行的最后“编辑记录”
0402 从服务器接收“之前时间后的编辑记录组”列表
0403 接收编辑记录
0404 将接收的“编辑记录”放入未处理的“编辑记录”列表中
0405 确认它是否处于“未编辑状态”
0501 从未处理的“编辑记录”列表中选择一个“编辑记录”
0502 通过这个“确认未改变的范围”和“编辑版本”,判断这个“编辑记录”对于当前本地源数据库的有效性
0503 更新本地源数据库
0504 更新本地源数据库的版本
0602 PC机A
0603 PC机B
0604 初始数据库
0605 更新PC机A中的本地源数据库
0606 更新PC机B中的本地源数据库
0608 PC机A中记录Z的副本
0609 PC机B中记录Z的副本
0610 从PC机A获得初始的全局源数据库
0611 从PC机B获得初始的全局源数据库
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依据程序指令而工作。因此,计算机被重新配置为由程序方法开发员所需装置的一个集合。
程序方法把(部分或全部)数据库载入到主存储单元0104之后,大多数情况下便可以操纵数据库。在第二存储器0106中的部分(或全部)数据库0111将会作为主存储器0104中的数据库0105来载入。对于这个数据库0105所执行的操作和编辑内容将被写入到第二存储器0106中的数据库0111中。然而在通常情况下,假设数据库是在第二存储器0106中。该数据库和载入到主存储器0104中的数据库0105之间是没有分别的。因此,图2简单地示出了在存储单元0204、0205中的数据库DB。
PC0201接收(放置于服务器0203中的)“编辑记录”组0218、0219,并更新本地源数据库0206。图2中解释了这个情况。PC机0201通过通信网络,例如网络0202,与服务器0203连接。因此,总的来说存在着多台PC机,图2示出了一台PC机。
PC机0201具有保存着本地源数据库0206的存储单元0204。初始的本地源数据库是初始的全局源数据库0207的一个副本。“编辑装置”0213根据操作者的指令来执行编辑操作。此时,本地源数据库0206并没有被直接地编辑。这个编辑的结果是临时的工作数据库0209。同时,“编辑记录”0208将被创建。这个“编辑记录”组中包含了作为设置给本地源数据库一个版本的“编辑版本”。
“发送装置”0215通过通信网络0202把“编辑记录”0208发送给服务器0203。服务器0203的“接收装置”0221接收它们,并把它们添加到“编辑记录”1(0218)和“编辑记录”m(0219)的序列中。“编辑记录”包括“编辑版本”等信息。如果“编辑版本”被发送到服务器(“编辑记录”的一边),那么服务器则记录它们之间的关联关系。
当PC机0201试图更新本地源数据库0206时,PC机首先请求服务器发送尚未接收到的“编辑记录”。在接收到最近“编辑记录”版本的(PC机0201发出的)通知之后,“控制发送和接收的装置”选择在通知版本后的“编辑记录”。接着,“发送装置”0220从服务器发送它们。“控制发送和接收的装置”0217管理由一台PC机所进行的接收操作及发送操作的协作。“控制发送和接收的装置”0222管理一台服务器所进行的接收操作及发送操作的协作。
PC机0201的“接收装置”0216接收记录在存储单元0204中的“编辑记录”n(0210)、“编辑记录”n+1(0211)和“编辑记录”m(0212)。“更新装置”0214按照它们的顺序取出这些记录,评估它们的有效性,更新本地源数据库0206以及更新它们的版本。
图3示出了PC机发送“编辑的记录”(也称为“编辑记录”)到(服务器)本地源数据库的过程。首先,“为‘记录编辑内容’预留存储区”,在本地源数据库中指定编辑目标信息(0302);指定一个“版本控制的范围”给这个“编辑记录”所属对象,并将其写入到这个“编辑记录”中(0303);然后,获取这个“版本控制的范围”的版本,并将其写入到这个“编辑记录”中(0304);指定与编辑目标信息相关的“确认的未改变范围”,并将其写入到这个“编辑记录”中(0305);把“指定编辑目标信息的编辑内容”和“信息”写入到这个“编辑记录”中(0306);然后,创建将(上述)编辑内容应用到本地源数据库而建立的临时工作数据库(0307);发送“编辑记录”到服务器(0308)。
图4示出了从服务器接收“编辑记录”组和“指定给它们的顺序”的过程。首先,通知服务器在之前所进行的最后“编辑记录”(0401);然后从服务器接收之前时间之后的“编辑记录”列表(0402);针对这个列表,接收“编辑记录”(0403);并将接收的“编辑记录”放置到未处理“编辑记录”的列表中(0404);最后,确认它是否处于“未编辑状态”(0405)。即使它处于“未编辑状态”,“更新装置”0214仍然会通过从服务器接收的“编辑记录”来更新(如图5所示)本地源数据库。然而,“编辑装置0213对本地源数据库0206所执行的编辑(和图3中所示的过程)”以及“把编辑记录发送给服务器”的操作不会被激活。
图5示出了“更新装置”0214通过从服务器接收的“编辑记录”来更新本地源数据库的过程。该过程从未处理的“编辑记录”列表中选中一条“编辑记录”(0501),这个“编辑记录”列表中包括“编辑记录”n(0210),“编辑记录”n+1(0211)和“编辑记录”m(0212);通过这个“确认未更改的范围”和“编辑版本”,判断(编辑记录)对于当前本地源数据库的有效性(0502);当其有效时,更新本地源数据库(0503)和更新本地源数据库的版本(0504);接着,对于在未处理“编辑记录”列表中的所有“编辑记录”来重复这些过程。
如果一组“编辑记录”中包含有在服务器接收到它时所具有的“编辑版本”,那么这个组被设置为本地源数据库的版本。如果一个版本是(PC机)向服务器请求验证那些尚未接收到“编辑记录”的存在情况时,这个时间则是通过图4中的过程4获得的。通过图5中的最后一个过程(在结束之前),这个时间被设置为本地源数据库的版本。
图6示出了一个版本转变的例子。图6中的数据库是关系数据库,版本是一个整数。“确认未更改的范围”是一个已被编辑的记录。在这里,每一个记录保存有“记录的版本”,即是对于该记录进行编辑时的“编辑版本”。
PC机A0602和PC机B0603获得(0610)初始的全局源数据库0604作为它们的本地源数据库0605,0606。由于它们是服务器中初始全局源数据库0604的副本,因此它们的基版本是零。接着,编辑1到6被发送。上述发送操作是由除了PC机A0602和PC机B0603外的其他PC机所执行的。在图2中,PC机A0602再次访问服务器,获得最新的编辑及其顺序(0612)。此时,获得编辑1,本地源数据库的版本更改为1。
现在我们假设:“PC机A0602的操作者编辑本地源数据库0605中记录Z0608的副本”(0613);此时,由于本地源数据库0604的基版本是1,被编辑“记录Z0608副本”的“记录的版本”变为1。这组“编辑记录”被发送(0614)并记录为编辑7。此后紧接着,PC机A0602接收在(已接收的)“编辑1”之后被发送的“编辑2到编辑6”。通过(之前已被指定的)“判断编辑的有效性”,PC机A确认之前发送的组变为“编辑7”,并按照它们的顺序检查“直到7的编辑”。这里,假设“编辑7”被判断为有效。本地源数据库0604的基版本被更改为7。
另一方面,PC机B0603从服务器0601获得“编辑1”到“编辑6”(在这个同步操作0617进行时的最新编辑),更新本地源数据库0606并设置6为它的基版本。接着,假设PC机B0603的操作者在编辑“记录Z的副本”0609。此时,“记录Z的副本”0609的“记录的版本”更改为6。上述操作被发送给服务器(0619)并作为记录8记录下来。
并且,“编辑9”被发送。接着,PC机A0602访问服务器0601,并获得在(已经接收的)“编辑7”之后发送的“编辑8和编辑9”(0622)。“编辑8和编辑9”被按它们的顺序提取出来。首先判断这些编辑的有效性,然后更新本地源数据库0608。此处,由于本地源数据库0608被“编辑9”所更新,复制数据库0608的基版本也更改为9。此时,(PC机B0603所编辑的)“记录Z的副本”内容在PC机A0602的本地源数据库0605中变为有效。PC机A0602发现“(之前被PC机A0602编辑的)记录Z0608的副本变为无效”。
工业实用性
目前,多台计算机访问设置在一个服务器中的一个数据库是比较流行的操作。然而,问题是“如果不能访问服务器,那么也不可能进行编辑”。本发明体现了一种对于保存在多台计算机中固定的复制数据库所进行的成熟并行数据库的编辑。它适用于通信经常中断的情况,如移动设备和紧急情况下的任务,例如医疗方面、金融方面的活动以及在重大灾难发生时的救济行为。
Claims (9)
1.一种通过第一设备编辑整个或部分数据库的第一副本的方法,包括:
(a)将对所述第一副本进行编辑的“第一编辑记录”发送到第二设备的过程,
(b)从所述第二设备接收对整个或部分数据库的第二副本所进行的“第二编辑记录”的过程,
(c)顺序执行下述步骤的过程:
按服务器指定给每一编辑记录的顺序获取所述第一编辑记录以及所述第二编辑记录的步骤,及
按照所述顺序通过所述第一编辑记录及所述第二编辑记录来更新所述第一副本的步骤。
2.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A)将针对所述第一副本所进行编辑的“第一编辑记录”发送到第二设备的装置,
(B)从所述第二设备接收针对整个或部分数据库的第二副本所进行的“第二编辑记录”的装置,及
(D)执行以下顺序步骤的装置:
按服务器指定给每一编辑记录的顺序获取所述第一编辑记录以及所述第二编辑记录的步骤,及
按照所述顺序通过所述第一编辑记录及所述第二编辑记录来更新所述第一副本的步骤。
3.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A)将针对所述第一副本所进行编辑的“第一编辑记录”发送到第二设备的装置,
(B)从所述第二设备接收针对整个或部分数据库的第二副本所进行的“第二编辑记录”的装置,及
(C1)顺序执行下述步骤的装置:
按服务器指定给每一编辑记录的顺序获取编辑记录组的步骤,所述编辑记录组为所述第一编辑记录和所述第二编辑记录,
判断所述编辑记录组的有效性的步骤,及
按照所述顺序通过所述有效的编辑记录组来更新所述第一副本的步骤。
4.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A1)如下装置:
根据针对所述第一副本所编辑的“第一编辑记录”,在所述第一编辑记录和表明信息影响范围的“确认未更改的范围”之间设置映射关系,及
发送所述第一编辑记录到第二设备;
(B1)从所述第二设备接收针对整个或部分数据库的第二副本所进行编辑的“第二编辑记录”和与所述第二编辑记录映射的“确认未更改的范围”的装置;
(C2)顺序执行下述步骤的装置:
按服务器指定给每一编辑记录的顺序获取编辑记录组的步骤,所述编辑记录组为所述第一编辑记录与所述第二编辑记录,
通过校对“确认未更改的范围”与所述编辑记录组的映射关系来判断所述编辑记录组的有效性的步骤,
按照所述顺序通过所述有效的编辑记录组来更新数据库的所述第一副本的步骤。
5.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A2)如下装置:
在针对所述第一副本所编辑的“第一编辑记录”和所述第一副本的一个版本之间设置映射关系,及
发送所述“第一编辑记录”到第二设备;
(B2)从第二设备接收针对整个或部分数据库的第二副本所编辑的“第二编辑记录”和映射到所述第二编辑记录的一个版本的装置,
(C3)顺序执行如下步骤的装置:
按照服务器指定给每一编辑记录的顺序获取编辑记录组的步骤,所述编辑记录组为所述第一编辑记录和所述编辑记录,
通过校对映射到所述编辑记录组的版本来判断所述编辑记录组的有效性的步骤,
按照所述顺序通过所述有效编辑记录组来更新所述第一副本,并更新所述第一副本的版本的步骤。
6. 一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A3)如下装置:
在针对所述第一副本所编辑的“第一编辑记录”和指定给所述第一副本的一个版本之间设置映射关系,及
发送所述第一编辑记录到第二设备;
(B2)从第二设备接收针对整个或部分所述数据库第二副本的“第二编辑记录”和映射到所述第二编辑记录的一个版本的装置;
(C3)顺序执行如下步骤的装置:
按照服务器指定给每一编辑记录的顺序获取编辑记录组的步骤,所述编辑记录组为所述第一编辑记录和所述第二编辑记录;
通过校对映射到所述编辑记录组的版本来判断所述编辑记录组的有效性的步骤,
按照所述顺序通过所述有效的编辑记录组来更新所述第一副本,并更新所述第一副本的版本的步骤。
7.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A2)如下装置:
在针对所述第一副本所编辑工作的“第一编辑记录”和设置给所述第一副本的一个版本之间设置映射关系,
发送所述第一编辑记录到第二设备,
(B2)从第二设备接收针对整个或部分数据库第二副本的第二编辑记录和映射到所述第二编辑记录的一个版本的装置,
(C4)顺序执行如下步骤的装置:
按照服务器指定给每一编辑记录的序列号的顺序获取编辑记录组的步骤,所述编辑记录组为所述第一编辑记录与所述第二编辑记录,
通过校对映射到所述编辑记录组的版本来判断所述编辑记录组的有效性的步骤,
更新所述第一副本的版本并按照所述顺序通过所述有效的编辑记录组来更新所述第一副本的步骤。
8.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A2)如下装置:
在针对所述第一副本所编辑工作的“第一编辑记录”和指定给所述第一副本的一个版本之间设置映射关系,
发送所述第一编辑记录到第二设备;
(B3)从第二设备接收针对整个或部分数据库的第二副本的“第二编辑记录”和映射到所述第二编辑记录的日期和时间的装置;
(C5)顺序执行如下步骤的的装置:
按照服务器指定给每一编辑记录的顺序获取所述编辑记录组的步骤,所述编辑记录组为所述第一编辑记录与所述第二编辑记录,
通过校对映射到所述编辑记录组的版本来判断所述编辑记录组的有效性的步骤,及
按照所述顺序通过所述有效的编辑记录组来更新所述第一副本的步骤,及
设置指定给所述第一副本的日期和时间作为版本的步骤。
9.一种编辑整个或部分数据库的第一副本的第一设备,包括:
(A2)如下装置:
在针对所述第一副本所编辑的“第一编辑记录”和指定给所述第一副本的一个版本之间设置映射关系,
发送所述第一编辑记录到第二设备;
(B3)顺序执行如下步骤的装置:
从第二设备接收针对整个或部分所述数据库的第二副本所编辑工作的“第二编辑记录”的步骤,
接收日期和时间的步骤,
(C6)顺序执行如下步骤的装置:
按照服务器指定给每一编辑记录的顺序来获取所述编辑记录组的步骤,所述编辑记录组为所述第一编辑及所述第二编辑记录,
通过校对映射到所述编辑记录组的版本来判断所述编辑记录组的有效性的步骤,
按照所述顺序通过所述有效的编辑记录组来更新所述第一副本的步骤,及
将装置B3接收的日期和时间设置为所述第一副本的版本的步骤。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007150665 | 2007-06-06 | ||
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 | ||
PCT/JP2009/002491 WO2009147847A1 (ja) | 2008-06-04 | 2009-06-03 | データベース並行編集方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102216910A CN102216910A (zh) | 2011-10-12 |
CN102216910B true CN102216910B (zh) | 2014-05-14 |
Family
ID=40093384
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880101010.7A Expired - Fee Related CN101765831B (zh) | 2007-06-06 | 2008-06-04 | 数据库不一致的处理方法 |
CN200980128878.0A Expired - Fee Related CN102216910B (zh) | 2007-06-06 | 2009-06-03 | 并行编辑数据库的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880101010.7A Expired - Fee Related CN101765831B (zh) | 2007-06-06 | 2008-06-04 | 数据库不一致的处理方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US20100198789A1 (zh) |
JP (1) | JP4573277B2 (zh) |
CN (2) | CN101765831B (zh) |
WO (1) | WO2008149552A1 (zh) |
Families Citing this family (19)
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 |
CN101765831B (zh) | 2007-06-06 | 2012-10-17 | 雅典娜电信实验有限公司 | 数据库不一致的处理方法 |
US8782003B1 (en) * | 2011-05-13 | 2014-07-15 | Emc Corporation | Synchronization of storage using log files and snapshots |
US8745003B1 (en) | 2011-05-13 | 2014-06-03 | Emc Corporation | Synchronization of storage using comparisons of fingerprints of blocks |
US8788454B2 (en) * | 2011-08-29 | 2014-07-22 | Red Hat, Inc. | Work optimization |
US8868874B2 (en) * | 2012-02-01 | 2014-10-21 | International Business Machines Corporation | Managing remote data replication |
US9924002B1 (en) | 2012-06-21 | 2018-03-20 | EMC IP Holding Company LLC | Managing stateless processes |
US8635373B1 (en) | 2012-09-22 | 2014-01-21 | Nest Labs, Inc. | Subscription-Notification mechanisms for synchronization of distributed states |
CN103778136A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种跨机房数据库同步方法及系统 |
CN105339906B (zh) | 2013-06-12 | 2018-07-20 | 日本电气株式会社 | 控制对永久存储设备的数据写入的方法 |
US20150178294A1 (en) * | 2013-12-19 | 2015-06-25 | International Business Machines Corporation | Resolving content editing conflicts arising from concurrent drafts |
KR20150101232A (ko) * | 2014-02-26 | 2015-09-03 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치의 동작 방법 |
US10175976B1 (en) * | 2015-07-16 | 2019-01-08 | VCE IP Holding Company LLC | Systems and methods for avoiding version conflict in a shared cloud management tool |
CN107656937B (zh) * | 2016-07-26 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 用于实现读写数据一致性的方法和装置 |
CN111506583A (zh) * | 2019-01-31 | 2020-08-07 | 北京嘀嘀无限科技发展有限公司 | 更新方法、更新装置、服务器、计算机设备和存储介质 |
US10979300B2 (en) * | 2019-06-20 | 2021-04-13 | Kaloom Inc. | Computing device and methods for synchronizing networking information with a topology server |
CN111061747B (zh) * | 2019-12-11 | 2023-08-29 | 金蝶软件(中国)有限公司 | 业务单据数据的更新方法及相关设备 |
CN112434051A (zh) * | 2020-11-03 | 2021-03-02 | 北京思特奇信息技术股份有限公司 | 一种音乐版权数据高效入库的方法及系统 |
CN113468197A (zh) * | 2021-07-21 | 2021-10-01 | 上海星融汽车科技有限公司 | 数据更新方法、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577279A (zh) * | 2003-06-27 | 2005-02-09 | 微软公司 | 从共享文档的上下文中观看和管理协作数据的方法和设备 |
CN1700652A (zh) * | 2005-06-01 | 2005-11-23 | 合肥工业大学 | 一种基于协同模板的协同设计方法 |
CN1971553A (zh) * | 2005-11-22 | 2007-05-30 | 国际商业机器公司 | 用于文档协作编辑的方法和装置 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3422478A1 (de) | 1984-06-16 | 1985-12-19 | Carl Kurt Walther Gmbh & Co Kg, 5600 Wuppertal | Fliehkraft-gleitschleifmaschine |
JPS61134853A (ja) * | 1984-12-05 | 1986-06-21 | Oki Electric Ind Co Ltd | 並列実行制御装置 |
JPS6257070A (ja) * | 1985-09-06 | 1987-03-12 | Hitachi Ltd | デ−タ処理方式 |
JP3020539B2 (ja) | 1990-03-07 | 2000-03-15 | 株式会社日立製作所 | 並列動作型データベース管理方式 |
US5325496A (en) * | 1991-12-24 | 1994-06-28 | Intel Corporation | Selectable pointer validation in a computer system |
JPH05189284A (ja) * | 1992-01-10 | 1993-07-30 | Toshiba Corp | 関係型データベース管理システム |
JPH05204727A (ja) * | 1992-01-27 | 1993-08-13 | Hitachi Ltd | デ−タベ−ス管理方法およびそのシステム |
JPH05233405A (ja) | 1992-02-18 | 1993-09-10 | Hitachi Ltd | データベース変更監視方式 |
JPH0991184A (ja) | 1995-09-25 | 1997-04-04 | Fujitsu Ltd | 図面システム |
US5890176A (en) * | 1996-04-24 | 1999-03-30 | International Business Machines Corp. | Object-oriented document version tracking method and apparatus |
US5781910A (en) | 1996-09-13 | 1998-07-14 | Stratus Computer, Inc. | Preforming concurrent transactions in a replicated database environment |
US5870765A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | Database synchronizer |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
JP3196925B2 (ja) * | 1997-01-13 | 2001-08-06 | 日本電気株式会社 | 関係データベース遅延制約チェック方式 |
JPH113368A (ja) | 1997-06-11 | 1999-01-06 | Nippon Telegr & Teleph Corp <Ntt> | 分散環境におけるスケジュールデータ管理方法及びシステム及びスケジュールデータ管理プログラムを格納した記憶媒体 |
JP3563591B2 (ja) | 1997-09-29 | 2004-09-08 | 株式会社リコー | 分散型データベースシステムの一貫性管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP3534596B2 (ja) | 1997-12-05 | 2004-06-07 | 富士通株式会社 | インテリジェントネットワーク内のデータベースの同期方法と装置 |
US6151606A (en) * | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
JP4187302B2 (ja) | 1998-03-25 | 2008-11-26 | 富士通株式会社 | リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体 |
JP2000020370A (ja) | 1998-06-29 | 2000-01-21 | Sharp Corp | データ同期処理装置 |
JP4689137B2 (ja) | 2001-08-08 | 2011-05-25 | 株式会社日立製作所 | リモートコピー制御方法、及びストレージシステム |
JP2000132603A (ja) | 1998-10-27 | 2000-05-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散環境におけるスケジュールデータ管理方法および装置とスケジュールデータ管理プログラムを記録した記録媒体 |
US6343299B1 (en) * | 1998-11-16 | 2002-01-29 | International Business Machines Corporation | Method and apparatus for random update synchronization among multiple computing devices |
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 | データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2000339211A (ja) | 1999-05-25 | 2000-12-08 | Casio Comput Co Ltd | ファイル処理装置、ファイル処理システム、及び記憶媒体 |
US6952741B1 (en) * | 1999-06-30 | 2005-10-04 | Computer Sciences Corporation | System and method for synchronizing copies of data in a computer system |
US6701345B1 (en) * | 2000-04-13 | 2004-03-02 | Accenture Llp | Providing a notification when a plurality of users are altering similar data in a health care solution environment |
US6598059B1 (en) * | 2000-04-22 | 2003-07-22 | Oracle Corp. | System and method of identifying and resolving conflicts among versions of a database table |
JP2002032248A (ja) * | 2000-07-19 | 2002-01-31 | Ricoh Co Ltd | データベース問合せ処理におけるトランザクションの版の提供システム及び該システムにより提供された版を用いたデータベース問合せ処理システム |
US6529917B1 (en) * | 2000-08-14 | 2003-03-04 | Divine Technology Ventures | System and method of synchronizing replicated data |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
US6892210B1 (en) * | 2000-12-29 | 2005-05-10 | Worldsync, Inc. | Database management and synchronization across a peer-to-peer network |
JP4137391B2 (ja) | 2001-02-19 | 2008-08-20 | 株式会社リコー | データ管理装置、方法、プログラム、及び記録媒体 |
US7177866B2 (en) * | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
US7062503B1 (en) * | 2001-08-28 | 2006-06-13 | Emc Corporation | Shuttle-based mechanism for numbering concurrent chains of independent data transfers |
US6874001B2 (en) * | 2001-10-05 | 2005-03-29 | International Business Machines Corporation | Method of maintaining data consistency in a loose transaction model |
US7149761B2 (en) * | 2001-11-13 | 2006-12-12 | Tadpole Technology Plc | System and method for managing the synchronization of replicated version-managed databases |
JP4279499B2 (ja) | 2002-03-01 | 2009-06-17 | シャープ株式会社 | 情報処理装置 |
US7058664B1 (en) * | 2002-04-29 | 2006-06-06 | Sprint Communications Company L.P. | Method and system for data recovery |
JP2004013367A (ja) * | 2002-06-05 | 2004-01-15 | Hitachi Ltd | データ記憶サブシステム |
JP2004013867A (ja) | 2002-06-12 | 2004-01-15 | Nec Corp | 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム |
US9052944B2 (en) | 2002-07-16 | 2015-06-09 | Oracle America, Inc. | Obstruction-free data structures and mechanisms with separable and/or substitutable contention management mechanisms |
JP2004086800A (ja) | 2002-08-29 | 2004-03-18 | Mitsubishi Electric Corp | データ同期システムおよびデータ同期方法 |
US7315862B1 (en) | 2002-12-20 | 2008-01-01 | Nortel Networks Limited | Concurrent lock-free access to a record by write and read processes |
TW200419413A (en) * | 2003-01-13 | 2004-10-01 | I2 Technologies Inc | Master data management system for centrally managing core reference data associated with an enterprise |
US7415467B2 (en) * | 2003-03-06 | 2008-08-19 | Ixion, Inc. | Database replication system |
US7308448B1 (en) * | 2003-03-21 | 2007-12-11 | Sun Microsystems, Inc | Method and apparatus for implementing a lock-free skip list that supports concurrent accesses |
US20040215601A1 (en) * | 2003-04-23 | 2004-10-28 | Win-Harn Liu | Method of file management using a computer |
US7966301B2 (en) * | 2003-05-09 | 2011-06-21 | Planeteye Company Ulc | System and method for employing a grid index for location and precision encoding |
JP2005056281A (ja) * | 2003-08-06 | 2005-03-03 | Konica Minolta Medical & Graphic Inc | 作業管理システム |
JP4247975B2 (ja) | 2003-08-20 | 2009-04-02 | 日本電信電話株式会社 | データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体 |
JP4189332B2 (ja) | 2004-01-30 | 2008-12-03 | 株式会社東芝 | データベース管理システム、データベース管理方法、データベース登録要求プログラムおよびデータベース管理プログラム |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
FR2879056B1 (fr) * | 2004-12-07 | 2007-04-20 | Thales Sa | Procede de duplication d'une base de donnees dans un reseau de machines et systeme de machines a base de donnees dupliquee |
US7761410B2 (en) | 2005-09-30 | 2010-07-20 | Medcom Solutions, Inc. | System and method for reviewing and implementing requested updates to a primary database |
JP2007179105A (ja) | 2005-12-26 | 2007-07-12 | World Planning:Kk | 共有データベースの制御システム及び共有データベースの制御方法並びにコンピュータプログラム |
US7792792B2 (en) | 2006-05-22 | 2010-09-07 | Microsoft Corporation | Synchronizing structured web site contents |
US7769727B2 (en) * | 2006-05-31 | 2010-08-03 | Microsoft Corporation | Resolving update-delete conflicts |
CN100549949C (zh) * | 2006-07-21 | 2009-10-14 | 石自力 | 一种计算机应用系统的设计系统 |
US20080059469A1 (en) * | 2006-08-31 | 2008-03-06 | International Business Machines Corporation | Replication Token Based Synchronization |
US8570919B2 (en) * | 2007-05-14 | 2013-10-29 | Nec Corporation | Half-duplex communication system, half-duplex communication device, communication content confirmation method, and its program |
CN101765831B (zh) | 2007-06-06 | 2012-10-17 | 雅典娜电信实验有限公司 | 数据库不一致的处理方法 |
US7664779B1 (en) | 2007-06-29 | 2010-02-16 | Emc Corporation | Processing of a generalized directed object graph for storage in a relational database |
JP4923140B2 (ja) | 2008-06-04 | 2012-04-25 | 株式会社アテナテレコムラボ | データベース並行編集方式 |
JP4855538B2 (ja) | 2008-06-04 | 2012-01-18 | 株式会社アテナテレコムラボ | データベースのデータ項目の平行編集方式 |
JP4855537B2 (ja) | 2008-06-04 | 2012-01-18 | 株式会社アテナテレコムラボ | データベース並行編集方式 |
JP5543918B2 (ja) | 2008-06-04 | 2014-07-09 | 株式会社アテナテレコムラボ | データベース並行編集の競合解消方式 |
-
2008
- 2008-06-04 CN CN200880101010.7A patent/CN101765831B/zh not_active Expired - Fee Related
- 2008-06-04 US US12/601,005 patent/US20100198789A1/en not_active Abandoned
- 2008-06-04 WO PCT/JP2008/001424 patent/WO2008149552A1/ja active Application Filing
- 2008-06-04 JP JP2009517725A patent/JP4573277B2/ja not_active Expired - Fee Related
-
2009
- 2009-06-03 CN CN200980128878.0A patent/CN102216910B/zh not_active Expired - Fee Related
- 2009-06-03 US US12/864,872 patent/US20110082833A1/en not_active Abandoned
- 2009-06-03 US US12/995,158 patent/US9678996B2/en active Active
- 2009-06-03 US US12/743,367 patent/US20110161292A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577279A (zh) * | 2003-06-27 | 2005-02-09 | 微软公司 | 从共享文档的上下文中观看和管理协作数据的方法和设备 |
CN1700652A (zh) * | 2005-06-01 | 2005-11-23 | 合肥工业大学 | 一种基于协同模板的协同设计方法 |
CN1971553A (zh) * | 2005-11-22 | 2007-05-30 | 国际商业机器公司 | 用于文档协作编辑的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2008149552A1 (ja) | 2008-12-11 |
US20110161292A1 (en) | 2011-06-30 |
JPWO2008149552A1 (ja) | 2010-08-19 |
CN101765831B (zh) | 2012-10-17 |
US9678996B2 (en) | 2017-06-13 |
CN102216910A (zh) | 2011-10-12 |
US20110082833A1 (en) | 2011-04-07 |
US20130226886A1 (en) | 2013-08-29 |
JP4573277B2 (ja) | 2010-11-04 |
CN101765831A (zh) | 2010-06-30 |
US20100198789A1 (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102216910B (zh) | 并行编辑数据库的方法 | |
CN101542457B (zh) | 事务变换 | |
CN101046821B (zh) | 通用数据库操纵器 | |
CN101495976B (zh) | 用于直接更新软件事务存储器的方法和系统 | |
CN100422949C (zh) | 用于拷贝存储内容的方法和系统 | |
US7346667B2 (en) | System for delivering dynamic content | |
CN101689259A (zh) | 旧有应用的移植 | |
EP2610762A1 (en) | Database version management system | |
US20090300649A1 (en) | Sharing An Object Among Multiple Applications | |
FI111195B (fi) | Älykäs transaktio | |
WO2009147846A1 (ja) | データベース並行編集の競合解消方式 | |
US20030005409A1 (en) | System and method for modifying software without halting its execution | |
CN104765645B (zh) | 面向服务体系结构中合并传统计算机系统的方法和系统 | |
US20170177647A1 (en) | Parallel database editing | |
JP5543918B2 (ja) | データベース並行編集の競合解消方式 | |
JPH0844670A (ja) | ファイル管理方法およびそれを用いた計算機システムならびにその計算機システムの運用方法 | |
JP4923140B2 (ja) | データベース並行編集方式 | |
Eder et al. | Synchronizing copies of external data in workflow management systems | |
EP1231550B1 (en) | Real time transaction processing | |
Goel et al. | Early Design Mechanism for Upgrading Smart Contract Business Processes | |
CN111897567A (zh) | 代码版本管理方法和装置 | |
PLANS | MAINTAIN AND EXPAND THE HEALTHCARE COST AND UTILIZATION PROJECT (HCUP) Contract No. HHSA-290-2006-00009-C | |
JPH08320782A (ja) | ソフトウェア生産物の管理装置 | |
CN117976159A (zh) | 一种并行融合的drg分析方法及相应系统 | |
US20130179652A1 (en) | Support for synchronization of data edited in parallel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140514 Termination date: 20180603 |