数据访问方法、数据库设备以及主从数据库实例系统与流程

文档序号:16609049发布日期:2019-01-14 21:25阅读:151来源:国知局
数据访问方法、数据库设备以及主从数据库实例系统与流程

本发明实施例涉及数据库实例技术领域,特别涉及一种数据访问方法、数据库设备以及主从数据库实例系统。



背景技术:

目前,基于数据库实例的高可用性与性能的考虑,会对数据库实例进行水平扩展,一般采取主从同步架构,例如,一主一从或者一主多从,主从数据库实例之间的一般采用异步复制的方式,即,从数据库实例中的数据相对于主数据库实例来说存在不同程度的延迟。为了充分利用从数据库实例资源、减轻主数据库实例压力,一般会通过中间件对数据访问进行随机路由分发,即,中间件将接收到的数据访问请求,随机路由到主数据库实例或者从数据库实例。

发明人发现现有技术中至少存在如下问题:当主数据库实例中刚刚增加了最新的数据,中间件将数据访问请求随机路由到从数据库实例时,由于主从数据库实例之间的数据还没进行同步,即,从数据库实例中还没有增加最新的数据,导致无法访问到最新的数据。



技术实现要素:

本发明实施方式的目的在于提供一种数据访问方法、数据库设备以及主从数据库实例系统,在主数据库实例与从数据库实例中的数据不一致时,保证主数据库实例中最新的数据能够被访问到。

为解决上述技术问题,本发明的实施方式提供了一种数据访问方法,应用于主从数据库实例系统的中间件,主从数据库实例系统包括主数据库实例与至少一从数据库实例,数据访问方法包括:当接收到数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例;若在计时结束之前,接收到数据查询命令,则将数据查询命令路由至主数据库实例;其中,计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。

本发明的实施方式还提供了一种数据库设备,数据库设备包含主从库数据库实例系统的至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的数据访问方法。

本发明的实施方式还提供了一种主从数据库实例系统,包括主数据库实例、至少一从数据库实例以及中间件;中间件用于在接收到数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例;中间件还用于在计时结束之前,接收到数据查询命令,将数据查询命令路由至主数据库实例;其中,计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。

本发明实施方式相对于现有技术而言,中间件在接收到用于对主数据库实例中的数据进行修改的数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例;计时的时长是大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间,在计时过程中,主数据库实例由于应用了数据操纵命令而产生的最新的数据可能还没有被同步到从数据库实例中,即,主数据库实例与从数据库实例中的数据是不一致的,若接收到数据查询命令,则将数据查询命令路由至主数据库实例,从而保证主数据库实例中最新的数据能够被访问到。

另外,在接收到数据操纵命令之后,还包括:缓存数据操纵命令中的数据操纵信息;在接收到数据查询命令之后,还包括:判断数据查询命令中的数据查询信息与数据操纵信息是否匹配;若数据查询命令中的数据查询信息与数据操纵信息匹配,再执行将数据查询命令路由至主数据库实例;若数据查询命令中的数据查询信息与数据操纵信息不匹配,将数据查询命令路由至从数据库实例。本实施方式中,在数据查询命令中的数据查询信息与数据操纵信息匹配时,再将数据查询命令路由至主数据库实例,即,在数据查询命令中要访问的数据涉及到主数据库实例中最新的数据时,才将数据查询命令路由到主数据库实例;否则,则将数据查询命令路由到从数据库实例,从而进一步减轻了主数据库实例的压力。

另外,主数据库实例包括多个业务子库,数据操纵信息至少包括业务子库信息;判断数据查询命令中的数据查询信息与数据操纵信息是否匹配,具体为:判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配;若数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息匹配,判定数据查询命令中的数据查询信息与数据操纵信息匹配。本实施方式提供了一种判断数据查询命令中的数据查询信息与数据操纵信息是否匹配的具体实现方式。

另外,业务子库包括多个数据库表,业务子库信息包括业务子库标识与业务子库的数据库表信息;判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配,具体包括:判断数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识是否匹配;当数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识匹配时,判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配;若数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息匹配,判定数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息匹配。本实施方式提供了一种判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配的具体实现方式。

另外,数据库表信息包括数据库表标识与数据库表的键值信息;判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配,具体包括:判断数据查询信息中的业务子库对应的数据库表标识与数据操纵信息中的业务子库对应的数据库表标识是否匹配;当判定数据查询信息中的业务子库对应的数据库表标识与数据操纵信息中的业务子库对应的数据库表标识匹配时,判断数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息是否匹配;若数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息匹配,判定数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息匹配。本实施方式提供了一种判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配的具体实现方式。

另外,键值信息包括以下任意之一或组合:数据库表的主键值与数据库表的条件键值。本实施方式提供了键值信息的具体内容。

另外,若在计时结束之前,再次接收到数据操纵命令,则重新开始计时。本实施方式中,即便主数据库实例连续执行多个数据操纵命令,仍能保证计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。

另外,在接收到数据操纵命令之后,还包括:缓存数据操纵命令中的数据操纵信息;当接收到数据操纵命令时,开始计时,具体为:当接收到数据操纵命令时,启动第一计时器开始计时;在再次接收到数据操纵命令之后,还包括:判断再次接收到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息是否匹配;若再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配,再执行重新开始计时;若再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息不匹配,启动第二计时器,开始计时。本实施方式中,在判定再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配时,即,在两次数据操纵命令涉及到主数据库实例相同的数据时,重新开始计时;否则,则启动第二计时器,为再次接收到的数据操纵命令进行计时。

另外,计时的时长等于主数据库实例与至少一从数据库实例之间数据同步的最大延迟时间。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式的数据访问方法的具体流程图;

图2是根据本发明第二实施方式的数据访问方法的具体流程图;

图3是根据本发明第三实施方式的数据访问方法的具体流程图;

图4是根据本发明第四实施方式的数据访问方法的具体流程图;

图5是根据本发明第五实施方式的数据访问方法的具体流程图;

图6是根据本发明第六实施方式的数据访问方法的具体流程图;

图7是根据本发明第八实施方式的主从数据库实例系统的方框示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种数据访问方法,应用于主从数据库实例系统的中间件,主从数据库实例系统包括主数据库实例与至少一从数据库实例,中间件通过路由规则将数据的访问请求路由至主数据库实例或者从数据库实例,从而降低了数据访问瓶颈和主数据库实例的压力。

本实施例的数据访问方法的具体流程如图1所示。

步骤101,判断是否接收到数据操纵命令。若是,则进入步骤102;若否,则直接结束。

具体而言,中间件判断是否接收到数据操纵命令,数据操纵命令可以为update命令、insert命令或delete命令。

步骤102,开始计时,并将数据操纵命令路由至主数据库实例。

具体而言,中间件中预设有计时器,计时器开始计时,并将数据操纵命令路由至主数据库实例,以供主数据库实例应用该数据操纵命令。其中,计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间;例如,主数据库实例与从数据库实例之间数据同步的延迟时间为5s~10s,即最大延迟时间是10s,则计时的时长要大于或等于10s。较佳的,计时的时长等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。

步骤103,判断是否接收到数据查询命令。若是,则进入步骤104;若否,则进入步骤105。

具体而言,中间件在计时过程中,判断是否接收到数据查询命令,数据查询命令可以为select命令,若接收到了数据查询命令,则进入步骤104;否则,则进入步骤105。

步骤104,将数据查询命令路由至主数据库实例。

具体而言,在计时过程中,主数据库实例由于应用了数据操纵命令而产生的最新的数据可能还没有被同步到从数据库实例中,即,主数据库实例与从数据库实例中的数据是不一致的,因此,中间件将数据查询命令路由至主数据库实例。

步骤105,判断计时是否结束。若是,则直接结束;若否,则回到步骤103。

具体而言,中间件判断计时器是否计时至预设的时长,若是,则直接结束。若否,则回到步骤103,再次判断是否接收到数据查询命令,直至计时结束。

