对访问数据库的多个客户端进行同步的方法和服务器技术

技术编号:2823092 阅读:544 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种对访问数据库(1)的多个客户端(c0-c5)进行同步方法和服务器,每个客户端(c0-c5)在数据库(1)上执行多个任务,其中,针对每个客户端(c1-c5),所述方法包括以下步骤:累积(41)在发出同步请求之后由客户端(c1-c5)执行的一个或多个任务的时间;并且如果累积的任务时间超过了最大累积任务时间(t↓[1]),则拒绝(32)客户端的打开新任务的请求。

【技术实现步骤摘要】

本专利技术涉及一种对访问数据库的多个客户端进行同步的方法和服务 器,其中,每个客户端在数据库上执行多个任务。
技术介绍
数据库是现代信息社会中非常重要的技术工具。通常,许多客户端不 断地访问数据库,删除、添加或改变数据库内容。例如在金融机构的数据 库的情况下,有持续的事务流程在数据库上执行,这要求对相应数据进行 正确技术处理。出于安全和性能的原因,需要定期地在数据库上执行某些管理任务。 一个例子是备份整个数据库系统及其所有数据。然而,可能存在其它的管 理任务,例如,将数据库迁移到新的硬件和/或软件系统,或测试其相关的 性能。当各个客户端连续访问数据库时,如果要避免所存储数据的不一致 性,则可能不执行某些管理任务。例如,如果在从一个账户向另一个转移 某些数额期间执行金融机构数据库的备份,因为在其间所发生的备份,所 以要避免所保存的数据表现为从第一账户减少了数额但所减少的数额并没 有添加到第二账户。这仅仅是一个例子,它显示出针对某些管理任务,需 要对所有在数据库上进行操作的客户端进行同步,或至少对会引起这种不 一致性的客户端进行同步。在现有技术中,已知执行如下面参见图l和图2所描述的这种同步。 图1示意性给出了在数据库1上操作的多个客户端c0-c5的布置。如 果客户端cl-c5在数据库1上都没有任何打开的任务,则客户端c0-c5是同 步的。在同步请求已被发出后,当目前处于被请求状态(在数据库上没有 打开的任务)的客户端想要在数据库1上打开新任务时,客户端的请求被 拒绝,并且指示客户端等待,直到实现了同步并且完成了管理任务为止(参考图2的流程图)。如果客户端在同步请求被发出时正在执行某项任务,并且没有在给定 的超时时间段内将状态改变到所请求的状态(例如从"打开的任务"到 "关闭的任务"),则客户端被重置为所期望的状态,以使其不再妨碍同 步和管理任务的随后执行。然而,在某些情况下,当同步请求被发出时,客户端可以释放与数据 库的连接。结果,即使任何其它试图在超时时间段期间打开任务的客户端 中的一个或多个客户端的任务可以在超时时间段完全过去之前被执行或完 成,所述任何其它试图在超时时间段期间打开任务的客户端也将不得不等 待,直到超过该时限。因此,用于处理同步请求的现有技术方法容易对很 多的客户端造成大量等待时间,而这仅仅是由于一个客户端失去了与数据 库的连接。减小超时时间段是减小其它客户端等待时间的明显方式。然 而,减小超时时间段将增加所取消任务的数量,这些所取消的任务必须在 实现同步且执行相应的管理任务后重新开始。考虑到上面,本专利技术第一技术方案的技术问题在于提供一种将多个客 户端进行同步的更高效方法,该方法可减小访问数据库的客户端的等待时 间,而不增加所取消任务的数量。
技术实现思路
现有技术中存在的该问题由根据本申请所述的对访问数据库的多个客 户端进行同步的方法来解决。在本专利技术的一个实施例中,针对每个客户 端,所述方法包括以下步骤一在发出同步请求后,累积由客户端执行的一个或多个任务的时间;并且—如果累积的任务时间超过了最大累积任务时间,则拒绝客户端的打 开新任务的请求。由此,不是拒绝任何打开新任务的请求,而是对于这样的客户端允许 打开新任务,所述客户端在同步请求被发出之后的所有任务持续时间的总 和未超过给定时限因此,如果存在没有迅速关闭其任务的另一客户端,例如失去了与数据库的连接的客户端,那么其它客户端可继续工作。结 果,将縮短客户端的平均等待时间。在一个实施例中,所述方法还包括为所有客户端定义公共最大累积任 务时间的步骤。在该实施例中,平等地对待所有客户端。另一个极端是这 样一个实施例,其中,所述方法还包括为每个客户端单独定义最大累积任 务时间的步骤。对最大累积任务时间的单独定义允许通过分配最大累积任 务时间的较大值来将某些客户端列为优先,这减小了在处理同步请求期间 拒绝这种客户端的新任务的可能性。很明显还存在这样的实施例,其中,定义客户端的组,并且某个组的 所有客户端具有相同的最大累积任务时间,而其中组与组之间的值不同。在一个实施例中所描述的方法与上述现有技术的方法结合。由此,如 果同步后执行的任务被打开超过超时时间段,则终止该任务。而且,超时 时间段可以是用于所有客户端的通用参数,或如果将给予某些客户端更多 的时间来执行它们的任务,则单独地或按组的方式选择超时时间段。超时 时间段的值和最大累积任务时间的值将确定每个客户端的平均等待时间和 完成同步请求之前的平均等待时间。在一个实施例中,超时时间段的(一 个或多个)值与最大累积任务时间的(一个或多个)值相关。还可以对所描述方法限定进一步的修改。根据本专利技术的另一技术方案,本专利技术涉及数据库服务器,其适于执行 上述方法中的任何一个。根据本专利技术的又一技术方案,本专利技术涉及包括用 于执行上述方法中任何一个的指令的计算机程序。附图说明在下面的详细描述中,参考下列附图来描述当前优选的实施例 图l:显示出数据存储器、数据库服务器和多个客户端的示例布置; 图2:显示出根据现有技术的、在同步请求之后处理客户端的新的打 开任务请求的流程图3a:显示出没有同步请求时正常处理客户端任务的定时图3b:显示出由根据现有技术的方法所发生的等待时间的定时图;图4:显示出根据本专利技术的一个实施例的、在同步请求后处理客户端 的新的打开任务请求的流程图5:显示出在本专利技术的一个实施例中处理同步请求的流程图;和图6a-6c:显示出累积任务时间和超时时间段的三组不同的值对客户端所发生的所有等待时间的总和和在发出同步请求之后直到实现同步为止 的时间的影响。。具体实施例方式图1示意性地给出了包括数据存储器2和数据库服务器3的数据库 1。数据库服务器3利用诸如因特网之类的适当网络技术连接到多个客户 端c0-c5。图1的布置仅仅是一个例子,并且对于本专利技术来说不是必需 的。特别地,可以有更多客户端cn (n>5)连接到数据库服务器3,为了 简单起见在图中没有示出这些客户端。客户端c0-c5在数据库1上执行各种任务,如在图3a的定时图中示例 性示出的。可以看到,任务具有不同的时间长度。此外,当c0-c5的某个 客户端没有在数据库上执行任何任务时也存在这样的时间段。图3a还示出了在某些任务的处理所花的时间大于某个超时时间段tQ 时,取消这些任务。通过"X"终止某个任务而示出了该情况。在图3a的 例子中,超时时间段是4分钟。然而,这仅仅是示例值。取决于要执行的 任务、整个系统的性能和期望的响应时间,超时时间段可长几个数量级或 短几个数量级。对于某些管理任务,需要同步各个客户端c0-c5。换言之,需要同步 的状态,其中,关闭所有任务,而且其中没有打开新任务,以使得可执行 管理任务,例如数据存储器2的备份,并且提供一致的数据组。图2示出了现有技术的方法,用于将所有示例客户端c0-c5变为同步 状态。从图2的流程图可以看到,只要客户端试图开始新任务,就在第一 步骤20中检验是否同时已经请求了同步。如果检验结果为否,则打开新 任务(参考图2中的右分支)。然而,如果有同步请求,则在步骤21中 拒绝客户端的"打开新任务"请求。在步骤22中,在可打开任务之前,客户端必须等待,直到实现了同步,而且终止了任何随后的管理任务为本文档来自技高网
...

【技术保护点】
一种对访问数据库(1)的多个客户端(c0-c5)进行同步的方法,每个客户端(c0-c5)在所述数据库(1)上执行多个任务,针对每个客户端(c0-c5),所述方法包括以下步骤:    a.累积(41)在发出同步请求之后由所述客户端(c0-c5)执行的一个或多个任务的时间;    b.如果所累积的任务时间超过了最大累积任务时间(t↓[1]),则拒绝(32)所述客户端(c0-c5)的打开新任务的请求。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:海因兹库尔登
申请(专利权)人:软件股份公司
类型:发明
国别省市:DE[德国]

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

1
相关领域技术
  • 暂无相关专利