数据库应用的真实负载调节的制作方法

文档序号:6435435阅读:110来源:国知局
专利名称:数据库应用的真实负载调节的制作方法
技术领域
本发明涉及计算机技术,尤其涉及数据库应用的真实负载调节。
背景技术
数据库是数据记录的有组织的集合,并且对于数据密集应用和服务非常有用。存在通过诸如因特网之类的网络提供的各种服务,这些服务中的许多依赖于数据库的适当功能。为了与可用数据库适当地接口,服务通常包括一个或多个服务器计算系统(称为“服务器”)°服务器可按各种方式来配置,以便与数据库适当地接口。然而,由于整体数据库系统的复杂度,常常难以预测在服务器的特定配置下服务器和数据库将执行地有多好。在没有对服务器将接收的查询的类型的准确概念的情况下,尤其难以知晓数据库将如何执行。

发明内容
本文中描述的至少一个实施例涉及数据库环境,其包括数据库生产服务器、数据库测试服务器,以及虚拟化连接,该虚拟化连接将传入服务请求通信提供给数据库生产服务器和数据库测试服务器两者。然而,数据库生产服务器对数据库服务请求作出响应,而数据库测试服务器不进行响应。本文中描述的原理可包括多个数据库生产服务器和/或多个数据库测试服务器,但是并不是必需的。可针对各个不同的配置测试数据库测试服务器,以力图找到表现更好的配置。测试是实时的,因为数据库测试服务器经历与数据库生产服务器所经历的相同的传入服务请求通信。随着数据库测试服务器经历不同配置,记录每个配置。也许随后用户可导航到特定配置,且在随后也许在不同方向上更改该配置,从而潜在可能地生成所记录配置的分层树。一旦找到可接受的配置,可在随后通过使数据库测试服务器变成数据库生产服务器,或通过将配置拷贝回数据库生产服务器来应用该配置以进行生产。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。


