数据库横向扩展的制作方法

文档序号:9438935阅读:650来源:国知局
数据库横向扩展的制作方法
【专利说明】数据库横向扩展
[0001] Μ?
[0002] 数据库是支持将数据存储为称作表格的逻辑结构的集合的软件系统,每个表格包 含具有指定结构的记录。随着单个数据库内应用数目的增长,对于该数据库提供合理的响 应时间而言该数据库上的负载可能变得过高。解决这一问题的一种办法是在该数据库内增 加更多用于附加的数据的存储。然而,这一解决方案可能增加数据递送时间,从而提供较 不期望的最终用户体验。此外,在一些实例中,因为纵向扩展(例如,增加附加的盘空间、 RAM、CPU等)具有实践上以及物理上的限制(例如,单个数据库服务器可能仅支持特定量 的RAM),故而数据库的横向扩展可能是必要的。

【发明内容】

[0003] 提供本
【发明内容】
来以简化形式介绍一些概念,这些概念将在以下详细描述部分中 进一步描述。本
【发明内容】
并不旨在标识出本发明的主题的关键特征或必要特征,也不旨在 用于帮助确定本发明的主题的范围。
[0004] 提供了诸实施例以启用数据库横向扩展。达到容量的数据库可以被实时地横向扩 展以提供附加的数据库并降低单个数据库上的负载。为此,公开了提供数据库内容的向外 扩展的方法和系统。第一数据库可能处于或接近容量且服务器组件可被触发以发起数据移 动。服务器组件可随后执行用于创建或扩展第二数据库以及将一部分第一数据库数据转移 至第二数据库的过程。
[0005] -实施例包括用于提供数据库内容的向外扩展的方法。该方法可以主要地包括: 创建第二数据库的实例化,第二数据库实例化部分地基于第一数据库达到容量;配置用于 转移至第二数据库的第一数据库的一个或多个分区;配置第二数据库以接收一个或多个第 一数据库分区;以及将一个或多个第一数据库分区转移至第二数据库。
[0006] 还公开了包括当被处理器执行时、提供数据库内容的向外扩展的可执行指令的计 算机可读介质。计算机可读介质包括可被处理器执行以进行以下操作的指令:创建第二数 据库的实例化,第二数据库实例化部分地基于第一数据库达到容量;配置用于转移至第二 数据库的第一数据库的一个或多个分区;配置第二数据库以供接收一个或多个第一数据库 分区;以及将一个或多个第一数据库分区转移至第二数据库。
[0007] 还公开了包括当被处理器执行时、提供数据库内容的向外扩展的可执行指令的计 算机可读介质。计算机可读介质包括可被处理器执行以进行以下操作的指令:从第一数据 库接收警报消息,该警报消息指示第一数据库达到容量;创建第一数据库的第一数据子范 围,第一数据子范围具有只读模式;将第二数据库的范围至少扩展至第一数据子范围的范 围;在第二数据库上创建第二数据子范围,第二数据子范围具有变化模式,第二数据子范围 创建在邻近第一数据子范围的数据库位置处;将与键值相关联的数据转移至所述第二数据 库,该键值表示所述第一数据子范围的开始点和结束点;将第二数据子范围的模式改变成 只读;将第一数据子范围的模式改变成已删除;移除第二数据库上的第二数据子范围,这 将所包含数据的数据模式改变成读写;清除源数据库上的第一数据子范围,这使得源数据 库数据范围收缩成排除第一数据子范围;以及删除与键值相关联的第一数据库中的数据。
[0008] 附图简沐
[0009] 现在参考附图,在全部附图中,相同的附图标记表示相应的部分:
[0010] 图1示出用于根据本公开一实施例的提供数据库横向扩展的系统的高级架构;
[0011] 图2是示出根据本公开一实施例的用于提供数据库横向扩展的例程的流程图;
[0012] 图3A-3F进一步示出根据本公开一实施例的用于提供数据库横向扩展的例程;
[0013] 图4是示出根据本公开一实施例的用于提供数据库横向扩展的方法的流程图;
[0014] 图5是示出根据本公开一实施例的用于提供数据库横向扩展的方法的流程图;
[0015] 图6是示出根据本公开一实施例的用于提供数据库横向扩展的方法的流程图;以 及
[0016] 图7是可在其中实施本发明的各实施例的计算系统的简化框图。
[0017] 详细描沐
[0018] 在下面的详细描述中,将参考构成本发明的一部分的附图,在附图中,通过例图, 示出了特定实施例或示例。可以将这些方面组合起来,也可以使用其他方面,并且在不偏离 本发明的精神或范围的情况下,可以进行结构更改。因此,以下详细描述并不旨在限制,并 且本发明的范围由所附权利要求及其等效方案来限定。
[0019] 提供各实施例以启用针对数据库达到容量的实时数据库横向扩展。公开了提供数 据库横向扩展的方法和系统。在本文所述的实施例中,数据库横向扩展系统和方法在对具 有快速增长的数据大小和用户基数的系统中的数据的快速访问场景中提供了改进的响应 时间。诸方法和诸系统提供了其中任何数据库可被动态划分的可伸缩的横向扩展,这提供 了对正在改变中的用户行为的增加的反应时间。
[0020] 数据库横向扩展系统提供针对任何数据库的必要机制以在各个数据库之间执行 数据转移操作。本文中的各实施例还提供了针对运行时操作的一组规则,其使得运行时操 作能够与各个数据库之间的数据转移操作并行地运行。本文中的各实施例进一步提供了数 据状态的数据转移历史,其可以在数据转移期间从已执行的备份来恢复数据库的情况下被 用来选择数据恢复应用。
[0021] 现在参考附图,其中类似标号代表类似元素,现在将描述各种解说性实施例。图1 示出用于根据一实施例的提供数据库横向扩展的系统100的高级架构。图1中显示的系统 仅仅出于说明目的。计算机系统100及其组件包括用于与其他计算设备、通信设备和/或 其他系统通信的功能,且并不旨在限于本文中所描述的实施例和示例。
[0022] 如图1所示,计算机系统100包括但不限于与服务器通信的第一数据库102和 第二数据库104。第一数据库102和第二数据库104在下文中也可被分别称作源数据库 和目标数据库。一般而言,数据库102、104可以被配置成存储相关数据的集合,诸如商业 金融交易。在示例性实施例中,第一数据库102和第二数据库104可以被配置成能够用 服务技术操作来提供对数据库102、104中所存储的数据的访问以供在工作 流、文档等中使用。数据库102、104包括关联结构。关联结构对数据库的用户是透明的,但 是对高效操作和数据库管理系统的控制是必要的。关联结构的示例是索引,其一般但非必 须地按B树或散列索引的形式。
[0023] 第一数据库102和第二数据库104可以优选是关系数据库,其中的数据被组织在 多个具有二维行和列形式的表格中。例如,关系数据库可以尤其包括关系数据库管理系 统(RDBMS),其可以是支持数据库特征的控制系统,数据库特征包括但不限于,将数据存储 在存储介质上,从存储介质检索数据,以及更新存储介质上的数据。一般而言,存储在关系 数据库中的数据通过用户定义的查询来访问,该用户定义的查询由诸如SQL的查询语言构 成。一般地,对于任何给定的SQL查询,存在需要在数据上执行的数个过程操作,以便执行 SQL查询的对象。例如,存在需要执行的数个联接以及表格扫描从而实现期望的目标。尽管 上述实施例描述了一包括利用SQL数据库服务技术的数据库的系统,应当理解本文中所述 的各实施例不应被解释为受限于SQL数据库服务技术,并且还可以利用来自其他开发者和 /或制造商的其他数据库服务技术。
[0024] 图1中的服务器106可以包括简化的SQL服务器RDMBS架构。如下面更全面描述 道,服务器106可以包括数据库横向扩展模块108。根据各实施例,服务器106可以包括各 种程序模块和应用程序,其包括但不限于服务器应用110、应用编程接口(API) 112、工具接 口 114,以及类似物。在一些实施例中,数据库横向扩展过程可以由用户116来发起,但是在 优选实施例中,横向扩展过程可以,例如在数据库达到容量之际自动地发起。
[0025] 数据库横向扩展模块108可以提供在同类数据源之间转移数据的能力。具体而 言,数据库横向扩展模块108可以提供数据转移机制以供在相同模式的两个数据库之间转 移数据。这一机制可以被用来在数据库服务器的相同实现的多个实例之间移动数据库的各 横向扩展分区。为此,系统100可以在数据库横向扩展模块108 (其可以是服务器106的数 据库管理中间层组件)和数据库102、104之间提供通信。数据库横向扩展模块108和数据 库102、104之间的通信可以包括由服务器106负责的管理针对给定横向扩展的数据范围和 横向扩展分区的请求。数据库横向扩展模块108可以进一步被配置成提供用于在服务器上 执行有关数据范围和分区的数据查询及更新操作的一个或多个通信序列。数据库横向扩展 模块108依靠每个数据库(或者数据库实例)被配置成维护数据范围的概念并提供必要的 已存储过程来创建并修改数据库的事实。数据库横向扩展模块108还可以使用任何已知的 传输协议来发送读取或写入数据到服务器上的横向扩展分区的请求,以调用已存储的过程 并返回返回代码和结果集合。
[0026] 在一个特定示例中,开发者可注意到在其数据库之一中的数据库部署已经显著减 慢。当查看SQL服务器负载时,开发者可以注意到存储某类文档(例如,许可)的数据库处 于或接近容量。开发者可以让另一个服务器运行SQL,并且可能想将存储在第一数据库中的 一部分数据卸载到另一数据库。系统100可以使得开发者能够发起到第二数据库的数据转 移。在转移第一数据库中的至少一部分之际,响应时间可以因该数据库上降低的载荷而降 低。如果对数据库横向扩展的需求再次发
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1