CN108469960B - 一种版本管理方法和装置 - Google Patents
一种版本管理方法和装置 Download PDFInfo
- Publication number
- CN108469960B CN108469960B CN201710631648.2A CN201710631648A CN108469960B CN 108469960 B CN108469960 B CN 108469960B CN 201710631648 A CN201710631648 A CN 201710631648A CN 108469960 B CN108469960 B CN 108469960B
- Authority
- CN
- China
- Prior art keywords
- version
- mode
- upgrading
- degradation
- restart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种版本管理方法和装置,该方法包括:根据版本号比较交付件的当前版本和目标版本;若目标版本高于当前版本,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,根据比较结果确定交付件从当前版本升级到目标版本的升级方式;若目标版本低于当前版本,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,根据比较结果确定交付件从当前版本降级到目标版本的降级方式。通过本申请的技术方案,可以保证升级方式选择的准确性、合理性,可以采用正确的升级方式对堆叠设备进行升级。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种版本管理方法和装置。
背景技术
IRF(Intelligent Resilient Framework,智能弹性架构)堆叠设备可以简称为堆叠设备,是由多台物理设备通过IRF协议所组成的逻辑设备,该堆叠设备中的每个物理设备均可以称为成员设备。其中,堆叠设备通常支持ISSU(In-Service Software Upgrade,不中断业务升级)和ISSD(In-Service Software Degrade,不中断业务降级),即在不中断业务的情况下,完成堆叠设备的升级或者降级。
以升级过程为例,则升级方式包括增量升级、兼容重启升级、不兼容重启升级。其中,增量升级是指:在升级过程中,仅重启受影响的进程,但堆叠设备的所有成员设备均处于正常工作状态,可以保证用户业务不中断。兼容重启升级是指:在升级过程中,依次重启成员设备,在某个成员设备重启后,该成员设备与未重启的成员设备之间的版本兼容,可以保证用户业务不中断。不兼容重启升级是指:在升级过程中,依次重启成员设备,在某个成员设备重启后,该成员设备与未重启的成员设备之间的版本不兼容,无法保证用户业务不中断。
由于升级方式包括增量升级、兼容重启升级、不兼容重启升级,因此,需要从这些升级方式中选择合适的升级方式,但是,在传统方式中,并没有合适的升级方式选择策略,导致无法采用合适的升级方式进行升级处理。同理,也没有合适的降级方式选择策略,导致无法采用合适的降级方式进行降级处理。
发明内容
本申请提供一种版本管理方法,应用于堆叠设备,所述方法包括:
根据版本号比较交付件的当前版本和目标版本;
若目标版本高于当前版本,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,根据比较结果确定交付件从当前版本升级到目标版本的升级方式;
若目标版本低于当前版本,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,根据比较结果确定交付件从当前版本降级到目标版本的降级方式。
本申请提供一种版本管理装置,应用于堆叠设备,所述装置包括:
比较模块,用于根据版本号比较交付件的当前版本和目标版本;
升级管理模块,用于当所述目标版本高于所述当前版本时,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,并根据比较结果确定交付件从当前版本升级到目标版本的升级方式;
降级管理模块,用于当所述目标版本低于所述当前版本时,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,并根据比较结果确定交付件从当前版本降级到目标版本的降级方式。
基于上述技术方案,本申请实施例中,可以选择合适的升级方式,并使用该升级方式进行升级处理,可以保证升级方式选择的准确性、合理性,从而可以采用正确的升级方式进行升级处理。可以选择合适的降级方式,并使用该降级方式进行降级处理,可以保证降级方式选择的准确性、合理性,从而可以采用正确的降级方式进行升级处理。上述升级/降级方式尽可能保证业务不中断。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的版本管理方法的流程图;
图2是本申请一种实施方式中的版本管理装置的结构图;
图3是本申请一种实施方式中的堆叠设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种版本管理方法,该方法可以应用于堆叠设备(如IRF堆叠设备),该版本管理方法用于实现软件版本文件的升级/降级。在升级过程中,升级方式可以包括:增量升级、兼容重启升级、不兼容重启升级。在降级过程中,降级方式可以包括:增量降级、兼容重启降级、不兼容重启降级。
在一个例子中,上述软件版本文件可以包括至少一个交付件,且该软件版本文件中的交付件可以包括但不限于内核模块(ko)、用户态守护进程(daemon)、用户态库文件(library)、用户态插件(plugin)中的一种或者多种。
在一个例子中,为了实现对软件版本文件的升级/降级,则可以先确定软件版本文件中的每个交付件的升级方式/降级方式,然后,可以利用每个交付件的升级方式/降级方式确定软件版本文件的升级方式/降级方式,然后,可以利用软件版本文件的升级方式/降级方式,对软件版本文件进行升级/降级处理。
在一个例子中,交付件的每个版本均对应有版本兼容数据,版本兼容数据可以包括但不限于:当前版本的版本号C,支持增量升级到当前版本的第一最小版本号U1,支持兼容重启升级到当前版本的第二最小版本号U2,当前版本支持增量降级至的第三最小版本号D1,当前版本支持兼容重启降级至的第四最小版本号D2。基于上述版本兼容数据,可以确定出交付件的升级方式/降级方式。
参见图1所示,为交付件的版本管理方法的流程图,该方法用于确定出交付件的升级方式/降级方式,且该方法可以应用于堆叠设备,所述方法包括:
步骤101,根据版本号比较交付件的当前版本和目标版本。其中,若目标版本高于当前版本,则说明需要对交付件进行升级处理,并执行步骤102;若目标版本低于当前版本,则说明需要对交付件进行降级处理,并执行步骤103。
在一个例子中,由于交付件的每个版本均可以对应有版本兼容数据,因此,可以获取到当前版本的版本兼容数据、以及目标版本的版本兼容数据。
在当前版本的版本兼容数据中,可以包括当前版本的版本号C,支持增量升级到当前版本的第一最小版本号U1,支持兼容重启升级到当前版本的第二最小版本号U2,当前版本支持增量降级至的第三最小版本号D1,当前版本支持兼容重启降级至的第四最小版本号D2。此外,在目标版本的版本兼容数据中,可以包括目标版本的版本号C,支持增量升级到目标版本的第一最小版本号U1,支持兼容重启升级到目标版本的第二最小版本号U2,目标版本支持增量降级至的第三最小版本号D1,目标版本支持兼容重启降级至的第四最小版本号D2。
在一个例子中,在获取到上述版本兼容数据之后,若当前版本的版本号C小于目标版本的版本号C,则说明目标版本高于当前版本,需要对交付件进行升级处理,并执行步骤102。若当前版本的版本号C大于目标版本的版本号C,则说明目标版本低于当前版本,需要对交付件进行降级处理,并执行步骤103。
在一个例子中,软件版本文件中可以包括版本兼容数据,因此,堆叠设备可以从软件版本文件中获取到上述版本兼容数据,对此获取过程不做限制。而且,由于软件版本文件可以由多个交付件组成,因此,为了区分不同交付件的版本兼容数据,则软件版本文件中包括的是交付件标识与版本兼容数据的对应关系,基于此,堆叠设备可以通过交付件标识,查询到对应的版本兼容数据。
步骤102,将当前版本的版本号C分别与支持增量升级到目标版本的第一最小版本号U1和支持兼容重启升级到目标版本的第二最小版本号U2进行比较,并根据比较结果确定该交付件从当前版本升级到目标版本的升级方式。
在一个例子中,针对“根据比较结果确定该交付件从当前版本升级到目标版本的升级方式”的过程,可以包括但不限于:若当前版本的版本号C大于等于目标版本对应的第一最小版本号U1,则可以确定交付件从当前版本升级到目标版本的升级方式为增量升级;或者,若当前版本的版本号C小于目标版本对应的第一最小版本号U1,且当前版本的版本号C大于等于目标版本对应的第二最小版本号U2,则可以确定交付件从当前版本升级到目标版本的升级方式为兼容重启升级;或者,若当前版本的版本号C小于目标版本对应的第一最小版本号U1,当前版本的版本号C小于目标版本对应的第二最小版本号U2,则可以确定交付件从当前版本升级到目标版本的升级方式为不兼容重启升级。
例如,上述确定交付件的升级方式的过程,可以通过如下步骤实现:
步骤1、判断当前版本的版本号C是否大于等于目标版本对应的第一最小版本号U1。如果是,则可以执行步骤2;如果否,则可以执行步骤3。
步骤2、确定从当前版本升级到目标版本的升级方式为增量升级。
步骤3、判断当前版本的版本号C是否大于等于目标版本对应的第二最小版本号U2。如果是,则可以执行步骤4;如果否,则可以执行步骤5。
步骤4、确定从当前版本升级到目标版本的升级方式为兼容重启升级。
步骤5、确定从当前版本升级到目标版本的升级方式为不兼容重启升级。
步骤103,将目标版本的版本号C分别与当前版本支持增量降级至的第三最小版本号D1和当前版本支持兼容重启降级至的第四最小版本号D2进行比较,并根据比较结果确定该交付件从当前版本降级到目标版本的降级方式。
在一个例子中,针对“根据比较结果确定该交付件从当前版本降级到目标版本的降级方式”的过程,可以包括但不限于:若目标版本的版本号C大于等于当前版本对应的第三最小版本号D1,则可以确定交付件从当前版本降级到目标版本的降级方式为增量降级;或者,若目标版本的版本号C小于当前版本对应的第三最小版本号D1,且目标版本的版本号C大于等于当前版本对应的第四最小版本号D2,则可以确定交付件从当前版本降级到目标版本的降级方式为兼容重启降级;或者,若目标版本的版本号C小于当前版本对应的第三最小版本号D1,目标版本的版本号C小于当前版本对应的第四最小版本号D2,则可以确定交付件从当前版本降级到目标版本的降级方式为不兼容重启降级。
例如,上述确定交付件的降级方式的过程,可以通过如下步骤实现:
步骤1、判断目标版本的版本号C是否大于等于当前版本对应的第三最小版本号D1。如果是,则可以执行步骤2;如果否,则可以执行步骤3。
步骤2、确定从当前版本降级到目标版本的降级方式为增量降级。
步骤3、判断目标版本的版本号C是否大于等于当前版本对应的第四最小版本号D2。如果是,则可以执行步骤4;如果否,则可以执行步骤5。
步骤4、确定从当前版本降级到目标版本的降级方式为兼容重启降级。
步骤5、确定从当前版本降级到目标版本的降级方式为不兼容重启降级。
在一个例子中,在根据比较结果确定交付件从当前版本升级到目标版本的升级方式之后,还可以基于每个交付件的升级方式确定软件版本文件的升级方式,并根据所述软件版本文件的升级方式对所述软件版本文件进行升级处理。
在一个例子中,针对“基于每个交付件的升级方式确定软件版本文件的升级方式”的过程,可以包括但不限于如下方式:若有交付件的升级方式为不兼容重启升级,则可以确定该软件版本文件的升级方式为不兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,但是有交付件的升级方式为兼容重启升级,则可以确定该软件版本文件的升级方式为兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,且没有交付件的升级方式为兼容重启升级,则可以确定该软件版本文件的升级方式为增量升级。
例如,假设软件版本文件可以包括交付件1、交付件2、交付件3,若交付件1的升级方式为增量升级,交付件2的升级方式为兼容重启升级,交付件3的升级方式为不兼容重启升级,则可以确定软件版本文件的升级方式是不兼容重启升级,并可以通过不兼容重启升级的方式将交付件1、交付件2、交付件3从当前版本升级到目标版本。若交付件1的升级方式为增量升级,交付件2的升级方式为兼容重启升级,交付件3的升级方式为兼容重启升级,则可以确定软件版本文件的升级方式是兼容重启升级,并可以通过兼容重启升级的方式将交付件1、交付件2、交付件3从当前版本升级到目标版本。若交付件1的升级方式为增量升级,交付件2的升级方式为增量升级,交付件3的升级方式为增量升级,则可以确定软件版本文件的升级方式是增量升级,并可以通过增量升级升级的方式将交付件1、交付件2、交付件3从当前版本升级到目标版本。
在一个例子中,在根据比较结果确定交付件从当前版本降级到目标版本的降级方式之后,还可以基于每个交付件的降级方式确定软件版本文件的降级方式,并根据所述软件版本文件的降级方式对所述软件版本文件进行降级处理。
在一个例子中,针对“基于每个交付件的降级方式确定软件版本文件的降级方式”的过程,可以包括但不限于如下方式:若有交付件的降级方式为不兼容重启降级,则可以确定该软件版本文件的降级方式为不兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,但是有交付件的降级方式为兼容重启降级,则可以确定该软件版本文件的降级方式为兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,且没有交付件的降级方式为兼容重启降级,则可以确定该软件版本文件的降级方式为增量降级。
例如,假设软件版本文件可以包括交付件1、交付件2、交付件3,若交付件1的降级方式为增量降级,交付件2的降级方式为兼容重启降级,交付件3的降级方式为不兼容重启降级,则可以确定软件版本文件的降级方式是不兼容重启降级,并可以通过不兼容重启降级的方式将交付件1、交付件2、交付件3从当前版本降级到目标版本。若交付件1的降级方式为增量降级,交付件2的降级方式为兼容重启降级,交付件3的降级方式为兼容重启降级,则可以确定软件版本文件的降级方式是兼容重启降级,并可以通过兼容重启降级的方式将交付件1、交付件2、交付件3从当前版本降级到目标版本。若交付件1的降级方式为增量降级,交付件2的降级方式为增量降级,交付件3的降级方式为增量降级,则可以确定软件版本文件的降级方式是增量降级,并可以通过增量降级的方式将交付件1、交付件2、交付件3从当前版本降级到目标版本。
基于上述技术方案,本申请实施例中,可以选择合适的升级方式,并使用该升级方式进行升级处理,可以保证升级方式选择的准确性、合理性,从而可以采用正确的升级方式进行升级处理。可以选择合适的降级方式,并使用该降级方式进行降级处理,可以保证降级方式选择的准确性、合理性,从而可以采用正确的降级方式进行升级处理。上述升级/降级方式尽可能保证业务不中断。
在一个例子中,版本兼容数据还可以包括隔离版本列表I,该隔离版本列表I包括从当前版本禁止降级至的版本号。基于此,在将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较之前,还可以获取当前版本的隔离版本列表,该隔离版本列表包括从当前版本禁止降级至的版本号;然后,若目标版本的版本号位于所述隔离版本列表中,则表示目标版本是当前版本的隔离版本,则禁止将交付件从当前版本降级到目标版本;若目标版本的版本号不位于隔离版本列表中,则执行将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较的过程。
其中,针对所有交付件,若有任意一个交付件的确定结果为:禁止将交付件从当前版本降级到目标版本,则最终需要禁止对软件版本文件进行降级。
以下结合具体应用场景,对本申请实施例的上述技术方案进行说明。
例如,初始版本为版本1,版本兼容数据如表1所示,C为100,没有兼容版本。第二次发布的版本为版本2,版本兼容数据如表2所示,C为200,U1和U2均为100,D1和D2均为100。第三次发布的版本为版本3,版本兼容数据如表3所示,C为300,U1为200,U2为100,D1为200,D2为100。第四次发布的版本为版本4,版本兼容数据如表4所示,C为400,U1为300,U2为200,D1为300,D2为200。第五次发布的版本为版本5,版本兼容数据如表5所示,C为500,U1为300,U2为200,D1为400,D2为400。
其中,当第一版本为版本1,第二版本为版本2时,将版本1增量升级到版本2;当第一版本为版本1,第二版本为版本3时,将版本1兼容重启升级到版本3;当第一版本为版本1,第二版本为版本4时,将版本1不兼容重启升级到版本4,即版本4与版本1不兼容;当第一版本为版本1,第二版本为版本5时,将版本1不兼容重启升级到版本5,即版本5与版本1不兼容。
由于版本1不兼容重启升级到版本4/版本5时,会导致流量中断,因此,可以将版本2/版本3作为过渡版本,以避免流量中断。具体的,先将版本1增量升级到版本2,再将版本2兼容重启升级到版本4,或者,先将版本1兼容重启升级到版本3,再将版本3增量升级到版本4,这样,可以避免版本1不兼容重启升级到版本4。此外,对于版本1升级到版本5的过程类似,不再赘述。显然,上述方式可以支持过渡版本,在不兼容版本间提供兼容桥梁。
从表5可以看出,版本3可以增量升级到版本5,版本2可以兼容重启升级到版本5,但是版本5只能增量降级到版本4,而无法增量降级到版本2、也无法增量降级到版本3,因此,上述方式可以支持不对称的升降级。
表1
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 |
表2
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 |
表3
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 300 | 100 | 300 | 100 |
表4
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 |
表5
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 | |
500 | 300 | 200 | 400 | 400 |
进一步的,假设第六次发布的版本为版本6,版本兼容数据如表6所示,C为600,U1为300,U2为200,D1为400,D2为400。假设版本6是问题版本,需要从后续的版本中隔离出来,即只能从版本6升级到正常版本,但是,不能从正常版本降级到版本6,则在发布版本7时,版本兼容数据如表7所示,C为700,U1为300,U2为200,D1为400,D2为400,且隔离版本为600。
显然,基于隔离版本600,使得版本6可以升级到版本7,但是不能从版本7降级到版本6,也就是说,上述方式可以支持对问题版本的隔离处理。
表6
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 | |
500 | 300 | 200 | 400 | 400 | |
600 | 300 | 200 | 400 | 400 |
表7
进一步的,假设第八次发布的版本为版本8,版本兼容数据如表8所示,C为800,U1为500,U2为300,D1为500,D2为400,隔离版本为600。假设第九次发布的版本为版本9,版本兼容数据如表9所示,C为900,U1为700,U2为700,D1为700,D2为700,隔离版本为600。
表8
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 | |
500 | 300 | 200 | 400 | 400 | |
600 | 300 | 200 | 400 | 400 | |
700 | 300 | 200 | 400 | 400 | 600 |
800 | 500 | 300 | 500 | 400 | 600 |
表9
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 | |
500 | 300 | 200 | 400 | 400 | |
600 | 300 | 200 | 400 | 400 | |
700 | 300 | 200 | 400 | 400 | 600 |
800 | 500 | 300 | 500 | 400 | 600 |
900 | 700 | 700 | 700 | 700 | 600 |
进一步的,假设第十次发布的版本为版本11,版本兼容数据如表10所示,C为1100,U1为1000,U2为1000,D1为1000,D2为1000,隔离版本为600。版本11与前面9个版本均不兼容,即版本11是不兼容版本,但是预留了兼容条件。如果需要将版本1-版本9中的版本升级到版本11,则可以发布版本号为1000的版本10,并通过版本10,将版本1-版本9中的版本升级到版本11。
表10
版本号(C) | 最小版本号(U1) | 最小版本号(U2) | 最小版本号(D1) | 最小版本号(D2) | 隔离版本列表(I) |
100 | |||||
200 | 100 | 100 | 100 | 100 | |
300 | 200 | 100 | 200 | 100 | |
400 | 300 | 200 | 300 | 200 | |
500 | 300 | 200 | 400 | 400 | |
600 | 300 | 200 | 400 | 400 | |
700 | 300 | 200 | 400 | 400 | 600 |
800 | 500 | 300 | 500 | 400 | 600 |
900 | 700 | 700 | 700 | 700 | 600 |
1100 | 1000 | 1000 | 1000 | 1000 | 600 |
如图2所示,为本申请实施例中提出的版本管理装置的结构图,所述版本管理装置可以应用于堆叠设备,且所述版本管理装置可以包括:
比较模块201,用于根据版本号比较交付件的当前版本和目标版本;
升级管理模块202,用于当所述目标版本高于所述当前版本时,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,并根据比较结果确定交付件从当前版本升级到目标版本的升级方式;
降级管理模块203,用于当所述目标版本低于所述当前版本时,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,并根据比较结果确定交付件从当前版本降级到目标版本的降级方式。
所述升级管理模块202,具体用于在根据比较结果确定交付件从当前版本升级到目标版本的升级方式的过程中,若所述当前版本的版本号大于等于所述第一最小版本号,确定交付件从当前版本升级到目标版本的升级方式为增量升级;或者,若所述当前版本的版本号小于所述第一最小版本号,所述当前版本的版本号大于等于所述第二最小版本号,确定交付件从当前版本升级到目标版本的升级方式为兼容重启升级;或者,若所述当前版本的版本号小于所述第二最小版本号,确定交付件从当前版本升级到目标版本的升级方式为不兼容重启升级。
所述降级管理模块203,具体用于在根据比较结果确定交付件从当前版本降级到目标版本的降级方式的过程中,若所述目标版本的版本号大于等于所述第三最小版本号,确定交付件从当前版本降级到目标版本的降级方式为增量降级;或者,若所述目标版本的版本号小于所述第三最小版本号,所述目标版本的版本号大于等于所述第四最小版本号,确定交付件从当前版本降级到目标版本的降级方式为兼容重启降级;或者,若所述目标版本的版本号小于所述第四最小版本号,确定交付件从当前版本降级到目标版本的降级方式为不兼容重启降级。
在一个例子中,所述堆叠设备包括的软件版本文件包括至少一个交付件;
所述升级管理模块202,还用于在根据比较结果确定交付件从当前版本升级到目标版本的升级方式后,基于每个交付件的升级方式确定所述软件版本文件的升级方式,根据所述软件版本文件的升级方式对软件版本文件进行升级处理;
所述降级管理模块203,还用于在根据比较结果确定交付件从当前版本降级到目标版本的降级方式后,基于每个交付件的降级方式确定所述软件版本文件的降级方式,根据所述软件版本文件的降级方式对软件版本文件进行降级处理。
所述升级管理模块202,具体用于确定所述软件版本文件的升级方式的过程中,若有交付件的升级方式为不兼容重启升级,确定所述软件版本文件的升级方式为不兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,没有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为增量升级。
所述降级管理模块203,具体用于在确定所述软件版本文件的降级方式的过程中,若有交付件的降级方式为不兼容重启降级,确定所述软件版本文件的降级方式为不兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,没有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为增量降级。
在一个例子中,所述降级管理模块203,还用于获取当前版本的隔离版本列表,所述隔离版本列表包括从当前版本禁止降级至的版本号;若目标版本的版本号位于所述隔离版本列表中,则禁止将所述交付件从当前版本降级到目标版本;若目标版本的版本号不位于所述隔离版本列表中,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较。
本申请实施例提供的堆叠设备,从硬件层面而言,硬件架构示意图具体可以参见图3所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的版本管理操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种版本管理方法,其特征在于,应用于堆叠设备,所述方法包括:
根据版本号比较交付件的当前版本和目标版本;
若目标版本高于当前版本,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,根据比较结果确定交付件从当前版本升级到目标版本的升级方式;其中,若所述当前版本的版本号大于等于第一最小版本号,则升级方式为增量升级;若所述当前版本的版本号小于第一最小版本号,且所述当前版本的版本号大于等于第二最小版本号,则升级方式为兼容重启升级;若所述当前版本的版本号小于第二最小版本号,则升级方式为不兼容重启升级;
若目标版本低于当前版本,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,根据比较结果确定交付件从当前版本降级到目标版本的降级方式。
2.根据权利要求1所述的方法,其特征在于,所述根据比较结果确定交付件从当前版本降级到目标版本的降级方式的过程,具体包括:
若所述目标版本的版本号大于等于所述第三最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为增量降级;或者,若所述目标版本的版本号小于所述第三最小版本号,且所述目标版本的版本号大于等于所述第四最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为兼容重启降级;或者,若所述目标版本的版本号小于所述第四最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为不兼容重启降级。
3.根据权利要求1或2所述的方法,其特征在于,
所述堆叠设备包括的软件版本文件包括至少一个交付件;
所述根据比较结果确定交付件从当前版本升级到目标版本的升级方式之后,基于每个交付件的升级方式确定所述软件版本文件的升级方式,并根据所述软件版本文件的升级方式对所述软件版本文件进行升级处理;
所述根据比较结果确定交付件从当前版本降级到目标版本的降级方式之后,基于每个交付件的降级方式确定所述软件版本文件的降级方式,并根据所述软件版本文件的降级方式对所述软件版本文件进行降级处理。
4.根据权利要求3所述的方法,其特征在于,
所述基于每个交付件的升级方式确定所述软件版本文件的升级方式,包括:
若有交付件的升级方式为不兼容重启升级,确定所述软件版本文件的升级方式为不兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,没有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为增量升级。
5.根据权利要求3所述的方法,其特征在于,
所述基于每个交付件的降级方式确定所述软件版本文件的降级方式,包括:
若有交付件的降级方式为不兼容重启降级,确定所述软件版本文件的降级方式为不兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,没有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为增量降级。
6.根据权利要求1所述的方法,其特征在于,所述将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较之前,所述方法还包括:
获取当前版本的隔离版本列表,所述隔离版本列表包括从当前版本禁止降级至的版本号;若目标版本的版本号位于所述隔离版本列表中,则禁止将所述交付件从当前版本降级到目标版本;若目标版本的版本号不位于所述隔离版本列表中,则执行将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较的过程。
7.一种版本管理装置,其特征在于,应用于堆叠设备,所述装置包括:
比较模块,用于根据版本号比较交付件的当前版本和目标版本;
升级管理模块,用于当所述目标版本高于所述当前版本时,则将当前版本的版本号分别与支持增量升级到目标版本的第一最小版本号和支持兼容重启升级到目标版本的第二最小版本号进行比较,并根据比较结果确定交付件从当前版本升级到目标版本的升级方式;其中,若所述当前版本的版本号大于等于第一最小版本号,则升级方式为增量升级;若所述当前版本的版本号小于第一最小版本号,且所述当前版本的版本号大于等于第二最小版本号,则升级方式为兼容重启升级;若所述当前版本的版本号小于第二最小版本号,则升级方式为不兼容重启升级;
降级管理模块,用于当所述目标版本低于所述当前版本时,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较,并根据比较结果确定交付件从当前版本降级到目标版本的降级方式。
8.根据权利要求7所述的装置,其特征在于,所述降级管理模块,具体用于在根据比较结果确定交付件从当前版本降级到目标版本的降级方式的过程中,若所述目标版本的版本号大于等于所述第三最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为增量降级;或者,若所述目标版本的版本号小于所述第三最小版本号,且所述目标版本的版本号大于等于所述第四最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为兼容重启降级;或者,若所述目标版本的版本号小于所述第四最小版本号,则确定交付件从当前版本降级到目标版本的降级方式为不兼容重启降级。
9.根据权利要求7或8所述的装置,其特征在于,
所述堆叠设备包括的软件版本文件包括至少一个交付件;
所述升级管理模块,还用于在根据比较结果确定交付件从当前版本升级到目标版本的升级方式后,基于每个交付件的升级方式确定所述软件版本文件的升级方式,并根据所述软件版本文件的升级方式对软件版本文件进行升级处理;
所述降级管理模块,还用于在根据比较结果确定交付件从当前版本降级到目标版本的降级方式后,基于每个交付件的降级方式确定所述软件版本文件的降级方式,并根据所述软件版本文件的降级方式对软件版本文件进行降级处理。
10.根据权利要求9所述的装置,其特征在于,
所述升级管理模块,具体用于确定所述软件版本文件的升级方式的过程中,若有交付件的升级方式为不兼容重启升级,确定所述软件版本文件的升级方式为不兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为兼容重启升级;或者,若没有交付件的升级方式为不兼容重启升级,没有交付件的升级方式为兼容重启升级,确定所述软件版本文件的升级方式为增量升级。
11.根据权利要求9所述的装置,其特征在于,
所述降级管理模块,具体用于在确定所述软件版本文件的降级方式的过程中,若有交付件的降级方式为不兼容重启降级,确定所述软件版本文件的降级方式为不兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为兼容重启降级;或者,若没有交付件的降级方式为不兼容重启降级,没有交付件的降级方式为兼容重启降级,确定所述软件版本文件的降级方式为增量降级。
12.根据权利要求7所述的装置,其特征在于,所述降级管理模块,还用于获取当前版本的隔离版本列表,所述隔离版本列表包括从当前版本禁止降级至的版本号;若目标版本的版本号位于所述隔离版本列表中,则禁止将所述交付件从当前版本降级到目标版本;若目标版本的版本号不位于所述隔离版本列表中,则将目标版本的版本号分别与当前版本支持增量降级至的第三最小版本号和当前版本支持兼容重启降级至的第四最小版本号进行比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710631648.2A CN108469960B (zh) | 2017-07-28 | 2017-07-28 | 一种版本管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710631648.2A CN108469960B (zh) | 2017-07-28 | 2017-07-28 | 一种版本管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108469960A CN108469960A (zh) | 2018-08-31 |
CN108469960B true CN108469960B (zh) | 2021-08-24 |
Family
ID=63266891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710631648.2A Active CN108469960B (zh) | 2017-07-28 | 2017-07-28 | 一种版本管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108469960B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324821B (zh) * | 2018-10-10 | 2021-11-05 | 湖南长城医疗科技有限公司 | 一种自助终端***版本管理方法 |
CN109874057B (zh) * | 2019-01-23 | 2021-04-23 | 视联动力信息技术股份有限公司 | 一种直播业务的处理方法及装置 |
CN113535219B (zh) * | 2020-04-15 | 2023-12-01 | 北京世标认证中心有限公司 | 一种app信息发布方法、装置、介质及计算机设备 |
CN115208761A (zh) * | 2022-06-01 | 2022-10-18 | 上海黑眸智能科技有限责任公司 | Ota升级*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724308A (zh) * | 2012-06-13 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 软件更新方法及软件更新*** |
CN103581008B (zh) * | 2012-08-07 | 2017-04-12 | 杭州华三通信技术有限公司 | 路由器及其软件升级方法 |
US9306804B2 (en) * | 2013-04-16 | 2016-04-05 | Arista Networks, Inc. | Method and system for multichassis link aggregation in-service software update |
US20140372583A1 (en) * | 2013-06-13 | 2014-12-18 | Johnny Tseng | Expandable departmental cloud server systems |
FR3018367B1 (fr) * | 2014-03-07 | 2017-07-21 | Schneider Electric Ind Sas | Systeme electronique comprenant des dispositifs electroniques, disjoncteur comportant un tel systeme, procede de generation d'un indicateur d'ecart en cas d'incompatibilite entre dispositifs et produit programme d'ordinateur associe |
CN104394016B (zh) * | 2014-11-25 | 2018-08-24 | 新华三技术有限公司 | Issu升级方法和装置 |
-
2017
- 2017-07-28 CN CN201710631648.2A patent/CN108469960B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108469960A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108469960B (zh) | 一种版本管理方法和装置 | |
CN106899666B (zh) | 一种针对业务标识的数据处理方法及装置 | |
US11003438B2 (en) | Method and device for incremental upgrade | |
CN106708543B (zh) | 一种操作***的ota升级方法及装置 | |
CN107038041B (zh) | 数据处理方法、错误码动态兼容方法、装置和*** | |
US20100268867A1 (en) | Method and apparatus for updating firmware as a background task | |
EP3267308A1 (en) | Application loading method and device | |
CN105446811A (zh) | 应用进程关联启动方法及关联启动装置 | |
CN105930197A (zh) | 一种软件升级的方法及电子设备 | |
CN109947643B (zh) | 一种基于a/b测试的实验方案的配置方法、装置及设备 | |
US7818622B2 (en) | Method for recovering data processing system failures | |
CN107578338B (zh) | 一种业务发布方法、装置及设备 | |
CN104685443A (zh) | 锁定引导数据用以更快引导 | |
CN107943544B (zh) | 一种内核补丁的加载方法及装置 | |
CN104461621A (zh) | 一种更新属性信息的方法及装置 | |
US10503430B2 (en) | Method and device for clearing data and electronic device | |
US20180113735A1 (en) | Launch method for applications with early-time memory reclaim and electronic device | |
CN111797390B (zh) | 程序运行方法、装置、电子设备及计算机可读存储介质 | |
CN109582388B (zh) | 一种参数配置方法、装置及设备 | |
CN111381905B (zh) | 一种程序处理方法、装置及设备 | |
CN113342376B (zh) | 一种针对物联网设备的操作***进行升级的方法及装置 | |
JP7355876B2 (ja) | プログラム起動方法及び機器、記憶媒体 | |
CN105808556A (zh) | 一种数据库的操作方法及数据库引擎 | |
CN112882733A (zh) | 应用更新方法及装置、电子设备、存储介质 | |
CN109542598B (zh) | 定时任务管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |