事务因果序的校正方法及装置、电子设备与流程

文档序号:15981059发布日期:2018-11-17 00:20阅读:173来源:国知局
本说明书一个或多个实施例涉及终端
技术领域
,尤其涉及一种事务因果序的校正方法及装置、电子设备。
背景技术
分布式数据库中的各个数据库服务器在执行客户端请求的事务时,执行的各个事务的事务时间戳应保证符合客户端定义的因果序。举例而言,客户端先向数据库服务器a请求执行事务t_1,并在数据库服务器a返回事务t_1执行成功的消息后,再向数据库服务器b请求执行事务t_2;那么,因果序为事务t_2发生于事务t_1之后。因此,事务t_1的事务时间戳应小于事务t_2的事务时间戳。技术实现要素:有鉴于此,本说明书一个或多个实施例提供一种事务因果序的校正方法及装置、电子设备,可以保证各个事务的事务时间戳符合客户端定义的因果序。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种事务因果序的校正方法,应用于中间件设备,所述中间件设备用于传输客户端与分布式数据库中各数据库服务器之间进行通信的数据;所述方法包括:检测客户端发起的针对分布式数据库中任一数据库服务器的待执行事务的执行请求;确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第二方面,提出了一种事务因果序的校正方法,应用于客户端;所述方法包括:向分布式数据库中任一数据库服务器发起针对待执行事务的执行请求;确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第三方面,提出了一种事务因果序的校正方法,应用于数据库服务器;所述方法包括:接收校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为客户端向各数据库服务器请求执行的历史事务;当接收到所述客户端发起的针对待执行事务的执行请求时,根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第四方面,提出了一种事务因果序的校正装置,应用于中间件设备,所述中间件设备用于传输客户端与分布式数据库中各数据库服务器之间进行通信的数据;所述装置包括:检测单元,检测客户端发起的针对分布式数据库中任一数据库服务器的待执行事务的执行请求;确定单元,确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;发送单元,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第五方面,提出了一种事务因果序的校正装置,应用于客户端;所述装置包括:请求单元,向分布式数据库中任一数据库服务器发起针对待执行事务的执行请求;确定单元,确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;发送单元,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第六方面,提出了一种事务因果序的校正装置,应用于数据库服务器;所述装置包括:接收单元,接收校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为客户端向各数据库服务器请求执行的历史事务;生成单元,当接收到所述客户端发起的针对待执行事务的执行请求时,根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳。根据本说明书一个或多个实施例的第七方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现如上述任一实施例所述的事务因果序的校正方法。附图说明图1是一示例性实施例提供的一种事务因果序的校正系统的架构示意图。图2是一示例性实施例提供的一种客户端侧事务因果序的校正方法的流程图。图3是一示例性实施例提供的一种数据库服务器侧事务因果序的校正方法的流程图。图4是一示例性实施例提供的一种事务因果序的校正方法的交互图。图5是一示例性实施例提供的另一种事务因果序的校正系统的架构示意图。图6是一示例性实施例提供的一种中间件设备侧事务因果序的校正方法的流程图。图7是一示例性实施例提供的另一种事务因果序的校正方法的交互图。图8是一示例性实施例提供的一种电子设备的示意结构图。图9是一示例性实施例提供的一种事务因果序的校正装置的框图。图10是一示例性实施例提供的另一种电子设备的示意结构图。图11是一示例性实施例提供的另一种事务因果序的校正装置的框图。图12是一示例性实施例提供的另一种电子设备的示意结构图。图13是一示例性实施例提供的另一种事务因果序的校正装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。图1是一示例性实施例提供的一种事务因果序的校正系统的架构示意图。如图1所示,该系统可以包括客户端10和分布式数据库20。其中,分布式数据库20可以包括数据库服务器20a、20b等。客户端通过维护校正时间戳(不小于历史事务的事务时间戳),并将校正时间戳发送至需请求执行事务的数据库服务器,使得该数据库服务器在执行事务时可生成大于该校正时间戳的事务时间戳,从而满足客户端定义的因果序(该事务时间戳应大于历史事务的事务时间戳)。下文将对上述过程进行详细说明。数据库服务器20a、20b等可以为包含一独立主机的物理服务器,或者也可以为主机集群承载的虚拟服务器。在运行过程中,数据库服务器20a、20b等可以运行某一应用的服务器侧的程序,以实现该应用的相关业务功能,比如当该数据库服务器20a、20b等运行事务因果序的校正操作的程序时,可以被配置为用于实现事务因果序的校正功能的服务端。而在本说明书一个或多个实施例的技术方案中,可由数据库服务器20a、20b等通过与客户端10进行配合,以实现对事务因果序进行校正的方案。用户可以使用诸如下述类型的电子设备作为客户端10:平板设备、笔记本电脑、掌上电脑(pdas,personaldigitalassistants)等,本说明书一个或多个实施例并不对此进行限制。而对于客户端10与数据库服务器20a、20b等进行交互的网络(图中未示出),可以包括多种类型的有线或无线网络。在一实施例中,该网络可以包括公共交换电话网络(publicswitchedtelephonenetwork,pstn)和因特网,本说明书一个或多个实施例并不对此进行限制。下面分别针对客户端和数据库服务器中的不同角色,对本说明书的事务因果序的校正方案进行说明。图2是一示例性实施例提供的一种客户端侧事务因果序的校正方法的流程图。如图2所示,该方法可以包括以下步骤:步骤202,向分布式数据库中任一数据库服务器发起针对待执行事务的执行请求。步骤204,确定校正时间戳。在本实施例中,分布式数据库中各数据库服务器的时钟记录的时间可能并不一致,若各数据库服务器按照自身的时钟生成事务时间戳,则可能导致事务的事务时间戳不符合客户端定义的因果序。例如,客户端先向数据库服务器a请求执行事务t_1,此时数据库服务器a的时钟为100;则数据库服务器a返回执行事务t_1的事务时间戳为100。客户端在确定数据库服务器a完成对事务t_1的执行后,再向数据库服务器b请求执行事务t_2(因果序为事务t_2发生于事务t_1之后),若此时数据库服务器b的时钟为90(小于100),则数据库服务器b返回执行事务t_2的事务时间戳为90,导致事务t_1的事务时间戳反而大于事务t_2的事务时间戳,即执行事务t_1和事务t_2的顺序不符合客户端定义的因果序。那么,如果后续需读取事务时间戳在95之前的事务,就只能读取出事务t_2,并不能够读取出事务t_1;而实际上事务t_1发生于事务t_2之前,属于事务时间戳在95之前的事务。因此,客户端可通过维护校正时间戳来实现本说明书中事务因果序的校正方案。其中,所述校正时间戳不小于历史事务的事务时间戳(以下简称为历史事务时间戳),所述历史事务为所述客户端向各数据库服务器请求执行的历史事务。在一实施例中,可将所述校正时间戳设置为等于所述客户端最近一次向数据库服务器(可能是所述任一数据库服务器,也可能是其他数据库服务器)请求执行的事务的事务时间戳(以下简称为最近事务时间戳);在另一实施例中,可将所述校正时间戳设置为大于最近事务时间戳。步骤206,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。在本实施例中,基于所述校正时间戳不小于历史事务时间戳的特点,所述任一数据库服务器在接收到所述校正时间戳后,可根据所述校正时间戳来生成响应于所述执行请求的事务时间戳,从而使得生成的事务时间戳在时间顺序上晚于历史事务时间戳,满足客户端定义的因果序。在一实施例中,所述任一数据库服务器可先将自身的时钟与所述校正时间戳进行比较,再根据比较结果确定生成响应于所述执行请求的事务时间戳的依据。比如,若所述任一数据库服务器自身的时钟不大于所述校正时间戳,则根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳,否则,根据自身的时钟生成响应于所述执行请求的事务时间戳。其中,当自身的时钟不大于所述校正时间戳时,可进一步将自身的时钟修改为大于所述校正时间戳,从而使得自身的时钟不慢于其他数据库服务器的时钟。在另一实施例中,所述任一数据库服务器可直接根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳。通过省略将自身的时钟与所述校正时间戳进行比较的操作,可提高生成事务时间戳的效率。相应的,图3是一示例性实施例提供的一种数据库服务器侧事务因果序的校正方法的流程图。如图3所示,该方法可以包括以下步骤:步骤302,接收校正时间戳。在本实施例中,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为客户端向各数据库服务器请求执行的历史事务。其中,关于所述校正时间戳的详细描述,可参考上述图3实施例中的相关内容,在此不再赘述。步骤304,当接收到所述客户端发起的针对待执行事务的执行请求时,根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳。在本实施例中,若自身的时钟不大于所述校正时间戳,则根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳;否则,根据自身的时钟生成响应于所述执行请求的事务时间戳。进一步的,当自身的时钟不大于所述校正时间戳时,可将自身的时钟修改为大于所述校正时间戳,从而使得自身的时钟不慢于其他数据库服务器的时钟。类似的,针对数据库服务器根据校正时间戳生成事务时间戳的操作,其详细说明可参考上述图2实施例中的相关内容,在此不再赘述。为了便于理解,下面以客户端请求修改数据为例,对本说明书一个或多个实施例的技术方案进行详细说明。图4是一示例性实施例提供的一种事务因果序的校正方法的交互图。如图4所示,客户端先后向数据库服务器a、数据库服务器b请求修改数据;其中,在数据库服务器a修改数据成功后,客户端再向数据库服务器b请求修改数据。该校正方法可以包括以下步骤:步骤401,客户端向数据库服务器a发送执行请求a,以修改数据库服务器a中的数据a。在本实施例中,客户端可通过连接池与各个数据库服务器进行通信。步骤402,数据库服务器a修改数据a。步骤403,数据库服务器a生成事务时间戳a。步骤404,数据库服务器a向客户端返回修改结果a和事务时间戳a。步骤405,客户端确定校正时间戳。在本实施例中,可将校正时间戳设置为等于最近事务时间戳。而在当前阶段,最近事务时间戳为事务时间戳a;因此,可将校正时间戳设置为等于事务时间戳a。例如,假定事务时间戳a为92,那么可将校正时间戳设置为92。当然,也可将校正时间戳设置为大于最近事务时间戳;比如,承接于上述举例,可将校正时间戳设置为93、94、95等。步骤406,客户端向数据库服务器b发送执行请求b和校正时间戳。在本实施例中,客户端在确定出数据库服务器a已经完成对数据a进行修改后,向数据库服务器b发送执行请求b以修改数据库服务器b中的数据b。那么,此时的因果序为“数据库服务器a修改数据a”发生于“数据库服务器b修改数据b”之前。步骤407,数据库服务器b比较校正时间戳与自身的时钟。步骤408,当自身的时钟不大于校正时间戳时,数据库服务器b将自身的时钟修改为大于校正时间戳。步骤409,数据库服务器b修改数据b。步骤410,数据库服务器b生成事务时间戳b。在本实施例中,当自身的时钟大于校正时间戳时,数据库服务器b无需将自身的时钟修改为大于校正时间戳,直接根据自身的时钟记录的时刻生成事务时间戳b(事务“修改数据b”的时刻)即可。当数据库服务器b自身的时钟不大于校正时间戳(此时校正时间戳等于事务时间戳a,而事务时间戳a为事务“修改数据a”的时刻)时,若继续采用自身时钟记录的时间来生成事务时间戳b,则将导致事务时间戳b不大于事务时间戳a,即数据库服务器a修改数据a”并非发生于“数据库服务器b修改数据b”之前,从而不符合因果序。因此,可先将自身的时钟修改为大于校正时间戳,再根据修改后的时钟来生成事务时间戳b以满足上述因果序。比如,承接于上述校正时间戳等于事务时间戳a的举例,假定自身的时钟为90,由于自身的时钟为90小于校正时间戳92,可将自身的时钟修改为93,再采用修改后的时钟记录的时刻生成事务时间戳b,即事务时间戳b为93。可见,事务时间戳b大于事务时间戳a,满足“数据库服务器a修改数据a发生于数据库服务器b修改数据b之前”的因果序。当然,修改的幅度可根据实际情况灵活设定,本说明书并不对此进行限制。例如,还可将自身的时钟修改为94、95、100等。通过对自身的时钟进行修改,可使得自身的时钟不慢于数据库服务器a的时钟。那么后续再出现上述因果序的要求时,可以避免数据库服务器b频繁修改自身的时钟。需要说明的是,也可以省略将自身的时钟修改为大于校正时间戳的操作(即省略步骤408),直接在比较出自身的时钟不大于校正时间戳,以及执行事务“修改数据b”后,生成大于校正时间戳的事务时间戳b,从而可避免对自身的时钟进行修改。在本实施例中,数据库服务器b还可省略步骤407的比较操作(那么步骤408也随之无需执行),直接在执行事务“修改数据b”后,生成大于校正时间戳的事务时间戳b,从而可避免对自身的时钟进行修改。同时,通过省略将自身的时钟与校正时间戳进行比较的操作,可提高生成事务时间戳的效率。步骤411,数据库服务器b向客户端返回修改结果b和事务时间戳b。步骤412,客户端根据事务时间戳b更新校正时间戳。在本实施例中,在当前阶段,最近事务时间戳由事务时间戳a更换为事务时间戳b;因此,需要将校正时间戳由事务时间戳a更新为事务时间戳b。比如,承接于上述事务时间戳b为93的举例,可将校正时间戳更新为93。在本申请的技术方案中,还可由中间件设备来维护校正时间戳,以实现事务因果序的校正方案。请参见图5,图5是一示例性实施例提供的另一种事务因果序的校正系统的架构示意图。如图5所示,该系统可以包括客户端30a-30c、中间件设备40和分布式数据库50(包括数据库服务器50a、50b等)。其中,中间件设备40连接于客户端30a-30c与分布式数据库50之间,运行有中间件,从而可用于传输客户端30a-30c与分布式数据库50中各数据库服务器(数据库服务器50a、50b等)之间进行通信的数据。另外,客户端30a-30c和分布式数据库50与上述图1中的客户端10和分布式数据库20类似,其详细说明可参考上述图1所示架构的相关内容,在此不再赘述。请参见图6,图6是一示例性实施例提供的一种中间件设备侧事务因果序的校正方法。如图6所示,所述中间件设备中可运行中间件,以用于传输客户端与分布式数据库中各数据库服务器之间进行通信的数据;该方法可以包括以下步骤:步骤602,检测客户端发起的针对分布式数据库中任一数据库服务器的待执行事务的执行请求。步骤604,确定校正时间戳。在本实施例中,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务。其中,关于所述校正时间戳的详细描述,可参考上述图2实施例中的相关内容,在此不再赘述。在本实施例中,基于由独立于客户端的中间件设备来维护校正时间戳,当存在多个客户端时,该多个客户端均可通过同一中间件设备与分布式数据库中的各个数据库服务器进行通信。因此,中间件设备可维护对应于各个客户端的校正时间戳;其中,可建立客户端标识与相应校正时间戳的映射关系。那么,中间件设备在确定校正时间戳时,可先确定所述执行请求的发送方客户端的客户端标识,再(根据所述映射关系)确定对应于所述客户端标识的校正时间戳。步骤606,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。为了便于理解,下面以客户端请求修改数据为例,对本说明书一个或多个实施例的技术方案进行详细说明。如图7所示,图7是一示例性实施例提供的另一种事务因果序的校正方法的交互图。中间件设备中运行有中间件,用于传输各个客户端与分布式数据库中各数据库服务器之间进行通信的数据。客户端a先后向数据库服务器c、数据库服务器d请求修改数据;其中,在数据库服务器c修改数据成功后,客户端a再向数据库服务器d请求修改数据。该校正方法可以包括以下步骤:步骤701,客户端a向中间件设备发送执行请求c,以修改数据库服务器c中的数据c;在本实施例中,客户端a可通过连接池与中间件设备进行通信。步骤702,中间件设备向数据库服务器c转发执行请求c。步骤703,数据库服务器c修改数据c。步骤704,数据库服务器c生成事务时间戳c。步骤705,数据库服务器c向中间件设备返回修改结果c和事务时间戳c。步骤706,中间件设备确定校正时间戳a。在本实施例中,可将对应于客户端a的校正时间戳a设置为等于客户端a的最近事务时间戳。而在当前阶段,客户端a的最近事务时间戳为事务时间戳c;因此,可将校正时间戳a设置为等于事务时间戳c。例如,假定事务时间戳c为100,那么可将校正时间戳a设置为100。当然,也可将校正时间戳a设置为大于最近事务时间戳。比如,承接于上述举例,可将校正时间戳a设置为101、104、109等。由于中间件设备中维护有对应于各个客户端的校正时间戳,中间件设备可建立客户端标识与相应校正时间戳的映射关系,以区分出各个校正时间戳。举例而言,可将客户端的ip地址作为客户端标识,那么可建立如表1所示的映射关系:校正时间戳ip地址校正时间戳a1.1.1.1校正时间戳b1.1.1.2校正时间戳c1.1.1.3…………表1当然,也可以采用其他与客户端相关的信息作为客户端标识,本说明书并不对此进行限制。步骤707,中间件设备向客户端a转发修改结果c。在本实施例中,中间件设备可以只向客户端a转发修改结果c,而无需转发校正时间戳a,从而可实现对客户端a的透明处理,使得客户端a感知不到校正时间戳的维护过程,按照正常的请求修改数据的流程执行即可。步骤708,客户端a向中间件设备发送执行请求d,以修改数据库服务器d中的数据d。在本实施例中,客户端a在确定出数据库服务器c已经完成对数据c进行修改后,向数据库服务器d发送执行请求d以修改数据d。那么,此时的因果序为“数据库服务器c修改数据c”发生于“数据库服务器d修改数据d”之前。步骤709,中间件设备向数据库服务器d转发执行请求d和校正时间戳a。在本实施例中,基于对上述表1中映射关系的建立,中间件设备在确定对应于客户端a的校正时间戳a时,可先确定客户端a的客户端标识(即客户端a的ip地址),再根据上述表1中的映射关系确定对应于客户端a的校正时间戳a。步骤710,数据库服务器d比较校正时间戳a与自身的时钟。步骤711,当自身的时钟不大于校正时间戳a时,数据库服务器d将自身的时钟修改为大于校正时间戳a。步骤712,数据库服务器d修改数据d。步骤713,数据库服务器d生成事务时间戳d。在本实施例中,当自身的时钟大于校正时间戳a时,数据库服务器d无需将自身的时钟修改为大于校正时间戳a,直接根据自身的时钟记录的时刻生成事务时间戳d(事务“修改数据d”的时刻)即可。当数据库服务器d自身的时钟不大于校正时间戳(此时校正时间戳a等于事务时间戳c,而事务时间戳c为事务“修改数据c”的时刻)时,若继续采用自身时钟记录的时间来生成事务时间戳d,则将导致事务时间戳d不大于事务时间戳c,即数据库服务器c修改数据c”并非发生于“数据库服务器d修改数据d”之前,从而不符合因果序。因此,可先将自身的时钟修改为大于校正时间戳,再根据修改后的时钟来生成事务时间戳d以满足上述因果序。比如,承接于上述校正时间戳a等于事务时间戳c的举例,假定自身的时钟为98,由于自身的时钟为98小于校正时间戳a的取值100,可将自身的时钟修改为101,再采用修改后的时钟记录的时刻生成事务时间戳d,即事务时间戳d为101。可见,事务时间戳d大于事务时间戳c,满足“数据库服务器c修改数据c发生于数据库服务器d修改数据d之前”的因果序。当然,修改的幅度可根据实际情况灵活设定,本说明书并不对此进行限制。例如,还可将自身的时钟修改为102、105、111等。通过对自身的时钟进行修改,可使得自身的时钟不慢于数据库服务器c的时钟。那么后续再出现上述因果序的要求时,可以避免数据库服务器d频繁修改自身的时钟。需要说明的是,也可以省略将自身的时钟修改为大于校正时间戳a的操作(即省略步骤711),直接在比较出自身的时钟不大于校正时间戳a,以及执行事务“修改数据d”后,生成大于校正时间戳a的事务时间戳d,从而可避免对自身的时钟进行修改。在本实施例中,数据库服务器d还可省略步骤710的比较操作(那么步骤711也随之无需执行),直接在执行事务“修改数据d”后,生成大于校正时间戳a的事务时间戳d,从而可避免对自身的时钟进行修改。同时,通过省略将自身的时钟与校正时间戳进行比较的操作,可提高生成事务时间戳的效率。步骤714,数据库服务器d向中间件设备返回修改结果d和事务时间戳d。步骤715,中间件设备根据事务时间戳d更新校正时间戳a。在本实施例中,在当前阶段,客户端a的最近事务时间戳由事务时间戳c更换为事务时间戳d;因此,需要将校正时间戳a由事务时间戳c更新为事务时间戳d。比如,承接于上述事务时间戳d为101的举例,可将校正时间戳a更新为101。步骤716,中间件设备向客户端a转发修改结果d。由以上技术方案可见,通过维护校正时间戳(不小于历史事务的事务时间戳),并将校正时间戳发送至需请求执行事务的数据库服务器,使得该数据库服务器在执行事务时可根据校正时间戳生成大于校正时间戳的事务时间戳,即符合客户端定义的因果序。图8是一示例性实施例提供的一种电子设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成事务因果序的校正装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图9,在软件实施方式中,事务因果序的校正装置应用于中间件设备,所述中间件设备用于传输客户端与分布式数据库中各数据库服务器之间进行通信的数据;该事务因果序的校正装置可以包括:检测单元91,检测客户端发起的针对分布式数据库中任一数据库服务器的待执行事务的执行请求;确定单元92,确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;发送单元93,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。可选的,所述中间件设备用于传输多个客户端与分布式数据库中各数据库服务器之间进行通信的数据,所述中间件设备维护有对应于各个客户端的校正时间戳;所述确定单元92具体用于:确定所述执行请求的发送方客户端的客户端标识;确定对应于所述客户端标识的校正时间戳。可选的,所述校正时间戳为所述客户端最近一次向数据库服务器请求执行的事务的事务时间戳。图10是一示例性实施例提供的另一种电子设备的示意结构图。请参考图10,在硬件层面,该设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括其他业务所需要的硬件。处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行,在逻辑层面上形成事务因果序的校正装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图11,在软件实施方式中,该事务因果序的校正装置应用于客户端;可以包括:请求单元1101,向分布式数据库中任一数据库服务器发起针对待执行事务的执行请求;确定单元1102,确定校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为所述客户端向各数据库服务器请求执行的历史事务;发送单元1103,向所述任一数据库服务器发送校正时间戳,以使得所述任一数据库服务器响应于所述执行请求的事务时间戳大于所述校正时间戳。图12是一示例性实施例提供的另一种电子设备的示意结构图。请参考图12,在硬件层面,该设备包括处理器1202、内部总线1204、网络接口1206、内存1208以及非易失性存储器1212,当然还可能包括其他业务所需要的硬件。处理器1202从非易失性存储器1212中读取对应的计算机程序到内存1208中然后运行,在逻辑层面上形成事务因果序的校正装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图13,在软件实施方式中,该事务因果序的校正装置应用于数据库服务器,可以包括:接收单元1301,接收校正时间戳,所述校正时间戳不小于历史事务的事务时间戳,所述历史事务为客户端向各数据库服务器请求执行的历史事务;生成单元1302,当接收到所述客户端发起的针对待执行事务的执行请求时,根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳。可选的,所述生成单元1302具体用于:若自身的时钟不大于所述校正时间戳,则根据所述校正时间戳生成响应于所述执行请求的事务时间戳,以使得所述事务时间戳大于所述校正时间戳;否则,根据自身的时钟生成响应于所述执行请求的事务时间戳。可选的,还包括:修改单元1303,当自身的时钟不大于所述校正时间戳时,将自身的时钟修改为大于所述校正时间戳。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1