CN108431769A - 无停机时间的数据库和服务升级 - Google Patents

无停机时间的数据库和服务升级 Download PDF

Info

Publication number
CN108431769A
CN108431769A CN201780004715.6A CN201780004715A CN108431769A CN 108431769 A CN108431769 A CN 108431769A CN 201780004715 A CN201780004715 A CN 201780004715A CN 108431769 A CN108431769 A CN 108431769A
Authority
CN
China
Prior art keywords
storing process
relational database
machine
service
new
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
Application number
CN201780004715.6A
Other languages
English (en)
Other versions
CN108431769B (zh
Inventor
郑重
林海波
王思岚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108431769A publication Critical patent/CN108431769A/zh
Application granted granted Critical
Publication of CN108431769B publication Critical patent/CN108431769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

无停机时间的数据库和服务升级
背景技术
计算系统通常将数据组织成数据库,一种常见类型的数据库被称为关系数据库。为了简化对关系数据库执行通用数据操作集的过程,这样的通用数据操作集被组织成存储过程。因此,在与数据库接口时,组件可以直接对关系数据库执行数据操作,但是通常也可以选择使用一个或多个存储过程与数据库交互。
服务是操作以为一个或多个请求者的集合执行一组一个或多个功能的一个或多个机器的集合。这样的请求者通常被称为服务的“客户”。服务的客户可以是人类用户(诸如当服务是电子邮件服务时),可以是其他服务或组件(诸如当服务是元数据服务时),或者可以是其组合(诸如当服务是存储服务时)。在任何情况下,服务通常依赖底层关系数据库,以保持和跟踪服务用来提供该服务功能集的重要数据。
当升级服务时,通常存在一些服务停机时间。在服务停机时间期间,关系数据库被升级,并且服务的机器被重新配置为与升级后的关系数据库交互。服务然后再次可用。但是,在这样的服务停机时间期间,客户往往没有有益的服务使用。
本文中要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。相反,提供此背景技术以仅说明其中可以实施本文中描述的一些实施例的一个示例性技术领域。
发明内容
本文中描述的至少一些实施例涉及对在经由一组一个或多个存储过程来执行数据操作的多个机器(例如,服务)上的关系数据库进行升级。升级在不改变一个或多个存储过程的集合的功能的情况下发生。因此,即使服务的机器本身没有升级,机器仍然可以经由该一个或多个存储过程的集合与数据库接口。关系数据库的升级通过向关系数据库添加新表并且还向存储过程存储设备添加新的存储过程来发生,新的存储过程引用新表的参数。
由于与关系数据库接口的机器仍然可以使用旧的存储过程在升级后的数据库上操作,因此每个机器可以按有序的方式进行升级以与新的存储过程接口。因此,可能总是存在机器集合(不论是未升级还是已经完成升级),其可以与关系数据库接口以支持服务。例如,尚未升级后的机器可以使用旧的存储过程与数据库交互。另一方面,升级后的机器可以使用新的存储过程与数据库交互。
因此,升级可以在很少甚至可能没有服务停机时间的情况下完成。这对于高度可用的服务(例如,依赖于具有低等待时间的那些服务或完全是任务关键和紧急的那些功能)可能特别有利。
提供本“发明内容”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“发明内容”并非旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。
附图说明
为了描述可以获取本发明的上述和其他优点和特征的方式,上面简要描述的本发明的更具体的描述将通过参考在附图中示出的其特定实施例来呈现。应当理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是对其范围的限制,本发明将通过使用附图以更多的特征和细节来描述和解释,在附图中:
图1示出了其中可以采用本文中描述的原理的示例计算系统;
图2示出了其中服务的机器经由存储在存储过程存储设备中的存储过程来对关系数据库的表执行数据操作的示例架构;
图3示出了用于以服务可以继续操作以在升级期间对关系数据库执行数据操作的方式升级服务的方法的流程图;
图4A示出了图2的架构的后续状态,其中新表被添加到关系数据库;
图4B示出了图2的架构的后续状态,其中新表被添加到关系数据库,并且其中新的存储过程被添加到存储过程存储设备;
图4C示出了图4B的架构的后续状态,其中服务的一些机器已经升级;以及
图4D示出了图4C的架构的后续状态,其中服务的所有机器都已经升级。
具体实施方式
本文中描述的至少一些实施例涉及经由一个或多个存储过程的集合来对执行数据操作的多个机器(例如,服务)上的关系数据库进行升级。升级在不改变该一个或多个存储过程的集合的功能的情况下发生。因此,即使服务的机器本身没有升级,机器仍然可以经由该组一个或多个存储过程与数据库接口。关系数据库的升级通过向关系数据库添加新表并且还向存储过程存储设备添加新的存储过程来发生,新的存储过程引用新表的参数。
由于与关系数据库接口的机器仍然可以使用旧的存储过程在升级后的数据库上操作,因此每个机器可以按有序的方式进行升级以与新的存储过程接口。因此,可能总是存在机器集合(不论是未升级还是已经完成升级),其可以与关系数据库接口以支持服务。例如,尚未升级后的机器可以使用旧的存储过程与数据库交互。另一方面,升级后的机器可以使用新的存储过程与数据库交互。
因此,升级可以在很少甚至可能没有服务停机时间的情况下完成。这对于高度可用的服务(例如,依赖于具有低等待时间的那些服务或完全是任务关键和紧急的那些功能)可能特别有利。将关于图1描述对计算系统的一些介绍性讨论。然后,将参考后续附图描述升级过程。
计算系统现在越来越多地采取各种各样的形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至传统上还没有被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形的处理器以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形的存储器。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并且可以包括多个组成计算系统。
如图1所示,在其最基本配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储器,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
计算系统100上还具有多个通常被称为“可执行组件”的结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是计算领域的普通技术人员很好地理解为可以是软件、硬件或其组合的结构的结构名称。例如,当以软件实施时,本领域普通技术人员可以理解,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法,而无论这样的可执行组件是否存在于计算系统的堆中,或者无论可执行组件是否存在于计算机可读存储介质上。
在这样的情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,计算系统被使得执行功能。这样的结构可以由处理器直接计算机可读(如果可执行组件是二进制的,则就是这种情况)。或者,结构可以被构造为可解释和/或被编译(无论是在单个阶段还是在多个阶段中),以便生成由处理器直接可解释的这样的二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解完全在计算领域的普通技术人员的理解之内。
术语“可执行组件”以被本领域普通技术人员很好地理解为包括专门或近似专门用硬件实施的结构,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。因此,术语“可执行组件”是计算领域的普通技术人员很好地理解的用于结构的术语,无论该结构是以软件、硬件还是以组合的方式实施。在本说明书中,也可以使用术语“组件”、“服务”、“引擎”、“模块”、“虚拟机”等。如在本描述中以及在这种情况下所使用的,这些术语(不管是否使用修饰语句表达)也旨在与术语“可执行组件”同义,并且因此也具有计算领域的普通技术人员很好理解的结构。
在以下描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这些动作以软件实施,则(执行动作的相关联的计算系统的)一个或多个处理器响应于已经执行构成可执行组件的计算机可执行指令来指导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实施。这种操作的示例涉及数据的操纵。
计算机可执行指令(和所操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其支持计算系统100通过例如网络110与其他计算系统通信。
尽管不是所有计算系统都需要用户界面,但是在一些实施例中,计算系统100包括用于与用户接口的用户界面112。用户界面112可以包括输出机构112A以及输入机构112B。本文中描述的原理不限于精确的输出机构112A或输入机构112B,这将取决于设备的性质。然而,输出机构112A可以包括例如扬声器、显示器、触觉输出、全息图等。输入机构112B的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、其他指针输入的鼠标、任何类型的传感器等。
本文中描述的实施例可以包括或利用包括计算机硬件(诸如例如一个或多个处理器和系统存储器)的专用计算系统或通用计算系统,如下面更详细讨论的。本文中描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理计算机可读介质和其他计算机可读介质。这样的计算机可读介质可以是可以被通用计算系统或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置并且可以由通用计算系统或专用计算系统访问的任何其他物理和有形存储介质。
“网络”被定义为能够在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬连线、无线或者硬连线或无线的组合)向计算系统传输或提供信息时,计算系统将连接正确地视为传输介质。传输介质可以包括可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置以及可以由通用或专用计算系统访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传输到存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终传送到计算系统RAM和/或计算系统处的较不易失性存储介质。因此,应当理解,存储介质可以被包括在也(甚至主要)利用传输介质的计算系统组件中。
计算机可执行指令包括例如当在处理器处执行时使得通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组的指令和数据。备选地或附加地,计算机可执行指令可以将计算系统配置为执行某个功能或功能组。计算机可执行指令可以是例如二进制文件或者甚至在处理器直接执行之前经历一些转换(诸如编译)的指令,诸如中间格式指令,诸如汇编语言或甚至源代码。
虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中限定的主题不一定限于以上描述的特征或动作。相反,所描述的特征和行为被公开作为实施权利要求的示例形式。
本领域技术人员将认识到,本发明可以在具有很多类型的计算系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。本发明也可以在分布式系统环境中实施,其中通过网络链接(通过硬连线数据链路、无线数据链路或者通过硬连线和无线数据链路的组合)的本地计算系统和远程计算系统都执行任务。在分布式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。
本领域技术人员还将认识到,本发明可以在云计算环境中实践。云计算环境可以是分布式的,但这不是必需的。在分布式的情况下,云计算环境可以在国际上在组织内分布和/或具有跨越多个组织而拥有的组件。在本说明书和以下权利要求中,“云计算”被定义为用于实施对可配置计算资源(例如,网络,服务器,存储器,应用和服务)的共享池的按需网络访问的模型。“云计算”的定义并不局限于在适当部署时可以从这样的模型中获取的其他很多优点。
图2示出了包括服务201的架构200,服务201经由存储在存储过程存储设备202内的一组存储过程220与关系数据库203交互。服务201包括一组机器210。该组机器210被示出为包括四个机器211至214。然而,椭圆219表示本文中描述的原理不限于支持服务201的特定数目的机器。甚至可以仅有单个机器211支持该服务。但是,有由数千个机器支持的服务。该组机器210可以包括物理机器,在这种情况下,物理机器可以采取图1的计算系统100的形式。替代地或另外地,该组机器210可以包括虚拟机。在任何情况下,该组机器210都运行以支持服务201。
服务201由数据支持,该数据的至少一部分被包括在关系数据库203的表230内。关系数据库203被示出为包括三个表231、232和233。然而,这仅作为示例。关系数据库可以包括由椭圆239表示的任何数目的表。
服务201使用存储在存储过程存储设备202内的存储过程220,以便对关系数据库203内的表230执行数据操作。例如,存储过程包括两个存储过程221和222,尽管椭圆229表示可以有任何数目的存储过程,服务201操作以通过这些存储过程来对关系数据库202的表230执行数据操作。存储过程220引用存储过程220对其进行操作的表。例如,存储过程221对表231和232执行数据操作(如箭头241和242A所示),并且因此存储过程221包括对表231和232的适当引用。另一方面,存储过程222对表232和233执行数据操作(如箭头242B和243所示),并且因此存储过程222包括对表232和233的适当引用。
架构200还包括服务升级组件250,其管理服务的升级而没有服务停机时间。换言之,服务升级组件250升级服务,同时允许服务201的机器210继续使用存储过程221和222来对关系数据库203执行数据操作。服务升级组件250不改变存储过程221和222。因此,对表的引用(引用241、242A、242B和243)保持不变。优选地,在升级过程期间,存储过程221和222的参数都没有改变。
在整个升级过程中,表231、232和233保持不变,并且存储过程221和222也保持不变。因此,服务的任何机器210可以继续使用关系数据库203,只要它们经由存储过程221和222来进行操作,由此确保无论关系数据库203发生的任何其他事件,表231到233保持一致,从而确保了来自关系数据库201的一致响应,就像完全没有发生升级一样。在一些实施例中,当对关系数据库执行操作时,服务的任何机器210总是经由一个或多个存储过程220来进行操作。在这种情况下,由于没有对数据库的直接查询,所以机器210的动作与根本没有升级一样。
图3示出了用于升级服务的方法300的流程图。因为方法300可以在图2的环境200内执行,所以现在将关于图2和图2的后续状态描述方法300,如图4A至4E所示。
首先,服务升级组件向关系数据库添加一组一个或多个新表(动作301)。例如,图4A表示作为图2的架构200的后续状态的架构400A。图2示出了其中存在三个表231、232和233的示例初始状态。然而,图4A示出了三个附加表234、235和236已经添加。注意,这些表234、235和236的添加确实需要停止机器210的操作,因为机器经由不对新表234、235和236执行数据操作的存储过程221和222来工作。
而且,向存储过程存储设备添加新的存储过程(动作302)。例如,比较图4A和4B,新的存储过程223和224被添加到存储过程存储设备器240。新的存储过程223和224对新表234至236执行数据操作。例如,存储过程223具有对表234的引用244和对表235的引用245A。同样,在这个示例中,存储过程224具有对表235的引用245B和对表236的引用246。
新的存储过程223和224仅对新表234至236进行操作。这具有以下优点:一旦服务完全升级,如果新表234至236是旧表231至233的替换,则旧表可以被移除。但是,这种升级方式不是必需的。在一些实施例中,新的存储过程223和224可以包括对旧表的引用。例如,如虚线247所示,新的存储过程224可以具有对旧表233的引用247。
尽管在描述新表的添加(图4A)之后描述新的存储过程的添加(图4B),但是在图3中并行地示出了动作301和302。由于还没有机器被配置为与新的存储过程233和234交互,所以关于首先添加哪个并没有暂时依赖关系,并且实际上它们都可以同时被添加。在任何情况下,在图4B的情况下,关系数据库203本身和存储过程存储设备202已经升级,只留下服务201自身要被升级(动作303)。由于服务201的机器211至214可以经由旧的存储过程221和223来继续与关系数据库203交互,所以机器211至214的升级可以按有序的方式发生,总是留下一些可用于响应于传入的服务调用。
例如,在图4C的后续状态400C中,机器211至214中的一半(即,机器211和212)已经升级(以形成机器211'和212'),以便经由新的存储过程223和224来与关系数据库203交互。该升级由现在抽象地表示为三角形的机器211'和212'表示。尚未升级的机器213和214可以继续经由旧的存储过程221和222来与关系数据库203一起操作。尚未升级的机器213和214可以使用旧的存储过程221和222来与关系数据库接口。另一方面,已经升级的机器211'和212'可以使用新的存储过程来与数据库接口。
图4D示出了后续状态400D,其中现在所有的机器已经被升级以经由新的存储过程223和224来与关系数据库接口。因此,机器213和214现在也被表示为三角形,并被表示为机器213'和214',以表征这次升级。
此时,可以发生潜在的关系数据库清理(动作304)。这种清理是可选的,但可能涉及删除不再使用的表。例如,在图4D中,假定引用247不存在,则表231至233可以从关系数据库203中被移除。如果引用247确实存在,则表231和232可以从关系数据库203中被移除。此外,一旦升级完全完成,可以为存储过程存储设备202移除旧的存储过程221和222。
然而,本文中描述的原理也可以支持版本化。例如,图4C的状态可以持续一段时间,机器211和212支持服务的后续版本,并且机器213和214支持服务的先前版本。如果再次执行方法300(动作301、302和303),则例如可以发现机器213和214支持服务的第一版本,机器212支持服务的第二版本,并且机器211支持服务的最新版本。
因此,本文中描述的原理提供了用于在不停止服务的情况下对依赖于底层关系数据库的服务进行升级的有效机制。因此,实现了无缝服务升级,而服务本身仍然高度可用。这对于高度可用的服务(诸如依赖于具有低等待时间的那些服务、或完全是任务关键和紧急的那些功能)可能特别有利。
在不脱离本发明的精神或基本特征的情况下,可以以其他具体形式来实施发明。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都将被包含在其范围内。

Claims (10)

1.一种系统,包括:
关系数据库,所述关系数据库包括一个或多个表的集合;
存储过程存储设备,所述存储过程存储设备上具有一个或多个存储过程的集合,多个机器通过所述一个或多个存储过程的集合来对所述一个或多个表的集合执行数据操作;以及
服务升级组件,所述服务升级组件管理所述服务的升级而不用服务停机时间,所述服务升级组件升级所述关系数据库而不改变所述一个或多个存储过程的集合。
2.根据权利要求1所述的系统,所述服务升级组件通过执行以下操作来升级所述关系数据库:
向所述关系数据库添加一个或多个新表;
在向所述关系数据库添加所述一个或多个新表之后,向所述存储过程存储设备添加新的存储过程的动作,所述新的存储过程引用所述新表的参数;以及
在升级所述关系数据库之后,升级所述服务的所述多个机器中的至少一些机器中的每个机器,使得经升级的所述机器经由所述新的存储过程来对所述关系数据库执行数据操作。
3.根据权利要求1所述的系统,还包括:
服务,所述服务包括所述多个机器,所述多个机器经由所存储的所述一个或多个存储过程来对所述关系数据库执行数据操作,
在所述关系数据库的所述升级之后,所述多个机器中的至少一些机器继续使用所述一个或多个存储过程的集合来对所述关系数据库执行数据操作,所述多个机器中的所述至少一些机器不使用新添加的所述存储过程来对新添加的所述表执行数据操作,至少直到相应的机器被升级。
4.根据权利要求1所述的系统,在所述关系数据库正在被升级的同时,所述一个或多个存储过程的集合保持可用于与所述关系数据库交互。
5.根据权利要求1所述的系统,至少在所述关系数据库的所述升级之前,所述多个机器排他地通过所述一个或多个过程的集合来对所述关系数据库执行数据操作。
6.根据权利要求1所述的系统,所述关系数据库的所述升级发生而不改变所述一个或多个存储过程的集合。
7.根据权利要求1所述的系统,所述关系数据库的所述升级发生而不改变所述一个或多个存储过程的集合的任何参数。
8.一种用于升级关系数据库的方法,所述关系数据库具有一个或多个表的集合,多个机器经由存储过程存储设备上的一个或多个存储过程的集合来对所述一个或多个表的集合执行数据操作,所述升级发生而不改变所述一个或多个存储过程的集合,所述方法包括:
向所述关系数据库添加一个或多个新表的动作;以及
在向所述关系数据库添加所述一个或多个新表之后,向所述存储过程存储设备添加新的存储过程的动作,所述新的存储过程引用所述新表的参数。
9.根据权利要求8所述的方法,所述方法还用于升级由所述多个机器支持的服务,所述方法包括:
对所述服务的所述多个机器中的至少一些机器中的每个机器进行升级的动作,使得经升级的所述机器经由所述新的存储过程来对所述关系数据库执行数据操作。
10.根据权利要求8所述的方法,还包括:
在添加新的存储过程的所述动作之后,所述多个机器中的至少一些机器继续使用所述一个或多个存储过程的集合来对所述关系数据库执行数据操作的动作,所述多个机器中的所述至少一些机器中的至少一些机器继续使用所述一个或多个存储过程的集合来对所述关系数据库执行数据操作,直到相应的机器被升级,以使用所述新的存储过程来对所述关系数据库执行数据操作。
CN201780004715.6A 2016-01-21 2017-01-16 无停机时间的数据库和服务升级 Active CN108431769B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/003,542 US10262054B2 (en) 2016-01-21 2016-01-21 Database and service upgrade without downtime
US15/003,542 2016-01-21
PCT/US2017/013617 WO2017127324A1 (en) 2016-01-21 2017-01-16 Database and service upgrade without downtime

Publications (2)

Publication Number Publication Date
CN108431769A true CN108431769A (zh) 2018-08-21
CN108431769B CN108431769B (zh) 2021-09-17

Family

ID=57995270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780004715.6A Active CN108431769B (zh) 2016-01-21 2017-01-16 无停机时间的数据库和服务升级

Country Status (4)

Country Link
US (1) US10262054B2 (zh)
EP (1) EP3405867B1 (zh)
CN (1) CN108431769B (zh)
WO (1) WO2017127324A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722344A (zh) * 2021-09-10 2021-11-30 北京百度网讯科技有限公司 数据生产方法、装置、电子设备、存储介质及程序产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817382B2 (en) * 2017-05-17 2020-10-27 Dell Products, L.P. Concurrent upgrade of primary and standby databases

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091305A1 (en) * 1997-08-08 2001-04-11 Telefonaktiebolaget L M Ericsson (Publ) Method for upgrading a database
CN1828527A (zh) * 2005-02-28 2006-09-06 微软公司 用于跨不同应用程序框架的数据服务的平台
US20080046400A1 (en) * 2006-08-04 2008-02-21 Shi Justin Y Apparatus and method of optimizing database clustering with zero transaction loss
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN101582071A (zh) * 2008-05-16 2009-11-18 鸿富锦精密工业(深圳)有限公司 数据更新系统及方法
US20120101983A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Online database availability during upgrade
CN102438041A (zh) * 2010-10-20 2012-05-02 微软公司 高可用性场服务器组的升级
CN102737088A (zh) * 2011-03-18 2012-10-17 微软公司 分布式数据库系统中的无缝升级
US8315972B2 (en) * 2003-09-26 2012-11-20 Microsoft Corporation Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
CN102880531A (zh) * 2012-09-27 2013-01-16 新浪网技术(中国)有限公司 数据库备份系统及其备份方法和从数据库服务器
CN102902818A (zh) * 2012-10-26 2013-01-30 杭州迪普科技有限公司 一种数据库升级的方法及装置
US20150161182A1 (en) * 2013-12-10 2015-06-11 Sap Ag Updating Database Schemas in a Zero-Downtime Environment
CN105069117A (zh) * 2015-08-11 2015-11-18 国网技术学院 一种基于存储过程的数据流效率提升方法
CN105190611A (zh) * 2012-12-06 2015-12-23 微软技术许可有限责任公司 数据库横向扩展

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023623A1 (en) 2001-09-10 2003-03-20 Unisys Corporation A method and apparatus for facilitating deployment of software applications with minimum system downtime
US7155426B2 (en) 2001-09-20 2006-12-26 International Business Machines Corporation SQL debugging using stored procedures
US7523142B2 (en) 2001-12-17 2009-04-21 Sap Ag Systems, methods and articles of manufacture for upgrading a database with a shadow system
US6917935B2 (en) 2002-06-26 2005-07-12 Microsoft Corporation Manipulating schematized data in a database
US7818740B2 (en) 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
US8521706B2 (en) 2006-10-20 2013-08-27 Oracle International Corporation Low-downtime and zero-downtime upgrades of database-centric applications
US9183088B2 (en) 2010-03-31 2015-11-10 Salesforce.Com, Inc. Reducing database downtime
US9489437B2 (en) 2010-09-30 2016-11-08 Teradata Us, Inc. Master data management database asset as a web service
US9280568B2 (en) 2012-11-20 2016-03-08 Sap Se Zero downtime schema evolution
US9483245B2 (en) 2013-01-23 2016-11-01 Red Hat Israel, Ltd. Matching database schema with application code using dependency management
US9639448B2 (en) 2013-06-27 2017-05-02 Sap Se Multi-version systems for zero downtime upgrades
US10303665B2 (en) * 2014-09-24 2019-05-28 Sap Se Zero downtime maintenance for applications and databases

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091305A1 (en) * 1997-08-08 2001-04-11 Telefonaktiebolaget L M Ericsson (Publ) Method for upgrading a database
US8315972B2 (en) * 2003-09-26 2012-11-20 Microsoft Corporation Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
CN1828527A (zh) * 2005-02-28 2006-09-06 微软公司 用于跨不同应用程序框架的数据服务的平台
US20080046400A1 (en) * 2006-08-04 2008-02-21 Shi Justin Y Apparatus and method of optimizing database clustering with zero transaction loss
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN101582071A (zh) * 2008-05-16 2009-11-18 鸿富锦精密工业(深圳)有限公司 数据更新系统及方法
US20120101983A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Online database availability during upgrade
CN102438041A (zh) * 2010-10-20 2012-05-02 微软公司 高可用性场服务器组的升级
CN102541987A (zh) * 2010-10-20 2012-07-04 微软公司 升级期间的在线数据库可用性
CN102737088A (zh) * 2011-03-18 2012-10-17 微软公司 分布式数据库系统中的无缝升级
CN102880531A (zh) * 2012-09-27 2013-01-16 新浪网技术(中国)有限公司 数据库备份系统及其备份方法和从数据库服务器
CN102902818A (zh) * 2012-10-26 2013-01-30 杭州迪普科技有限公司 一种数据库升级的方法及装置
CN105190611A (zh) * 2012-12-06 2015-12-23 微软技术许可有限责任公司 数据库横向扩展
US20150161182A1 (en) * 2013-12-10 2015-06-11 Sap Ag Updating Database Schemas in a Zero-Downtime Environment
CN105069117A (zh) * 2015-08-11 2015-11-18 国网技术学院 一种基于存储过程的数据流效率提升方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722344A (zh) * 2021-09-10 2021-11-30 北京百度网讯科技有限公司 数据生产方法、装置、电子设备、存储介质及程序产品

Also Published As

Publication number Publication date
US10262054B2 (en) 2019-04-16
EP3405867B1 (en) 2020-10-07
CN108431769B (zh) 2021-09-17
US20170212947A1 (en) 2017-07-27
WO2017127324A1 (en) 2017-07-27
EP3405867A1 (en) 2018-11-28

Similar Documents

Publication Publication Date Title
JP6815456B2 (ja) 複数ソースからのデータの処理
Bilal et al. Towards automatic parameter tuning of stream processing systems
JP6832347B2 (ja) 分散型システムにおける多段階処理のためのイベント順序の保証
US9152668B1 (en) Asynchronous computation batching
CN104520814B (zh) 用于配置云计算系统的系统和方法
JP2019535065A5 (zh)
US20160011911A1 (en) Managing parallel processes for application-level partitions
JP2010541080A (ja) サービス指向型パイプライン構造
US10628393B2 (en) Generating data tables
CN106796500A (zh) 分布式文件系统的版本间映射
US20160274874A1 (en) Method and apparatus for processing request
US10078579B1 (en) Metrics-based analysis for testing a service
Nurkiewicz et al. Reactive programming with RxJava: creating asynchronous, event-based applications
CN109033109A (zh) 数据处理方法及系统
Berthold et al. Parallelization of the FICO xpress-optimizer
JP2015219637A (ja) 処理実行プログラム、処理実行方法、及び情報処理装置
US9442818B1 (en) System and method for dynamic data collection
CN108431769A (zh) 无停机时间的数据库和服务升级
CN106062738B (zh) 管理作业状态
US10324908B2 (en) Exposing database artifacts
US10489416B2 (en) Optimizing and managing execution of hybrid flows
Cao et al. Paraaim: testing android applications parallel at activity granularity
US11693882B2 (en) System and method for offline capability for mobile devices including asynchronous threads
US10963444B2 (en) Techniques and architectures for providing functionality to undo a metadata change
CN110321132A (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