本实施方式相对于现有技术而言,中间件在接收到用于对主数据库实例中的数据进行修改的数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例;计时的时长是大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间,在计时过程中,主数据库实例由于应用了数据操纵命令而产生的最新的数据可能还没有被同步到从数据库实例中,即,主数据库实例与从数据库实例中的数据是不一致的,若接收到数据查询命令,则将数据查询命令路由至主数据库实例,从而保证主数据库实例中最新的数据能够被访问到。

本发明的第二实施方式涉及一种数据访问方法。第二实施方式是在第一实施方式基础上的改进,主要改进之处在于:在数据查询命令中的数据查询信息与数据操纵信息匹配,再执行将数据查询命令路由至主数据库实例。

本实施例的数据访问方法的具体流程如图2所示。

其中,步骤201与步骤101大致相同,步骤203、步骤204、步骤206、步骤208与步骤102至步骤105大致相同,在此不再赘述,主要不同之处在于,增加了步骤202、步骤205与步骤207,具体如下:

步骤202,缓存数据操纵命令中的数据操纵信息。

具体而言,可以在中间件中设置一缓存区,用于缓存数据操纵命令中的数据操纵信息。

步骤205,判断数据查询命令中的数据查询信息与数据操纵信息是否匹配。若是,则进入步骤206;若否,则进入步骤207。

具体而言,中间件在计时过程中,若接收到数据查询命令,中间件的逻辑判断层判断数据查询命令中的数据查询信息与缓存的数据操纵命令中的数据操纵信息是否匹配,即,判断数据查询命令要访问的数据是否涉及到主数据库实例中最新的数据;若是,则进入步骤206将数据查询命令路由至主数据库实例;否则,则进入步骤207。

步骤207,将数据查询命令路由至从数据库实例。

具体而言,由于数据查询命令要访问的数据没有涉及到主数据库实例中最新的数据,中间件将数据查询命令路由至从数据库实例。

本实施例中,当步骤208中,判定计时结束之后,可以删除缓存的数据操纵信息,以及时清除中间件的缓存区。

需要说明的是,图中仅示意性描述步骤202与步骤203的执行顺序,即,可以在开始计时之后,缓存数据操纵命令中的数据操纵信息。

本实施方式相对于第一实施方式而言,在数据查询命令中的数据查询信息与数据操纵信息匹配时,再将数据查询命令路由至主数据库实例,即,在数据查询命令中要访问的数据涉及到主数据库实例中最新的数据时,才将数据查询命令路由到主数据库实例;否则,则将数据查询命令路由到从数据库实例,从而进一步减轻了主数据库实例的压力。

本发明第三实施方式涉及一种数据访问方法,第三实施方式是在第二实施方式基础上的细化,主要细化之处在于:提供了一种判断数据查询命令中的数据查询信息与数据操纵信息是否匹配的具体实现方式。本实施例中,主数据库实例包括多个业务子库,数据操纵信息至少包括业务子库信息。

本实施例的数据访问方法的具体流程如图3所示。

其中,步骤301至步骤304与步骤201至步骤204大致相同,步骤306至步骤308与步骤206至步骤208大致相同,在此不再赘述,主要不同之处在于,步骤305,具体为:

步骤305,判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配;若是,则进入步骤306;若否,则进入步骤307。

具体而言,中间件的逻辑判断层判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配,以判断数据查询信息与数据操纵信息是否涉及到相同的业务子库;若是,则进入步骤306,将数据查询命令路由至主数据库实例;否则,则进入步骤207将数据查询命令路由至从数据库实例。

本实施方式相对于第二实施方式而言,提供了一种判断数据查询命令中的数据查询信息与数据操纵信息是否匹配的具体实现方式。

本发明第四实施方式涉及一种数据访问方法,第四实施方式是在第三实施方式基础上的细化,主要细化之处在于:提供了一种判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配的具体实现方式。本实施例中,业务子库包括多个数据库表,业务子库信息包括业务子库标识与业务子库的数据库表信息。

本实施例的数据访问方法的具体流程如图4所示。

其中,步骤401至步骤404与步骤301至步骤304大致相同,步骤406至步骤408与步骤306至步骤308大致相同,在此不再赘述,主要不同之处在于,步骤405包括以下子步骤:

子步骤4051,判断数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识是否匹配。若是,则进入子步骤4052;若否,则进入步骤407。

具体而言,中间件的逻辑判断层判断数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识是否匹配,即,判断数据查询信息与数据操纵信息是否涉及到同一业务子库;若是,则进入子步骤4052;若否,则进入步骤407将数据查询命令路由至从数据库实例。

子步骤4052,判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配。若是,则进入步骤406;若否,则进入步骤407。

具体而言,数据库表信息包括数据库表标识与数据库表的键值信息,中间件的逻辑判断层判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配时,首先判断数据查询信息中的业务子库对应的数据库表标识与数据操纵信息中的业务子库对应的数据库表标识是否匹配,即判断判断数据查询信息与数据操纵信息是否涉及到同一业务子库的同一数据库表。若是,则再判断数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息是否匹配;若否,则进入步骤407将数据查询命令路由至从数据库实例。

本实施例中,键值信息包括以下任意之一或组合:数据库表的主键值与数据库表的条件键值,主键值是数据库表的一行的唯一标识,其可以用数字标识,目前一般设置自增式主键,即数据库表中每增加一行数字便加一,数据库表的主键值id可以为一个范围,例如id>1,100>id>1,或者一个等值,例如id=3;数据库表的条件键值则是数据库表中的其他列的条件,例如性别、姓名等。

以键值信息包括数据库表的主键值与数据库表的条件键值为例,判断数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息是否匹配,具体为:首先判断数据查询信息中的数据库表的主键值与数据操纵信息中的数据库表的主键值是否有交集;当二者有交集时,再判断数据查询信息中的数据库表的条件键值与数据操纵信息中的数据库表的条件键值是否相同,例如性别是否相同,若相同,则判定数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息匹配。

本实施方式相对于第三实施方式而言,提供了一种判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配的具体实现方式。

本发明第五实施方式涉及一种数据访问方法,第五实施方式是在第一实施方式基础上的改进,主要改进之处在于:若在计时结束之前,再次接收到数据操纵命令,则重新开始计时。

本实施方式的数据访问方法的具体流程如图5所示。

其中,步骤501、步骤502与步骤101、步骤102大致相同,步骤504至步骤506与步骤103至步骤105大致相同,主要不同之处在于,增加了步骤503,具体如下:

步骤503,判断是否接收到数据操纵命令。

具体而言,中间件判断在计时过程中是否再次接收到数据操纵命令,若是,则回到步骤502,重新开始计时,并将再次接收到的数据操纵命令发送到主数据库实例。

本实施方式相对于第一实施方式而言,即便主数据库实例连续执行多个数据操纵命令,仍能保证计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。需要说明的是,本实施例也可以作为在第二实施例至第四实施例中任一实施例基础上的改进,可以达到同样的技术效果。

本发明第六实施方式涉及一种数据访问方法,第六实施方式是在第五实施方式基础上的改进,主要改进之处在于:当再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配,再重新开始计时。

本实施方式的数据访问方法的具体流程如图6所示。

其中,步骤601与步骤501大致相同,步骤604、步骤606、步骤608、步骤609与步骤503至步骤506大致相同,在此不再赘述,主要不同之处在于,增加了步骤602、步骤606与步骤607,具体如下:

步骤602,启动第一计时器开始计时,并将数据操纵命令路由至主数据库实例。

步骤606,判断再次接收到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息是否匹配。若是,则回到步骤602;若否,则进入步骤607。

具体而言,中间件的逻辑判断层判断再次接收到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息是否匹配,具体判断方式与第三实施例或第四实施例中的判断数据查询信息与数据操纵信息是否匹配的类似,在此不再赘述。若再次接收到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配,则回到步骤602,控制第一计时器重新开始计时,并将数据操纵命令路由到主数据库实例;若否,则进入步骤607。

步骤607,启动第二计时器开始计时,并将数据操纵命令路由至主数据库实例。

具体而言,中间件启动第二计时器开始计时,作为再次接收到的数据操纵命令的计时器,并将数据操纵命令路由主数据库实例。

本实施方式相对于第五实施方式而言,在判定再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配时,即,在两次数据操纵命令涉及到主数据库实例相同的数据时,重新开始计时;否则,则启动第二计时器,为再次接收到的数据操纵命令进行计时。

本发明第七实施方式涉及一种数据库设备,包括:主从数据库实例系统的至少一个处理器;以及,与至少一个处理器通信连接的存储器;

其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一实施例至第六实施例中任一的数据访问方法。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本发明第八实施方式涉及一种主从数据库实例系统,请参考图7,包括主数据库实例1、至少一从数据库实例2(图7中以一个为例)以及中间件3;

中间件3用于在接收到数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例1。

中间件3还用于在计时结束之前,接收到数据查询命令,将数据查询命令路由至主数据库实例1;其中,计时的时长大于或等于主数据库实例1与从数据库实例2之间数据同步的最大延迟时间。

由于第一实施例与本实施例相互对应,因此本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。

本发明实施方式相对于现有技术而言,中间件在接收到用于对主数据库实例中的数据进行修改的数据操纵命令时,开始计时,并将数据操纵命令路由至主数据库实例;计时的时长是大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间,在计时过程中,主数据库实例由于应用了数据操纵命令而产生的最新的数据可能还没有被同步到从数据库实例中,即,主数据库实例与从数据库实例中的数据是不一致的,若接收到数据查询命令,则将数据查询命令路由至主数据库实例,从而保证主数据库实例中最新的数据能够被访问到。

本发明第九实施方式涉及一种主从数据库实例系统,第九实施方式是在第八实施方式基础上的改进,主要改进之处在于:在数据查询命令中的数据查询信息与数据操纵信息匹配,再执行将数据查询命令路由至主数据库实例。

中间件3还用于在接收到数据操纵命令之后,缓存数据操纵命令中的数据操纵信息。

中间件3还用于在接收到数据查询命令之后,判断数据查询命令中的数据查询信息与数据操纵信息是否匹配,并在判定数据查询命令中的数据查询信息与数据操纵信息匹配时,将数据查询命令路由至主数据库实例1。

中间件3还用于在判定数据查询命令中的数据查询信息与数据操纵信息不匹配时,将数据查询命令路由至从数据库实例2。

由于第二实施例与本实施例相互对应,因此本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。

本实施方式相对于第八实施方式而言,在数据查询命令中的数据查询信息与数据操纵信息匹配时,再将数据查询命令路由至主数据库实例,即,在数据查询命令中要访问的数据涉及到主数据库实例中最新的数据时,才将数据查询命令路由到主数据库实例;否则,则将数据查询命令路由到从数据库实例,从而进一步减轻了主数据库实例的压力。

本发明第十实施方式涉及一种数据访问方法,第十实施方式是在第九实施方式基础上的细化,主要细化之处在于:提供了一种判断数据查询命令中的数据查询信息与数据操纵信息是否匹配的具体实现方式。本实施例中,主数据库实例1包括多个业务子库,数据操纵信息至少包括业务子库信息。

中间件3具体用于判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配,并在数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息匹配时,判定数据查询命令中的数据查询信息与数据操纵信息匹配。

由于第三实施例与本实施例相互对应,因此本实施例可与第三实施例互相配合实施。第三实施例中提到的相关技术细节在本实施例中依然有效,在第三实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第三实施例中。

本实施方式相对于第九实施方式而言,提供了一种判断数据查询命令中的数据查询信息与数据操纵信息是否匹配的具体实现方式。

本发明第十一实施方式涉及一种数据访问方法,第十一实施方式是在第十实施方式基础上的细化,主要细化之处在于:提供了一种判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配的具体实现方式。本实施例中,业务子库包括多个数据库表,业务子库信息包括业务子库标识与业务子库的数据库表信息。

