依赖环境更迭方法及装置与流程

文档序号:17488747发布日期:2019-04-23 20:13阅读:160来源:国知局
依赖环境更迭方法及装置与流程

本公开涉及软件升级技术领域,特别涉及依赖环境更迭方法及装置。



背景技术:

在多租户业务场景下,会经常性遭遇语言依赖环境与集群不匹配的问题,由于集群依赖于语言环境,当语言依赖环境版本较低且不足以兼容新租户的语言依赖需求时,需要对语言依赖环境版本进行升级或修正。现有技术在升级语言依赖环境版本时,需对集群进行重启以达到彻底升级大数据集群语言依赖环境的目的。但重启过程会导致业务停滞,进而造成经济损失。

应该注意,上面对技术背景的介绍只是为了方便对本公开的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本公开的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。



技术实现要素:

本公开旨在至少解决现有技术中存在的技术问题之一,提出了依赖环境更迭方法及装置。

第一方面,本公开实施例提供了一种依赖环境更迭方法,包括:

根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果;

根据所述检查结果迁移元数据信息至新依赖环境的堆栈内存空间中并异步接受事务服务请求;

计算事务服务请求的资源需求量;

根据所述资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间;

当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁所述旧依赖环境;

当判断出元数据信息未均迁移至新依赖环境的堆栈内存空间中或事务服务请求未均被新依赖环境完整接受时,继续执行所述根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果的步骤。

在一些实施例中,在生成检查结果的步骤之前还包括:

生成新依赖环境的堆栈内存空间并初始化所述新依赖环境。

在一些实施例中,根据检查结果迁移元数据信息至新依赖环境的堆栈内存空间中的步骤具体包括:

根据检查结果寻找可同步检查点并生成可同步检查点状态信息;

根据可同步检查点状态信息迁移元数据信息至新依赖环境的堆栈内存空间中。

在一些实施例中,在计算事务服务请求的资源需求量的步骤之前还包括:

判断与所述事务服务请求相关的元数据信息是否均已迁移至新依赖环境的堆栈内存空间中;

当判断出与所述事务服务请求相关的元数据信息是否均已迁移至新依赖环境的堆栈内存空间中时,执行所述计算事务服务请求的资源需求量的步骤,否则继续执行所述根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果的步骤。

在一些实施例中,计算事务服务请求的资源需求量的步骤具体包括:

当事务服务请求的数量为多个时,分别生成每个事务服务请求的资源需求值;

获取旧依赖环境的可释放堆栈内存空间值;

根据全部事务服务请求的资源需求值生成资源需求总值;

当判断出所述资源需求总值大于所述旧依赖环境的可释放堆栈内存空间值时,生成数据块赋值;

根据所述资源需求总值和数据块赋值生成资源需求量。

第二方面,本公开实施例提供了一种依赖环境更迭装置,包括:

生成模块,用于根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果;

迁移模块,用于根据所述检查结果迁移元数据信息至新依赖环境的堆栈内存空间中;

接受模块,用于接受事务服务请求;

计算模块,用于计算事务服务请求的资源需求量;

增缩模块,用于根据所述资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间;

第一判断模块,用于判断全部元数据信息是否均迁移至新依赖环境的堆栈内存空间中且事务服务请求是否均被新依赖环境完整接受;

发出销毁模块,用于当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁所述旧依赖环境。

在一些实施例中,还包括:

生成初始化模块,用于生成新依赖环境的堆栈内存空间并初始化所述新依赖环境。

在一些实施例中,所述迁移模块具体包括:

寻找生成子模块,用于根据检查结果寻找可同步检查点并生成可同步检查点状态信息;

迁移子模块,用于根据可同步检查点状态信息迁移元数据信息至新依赖环境的堆栈内存空间中。

在一些实施例中,还包括:

第二判断模块,用于判断与所述事务服务请求相关的元数据信息是否均已迁移至新依赖环境的堆栈内存空间中。

在一些实施例中,所述计算模块具体包括:

生成子模块,用于当事务服务请求的数量为多个时,分别生成每个事务服务请求的资源需求值,根据全部事务服务请求的资源需求值生成资源需求总值,生成数据块赋值,根据所述资源需求总值和数据块赋值生成资源需求量;

获取子模块,用于获取旧依赖环境的可释放堆栈内存空间值;

判断子模块,用于判断所述资源需求总值是否大于所述旧依赖环境的可释放堆栈内存空间值。

本公开具有以下有益效果:

本公开提供的依赖环境更迭方法及装置,根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间,当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁旧依赖环境。在不重启集群的前提下即可实现大数据集群语言依赖环境的更迭,有效提升了用户的使用体验,避免了集群重启对业务或经济造成的影响。

参照后文的说明和附图,详细公开了本公开的特定实施方式,指明了本公开的原理可以被采用的方式。应该理解,本公开的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本公开的实施方式包括许多改变、修改和等同。

针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。

应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种依赖环境更迭方法的流程示意图;

