用于数据环境的自服务配置的制作方法_4

文档序号:9547244阅读:来源:国知局
示数据库参数的值的变 化(502),例如从十到五十秒的队列超时的变化。请求被分析以确定处理请求所需要的任意 行动(504)、并且用于创建的信息被写入工作信息(506)。更新的参数值信息可被直接或作 为作业序列或生成的工作流中的任务存储到控制面中的数据存储器(508)。监控作业队列 的清理器部件可确定存在作业信息(510),并且至少某些实施方案可提交请求以开始所请 求的行动的工作流。作业信息被分析以确定和/或集合所请求的行动的适当工作流(512)。 作为工作流的任务,控制面可呼入用于与一个或多个特定参数组关联的每个数据实例的 主机管理器,以安装更新的配置文件(514)。可从关于更新的每个主机管理器接收回响应 (516),并且响应可被提交到表示所有实例是否能够成功接受所请求的变化的客户(518)。
[0050] 然而,在某些情况下,工作流的任务可至少部分依赖于所更新的参数的类型。例 如,许多数据库具有至少两种参数,包括"静态"的参数和"动态"的参数。可在运行时间设定 动态参数,从而工作流任务可导致主机管理器基本在请求的时间应用所更新的动态参数。 静态参数包括仅在用于数据库的开始过程期间(例如队列超时)可设定的参数,而不是在 数据库运行时。如果工作流的多个任务之一导致新配置文件存储在用于实例的数据面中, 并且包括静态参数的变化,则直到数据库重启为止将不获取和/或改变数据库。在某些实 施方案和/或实例中,工作流可授权显性重启的任务以使得数据库在数据面中重启。这可 包括接触用于审批的客户的工作流,或获得授权(例如接收的请求的一部分)以重启数据 库。在其他实施方案和/或情况中,配置文件可存储在数据面中,并且任意更新的静态参数 值将应用于之后的重启。在某些实施方案中,用户可对适当API进行显性网络服务呼叫以 强制或请求在数据面中重启。在其他情况下,当发生重启作为撞击、预定重启等的结果时, 变化将起到作用。
[0051] 在某些实施方案中,参数类型将由领域、标记或其他这种方式表示,并且在其他实 施方案中整体列表将示出哪些参数是静态并且哪些参数是动态。参数类型可由数据库引擎 确定,并且至少某些静态参数可由控制面限定。在某些实施方案中,代替"类型",控制面可 使用"应用方法"或表示参数值是否应迅速应用或系统是否应等待重启的类似参数。当应 用方法指定重启时,用户可被告知,使得用户具有请求显性重启的选项。在某些情况下,重 启可被指定为初始更新参数呼叫的部分,或协议可指定在任意时间静态参数表示出变化, 系统作为工作流的一部分应重启系统。
[0052] 在某些实施方案中,如上文所讨论的,控制面的监控部件可与用于数据实例的主 机管理器周期性地通信。使用这种周期性通信,监控部件可确定基于从各个主机管理器中 的一个或多个接收的事件或通信数据库何时重启。监控部件可提取关于重启的信息,例如 已经被应用的新配置文件的当前版本数,并且可更新适当控制面数据存储器中的信息。例 如,如果当重启时对静态参数做出更新,则控制面数据存储器中的参数可必须具有与其相 关的"待决"或类似值。一旦数据库被重启并且新参数值被应用,则用于参数的值例如可更 新到"当前"或"应用"。在其他情况下,每个参数值可与版本数关联,并且当重启被检测到 时用于配置文件的当前版本数可被更新。客户通过将Web服务呼叫提交到适当API等,可 具有请求当前参数值的能力。
[0053] 当客户可期望对各种操作或各种数据实例的配置参数做出改变的能力时,提供者 典型将具有必须满足相关有效性和性能的某些保证。因此,可期望至少某些实施方案防止 客户做出对数据实例的有效性和/或性能具有明显负面影响的改变。在某些实施方案中, 可影响有效性的参数可能限制由客户做出改变。在其他实施方案中,各种此类参数可由客 户做出改变,但是提供者可限定客户必须坚持的值的范围或设定。值的范围对于所有客户 和应用可以是相同的,或者可在使用情况之间改变,例如某些客户为"优选客户"或如果这 些客户改变各种参数则这些客户允诺某些可能的结果的情况。在某些实施方案中,客户可 呼叫API,例如"DecribeEngineDefaultParameters",从而客户可获得例如RDS系统所支持 的一列参数、用于特定引擎(例如MySQL)的参数;用于每个参数的当前、默认和/或待决 值;每个参数的类型(例如静态或动态);是否每个参数可修改;以及用于至少某些可修改 参数的可容许范围或值的信息;以及其他这种信息。以及哪些参数可修改。在某些实施方 案中,请求改变的至少某些参数值在被应用之前显性有效,以保证值落入可接受范围内。
[0054] 在某些实施方案中,客户和/或提供者可指定参数值用于数据实例、实例类等的 时刻表。例如,客户可在一天期间具有大量用户通信量,但是在晚上具有很少通信量,从而 客户选择在晚上运行大量和/或缓存密集操作。在这种示例中,客户可期望在白天期间具 有不同连接超时值,并且可期望当特定应用被预定为运行时在晚上的这些时间具有不同缓 存分配。在其他情况下,通信量或工作量可因为多个理由的任意理由改变,例如工作日相比 周末、假期或季节变化等。因此,时刻表可存储在能够导致工作流部件将当前配置文件中的 变化在适当时间与适当主机管理器通信的控制面中。在参数于设定值之间经常改变(例如 每天)的某些情况下,可能具有存储在数据面中的配置文件的多个版本,从而工作流部件 仅需将版本数中的改变与主机管理器通信。这种方式可防止每次做出改变时需要提交参数 值信息。
[0055] 在某些实施方案中,可容许客户选择片段、百分比或其他相关值代替用于一个或 多个参数的固定值。例如,客户可期望分配的缓冲器缓存与当前工作量或分配成比例。在 这种实例中,客户可容许指定缓冲器缓存应为分配的存储器的25%、所执行的存储器的实 例的25%等。控制面的部件可基于当前分配等确定适当值,并且如果需要则进行调节。在 某些情况下,值可在特定时间或间隔改变,而在某些实施方案中值可被持续地监控和更新。 为了防止过大改变和/或由于临时的峰值或故障导致的改变,从而在特定时间周期期间通 过将多个之前间隔期间的值平均使分配改变特定量之后做出改变。指定范围或百分比代替 固定值可以是有益的,这是由于RDS容许客户执行行动例如以在运行中缩放各种实例或增 加更多存储空间。因而,当客户改变例如从小节点到大节点的计算机节点时,客户不必需进 入并调节各种参数,这是由于RDS可基于用户输入确定适当值并根据需要自动改变或"自 动缩放"参数值。
[0056] 如所讨论的,在某些实施方案中客户可具有指定多个参数组的能力,例如在不同 时间、为不同应用、为不同实例类等所使用的组。因此,具有至少某些参数将具有在不同组 中所指定的不同值的风险,可潜在地导致需要解决的冲突。例如,如果在一天中的某些时间 运行应用,则可能具有用于应用的参数值和用于时间的参数值,并且系统可获得这些参数 组的结合以在当前时间应用。在一个实施方案中,被客户显性设定的任意参数值将获得超 过用于该参数的默认值的优先权。在其他情况下,更近指定的值可获得优先权。在某些情 况下,可更保守的选择两个值,以最小化潜在负面影响可用性等。在某些情况下,可在一个 时间周期监控性能,如果系统被充分执行,则在一个时间周期可应用较不保守的值,可应用 中间值等。各种其它冲突解决方法可被本领域普通技术人员公知地使用,或为了某些目的 接着开发。
[0057] 在某些实施方案中,控制面的监控部件可用作反馈回路的一部分,由于监控部件 (或控制面的类似部件)可从主机管理器周期性地接收性能信息,其中控制面可分析性能 信息并确定对各种参数做出任意调节。调节例如可根据时刻表或指定的百分比或范围,或 例如可替代为根据提供者所选择的一个或多个算法做出,以优化性能或可用性。例如,在 高工作量期间,可期望增加连接超时,并且当可用内存低运行时,调节缓存量等可能是必须 的。也可根据为特定客户、应用等所应用的各种规则或政策做出调节。在某些实施方案中, 动态参数可被自动调节,同时用于静态参数的改变可暗示给客户,由于改变可需要数据实 例的重启(以及临时不可用性)。
[0058] 图6示出示例性过程660,控制面或控制服务可监控在数据环境中数据实例(或 数据存储器、存储库等)的执行。对状态的请求从控制面被发送到数据实例的主机管理器 部件(602)。进行关于响应是否在规定量的时间内被接收的确定(604)。如果没有接收到 响应,则确定是否已发送了阈值数量的请求(606)。如果还没有发送阈值数量的请求,则 发送另一请求(608)。如果接收到响应消息,则分析该响应以确定是否需要采取任意行为 (610),例如是否解决了任意错误或任务,性能信息是否表示应做出参数值调整,或当前参 数组的版本数是否已经改变。如果否,且实例被确定为健康的,则过程能以对状态的另一请 求在稍后的时间被发送来继续。如果响应消息指示应执行关于数据实例的行动,则行动的 信息,诸如行动的类型和用于或被调节为执行行动的参数,被写到作业队列(612),诸如可 位于管理数据存储器或其它这种存储位置中。作业队列可由诸如通过清理器部件来监控, 以确定作业信息的存在(614),且当作业信息被检测到时,请求可被提交以启动所请求的行 动的工作流(616)。在其它实施方案中,工作流部件可监控作业的作业队列,或Web服务层 的部件可将作业信息直接提交到工作流部件。
[0059] 当接收到作业信息时,该信息被分析以确定和/或集合对所请求的行动的适当工 作流(618)。接着执行工作流(620)。当工作流包括待在数据环境中执行的任务时,状态或 其他信息可被发送到数据环境中的主机管理器,以执行任务并执行工作流,诸如可使用上 述描述的过程来完成。如果最后的任务被成功地完成,那么数据实例可简单地继续以处理 经由数据面接口从客户或应用发送的请求。如果工作流在控制环境中执行行动,例如更新 管理数据存储器中的更新版本或状态信息时,工作流可引导控制环境的适当部件执行各项 工作。例如,如果任何任务不能被成功地完成,或如果工作将需要例如数据实例的重启的行 动,则消息或其他通知可被发送到客户(或另一适当的用户、应用或位置)。可发生各种其 它通知行动,诸如产生行动通知和/或将信息添加到错误日志。
[0060] 如所提到的,控制面层可利用各种基本软件框架或位于基本软件框架之上,用于 执行任务,诸如:执行工作流、在数据面的主机管理器和控制面的部件之间建立安全通信信 道、在数据面的实例上安装软件,以及执行各种数据库备份和恢复程序。
[0061] 例如,控制面层可利用工作流服务来管理工作流。如通常已知的,任何工作流引擎 的关键特征是引擎实现异步和可恢复处理。如上所讨论的,工作流可被认为是状态机,其以 初始状态开始并通过在到达最终目标之前执行工作流的不同步骤而经历一系列中间状态 转变。该最终目标可被认为是状态机的终端状态。工作流服务提供创建工作流的能力,并提 供钩子来确定给定工作流的当前状态和下一步待执行的步骤。服务可存储状态机的当前状 态,保持跟踪被成功地执行的步骤和必须被执行来保持工作流移动的步骤。服务通常实际 上并不为我们执行状态转变。在很多实施方案中,为工作流执行任务的精确任务将由工作 流的"客户"部件来执行。因为控制面可具有在任何给定的时间并行地运行的多个工作流, 且这些工作流可用于执行不同的任务,控制面可利用能够调度多个工作流并且并行地执行 多个活动的结构。
[0062] 可被有利地利用的另一结构涉及从主机平面的部件向数据面的主机管理器提供 安全通信。在一个实施方案中,工作流和控制面的监控部件持续地与主机管理器通信以执 行各种任务(例如,数据库维护和软件安装),以及检查各种实例和/或存储库的状态。在 至少一些实施方案中,在控制面和主机管理器之间的所有通信发生在安全网络上很重要, 安全网络防止任何人窃听或发出未授权的命令到主机管理器。
[0063] 在一个实施方案中,到主机管理器的所有通信信道在安全套接层(SSL)上使用超 文本传输协议是安全的。托管主机管理器应用的每个应用服务器可使用脚本在启动实例时 开始。在开始应用服务器引擎之前,可执行产生自签名的证书并安装证书以实现SSL通信 信道的脚本。SSL通信在一个实施方案中用于对通信信道进行加密,而不是用于客户认证。 客户认证替代地以嵌入每个请求中的公钥/私钥签名来实现,使得在一个实施方案中所有 客户签名使用私钥来查询串参数。这个签名可通过自定义拦截器生效,其可部署于主机管 理器的应用服务器。此外,可为数据面中的每个被监控的实例建立安全组(即,防火墙规 则),使得只有位于给定网络或安全组中的主机可使用主机管理器端口进行通信。安全信息 和证书(例如,私钥)可存储在可提供诸如密钥管理和旋转的功能的适当
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1