中间件3具体用于判断数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识是否匹配。

中间件3还用于在判定数据查询信息中的业务子库标识与数据操纵信息中的业务子库标识匹配时,判断数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息是否匹配。

中间件3在数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息匹配时,判定数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息匹配。

具体的,数据库表信息包括数据库表标识与数据库表的键值信息,中间件3具体用于判断数据查询信息中的业务子库对应的数据库表标识与数据操纵信息中的业务子库对应的数据库表标识是否匹配;

中间件3还用于在判定数据查询信息中的业务子库对应的数据库表标识与数据操纵信息中的业务子库对应的数据库表标识匹配时,判断数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息是否匹配,并在数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息匹配时,判定数据查询信息中的业务子库对应的数据库表信息与数据操纵信息中的业务子库对应的数据库表信息匹配。

本实施例中,键值信息包括以下任意之一或组合:数据库表的主键值与数据库表的条件键值,主键值是数据库表的一行的唯一标识,其可以用数字标识,目前一般设置自增式主键,即数据库表中每增加一行数字便加一,数据库表的主键值id可以为一个范围,例如id>1,100>id>1,或者一个等值,例如id=3;数据库表的条件键值则是数据库表中的其他列的条件,例如性别、姓名等。

以键值信息包括数据库表的主键值与数据库表的条件键值为例,判断数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息是否匹配,具体为:首先判断数据查询信息中的数据库表的主键值与数据操纵信息中的数据库表的主键值是否有交集;当二者有交集时,再判断数据查询信息中的数据库表的条件键值与数据操纵信息中的数据库表的条件键值是否相同,例如性别是否相同,若相同,则判定数据查询信息中的数据库表的键值信息与数据操纵信息中的数据库表的键值信息匹配。

由于第四实施例与本实施例相互对应,因此本实施例可与第四实施例互相配合实施。第四实施例中提到的相关技术细节在本实施例中依然有效,在第四实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第四实施例中。

本实施方式相对于第十实施方式而言,提供了一种判断数据查询信息中的业务子库信息与数据操纵信息中的业务子库信息是否匹配的具体实现方式。

本发明第十二实施方式涉及一种数据访问方法,第十二实施方式是在第八实施方式基础上的改进,主要改进之处在于:若在计时结束之前,再次接收到数据操纵命令,则重新开始计时。

中间件3还用于在计时结束之前,再次接收到数据操纵命令,重新开始计时。

由于第五实施例与本实施例相互对应,因此本实施例可与第五实施例互相配合实施。第五实施例中提到的相关技术细节在本实施例中依然有效,在第五实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第五实施例中。

本实施方式相对于第八实施方式而言,即便主数据库实例连续执行多个数据操纵命令,仍能保证计时的时长大于或等于主数据库实例与从数据库实例之间数据同步的最大延迟时间。需要说明的是,本实施例也可以作为在第九实施例至第十一实施例中任一实施例基础上的改进,可以达到同样的技术效果。

本发明第十三实施方式涉及一种数据访问方法,第十三实施方式是在第十二实施方式基础上的改进,主要改进之处在于:当再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配,再重新开始计时。

中间件3还用于在接收到数据操纵命令之后,缓存数据操纵命令中的数据操纵信息;

中间件3具体用于在接收到数据操纵命令时,启动第一计时器开始计时;

中间件3用于在再次接收到数据操纵命令之后,判断再次接收到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息是否匹配,并在判定再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配时,重新开始计时;

中间件3还用于在判定再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息不匹配时,启动第二计时器,开始计时。

由于第六实施例与本实施例相互对应,因此本实施例可与第六实施例互相配合实施。第六实施例中提到的相关技术细节在本实施例中依然有效,在第六实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第六实施例中。

本实施方式相对于第十二实施方式而言,在判定再次接受到的数据操纵命令中的数据操纵信息与缓存的数据操纵信息匹配时,即,在两次数据操纵命令涉及到主数据库实例相同的数据时,重新开始计时;否则,则启动第二计时器,为再次接收到的数据操纵命令进行计时。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1