为了描述可以获得上面所列举的及其他优点和特征的方式,下面将参考附图来呈现对各实施例的更具体的描述。可以理解,这些附图只描绘了样本实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加属性和细节来描述和解释各实施例,在附图中图1示出可用于采用此处所描述的各实施例的示例计算系统;图2示出了本文中所描述的原理可在其中起作用的数据库环境,且该环境包括数据库生产服务器和数据库测试服务器;图3A示出了所记录配置的示例分层结构的生成中的第一阶段;
图;3B示出了所记录配置的示例分层结构的生成中的第二阶段;图4示出了准备用于测试的数据库测试服务器的方法的流程图;图5示出了用于测试数据库测试服务器的方法的流程图;图6示出了本文中所描述的原理可在其中起作用的数据库环境,并且该环境包括三个数据库服务器,其中有多个数据库生产服务器或多个数据库测试服务器;以及图7示出了用于操作数据库环境的方法的流程图。
具体实施例方式根据本文中描述的实施例,数据库环境包括数据库生产服务器、数据库测试服务器,以及虚拟化连接,该虚拟化连接将传入服务请求通信提供给数据库生产服务器和数据库测试服务器两者。然而,数据库生产服务器对数据库服务请求作出响应,而数据库测试服务器不进行响应。可针对各个不同的配置测试数据库测试服务器,以力图找到表现更好的配置。测试是实时的,因为数据库测试服务器经历与数据库生产服务器所经历的相同的传入服务请求通信。尽管不是必需的,但是本文中描述的原理可包括多个数据库生产服务器和/或多个数据库测试服务器。首先,将参考图1来描述关于计算系统的某些介绍性讨论。 然后,将参考图2至7来描述用于操作的数据库环境和过程的实施例。首先,参考图1来描述关于计算系统的介绍性讨论。计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括包含至少一个处理器以及其上能含有可由处理器执行的计算机可执行指令的存储器的任何设备或系统(或其组合)。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102 和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。 如此处所使用的那样,术语“模块”,或“组件”可以指在计算系统上执行的软件对象或例程。 此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程 (例如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。 计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统能够访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同类型的计算机可读介质计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“OTC”) 内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。图2示出了本文中所描述的原理可在其中起作用的数据库环境200。数据库环境200包括虚拟化连接201,其从网络接收传入服务请求通信210,并且为数据库生产服务器和数据库测试服务器两者克隆该传入服务请求通信。因而,将传入服务请求通信210(1) 从虚拟化连接201提供到数据库生产服务器211,并且将传入服务请求通信的另一实例 210(2)从虚拟化连接201提供到数据库测试服务器212。在一个实施例中,提供给数据库生产服务器211的传入服务请求通信210(1)与提供给数据库测试服务器212的传入服务请求通信210( 相同。每个服务器211或212可以是单个计算系统,或者数个分布式计算系统。传入服务请求通信210可能已经历负载平衡器。因而,传入服务请求通信210无需是去往服务的通信的全部,并且可能有未在图2中示出的其他生产服务器。数据库生产服务器211在数据库221上操作。数据库生产服务器211接收传入服务请求通信210(1)并处理该传入服务请求通信210(1)。在处理每个传入服务请求时,数据库生产服务器211在适当时与数据库221接口。若有需要,数据库生产服务器211在随后对该请求作出响应。数据库生产服务器211具有特定配置231。取决于特定配置231,数据库生产服务器211在处理特定类型的传入服务请求时可更高效或更低效。数据库测试服务器212还接收传入服务请求通信210 (2)并处理该传入服务请求通信210( 。在处理每个传入服务请求时,数据库测试服务器211在适当时与数据库222 接口。如果请求将正常地要求响应,则数据库测试服务器212可能生成响应,但是不向请求的始发者分派响应。相反,如以上所提及的,由于数据库生产服务器211还接收请求,并分派响应,因此数据库测试服务器212不必分派响应。事实上,如果响应是由数据库测试服务器212来分派,则系统将功能失常,因为并不期望查询生成不同结果集。数据库测试服务器 212也具有特定配置232。再次地,取决于特定配置232,数据库测试服务器212在处理特定类型的传入服务请求时可更高效或更低效。数据库测试服务器212可在数据库222上操作,而不影响数据库生产服务器211 访问数据库221。例如,数据库222可以是数据库221的副本。作为替换或补充,数据库222 可以是从数据库221导出(例如,也许使用改变或增量(delta)文件)的孤立的数据库。在后一情形中,当数据库测试服务器212写入数据库222时,数据库测试服务器222简单地写入增量文件,但是不写入数据库221。当数据库测试服务器212从数据库222读取时,数据库测试服务器222鉴于增量文件读取数据库221。这使得数据库测试服务器212看起来其就像访问截然不同的数据库222 —样,而无需数据库的全副本,并且同时仍维护数据库测试服务器212与由数据库生产服务器211访问的数据库221之间的隔离。因而,数据库测试服务器212模拟实时操作环境,因为其接收并处理与数据库生产服务器211所处理的相同的传入服务请求通信。数据库测试服务器212可甚至做到对传入服务请求生成(但不分派)适当的响应。因而,数据库测试服务器212经历与数据库生产服务器211所经历的相同的工作条件,除了以下这个事实之外与数据库生产服务器211 的配置231相比,数据库测试服务器212的配置232可被更改。环境200还包括数个其他组件241到M5,它们可由服务器211和212中的一者或两者提供和/或由外部系统(未示出)来提供。其他组件241到245的功能将参照图3到 7来描述,图3到7描述了数据库环境的示例操作。不过,现在简要地描述组件241到245 的功能。具体地,组件包括克隆接口 Ml,其准许将数据库生产服务器的配置克隆到数据库测试服务器。例如,克隆接口 241可被用于使得数据库测试服务器212的配置232与数据库生产服务器211的配置231相同。克隆接口 241还可能已克隆了数据库221,以使得由数据库测试服务器212访问的数据库222至少最初具有与由数据库生产服务器211所访问的数据库221的状态相同的状态。一种用于克隆的机制是通过使用数据层应用组件(即 “DAC”),其将数据库服务器的配置信息连同数据库对象的模式一起打包。配置接口 242可被用于操纵数据库测试服务器212的配置232。因而,配置接口 242可被用于改变数据库测试服务器212的配置,以测试数据库生产服务器211的某一其他配置对于正被处理的传入服务请求通信的类型而言是否可更好地操作。在本说明书和权利要求书中,数据库服务器(不管是数据库生产服务器还是数据库测试服务器)的“配置”将被宽泛地解释为包括可影响数据库服务器的操作的任何设置或数据。记录组件243被配置成在各个时刻记录数据库测试服务器的配置的状态。再次地,DAC系统可被用于记录数据库测试服务器的配置。导航接口 244允许将数据库测试服务器的状态迁移到由记录组件423记录的先前记录的状态的任一个。通过使用记录组件243和导航接口 M4,可生成所记录的配置状态的分层结构。现在将参照图3A和;3B描述简单的分层结构示例的生成。如图3A中示出的, 假定数据库测试服务器已多次记录其配置,从而导致按时间顺序记录的配置记录301、302、 303、和304。现在,假定用户导航回状态302,以使得这一所记录配置被恢复到数据库测试服务器。现在,如图3B中所示的,配置被改变并被记录另外的两次,从而导致附加的配置记录305和306。图3A和;3B示出了配置记录的简单分层结构,但是还可生成复杂得多的分层结构。拷贝组件245准许将数据库测试服务器的配置拷贝回数据库生产服务器。一旦发现导致数据库测试服务器的良好性能的合需的配置设置,就可将该配置信息拷贝回数据库生产服务器。替换地,通过对虚拟化连接201进行恰当的重配置,数据库测试服务器可被配置成数据库生产服务器,且反之亦然。图4示出了用于准备用来测试的数据库测试服务器的方法400的流程图。现在将参照图4描述图4、5和7的方法。在包括数据库生产服务器的服务环境中预设数据库测试服务器(动作401)。例如,参考图2,在环境200中设置数据库测试服务器212。此预设还可包括将数据库测试服务器212克隆成使其与数据库生产服务器211大致相同地进行操作。这可通过克隆组件 241从数据库生产服务器211拷贝配置以使得数据库测试服务器212的配置232与数据库生产服务器211的配置231相同来完成。此外,克隆组件241可向数据库测试服务器给予对数据库的副本的访问。例如,数据库测试服务器212被给予对数据库222的访问,该数据库222至少最初可看起来与数据库221相同。除预设数据库测试服务器212之外,还设置虚拟化连接(动作40 以接收要由数据库生产服务器211处理的传入服务请求通信。此外,虚拟化连接被设置成将传入服务请求通信拷贝成使得传入服务请求通信相同的流被通道传送至数据库生产服务器211和数据库测试服务器212两者。例如,在图2中,传入服务请求通信的副本被通道传送到数据库生产服务器211 ( S卩,通信210 (1))以及数据库测试服务器212 (即,通信210 (2))。图5示出了用于测试数据库测试服务器的方法500的流程图。在数据库测试服务器212被克隆成匹配数据库生产服务器211之后,配置接口 242可被用于在不影响数据库生产服务器的配置231的情况下对数据库测试服务器212的各种配置进行实验。由此, 可能存在根据测试者的需要而对配置232作出的任何数目(从1至可枚举的数)的修订 (revision)。可对数据库测试服务器212的配置232的每个修订执行方法500。对于每个修订,数据库测试服务器被重配置(动作501)成具有特定配置。例如, 在图2中,配置接口 242可被测试者用来对数据库测试服务器212的新配置232进行实验。 替换地,导航接口 244可被测试者用来恢复或返回到先前记录的数据库测试服务器212的配置。例如,如参照图3A和;3B解释的,可使用导航接口 244和配置接口 242来创建所记录配置的复杂分层结构。对于修订中的一个或多个,可测量(动作50 数据库测试服务器的性能,以便确定配置是否良好地工作。例如,测试者可测量处理器利用、响应时间、差错等。另外,对于修订中的一个或多个,记录(动作503)配置状态。例如,DAC系统可被用于以紧凑方式对配置状态进行打包。每次记录配置状态时,所记录的状态表示所记录的配置状态的分层结构中的新节点。参看图2,此记录可由记录组件243来执行。一旦就数据库测试服务器212找到良好配置,就可在随后将该配置应用于生产。 这可通过切换数据库服务器211和212的角色以使得数据库测试服务器212被用于生产 (并由此生成和分派响应),且数据库生产服务器211被用作测试服务器来完成。替换地,作为切换角色的替代,就数据库测试服务器发现的良好配置(不管是数据库测试服务器的当前状态还是某一先前记录的状态)可被应用回数据库生产服务器。 DAC系统可被用于完成这个操作。图6示出了其中有多个生产服务器的数据库环境600。在此实施例中,有能访问相应的数据库621、622和623的三个服务器611、612和613。提供数据库环境600以例示可能有多个生产服务器在运行中,且也许有多个测试服务器也在运行中。例如,假定服务器611和612是生产服务器,而服务器613是测试服务器。服务器 611和612可各自在特定时段期间是活动的。例如,服务器611可以在白天期间是活动的, 并且被恰当地配置成用于在白天期间可预期的传入服务请求通信,而服务器612可能在夜晚是活动的,并且被适当的配置成用于在夜晚期间可预期的传入服务请求通信。数据库测试服务器613可被用于测试数据库生产服务器611或612中的究竟哪一个当前是活动的。 这是其中服务器611和612可具有可基于应用于系统的不同的工作负载实时动态地改变的多个并发配置的较宽泛原理的示例。这赋予了具有可自动切换以便在任何给定时间提供最优性能的多个所存储的配置的能力。作为另一示例,假定仅有一个生产服务器611和两个测试服务器612和613。相同的测试者或者也许不同的测试者可使用各个测试服务器612和613来独立地测试不同的配置以生成截然不同的所记录配置的树。出于完整性起见,图7示出了用于操作数据库环境的方法700的流程图。环境接收传入服务请求通信(动作701)。对于每个服务请求,虚拟化连接将传入服务请求提供给数据库生产服务器(动作70 以及提供给数据库测试服务器(动作70 。数据库生产服务器接收、处理传入服务请求并对其进行响应(动作704),而数据库测试服务器接收并处理传入服务请求(动作70幻。数据库测试服务器还可生成响应,但是不分派响应。因此,本文所描述的原理准许对各个数据库配置进行更准确和实时的测试,而不妨碍实际的生产服务器对服务请求作出响应的能力。因而,服务业务可在测试可能使服务性能甚至进一步改进的替换性配置的同时继续进行。本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。
权利要求
1.一种用于调节数据库测试服务器012)的方法000,500),包括在服务环境O00)中预设(401)数据库测试服务器012)的动作,所述服务环境包括处理传入服务请求通信OlO)的数据库生产服务器011);将虚拟化连接(201)设置(40 成接收将由所述数据库生产服务器处理的所述传入服务请求通信OlO)以及使得所述虚拟化连接克隆所述传入服务请求通信并将所述传入服务请求通信的副本引导至所述数据库测试服务器,同时仍使得所述传入服务请求通信OlO(I))被所述数据库生产服务器接收到的动作;测试(500)所述数据库测试服务器的动作,所述测试所述数据库测试服务器的动作包括以下对所述数据库测试服务器的配置的至少一个修订进行的动作 将所述数据库测试服务器配置(501)成具有所述配置的动作;以及记录(50 所述数据库测试服务器的所述配置的动作。
2.如权利要求1所述的方法,其特征在于,所述数据库测试服务器的所述配置的所述至少一个修订包括所述数据库测试服务器的所述配置的多个修订,使得存在所述数据库测试服务器的多个所记录配置。
3.如权利要求2所述的方法,其特征在于,对于所述修订中的至少一个,所述将所述数据库测试服务器配置成具有所述配置的动作包括以下动作返回到所述数据库测试服务器的所述配置的所述多个修订中的一个的动作;以及在返回到所述数据库测试服务器的所述配置的所述多个修订中的一个之后,进一步更改所述数据库测试服务器的配置的动作。
4.如权利要求1所述的方法,其特征在于,所述预设数据库测试服务器的动作包括 从所述数据库生产服务器拷贝配置的动作。
5.如权利要求1所述的方法,其特征在于,所述测试所述数据库服务器的动作包括以下对所述测试服务器的所述配置的所述至少一个修订进行的动作测量具有所述配置的所述数据库测试服务器的性能的动作。
6.如权利要求5所述的方法,其特征在于,还包括确定所述数据库测试服务器的特定配置将被应用于生产的动作。
7.如权利要求6所述的方法,其特征在于,所述数据库测试服务器的所述特定配置是所述数据库测试服务器的当前配置。
8.如权利要求7所述的方法,其特征在于,还包括响应于所述确定动作,切换所述数据库生产服务器和所述数据库测试服务器的角色的动作。
9.一种数据库环境000),包括数据库生产服务器011),其接收、处理传入服务请求通信OlO(I))并对其进行响应; 数据库测试服务器012),其接收并处理传入服务请求通信; 虚拟化连接001),其从网络接收传入服务请求通信010),并且为所述数据库生产服务器和所述数据库测试服务器两者克隆所述传入服务请求通信。
10.如权利要求9所述的数据库环境,其特征在于,还包括克隆接口,其准许将所述数据库生产服务器的所述配置克隆到所述数据库测试服务
11.如权利要求10所述的数据库环境,其特征在于,还包括 配置接口,其可被用于操纵所述数据库测试服务器的所述配置。
12.如权利要求11所述的数据库环境,其特征在于,还包括配置记录组件,其被配置成在多个时刻记录所述数据库测试服务器的配置的状态。
13.如权利要求12所述的数据库环境,其特征在于,还包括导航接口,其允许将所述数据库测试服务器的所述状态迁移到由所述配置记录组件记录的多个状态中的任一个。
14.如权利要求13所述的数据库环境,其特征在于,还包括配置拷贝组件,其准许将所述数据库生产服务器的所述配置拷贝到所述数据库测试服务器,以及准许将所述数据库测试服务器的所述配置或所述数据库测试服务器的所记录配置拷贝到所述数据库生产服务器。
全文摘要
本文描述了数据库应用的真实负载调节。数据库环境,其包括一个或多个数据库生产服务器、一个或多个数据库测试服务器、以及虚拟连接,该虚拟连接将传入服务请求通信提供给数据库生产服务器和数据库测试服务器两者。然而,数据库生产服务器对数据库服务请求作出响应,而数据库测试服务器不进行响应。可针对各个不同的配置测试数据库测试服务器,以力图找到表现更好的配置。测试是实时的,因为数据库测试服务器经历与数据库生产服务器所经历的相同的传入服务请求通信。
文档编号G06F17/30GK102402583SQ20111030862
公开日2012年4月4日 申请日期2011年9月29日 优先权日2010年9月30日
发明者D·索利奥斯, S·K·托塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1