图2为本公开实施例提供的另一种依赖环境更迭方法的流程示意图;

图3为本公开实施例提供的依赖环境更迭装置的结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

本领域技术技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

图1为本公开实施例提供的一种依赖环境更迭方法的流程示意图,如图1所示,该方法包括以下步骤:

步骤101、根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果。

步骤102、根据检查结果迁移元数据信息至新依赖环境的堆栈内存空间中并异步接受事务服务请求。

步骤103、计算事务服务请求的资源需求量。

步骤104、根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间。

步骤105、判断全部元数据信息是否均迁移至新依赖环境的堆栈内存空间中且事务服务请求是否均被新依赖环境完整接受,若是,执行步骤106;若否,执行步骤101。

步骤106、发出依赖环境更迭完成信号并销毁旧依赖环境。

本实施例提供的该依赖环境更迭方法,根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间,当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁旧依赖环境。在不重启集群的前提下即可实现大数据集群语言依赖环境的更迭,有效提升了用户的使用体验,避免了集群重启对业务或经济造成的影响。

图2为本公开实施例提供的另一种依赖环境更迭方法的流程示意图,如图2所示,该方法包括以下步骤:

步骤201、生成新依赖环境的堆栈内存空间并初始化新依赖环境。

优选地,本实施例中的各步骤由依赖环境更迭装置执行。

堆栈内存空间的类型可以为jvm(javavirtualmachine,java虚拟机)堆栈内存。初始化过程具体包括:加载image文件信息(图像文件信息),调用createroots()函数并通过pfile.new()创建相应的初始目录,通过apihdfs.config()调用相应的配置文件,加载初始化集群参数。

初始化完成后,输出启动过程日志,输出新环境启动成功信息,并通过process()函数打印进度条。进度条实时动态变化,以显示依赖环境的更迭进度。

步骤202、根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果。

具体地,首先调用filesystem.get()函数获取相关元数据信息,其次调用synccheckpoint()函数对比新依赖环境的检查点信息与旧依赖环境的检查点信息是否一致。如:将新依赖环境的检查点信息的当前读取检查点赋值x,将旧依赖环境的检查点信息的当前读取检查点赋值y,通过x与y的比值生成检查结果。

步骤203、根据检查结果迁移元数据信息至新依赖环境的堆栈内存空间中并异步接受事务服务请求。

本实施例的环境更迭方法,在将旧依赖环境的堆栈内存空间中存储的元数据信息逐步迁移至新依赖环境的堆栈内存空间的过程中,还异步接受用户发送的事务服务请求,能够在不重启的情况下实现依赖环境更迭且不影响用户的使用体验。

根据检查结果寻找可同步检查点并生成可同步检查点状态信息。根据可同步检查点状态信息迁移元数据信息至新依赖环境的堆栈内存空间中。

具体地,调用setzreo()函数进行一致性计算以寻找出可同步检查点,在输出可同步检查点状态时判断是否可准备接受事务服务请求,若判断出可准备接受事务服务请求,调用syncts()接受setzreo()可同步检查点状态,检查相应的事务依赖,并异步接受事务服务请求。此处,接受的事务服务请求的数量可以为多个或一个。

可选地,当判断出新依赖环境的堆栈内存空间中不存在空闲空间时,排队等待直至新依赖环境的堆栈内存空间中存在空闲空间时,方执行后续步骤。

可选地,在迁移元数据信息至新依赖环境的堆栈内存空间的过程中,实时判断元数据信息是否产生偏移并生成偏移差异量,根据偏移差异量做相应的更新操作以消除偏移。

步骤204、判断与事务服务请求相关的元数据信息是否均已迁移至新依赖环境的堆栈内存空间中,若是,执行步骤205;若否,执行步骤202。

由于元数据信息的迁移与事务服务请求的接受是同时执行的,在接受事务服务请求后,当判断出与该事务服务请求相关的元数据信息未迁移至新依赖环境的堆栈内存空间时,该事务服务请求无法被完整接受,执行步骤202以使得与该事务服务请求相关的元数据信息均迁移至新依赖环境的堆栈内存空间中。

步骤205、计算事务服务请求的资源需求量。

可选地,对事务服务请求进行评判,事务服务请求的评判值tij∈{0,1},当tij为1时,表示事务服务请求i被分配至新依赖环境的堆栈内存空间中,计算事务服务请求的资源需求量。

具体地,步骤205包括以下步骤:

步骤205a、当事务服务请求的数量为多个时,分别生成每个事务服务请求的资源需求值。

资源需求值dij可根据历史数据预设生成,或根据事务服务请求中携带的信息生成。其中,dij表示资源需求值,i表示事务服务请求i,j表示事务服务请求i被分配至新依赖环境的堆栈内存空间j。

步骤205b、获取旧依赖环境的可释放堆栈内存空间值。

旧依赖环境的可释放堆栈内存空间中不存储有数据,旧依赖环境的可释放堆栈内存空间值记为m。

