CN104216731A - 实时更新 - Google Patents
实时更新 Download PDFInfo
- Publication number
- CN104216731A CN104216731A CN201410210348.3A CN201410210348A CN104216731A CN 104216731 A CN104216731 A CN 104216731A CN 201410210348 A CN201410210348 A CN 201410210348A CN 104216731 A CN104216731 A CN 104216731A
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- change
- computing system
- migration
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 140
- 238000013508 migration Methods 0.000 claims abstract description 37
- 230000005012 migration Effects 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000008859 change Effects 0.000 claims description 85
- 238000006243 chemical reaction Methods 0.000 claims description 49
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 41
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 7
- 230000010076 replication Effects 0.000 description 5
- 238000011960 computer-aided design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000013509 system migration Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 244000287680 Garcinia dulcis Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种对实时计算机系统进行更新的方法及对应的系统。方法开始于:在第一时间,将数据的副本从第一系统迁移到通信地耦合的第二系统。接下来,在一个或多个随后的时间,将变化的数据的副本从第一系统迁移到第二系统直到达到阈值。最后,响应于达到阈值,将剩余的变化的数据的副本从第一系统迁移到第二系统。方法的又一个实施例包括:在第一时间迁移数据期间,禁用对第一系统的访问;在迁移变化的数据的副本期间,在一个或多个随后的时间,启用并保持对第一系统的访问;以及,在迁移剩余的变化的数据的副本期间,禁用对第一系统的访问。以这种方式,正在被更新的系统贯穿更新过程仍然是高度可用的。
Description
背景技术
概括地说,本发明涉及计算机程序和系统领域,更具体地说,本发明涉及执行系统更新的领域。
计算机程序和系统的出现极大地改变了商业进行的方式。已经开发出了许多高级和复杂的计算机系统来辅助商业和顾客。然而,这些系统并不保持停滞,并且这些系统通常需要更新。
发明内容
根据本发明的实施例,一种方法和相应的系统关注于更新计算机系统。本发明的实施例开始于:在第一时间将数据的副本从第一计算(数据处理)系统迁移到通信地耦合的第二计算(数据处理)系统。在该初始迁移之后,在一个或多个随后的时间将变化的数据的副本从第一系统迁移到第二系统,直到达到阈值。响应于达到阈值,将剩余的变化的数据的副本从第一系统迁移到第二系统。
本发明的实施例还可以包括:以未转换的方式将迁移的数据的子集写入第二系统。换句话说,数据是以不需要转换的方式写入的。本发明的又一个实施例包括:以允许与第二系统通信的方式来安装一个或多个应用。这样的实施例还可以包括:使用由一个或多个安装的应用提供的一个或多个各自处理程序转换迁移的数据的子集,并且将转换的数据写入第二系统。根据本发明的替代实施例,处理程序可以使用数据库来跟踪数据转换。
在本发明的实施例中,在第一时间迁移数据的副本期间,禁用对第一系统的访问。此外,在这样的实施例中,当变化的数据的副本正被从第一系统迁移到第二系统时,在一个或多个随后的时间,启用并保持对第一系统的访问。更进一步地,在剩余的变化的数据的副本从第一系统迁移到第二系统期间,可以禁用对第一系统的访问。
根据本发明的实施例,第一系统和第二系统可以单向通信地耦合,从而使得第一系统无法看到第二系统。本发明的实施例还可以包括:响应于达到阈值,在将剩余的变化的数据的副本从第一系统迁移到第二系统之后,将一个或多个客户端指向第二系统。在本发明的又一个实施例中,在剩余的变化的数据的副本从第一系统迁移到第二系统之后,删除第一系统。更进一步地,本发明的实施例可以包括:执行第二系统的内核更新。
根据本发明的实施例,变化的数据是自数据从第一系统迁移到第二系统的先前时间以来改变的数据以及添加到第一系统的数据。在本发明的又一个实施例中,阈值是在第一系统上变化的数据的量。
本发明的又一个实施例关注于一种更新系统。系统可以包括:第一系统、通信地耦合到第一系统的第二系统、以及处理器。在这样的实施例中,处理器可以被配置用来在第一时间将数据的副本从第一系统迁移到第二系统。处理器还可以被配置用来在一个或多个随后的时间迁移变化的数据的副本。该迁移可以进行直到达到阈值。响应于达到阈值,处理器可以被配置用来将剩余的变化的数据的副本从第一系统迁移到第二系统。
在系统的又一个实施例中,处理器被配置用来以未转换的方式写入迁移的数据的子集。根据更新系统的另一个实施例,处理器被配置用来以允许与第二系统通信的方式来安装一个或多个应用。在又一个实施例中,处理器被配置用来使用由一个或多个安装的应用提供的一个或多个各自处理程序转换迁移的数据的子集。在又一个实施例中,处理器还被配置用来将转换的数据写入第二系统。
在更新系统的又一个实施例中,处理器被配置用来在第一时间,在将数据的副本从第一系统迁移到第二系统的同时,禁用对第一系统的访问。处理器还可以被配置用来:当变化的数据的副本被迁移之后,在一个或多个随后的时间,启用并保持对第一系统的访问。更进一步地,根据本发明的实施例,处理器可以被配置用来:当剩余的变化的数据的副本正被从第一系统迁移到第二系统时,禁用对第一系统的访问。
根据更新系统的实施例,变化的数据是自数据从第一系统迁移到第二系统的先前时间以来改变的数据以及添加到第一系统的数据。在本发明的替代实施例中,处理器被配置用来将一个或多个客户端指向第二系统,并且在剩余的变化的数据的副本从第一系统迁移到第二系统之后,删除第一系统。
本发明的又一个实施例关注于用于更新系统的装置,该装置包括:用于在第一时间将数据的副本从第一系统迁移到通信地耦合的第二系统的模块;用于在一个或多个随后的时间迁移变化的数据的副本的模块,变化的数据被从第一系统迁移到第二系统直到达到阈值;以及用于响应于达到阈值将剩余的变化的数据的副本从第一系统迁移到第二系统的模块。
附图说明
如在附图中所示出的,根据下面对本发明的示例实施例的更加具体的描述,前述内容将是显而易见的,其中附图中相似的参考符号表示贯穿不同视图中的相似的部件。附图不一定是按比例的,而是将重点放在示出本发明的实施例。
图1是描绘了根据本发明的原理更新系统的方法的流程图。
图2是描绘了更新系统的方法的流程图。
图3是根据本发明的实施例的更新系统的简化图。
图4是描绘了根据本发明的原理用于更新系统的方法的流程图。
图5是示出根据本发明的实施例转换数据的过程的简化图。
图6是可以用于本发明的实施例的计算机系统的框图。
图7是可以在其中具体实现本发明的实施例的计算机系统的简化图。
具体实施方式
企业计算机/软件系统通常需要更新,以便包括例如进一步的产品特征的事物。然而,执行更新可能需要系统停机时间,因此使消费者无法使用系统。此外,系统停机时间可能会使用户不想更新系统。因此,本发明的实施例解决了更新现有企业软件系统的需求,并且最小化了系统的总体停机时间。除了其它原因之外,最小化由系统更新导致的停机时间也是很重要的,以便满足客户期望和服务水平协议(SLA)。
虽然更新时间可能不同,但它们通常与存储在系统中的数据量相关。因此,随着系统使用的增加以及这样的系统存储更多的数据,更新所需要的停机时间将很可能增加。
本发明的实施例减少了由更新这些系统导致的停机时间。虽然贯穿本申请使用了术语“数据”,但“数据”可以指仅是定义的数据单元的对象。此外,如贯穿本申请所参考的“数据”可以指的是对象的结构。例如,数据可以包括给定的对象可以存储的各种属性。数据(对象)的结构可以一般指的是元数据,即关于数据的数据。在企业系统中,可能存在各种各样的数据结构,并且时常地更新系统可能涉及改变这些数据结构或添加全新的数据结构。使系统更新进一步复杂化的事实是:这些变化可能是以逐客户端为基础进行的,这可能导致需要为每个客户端定制更新过程。
本发明的实施例解决了更新元数据系统的问题。在复杂的元数据系统中,数据彼此之间的关系是由可以从一个版本改变到另一个版本的高度复杂的结构管理的。数据结构复杂度由对复杂的物理和逻辑数据进行建模的需求所指定。这些结构的变化通常是由于不断演变的建模需求和性能考虑。本发明的实施例允许更新这些结构同时最小化系统停机时间。
下面是对本发明的示例实施例的描述。
图1是用于更新基于计算机的系统的方法100的流程图。方法100开始于:在第一时间,将数据的副本从第一系统迁移到通信地耦合的第二系统(102)。第一系统和第二系统可以是本领域已知的任何计算系统或基于计算机的系统(例如企业软件系统)。可以使用本领域已知的任何方法从第一系统复制数据,例如使用由与被配置用来运行更新的处理器运行的操作系统相关联的文件系统提供的“捕捉(snap)”工具。第一系统和第二系统可以以任何各种方式通信地耦合,例如利用超文本传输协议(HTTP)或安全HTTP(HTTPS)协议经由局域网(LAN)或广域网(WAN)连接。
在第一时间迁移数据的副本之后,在一个或多个随后的时间,变化的数据的副本被从第一系统迁移到第二系统,直到达到阈值(104)。例如,根据方法100的实施例,在对数据进行初始复制和迁移之后,该方法继续将正在变化的或者正在被添加到第一系统的数据迁移到第二系统。因为该过程可以在延伸的时间段上发生,因此可能多次发生对变化的数据的迁移。如上所述,对变化的数据的迁移过程继续进行直到达到阈值。
在本发明的实施例中,阈值指的是第一系统上变化的数据的量。可以基于任何数量的因素来设定该阈值,包括变化的数据的历史量。此外,阈值还可以指的是更新过程的经过时间和/或该过程发生的当天时间。例如,如果系统必须在某个时间前更新,那么该过程可以继续直到达到完成更新所必要的时间。此外,以非高峰时段和高峰时段的形式定义阈值是有利的。为了说明,第一系统中的数据的变化有可能是用户的结果,可以假定在非高峰时段期间有利用第一系统的几个用户,因此可能在这些非高峰时间达到阈值。此外,可以将阈值定义为所描述的因素和/或本领域内已知的任何其它考虑的组合。
响应于达到阈值,方法100的下一个步骤为:将剩余的变化的数据的副本从第一系统迁移到第二系统(106)。在迁移剩余的变化的数据(106)之后,来自第一系统的所有数据应该被迁移到第二系统。
图2是描绘了更新系统的方法200的流程图。方法200示出了用于更新实时系统的方法100的实施例的细节。方法200以一系列步骤202开始201。如上面结合图1所描述的,这些步骤202可以体现方法100的步骤102。虽然方法200以最小化停机时间的方式来更新系统,但方法200的实施例确实会对正在更新的系统造成一些停机时间。
方法200开始于禁用对第一系统的访问并且将数据的副本从第一系统迁移到第二系统(202a)。在迁移数据的副本的同时,可以转换该数据的一个或多个子集(202b)。在本发明的实施例中,将仅对需要转换的数据进行转换,对其它数据进行迁移而不进行转换。在对数据进行转换(202b)之后,将转换的数据和未转换的数据写入第二系统(202c)。转换的细节和过程在下文中结合图5来描述。在该时间,启用对第一系统的访问(202c)。方法200的子过程202将第一系统的停机时间限制为第一系统上的数据的初始复制。在初始复制之后,启用对第一系统的访问。因此,在执行系统更新的同时,用户体验的是高度可用的系统。
在迁移、转换、以及将数据从第一系统写入第二系统(202)之后,方法200的下一步是:将变化的数据的副本从第一系统迁移到第二系统,如果必要的话则转换该数据的子集,并且将变化的数据写入第二系统(204)。步骤204发生在步骤202之后的时间。如上所述,因为在步骤202c处,在数据的初始迁移之后启用了对第一系统的访问,所以新的数据有可能添加到第一系统,并且存在于第一系统的数据有可能被改变。第一系统上的数据的这些变化必须反映在第二系统中。因此,在步骤204处,在随后的时间,变化的数据被复制、迁移、在必要的情况下转换、以及写入第二系统。
在将变化的数据复制、迁移、转换、以及写入第二系统(204)之后,方法200中的下一步骤是判定是否满足阈值(205)。阈值是判定过程200在该处应该完成更新的点。可以以本领域已知的任何方式来定义阈值。在方法200的示例实施例中,阈值是在第一系统上变化的数据的量。如果在检查阈值(205)之后判定不满足阈值,那么方法200返回到步骤204,在步骤204处,第一系统上的变化的数据被复制、迁移、转换、以及写入第二系统。复制、迁移、转换、以及写入(204)、以及检查阈值(205)的这种循环继续直到达到阈值。
响应于达到阈值,禁用对第一系统的访问,并且将剩余的变化的数据从第一系统迁移、转换、以及写入至第二系统(206)。此时,第二系统包括第一系统上的最新的数据。在迁移剩余的变化的数据(206)之后,启用访问并将客户端指到第二系统(207),方法200结束(208)。
以这种方式,方法200使用如上的迭代过程通过创建并更新第一系统的镜像来更新第一系统。方法200提供了以有限的停机时间更新系统的方式。如上所述,根据方法200的实施例,仅在初始迁移202、以及迁移剩余的变化的数据的最终阶段期间,禁用对第一系统的访问(206)。
图3是根据本发明的实施例的更新系统320的简化图。更新系统包括处理器326。处理器326被配置用来利用更新系统320的各种部件来执行系统更新。系统320进一步包括应用和开发工具套件(ADK)323。ADK323可以具体实现为硬件、软件、和/或它们的组合,并且可以用作与系统320的应用程序接口(API)。在本发明的实施例中,ADK323由处理器326执行。根据本发明的实施例,ADK323在资产库文件中传递,这些文件是本领域内已知的任何格式,例如Java Archive(JAR)格式。根据系统320的实施例,ADK323允许用户和管理员与系统320交互。如下面将进一步详细解释的,ADK324可以被由系统320和/或耦合到系统320的各种应用325a-n提供的处理程序使用,并且由处理器326执行,以便执行针对待更新系统321的查询。这些查询可以是关于待更新系统321(N系统)上的已变化的数据的查询。
进一步耦合到处理器326的是应用325a-n。任何数量的应用325a-n可以耦合到处理器326。应用325a-n可以由处理器326执行,并对用户可用。示例应用包括计算机辅助设计(CAD)应用、计算机辅助工程(CAE)应用、和/或其它应用建模工具。在本发明的实施例中,应用325a-n提供各种处理程序。如同将在下文中详细描述的,各种处理程序可以由处理器326执行,并且被配置用来转换来自待更新系统321的数据。
耦合到处理器326的应用325a-n和ADK323是更新模块324。更新模块324可以具体实现为硬件、软件、和/或它们的组合。更新模块324可以由处理器326整体或部分执行。在本发明的实施例中,更新模块324被配置用来改变定义管理各种应用程序325a-n的数据模型(模式)的管理定义。这些管理定义指的是应用325a-n的各种模式的数据结构的定义。贯穿本申请,术语模型、模式、以及元数据可以互换使用来指关于数据的数据,即描述如由各种应用325a-n使用的数据的结构的数据。
如本文中所描述的,更新模块324可以被配置用来具体实现方法200、300和/或400。更新模块324可以被配置用来在各个系统级别上执行更新。例如,更新模块324可以执行内核更新,所述内核更新可以包括改变数据库级别的定义,即数据库模式。更新模块324还可以被配置用来执行内核平台级别的改变,这包括改变数据是如何组织的。此外,更新模块324可以改变应用级别定义。应用级别的改变可以很简单,比如向现有对象添加额外数据(例如向类型添加属性),或者它们可以包括改变数据是如何组织的结构。如本文中所描述的,当改变数据的结构时,由各个应用325a-n提供的处理程序可以用于转换来自原始的N系统321的数据,并将其提供给N+1系统322。
更新系统320还包括数据库327,其可以被称为TagDB。数据库327通信地耦合到更新模块324和处理器326。根据本发明的实施例,数据库327由处理器326、更新模块324、应用325a-n、以及应用325a-n提供的各自处理程序使用,以跟踪对来自待更新系统321的数据进行转换的过程。数据库327可以是本领域内已知的任何数据库,并且可以以促进更新待更新系统321的过程的任何方式来构建。例如,在本发明的实施例中,数据库327是“不仅是结构化查询语言”(NoSQL)类型的数据库。
更新系统320还包括初始系统,即,待更新系统321,其贯穿本申请可以被称为“N系统”。待更新系统321包括由应用325a-n使用的、促进用户对应用325a-n的使用和/或由于用户对应用325a-n的使用而产生的各种数据。例如,如果给定的应用325a是CAD应用,那么系统321可以包括定义由用户通过使用应用325a而生成的CAD模型的数据。N系统321会把该数据存储在被称为应用325a的元数据的特定结构中,其由应用325a的特定模式管理。
通信地耦合到系统321的是系统322,其将是所得到的更新的系统。系统321和322通信地耦合到处理器326。系统321和322可以通过使用各种模块(包括更新模块324和ADK模块323)来访问,以便根据本发明的原理来执行系统更新。此外,系统321和322可以单向通信地耦合,从而第一系统321无法看到第二系统322,或者反之亦然。
下文中描述的是示例性使用系统320更新系统321。利用更新系统320对系统321进行更新的示例方法可以以任何数量的初始设置过程开始。一种这样的过程可以包括:禁用待更新系统321上的管理变化。管理变化可以指的是元数据,即描述存储在系统321上的数据的结构的规则。管理变化的能力在贯穿更新过程中可以停止。然而,在贯穿更新过程中,可以仍然允许创建“即时数据”的能力。“即时数据”可以指被改变的和新的数据,但不是由新的数据结构定义的数据,因为在贯穿更新过程中,可以禁用数据结构的变化。
其它初始过程包括:配置N+1系统322以连接回N系统321。该连接可以以本领域已知的任何方式来实现,包括通过使用HTTP(超文本传输协议)和/或HTTPS(安全HTTPS)协议。初始过程还可以包括:将数据从N系统321复制到N+1系统322。可以使用本领域已知的任何方法来复制该数据,包括使用文件系统“捕捉”工具。可以是使用更新系统320对系统321进行更新的方法的一部分的另一个初始过程可以包括在N+1系统322上执行内核更新。
此外,初始过程可以包括:使用应用325a-n的模式更新来安装应用325a-n。这些具有模式更新的应用325a-n可以基于逐个租户的方式来安装。这些模式(元数据)更新指的是数据结构的变化。例如,在建模工具应用的情况下,模式改变可以包括:添加属性或者修改特定数据结构的政策。可以将应用325a-n安装在任何系统或部件上,从而使得应用325a-n是以允许与N+1系统322通信的方式安装的。在示例实施例中,将应用安装在N+1系统中,其具有更新在N+1系统中的元数据定义的效果。在根据需要借助应用325a-n的各自模式更新安装了应用325a-n之后,初始设定过程还可以包括:为需要转换的数据类型配置应用处理程序。配置处理程序可以很简单,比如配置各自处理程序从而使得当处理程序遇到特定的数据结构时,它以特定的方式来转换该数据结构以便符合模式更新。虽然处理程序可以被配置用来转换数据,但可以被称为缺省处理程序的其它处理程序可以被配置用来处理不需要转换的数据。这可以包括:识别不需要转换的数据、促进不需要转换的数据的传送和更新、以及将该数据写入N+1系统322。另一个初始过程可以包括配置数据库327以供更新模块324和由应用325a-n提供的各自处理程序使用。
在一个或多个初始设定过程之后,可以执行更新。如上所述,初始过程包括:复制N系统321上的数据,并且将该数据迁移到N+1系统322。在初始复制之后,可以由处理器326执行的更新模块324和ADK323联合工作以便执行N系统321的更新。以这种方式,当数据被添加到N系统321,以及在N系统321上被改变时,这些数据变化通过使用更新模块324、ADK323、应用325a-n、处理程序、以及处理器326反映在N+1系统322上。
在更新过程的示例实施例中,在更新的第一次迭代中,捕捉到了所有闭包(closure)的初始转换。闭包指的是一组彼此相关的对象,以这种方式,闭包指的是这些对象的范围。贯穿本申请,术语“数据”和“对象”可以互换使用。
在该第一次迭代中,对所有需要转换的数据进行了处理。这涉及ADK323对N系统321的查询以便判定需要转换的所有数据。虽然由于作为初始过程完成了原始复制和迁移,这样的数据已经在N+1系统上,而不是在N+1系统322上访问该数据以便转换需要转换的数据,但由各自应用325a-n提供的处理程序反而删除N+1系统322上的这些未转换的数据,并且访问N系统321上需要转换的数据。然后,该需要转换的数据被迁移、转换,然后被写入N+1系统322。
在更新过程的第一次迭代之后,经由ADK323的更新方法查询N系统321,以便判定自从该系统上次被查询以来已经变化的任何数据。从这一点,仅将在N系统321上已经变化的数据迁移、在必要的情况下转换、并且写入N+1系统322。此外,删除存储在N+1系统322上的需要更新的任何经转换的数据。将N系统321上对应的数据进行迁移、转换、以及写入N+1系统322。与更新在N+1系统322上需要更新的转换的数据相比,由于能够更快地转换、迁移、以及写需要转换的数据,因此这是有利的。在替代实施例中,对N+1系统322上的数据简单地进行更新,而不是删除在N+1系统322上需要更新的转换的数据。
访问N系统321并且更新N+1系统322上的数据以便反映对N系统321上的数据做出的变化的迭代过程继续,直到达到阈值。该阈值可以指的是N系统321上的数据与N+1系统322上的数据之间的差异的量,即增量的大小。此外,阈值还可以是时间期限和/或增量与时间的组合。在达到阈值之后,N系统321上的所有剩余的变化的数据被迁移、在必要的情况下转换、并且写入N+1系统322,该过程完成。
在系统320的另一个实施例中,处理器326被配置用来在初始复制和初始数据迁移期间,禁用对N系统321的访问。此外,处理器326可以被配置用来在初始迁移和复制之后,并且在迁移、转换、以及向N+1系统322写入数据以便反映N系统321上的数据的变化的迭代过程期间,启用并保持对N系统321的访问。更进一步地,处理器326可以被配置用来在响应于达到阈值而发生的对剩余的变化的数据的迁移期间禁用对N系统321的访问。
根据本发明的替代实施例,处理器326还可以被配置用来在更新完成之后将客户端指到N+1系统322。替代实施例还可以包括:在更新完成之后删除N系统321。
此外,在本发明的实施例中,系统321可以由任何数量的租户共享。因此,N系统321的更新可以基于逐个租户的方式来进行。此外,这样的更新过程可以包括:基于逐个租户的方式来安装应用,从而使得每一个应用可以符合各自租户的需求。
图4是描绘了根据本发明的原理用于更新系统的方法400的流程图。方法400开始(431),并且“检查日期”被设置为空(432)。“检查日期”指的是更新过程查询待更新系统的最后时间。如本文中所描述的,方法400的实施例还可以包括:执行任何数量的初始过程,包括借助模式更新来安装应用。在对“检查日期”进行初始化(432)之后,识别比“检查日期”更加新的对象和关系(433)。虽然使用了术语“更加新”,然而更加新可以指的是自从“检查日期”以来被改变的、但不一定是“新”的对象。此外,在判定比“检查日期”更加新的对象/关系之后,“检查日期”被设置为该查询的时间(433)。接下来,调用结合图3描述的来自各自应用(例如应用325a)的处理程序来计算闭包。如上文所描述的,闭包指的是彼此相关的对象的集合。如本文中所描述的,闭包包括如这里结合图5所解释和描述的对象和这些对象之间的关系。计算闭包指的是转换对象从而使得相关对象符合由系统更新造成的模式更新的过程。在调用应用处理程序来计算闭包(434)之后,判定是否已经计算出了闭包(435)。当已经计算出闭包之后,该过程判定是否还有更多要做的(440)。当判定尚未计算出闭包(435)时,首先,删除之前映射的对象和关系(436)。接下来,创建新的对象和关系(437)。在创建了新的对象和关系(437)之后,然后设置关于对象和关系的所有属性(438)。在设置了对象和关系的属性(438)之后,将闭包记录在数据库(例如图3的数据库327)中(439)。
过程400中的下一步是判定是否还有更多要做的(440)。该查询询问是否有更多需要转换的对象。如果存在更多需要转换的对象,那么方法400返回步骤434,并且调用应用处理程序来计算另一个闭包,并且针对需要转换的闭包重复步骤435-439。该过程继续,直到在步骤433中被识别为比“检查日期”更加新的所有对象和关系已经进行了合适的转换和/或迁移到了新的系统。当判定没有更多需要转换和/或迁移的对象时,则在步骤440处判定没有更多要做的了。
当判定没有更多要做(440)时,方法400的下一步骤是判定是否存在小的增量(441)。增量可以指的是与新系统中的对象不同的原始系统中的对象的数量。当需要更新的原始系统中的对象的数量达到某个阈值时,可以认为是小的增量。虽然示出的方法400寻找小的增量(441),但其它指示符也可以单独或者与增量结合使用。例如,方法400的实施例还可以考虑执行更新的当天时间。如本文中所描述的,正在进行更新的系统在初始数据迁移期间以及在最终阶段期间可能是不可用的。因此,例如,在几个人在使用并试图访问待更新系统的情况下,执行涉及时间的最终扫描(sweep)可能是有利的。
如果在步骤441处判定不存在小的增量,那么方法400返回步骤433,在步骤433处,方法400重复上述步骤。在步骤433处,在找到比“检查日期”更加新的对象和关系之后,更新“检查日期”以便反映该最近的查询,并且该方法如上文所述继续进行。如果达到小的增量,则方法结束(442)。在达到小的增量之后,方法400的替代实施例执行一个或多个任务来完成更新。根据这样的实施例,在达到小的增量之后,禁用对正在更新的系统的访问,并且对需要更新的最后的剩余的数据进行迁移、在必要的情况下转换、并且写入N+1系统。其它的实施例可以额外地运行最终验收测试和基线指标过程。例如,在使N+1系统活动之前,可以执行自动和/或手动测试,以便验证N+1系统处于可接受状态。此外,实施例可以将客户端指到系统的N+1实例,并且删除系统的原始实例和用于跟踪数据转换的数据库。
图5是示出根据本发明的实施例的转换数据的过程的简化图。本文中提及的转换有关于处理N系统和N+1系统中的不同的数据结构的需要。有可能N系统中代表的数据是以与N+1系统中的数据不同的方式布局的。该转换可以由被称为处理程序的代码来处理。处理程序可以对转换所需要的变化进行分组,并且产生转换的数据集。
在图5中,闭包555代表待更新的第一系统551中的闭包B。在示出的闭包555中,例如线X、Y以及Z的线指的是关系,而框起来的字母A、B、C以及D指的是对象。在第二系统552中示出了转换B’556。在第二系统552和各自闭包556中,移除中间对象B,并且现在将B的数据存储在关系M中。鉴于该转换,借助条目557来更新标签数据库553以反映变化。在本发明的实施例中,该转换所涉及的对象的分组被称为源闭包,而转换的对象集可以被称为目标闭包。
根据本发明的实施例,例如应用325a-n的应用可以针对需要转换的每一种对象类型注册处理程序。此外,在本发明的实施例中,针对不需要转换的数据类型可以存在缺省的处理程序。缺省的处理程序可以简单地返回包含单个对象的闭包。在另一个实施例中,处理程序针对自从上次迭代以来被修改的任何对象计算闭包。
根据本发明的实施例,多个处理程序可以在具有多种类型的闭包中合作。以这样的合作努力,当闭包中的任何对象发生变化时,每一个处理程序可能会产生相同的结果。例如,如果给定闭包中的X发生了变化,那么各自处理程序将产生B=B,X,Y,Z,并且类似地,如果Y发生了变化,那么另一个各自处理程序将产生B=B,X,Y,Z。当处理程序在合作时,它们可以被配置用来选择并就闭包标识的一致命名惯例达成一致。在本发明的实施例中,闭包标识符保持唯一并且随时间一致。一种这样的可能惯例可以是使用闭包中的中心对象的物理标识符。
当特定的处理程序在计算闭包时,在存储器中判定了对象和关系及它们的各自属性的图形。用于跟踪这样的转换的可能惯例可以是:当重用对象/关系时使用实际的物理标识符(PID),并且当生成新的对象/关系时使用符号名称。
如本文中所描述的,可以由数据库327具体实现的数据库(例如NoSQL数据库)可以被用于记录转换和产生PID。当存储转换时,根据本发明的实施例,转换具有两个部分。标识符(ID),其是由执行更新的各自处理程序选择的稳定的名称;以及PID列表,其是组成转换的实际或符号PID的列表。此外,根据本发明的实施例,可以将时间戳附加到ID以指示用于构建闭包的最近的对象。利用时间戳可以允许即使多个对象发生了变化也只构造一个转换。此外,根据本发明的实施例,如果时间戳早于存储的时间戳,那么可以假定闭包已经被处理。
除了存储转换,本发明的实施例还可以包括存储PID映射。使用存储的PID映射可以促进查找先前的PID以及在必要的情况下删除对应对象。在这样的映射中,当创建新对象时,将记录新的PID。
图6是可以在其中具体实现本发明的实施例的计算机系统601的高级别框图。系统601包含总线615。总线615是系统601的各个部件之间的连接。连接到总线615的是用于将例如键盘、鼠标、显示器、扬声器等的各种输入和输出设备连接到系统601的输入/输出设备接口630。中央处理单元(CPU)605连接到总线615,并提供执行计算机指令。存储器625提供用于执行计算机指令的数据的易失性存储。存储设备620提供软件指令(例如操作系统(OS))的非易失性存储。系统601还包括:用于将系统601连接到本领域已知的任何种类的网络(例如局域网(LAN)和广域网(WAN))的网络接口635。
图7示出了可以在其中具体实现本发明的计算机网络环境770。在计算机网络环境770中,服务器771通过通信网络772链接到客户端773a-n。环境770可以用于允许客户端773a-n单独或与服务器771结合来执行上述方法。此外,在计算机网络环境770的实施例中,客户端773a-n可以经由网络772和/或服务器771来访问更新的系统。
应该理解的是:上述示例实施例可以以多种不同的方式来实现。在某些情况下,本文中描述的各种方法和机器分别可以由物理、虚拟、或混合通用计算机、或计算机网络环境(例如计算机环境770)来实现。
其中的实施例或方面可以以硬件、固件或软件的形式来实现。如果以软件实现,则该软件可以存储在被配置用来使处理器能够装载软件或其指令的子集的任何非暂时性计算机可读介质上。然后,处理器执行这些指令,并且被配置用来操作或促使装置以如本文中所描述的方式操作。
此外,在本文中可以将固件、软件、例程、或指令描述为执行数据处理器的某些动作和/或功能。然而,应该领会的是:本文中包含的这些描述仅为了方便,并且这些动作实际上源自于计算设备、处理器、控制器、或执行固件、软件、例程、指令等的其它设备。
应该理解的是:流程图、框图以及网络图可以包括更多或更少的元件、以不同的方式布置、或者以不同的方式代表。但是,还应该理解的是:某些实现可以指示框图和网络图,并且示出实施例的执行的框图和网络图的数量可以以特定的方式来实现。
因此,还可以在各种计算机体系结构、物理、虚拟、云计算机、和/或其中的某种组合中实现进一步的实施例,并且因此,本文中描述的数据处理器旨在仅出于解释的目的而不是作为对实施例的限制。
虽然已经参考本发明的示例实施例对本发明进行了具体地显示和描述,但本领域技术人员将明白的是:可以在不偏离由所附权利要求书覆盖的本发明的范围的前提下,进行形式和细节上的各种变化。
例如,前文将第一和第二系统描述为基于计算机的、计算、处理、数据处理、以及数据库系统等和/或它们的组合的任何一种。
Claims (20)
1.一种用于更新系统的方法,所述方法包括:
在第一时间,将数据的副本从第一计算系统迁移到通信地耦合的第二计算系统;
在一个或多个随后的时间,迁移变化的数据的副本,所述变化的数据被从所述第一计算系统迁移到所述第二计算系统直到达到阈值;以及
响应于达到所述阈值,将剩余的变化的数据的副本从所述第一计算系统迁移到所述第二计算系统。
2.根据权利要求0所述的方法,还包括:
以未转换的方式将迁移的数据的子集写入所述第二计算系统。
3.根据权利要求0所述的方法,还包括:
以允许与所述第二计算系统通信的方式来安装一个或多个应用。
4.根据权利要求0所述的方法,还包括:
使用由一个或多个安装的应用提供的一个或多个各自处理程序转换所述迁移的数据的子集,并且将转换的数据写入所述第二计算系统。
5.根据权利要求0所述的方法,其中所述一个或多个各自处理程序利用数据库来跟踪转换所述数据。
6.根据权利要求0所述的方法,还包括:
在所述第一时间迁移所述数据的副本期间,禁用对所述第一计算系统的访问;
在迁移所述变化的数据的副本期间,在一个或多个随后的时间,启用并保持对所述第一计算系统的访问;以及
在迁移所述剩余的变化的数据的副本期间,禁用对所述第一计算系统的访问。
7.根据权利要求0所述的方法,其中所述第一计算系统和所述第二计算系统是单向通信地耦合的,其中所述第一计算系统无法看到所述第二计算系统。
8.根据权利要求0所述的方法,还包括:
在将所述剩余的变化的数据的副本从所述第一计算系统迁移到所述第二计算系统之后,将一个或多个客户端指到所述第二计算系统;以及
在将所述剩余的变化的数据的副本从所述第一计算系统迁移到所述第二计算系统之后,删除所述第一计算系统。
9.根据权利要求0所述的方法,还包括:执行所述第二计算系统的内核更新。
10.根据权利要求0所述的方法,其中,所述变化的数据是自数据从所述第一计算系统迁移到所述第二计算系统的先前时间以来改变的数据以及添加到所述第一计算系统的数据。
11.根据权利要求0所述的方法,其中所述阈值是在所述第一计算系统上变化的数据的量。
12.一种计算机更新系统,包括:
第一系统;
通信地耦合到所述第一系统的第二系统;
处理器,其被配置用来:
将数据的副本从所述第一系统迁移到所述第二系统,所述处理器在第一时间迁移所述数据的副本;
在一个或多个随后的时间,迁移变化的数据的副本,所述处理器将所述变化的数据从所述第一系统迁移到所述第二系统直到达到阈值;以及
响应于达到所述阈值,将剩余的变化的数据的副本从所述第一系统迁移到所述第二系统。
13.根据权利要求0所述的更新系统,其中所述处理器还被配置用来:以未转换的方式将迁移的数据的子集写入所述第二系统。
14.根据权利要求0所述的更新系统,其中所述处理器还被配置用来:以允许与所述第二系统通信的方式来安装一个或多个应用。
15.根据权利要求0所述的更新系统,其中所述处理器还被配置用来:
使用由一个或多个安装的应用提供的一个或多个各自处理程序转换所述迁移的数据的子集;并且
将转换的数据写入所述第二系统。
16.根据权利要求0所述的更新系统,其中所述处理器还被配置用来:
在所述第一时间迁移所述数据的副本期间,禁用对所述第一系统的访问;
在迁移所述变化的数据的副本期间,在一个或多个随后的时间,启用并保持对所述第一系统的访问;以及
在迁移所述剩余的变化的数据的副本期间,禁用对所述第一系统的访问。
17.根据权利要求0所述的更新系统,其中所述变化的数据是自数据从所述第一系统迁移到所述第二系统的先前时间以来改变的数据以及添加到所述第一系统的数据。
18.根据权利要求0所述的更新系统,其中所述处理器还被配置用来:
在将所述剩余的变化的数据的副本从所述第一系统迁移到所述第二系统之后,将一个或多个客户端指到所述第二系统;以及
在将所述剩余的变化的数据的副本从所述第一系统迁移到所述第二系统之后,删除所述第一系统。
19.根据权利要求0所述的更新系统,其中所述阈值是在第一系统上变化的数据的量。
20.一种用于更新系统的装置,所述装置包括:
用于在第一时间将数据的副本从第一系统迁移到通信地耦合的第二系统的模块;
用于在一个或多个随后的时间迁移变化的数据的副本的模块,所述变化的数据被从所述第一系统迁移到所述第二系统直到达到阈值;以及
用于响应于达到所述阈值将剩余的变化的数据的副本从所述第一系统迁移到所述第二系统的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/905,719 US9582510B2 (en) | 2013-05-30 | 2013-05-30 | Live Upgrade |
US13/905,719 | 2013-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216731A true CN104216731A (zh) | 2014-12-17 |
CN104216731B CN104216731B (zh) | 2019-12-20 |
Family
ID=50628635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410210348.3A Active CN104216731B (zh) | 2013-05-30 | 2014-05-19 | 实时更新 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9582510B2 (zh) |
EP (1) | EP2808807B1 (zh) |
JP (1) | JP6389648B2 (zh) |
KR (1) | KR20140141467A (zh) |
CN (1) | CN104216731B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610839A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 发布升级包的方法、轻量升级方法、装置及系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9571603B2 (en) * | 2013-09-17 | 2017-02-14 | Cisco Technology, Inc. | Redundancy network protocol system |
US9619490B2 (en) * | 2014-04-11 | 2017-04-11 | Nutanix, Inc. | Mechanism for performing lockless rolling upgrade of NoSQL database |
US10382544B2 (en) | 2016-04-08 | 2019-08-13 | International Business Machines Corporation | Establishing reverse paths between servers in a copy environment |
US10469405B2 (en) * | 2016-06-29 | 2019-11-05 | Amazon Technologies, Inc. | Network-accessible data volume modification |
US10540366B2 (en) | 2017-03-09 | 2020-01-21 | Bank Of America Corporation | Transforming data structures and data objects for migrating data between databases having different schemas |
CN113553090B (zh) * | 2021-07-26 | 2023-07-25 | 网易(杭州)网络有限公司 | 客户端应用程序的更新控制方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650744A (zh) * | 2009-09-16 | 2010-02-17 | 中兴通讯股份有限公司 | 一种基于表空间迁移处理大数据量的系统及方法 |
US20130054530A1 (en) * | 2011-08-29 | 2013-02-28 | Oracle International Corporation | Live file system migration |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310653B2 (en) | 2001-04-02 | 2007-12-18 | Siebel Systems, Inc. | Method, system, and product for maintaining software objects during database upgrade |
TWI242725B (en) * | 2001-06-11 | 2005-11-01 | Oce Tech Bv | A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method |
US20040225658A1 (en) * | 2003-02-13 | 2004-11-11 | Felix Horber | Network-based document management systems |
JP2005266973A (ja) * | 2004-03-16 | 2005-09-29 | Kyowa Exeo Corp | データ移行方法および装置 |
US7587455B2 (en) * | 2004-05-14 | 2009-09-08 | Mirapoint Software, Inc. | Method for mailbox migration |
JP4693540B2 (ja) * | 2005-08-04 | 2011-06-01 | 富士通株式会社 | データベース再構成装置、およびデータベース再構成プログラム |
US8200634B2 (en) * | 2008-10-08 | 2012-06-12 | Sap Ag | Zero downtime maintenance using a mirror approach |
US8505003B2 (en) * | 2010-04-28 | 2013-08-06 | Novell, Inc. | System and method for upgrading kernels in cloud computing environments |
US9275160B2 (en) | 2010-05-20 | 2016-03-01 | Salesforce.Com, Inc. | Performing an upgrade in a multi-tenant database system environment |
US9317314B2 (en) * | 2010-06-29 | 2016-04-19 | Microsoft Techology Licensing, Llc | Techniques for migrating a virtual machine using shared storage |
US8356010B2 (en) | 2010-08-11 | 2013-01-15 | Sap Ag | Online data migration |
US8417737B2 (en) | 2010-10-20 | 2013-04-09 | Microsoft Corporation | Online database availability during upgrade |
US9275368B1 (en) * | 2012-09-25 | 2016-03-01 | Amazon Technologies, Inc. | Annotation mapping |
US8898201B1 (en) * | 2012-11-13 | 2014-11-25 | Sprint Communications Company L.P. | Global data migration between home location registers |
US9692632B2 (en) * | 2012-11-29 | 2017-06-27 | International Business Machines Corporation | Migration to managed clouds |
US8984243B1 (en) * | 2013-02-22 | 2015-03-17 | Amazon Technologies, Inc. | Managing operational parameters for electronic resources |
-
2013
- 2013-05-30 US US13/905,719 patent/US9582510B2/en active Active
-
2014
- 2014-04-29 EP EP14166366.6A patent/EP2808807B1/en active Active
- 2014-05-19 CN CN201410210348.3A patent/CN104216731B/zh active Active
- 2014-05-23 KR KR20140062517A patent/KR20140141467A/ko not_active Application Discontinuation
- 2014-05-29 JP JP2014111474A patent/JP6389648B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650744A (zh) * | 2009-09-16 | 2010-02-17 | 中兴通讯股份有限公司 | 一种基于表空间迁移处理大数据量的系统及方法 |
US20130054530A1 (en) * | 2011-08-29 | 2013-02-28 | Oracle International Corporation | Live file system migration |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610839A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 发布升级包的方法、轻量升级方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104216731B (zh) | 2019-12-20 |
EP2808807B1 (en) | 2020-01-08 |
JP6389648B2 (ja) | 2018-09-12 |
KR20140141467A (ko) | 2014-12-10 |
US20140358854A1 (en) | 2014-12-04 |
EP2808807A1 (en) | 2014-12-03 |
US9582510B2 (en) | 2017-02-28 |
JP2014235749A (ja) | 2014-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216731A (zh) | 实时更新 | |
JP6113693B2 (ja) | Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 | |
US10007674B2 (en) | Data revision control in large-scale data analytic systems | |
KR101053385B1 (ko) | 보안 맞춤형 애플리케이션 클라우드 컴퓨팅 아키텍처 | |
US20060206507A1 (en) | Hierarchal data management | |
Hasani et al. | Lambda architecture for real time big data analytic | |
CN101826029A (zh) | 用于合并虚拟化子层的方法与系统 | |
US20220365911A1 (en) | Data analytic systems | |
CN101546259A (zh) | 支持运行时模型扩展的对象关系映射系统和方法 | |
CN105051681A (zh) | 利用平台层协调应用程序部署 | |
US20160179474A1 (en) | Automated model derivation and alignment | |
Shin et al. | Data jockey: Automatic data management for HPC multi-tiered storage systems | |
US8738569B1 (en) | Systematic verification of database metadata upgrade | |
US20170351509A1 (en) | Prototype management system | |
US9330372B2 (en) | Generating an improved development infrastructure | |
Seybold et al. | Experiences of models@ run-time with EMF and CDO | |
CN102054041A (zh) | 元数据升级方法和系统 | |
US20150149259A1 (en) | Enterprise performance management planning model for an enterprise database | |
CN115956240B (zh) | 基于增量克隆的数据库升级 | |
Reimann et al. | Data patterns to alleviate the design of scientific workflows exemplified by a bone simulation | |
JP4079990B2 (ja) | オブジェクト統合管理システムの生成方法 | |
KR102007610B1 (ko) | 공간자료 분산 버저닝 툴 및 이를 이용하는 공간정보 분산 버전 관리 방법 | |
US20140081679A1 (en) | Release Management System and Method | |
CN117492721B (zh) | 一种应用于建筑数字化信息系统的通用快速开发方法 | |
US20230359547A1 (en) | Targeted Testing for Modular Software Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |