无停机时间的数据库和服务升级制造技术

技术编号:18737498 阅读:51 留言:0更新日期:2018-08-22 05:49
对在经由存储过程执行数据操作的多个机器(例如,服务)上的关系数据库进行升级。升级在不改变一个或多个存储过程的功能的集合的情况下发生。因此,即使机器本身没有升级,机器仍然可以经由该一个或多个存储过程的集合与数据库进行交互。关系数据库的升级通过向关系数据库添加新表并且然后向存储过程存储设备添加新的存储过程来发生,新的存储过程引用新表的参数。由于与关系数据库接口的机器仍然可以使用旧的存储过程在升级后的数据库上运行,因此每个机器可以按有序的方式进行升级以与新的存储过程接口。

【技术实现步骤摘要】
【国外来华专利技术】无停机时间的数据库和服务升级
技术介绍
计算系统通常将数据组织成数据库,一种常见类型的数据库被称为关系数据库。为了简化对关系数据库执行通用数据操作集的过程,这样的通用数据操作集被组织成存储过程。因此,在与数据库接口时,组件可以直接对关系数据库执行数据操作,但是通常也可以选择使用一个或多个存储过程与数据库交互。服务是操作以为一个或多个请求者的集合执行一组一个或多个功能的一个或多个机器的集合。这样的请求者通常被称为服务的“客户”。服务的客户可以是人类用户(诸如当服务是电子邮件服务时),可以是其他服务或组件(诸如当服务是元数据服务时),或者可以是其组合(诸如当服务是存储服务时)。在任何情况下,服务通常依赖底层关系数据库,以保持和跟踪服务用来提供该服务功能集的重要数据。当升级服务时,通常存在一些服务停机时间。在服务停机时间期间,关系数据库被升级,并且服务的机器被重新配置为与升级后的关系数据库交互。服务然后再次可用。但是,在这样的服务停机时间期间,客户往往没有有益的服务使用。本文中要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。相反,提供此
技术介绍
以仅说明其中可以实施本文中描述的一些实施例的一个示例性

技术实现思路
本文中描述的至少一些实施例涉及对在经由一组一个或多个存储过程来执行数据操作的多个机器(例如,服务)上的关系数据库进行升级。升级在不改变一个或多个存储过程的集合的功能的情况下发生。因此,即使服务的机器本身没有升级,机器仍然可以经由该一个或多个存储过程的集合与数据库接口。关系数据库的升级通过向关系数据库添加新表并且还向存储过程存储设备添加新的存储过程来发生,新的存储过程引用新表的参数。由于与关系数据库接口的机器仍然可以使用旧的存储过程在升级后的数据库上操作,因此每个机器可以按有序的方式进行升级以与新的存储过程接口。因此,可能总是存在机器集合(不论是未升级还是已经完成升级),其可以与关系数据库接口以支持服务。例如,尚未升级后的机器可以使用旧的存储过程与数据库交互。另一方面,升级后的机器可以使用新的存储过程与数据库交互。因此,升级可以在很少甚至可能没有服务停机时间的情况下完成。这对于高度可用的服务(例如,依赖于具有低等待时间的那些服务或完全是任务关键和紧急的那些功能)可能特别有利。提供本“
技术实现思路
”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“
技术实现思路
”并非旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。附图说明为了描述可以获取本专利技术的上述和其他优点和特征的方式,上面简要描述的本专利技术的更具体的描述将通过参考在附图中示出的其特定实施例来呈现。应当理解,这些附图仅描绘了本专利技术的典型实施例,并且因此不被认为是对其范围的限制,本专利技术将通过使用附图以更多的特征和细节来描述和解释,在附图中:图1示出了其中可以采用本文中描述的原理的示例计算系统;图2示出了其中服务的机器经由存储在存储过程存储设备中的存储过程来对关系数据库的表执行数据操作的示例架构;图3示出了用于以服务可以继续操作以在升级期间对关系数据库执行数据操作的方式升级服务的方法的流程图;图4A示出了图2的架构的后续状态,其中新表被添加到关系数据库;图4B示出了图2的架构的后续状态,其中新表被添加到关系数据库,并且其中新的存储过程被添加到存储过程存储设备;图4C示出了图4B的架构的后续状态,其中服务的一些机器已经升级;以及图4D示出了图4C的架构的后续状态,其中服务的所有机器都已经升级。具体实施方式本文中描述的至少一些实施例涉及经由一个或多个存储过程的集合来对执行数据操作的多个机器(例如,服务)上的关系数据库进行升级。升级在不改变该一个或多个存储过程的集合的功能的情况下发生。因此,即使服务的机器本身没有升级,机器仍然可以经由该组一个或多个存储过程与数据库接口。关系数据库的升级通过向关系数据库添加新表并且还向存储过程存储设备添加新的存储过程来发生,新的存储过程引用新表的参数。由于与关系数据库接口的机器仍然可以使用旧的存储过程在升级后的数据库上操作,因此每个机器可以按有序的方式进行升级以与新的存储过程接口。因此,可能总是存在机器集合(不论是未升级还是已经完成升级),其可以与关系数据库接口以支持服务。例如,尚未升级后的机器可以使用旧的存储过程与数据库交互。另一方面,升级后的机器可以使用新的存储过程与数据库交互。因此,升级可以在很少甚至可能没有服务停机时间的情况下完成。这对于高度可用的服务(例如,依赖于具有低等待时间的那些服务或完全是任务关键和紧急的那些功能)可能特别有利。将关于图1描述对计算系统的一些介绍性讨论。然后,将参考后续附图描述升级过程。计算系统现在越来越多地采取各种各样的形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至传统上还没有被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形的处理器以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形的存储器。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并且可以包括多个组成计算系统。如图1所示,在其最基本配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储器,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。计算系统100上还具有多个通常被称为“可执行组件”的结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是计算领域的普通技术人员很好地理解为可以是软件、硬件或其组合的结构的结构名称。例如,当以软件实施时,本领域普通技术人员可以理解,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法,而无论这样的可执行组件是否存在于计算系统的堆中,或者无论可执行组件是否存在于计算机可读存储介质上。在这样的情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,计算系统被使得执行功能。这样的结构可以由处理器直接计算机可读(如果可执行组件是二进制的,则就是这种情况)。或者,结构可以被构造为可解释和/或被编译(无论是在单个阶段还是在多个阶段中),以便生成由处理器直接可解释的这样的二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解完全在计算领域的普通技术人员的理解之内。术语“可执行组件”以被本领域普通技术人员很好地理解为包括专门或近似专门用硬件实施的结构,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。因此,术语“可执行组件”是计算领域的普通技术人员很好地理解的用于结构的术语,无论该结构是以软件、硬件还是以组合的方式实施。在本说明本文档来自技高网
...