步骤205c、根据全部事务服务请求的资源需求值生成资源需求总值。

资源需求总值通过公式∑dij计算得出。

步骤205d、判断资源需求总值是否大于旧依赖环境的可释放堆栈内存空间值,若是,执行步骤205e;若否,执行步骤202。

当判断出∑dij≥m时,表示事务服务请求可被接受,执行步骤205e。当判断出∑dij<m时,表示事务服务请求不可被完整接受,事务服务请求相关的元数据信息未完整迁移至新依赖环境的堆栈内存空间中,执行步骤202。

步骤205e、生成数据块赋值。

数据块赋值ki∈{k,n},其中k表示事务服务请求所占用数据块的资源大小,n表示空闲数据块的资源大小。

步骤205f、根据资源需求总值和数据块赋值生成资源需求量。

通过公式∑tijdij+tijkidij+kidij生成资源需求量。资源需求量表示当前所接受的事务服务请求需占用的堆栈内存空间值。

步骤206、根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间。

在释放旧依赖环境的堆栈内存空间同时,相应增加新依赖环境的堆栈内存空间。本实施例的方法通过动态增缩新旧依赖环境堆栈内存空间的方式实现依赖环境更迭。

步骤207、判断全部元数据信息是否均迁移至新依赖环境的堆栈内存空间中且事务服务请求是否均被新依赖环境完整接受,若是,执行步骤208;若否,执行步骤202。

当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,表示依赖环境更迭完成,数据已从旧依赖环境迁移至新依赖环境中,且系统已从旧依赖环境切换至新依赖环境,执行步骤208。当判断出全部元数据信息未均迁移至新依赖环境的堆栈内存空间中或事务服务请求未均被新依赖环境完整接受时,表示依赖环境未更迭完成,继续执行步骤202。

步骤208、发出依赖环境更迭完成信号并销毁旧依赖环境。

应当注意,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本实施例提供的该方法通过上述步骤即可实现依赖环境的更迭,依赖环境的更迭过程无需进行重启,有效提升了用户的使用体验,避免了重启对业务或经济效益造成的影响。

当该方法应用于基于hadoop组件的大数据集群语言依赖环境更迭时,能够在不重启集群的前提下实现hadoop组件的语言依赖环境的彻底修正更迭,避免了集群重启导致的业务停滞和经济损失。

图3为本公开实施例提供的依赖环境更迭装置的结构示意图,如图3所示,该装置包括:生成模块11、迁移模块12、接受模块13、计算模块14、增缩模块15、第一判断模块16和发出销毁模块17。

生成模块11用于根据新依赖环境的检查点信息与旧依赖环境的检查点信息生成检查结果。迁移模块12用于根据检查结果迁移元数据信息至新依赖环境的堆栈内存空间中。接受模块13用于接受事务服务请求。计算模块14用于计算事务服务请求的资源需求量。增缩模块15用于根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间。第一判断模块16用于判断全部元数据信息是否均迁移至新依赖环境的堆栈内存空间中且事务服务请求是否均被新依赖环境完整接受。发出销毁模块17用于当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁旧依赖环境。

进一步地,该装置还包括:生成初始化模块10。生成初始化模块10用于生成新依赖环境的堆栈内存空间并初始化新依赖环境。

进一步地,迁移模块12具体包括:寻找生成子模块121和迁移子模块122。寻找生成子模块121用于根据检查结果寻找可同步检查点并生成可同步检查点状态信息。迁移子模块122用于根据可同步检查点状态信息迁移元数据信息至新依赖环境的堆栈内存空间中。

进一步地,该装置还包括:第二判断模块18。第二判断模块18用于判断与事务服务请求相关的元数据信息是否均已迁移至新依赖环境的堆栈内存空间中。

进一步地,计算模块14具体包括:生成子模块141、获取子模块142和判断子模块143。生成子模块141用于当事务服务请求的数量为多个时,分别生成每个事务服务请求的资源需求值,根据全部事务服务请求的资源需求值生成资源需求总值,生成数据块赋值,根据资源需求总值和数据块赋值生成资源需求量。获取子模块142用于获取旧依赖环境的可释放堆栈内存空间值。判断子模块143用于判断资源需求总值是否大于旧依赖环境的可释放堆栈内存空间值。

本实施例提供的依赖环境更迭装置可用于实施本实施例提供的依赖环境更迭方法。

本实施例提供的依赖环境更迭装置,根据资源需求量缩减旧依赖环境的堆栈内存空间并相应增加新依赖环境的堆栈内存空间,当判断出全部元数据信息均迁移至新依赖环境的堆栈内存空间中且事务服务请求均被新依赖环境完整接受时,发出依赖环境更迭完成信号并销毁旧依赖环境。在不重启集群的前提下即可实现大数据集群语言依赖环境的更迭,有效提升了用户的使用体验,避免了集群重启对业务或经济造成的影响。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本公开中应用了具体实施例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1