【技术保护点】
1.一种系统,包括:关系数据库,所述关系数据库包括一个或多个表的集合;存储过程存储设备,所述存储过程存储设备上具有一个或多个存储过程的集合,多个机器通过所述一个或多个存储过程的集合来对所述一个或多个表的集合执行数据操作;以及服务升级组件,所述服务升级组件管理所述服务的升级而不用服务停机时间,所述服务升级组件升级所述关系数据库而不改变所述一个或多个存储过程的集合。

【技术特征摘要】
【国外来华专利技术】2016.01.21 US 15/003,5421.一种系统,包括:关系数据库,所述关系数据库包括一个或多个表的集合;存储过程存储设备,所述存储过程存储设备上具有一个或多个存储过程的集合,多个机器通过所述一个或多个存储过程的集合来对所述一个或多个表的集合执行数据操作;以及服务升级组件,所述服务升级组件管理所述服务的升级而不用服务停机时间,所述服务升级组件升级所述关系数据库而不改变所述一个或多个存储过程的集合。2.根据权利要求1所述的系统,所述服务升级组件通过执行以下操作来升级所述关系数据库:向所述关系数据库添加一个或多个新表;在向所述关系数据库添加所述一个或多个新表之后,向所述存储过程存储设备添加新的存储过程的动作,所述新的存储过程引用所述新表的参数;以及在升级所述关系数据库之后,升级所述服务的所述多个机器中的至少一些机器中的每个机器,使得经升级的所述机器经由所述新的存储过程来对所述关系数据库执行数据操作。3.根据权利要求1所述的系统,还包括:服务,所述服务包括所述多个机器,所述多个机器经由所存储的所述一个或多个存储过程来对所述关系数据库执行数据操作,在所述关系数据库的所述升级之后,所述多个机器中的至少一些机器继续使用所述一个或多个存储过程的集合来对所述关系数据库执行数据操作,所述多个机器中的所述至少一些机器不使用新添加的所述存储过程来对新添加的所述表执行数据操作,至少直到相应的机器被升级。4.根据权利要求1所述的系统,在所述关系数据库正在被升级的同时,所述一个或多个存储过程的集合保持可用于与所...

【专利技术属性】
技术研发人员:郑重林海波王思岚
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1