CN113420034A - 时钟更新方法、设备、数据库及计算机存储介质 - Google Patents
时钟更新方法、设备、数据库及计算机存储介质 Download PDFInfo
- Publication number
- CN113420034A CN113420034A CN202110125290.2A CN202110125290A CN113420034A CN 113420034 A CN113420034 A CN 113420034A CN 202110125290 A CN202110125290 A CN 202110125290A CN 113420034 A CN113420034 A CN 113420034A
- Authority
- CN
- China
- Prior art keywords
- clock
- timestamp
- target transaction
- computing node
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种时钟更新方法、设备、数据库及计算机存储介质,其中,时钟更新方法包括:在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟;向参与目标事务的至少一个计算节点,发送开始时间戳;接收至少一个计算节点返回的至少一个返回时间戳;根据至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟;向参与目标事务的至少一个计算节点发送结束时间戳。管控设备和计算节点的时钟能够始终保持一致,也避免了单点性能的瓶颈,减少单点故障带来的影响。
Description
技术领域
本申请实施例涉及电子信息技术领域,尤其涉及一种时钟更新方法、设备、数据库及计算机存储介质。
背景技术
在分布式***中,各个节点的设备在处理事务的过程中,需要对时钟进行更新,以确定各个事务的处理时间。相关技术中通过全局时钟实现分布式一致性事务,利用一个设备统一管理整个分布式***的时钟,但这会导致该设备负荷较大,时钟更新的效果也受单一设备性能的影响,如果该设备出现故障,对整个***影响较大;HLC(Hybrid LogicalClock)混合物理逻辑时钟HLC是另一种实现全局一致性分布式一致性事务的算法和技术,HLC不需要全局节点生成时间戳,分布式***中各个节点的设备独立更新各自的时钟,实现较为复杂。
发明内容
有鉴于此,本申请实施例提供一种时钟更新方法、设备、数据库及计算机存储介质,以解决上述部分或全部问题。
根据本申请实施例的第一方面,提供了一种分布式数据库,其包括:管控设备和至少一个计算节点;管控设备在目标事务开始时,为目标事务分配开始时间戳,并更新管控设备的本地时钟;向参与目标事务的至少一个计算节点,发送开始时间戳;计算节点根据开始时间戳更新计算节点的本地时钟;在目标事务处理完成后,生成返回时间戳,并更新计算节点的本地时钟;向管控设备发送返回时间戳;管控设备根据至少一个返回时间戳确定目标事务的结束时间戳,并更新管控设备的本地时钟,向至少一个计算节点发送目标事务的结束时间戳。
根据本申请实施例的第二方面,提供了一种时钟更新方法,应用于管控设备,包括:在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟;向参与目标事务的至少一个计算节点,发送开始时间戳;接收至少一个计算节点返回的至少一个返回时间戳;根据至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟;向参与目标事务的至少一个计算节点发送结束时间戳。
根据本申请实施例的第三方面,提供了一种时钟更新方法,应用于计算节点,包括:接收管控设备发送的目标事务的开始时间戳;根据开始时间戳更新计算节点的本地时钟;在目标事务处理完成后,生成返回时间戳,并更新本地时钟;向管控设备发送返回时间戳;接收管控设备发送的目标事务的结束时间戳,并更新本地时钟。
根据本申请实施例的第四方面,提供了一种管控设备,包括:时钟管理模块,用于在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟;发送模块,用于向参与目标事务的至少一个计算节点,发送开始时间戳;接收模块,用于接收至少一个计算节点返回的至少一个返回时间戳;时钟管理模块,还用于根据至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟;发送模块,还用于向参与目标事务的至少一个计算节点发送结束时间戳。
根据本申请实施例的第五方面,提供了一种计算节点,包括:接收模块,用于接收管控设备发送的目标事务的开始时间戳;时钟管理模块,用于根据开始时间戳更新计算节点的本地时钟;在目标事务处理完成后,生成返回时间戳,并更新本地时钟;发送模块,用于向管控设备发送返回时间戳;接收模块,还用于接收管控设备发送的目标事务的结束时间戳;时钟管理模块,还用于根据结束时间戳更新本地时钟。
根据本申请实施例的第六方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第二方面或第三方面的时钟更新方法对应的操作。
根据本申请实施例的第七方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面或第三方面的时钟更新方法。
本申请实施例提供的时钟更新方法、设备、数据库及计算机存储介质,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,实现更加简便,便于维护,提高了整体性能,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种时钟更新方法的场景示意图;
图2为本申请实施例一提供的一种时钟更新方法的流程图;
图3为本申请实施例二提供的一种时钟更新方法的流程图;
图4为本申请实施例三提供的一种时钟更新方法的信息交互图;
图5为本申请实施例三提供的一种连接池示意图;
图6为本申请实施例三提供的一种可见性判断示意图;
图7为本申请实施例三提供的一种多版本链示意图;
图8为本申请实施例三提供的一种测试效果示意图;
图9为本申请实施例三提供的另一种测试效果示意图;
图10为本申请实施例四提供的一种管控设备的结构框图;
图11为本申请实施例五提供的一种计算节点的结构框图;
图12为本申请实施例六提供的一种分布式数据库的结构图;
图13为本申请实施例七提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一
本申请实施例一提供一种时钟更新方法,应用于管控设备,该管控设备可以是服务器、中继设备、端到端(英文:Device-to-Device,D2D)设备等网络设备。为了便于理解,对本申请实施例一所提供的时钟更新方法的应用场景进行说明,参照图1所示,图1为本申请实施例一提供的一种时钟更新方法的场景示意图。图1所示的场景中包括管控设备101、计算节点102、客户端设备103。
管控设备101和计算节点102可以是服务器、中继设备、端到端设备等网络设备,管控设备101和计算节点102可以集成在一个设备中,也可以分别作为两个单独的设备。例如,管控设备101和计算节点102可以一个设备中的两个处理器;又如,管控设备101和计算节点102可以是一个机柜中的两个服务器;又如,管控设备101和计算节点102可以是两个单独的服务器。当然,此处只是以服务器为例进行说明。需要说明的是,管控设备101和至少一个计算节点102可以形成一个分布式***,例如,可以是分布式数据库。管控设备101在分布式***中其协调作用,比如在开始一个事务时,管控设备101向参与该事务的至少一个计算节点102发送消息,使得至少一个计算节点102对该事务进行处理。
客户端设备103可以是如智能手机、平板电脑、笔记本电脑等终端设备,也可以是如服务器等云端设备。需要说明的是,管控设备101、计算节点102、客户端设备103可以接入网络,通过网络互相通信。本申请中,网络包括局域网(英文:Local Area Network,LAN)、广域网(英文:Wide Area Network,WAN)、移动通信网络;如万维网(英文:World Wide Web,WWW)、长期演进(英文:Long Term Evolution,LTE)网络、2G网络(英文:2th GenerationMobile Network)、3G网络(英文:3th Generation Mobile Network),5G网络(英文:5thGeneration Mobile Network)等。当然,此处只是示例性说明。
需要说明的是,在本申请中,管控设备也可以是协调节点,计算节点也可以是数据存储节点或者计算节点,如图1所示,客户端设备103向管控设备101发送请求信息,管控设备101根据请求信息开始处理相应的目标事务,为目标事务分配开始时间戳,并根据开始时间戳更新本地时钟;管控设备101向参与目标事务的至少一个计算节点102发送开始时间戳;各个计算节点102根据开始时间戳更新各自的本地时钟,并处理目标事务,在处理完目标事务后,生成各自的返回时间戳,并将返回时间戳发送至管控设备101;管控设备101根据各个数据存储色设备102发送的返回时间戳,确定目标事务的结束时间戳,根据结束时间戳更新本地始终,并向参与目标事务的至少一个计算节点102发送结束时间戳;各个计算节点根据结束时间戳更新各自的本地时钟。
结合图1所示的场景,详细说明本申请实施例一提供的时钟更新方法,需要说明的是,图1只是本申请实施例一提供的时钟更新方法的一种应用场景,并不代表该时钟更新方法必须应用于图1所示的场景,参照图2所示,图2为本申请实施例一提供的一种时钟更新方法的流程图,该时钟更新方法应用于管控设备,包括以下步骤:
步骤201、在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟。
目标事务为待处理的事务,可以是任意一个事务。事务(Transaction),是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务由事务开始和事务结束之间执行的所有操作组成。例如,一个事务可以是一条结构化查询语言(Structured QueryLanguage,SQL)语句,一组SQL语句或整个程序。开始时间戳用于表示目标事务的开始时间。本地时钟是管控设备基于物理时钟维护的一个时间变量,本地时钟可以是物理时钟、也可以是逻辑时钟,也可以是物理时钟和逻辑时钟的混合时钟。具体地,物理时钟指的是实际时间,例如,物理时钟的数值可以是15点23分34秒,物理时钟的数值即为当前的具体时间;逻辑时钟可以是用于维护事务顺序的标记,例如,逻辑时钟可以是一个16位的二进制数,每完成一个事务,逻辑时钟就可以加1,以保证事务之间的先后顺序;混合时钟指的是结合物理时钟和逻辑时钟,表示事务顺序的数值,混合时钟可以由物理时钟和逻辑时钟组成,例如,混合时钟的数值可以由32位的二进制数表示,其中,前16位表示物理时钟,后16位表示逻辑时钟,当然,此处只是示例性说明。
可选地,在一种具体的实现方式中,在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟,包括:在目标事务开始时,获取管控设备的当前物理时钟;将当前物理时钟与本地混合时钟的物理时钟对齐得到对齐后的当前物理时钟,本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与本地时钟的当前值之中更大的数值,确定为开始时间戳,并将开始时间戳作为本地时钟的最新值。示例性地,可以利用二进制数表示本地时钟,二进制数的高位表示物理时钟,低位表示逻辑时钟,即物理时钟对应的二进制位在逻辑时钟对应的二进制位之前,本地时钟可以用m位二进制数表示,逻辑时钟可以用n位二进制数表示,m和n均为大于0的整数,以m=48,n=16为例,以本地时钟的后16位表示逻辑时钟,16位之前表示物理时钟,将当前物理时钟左移16位即可与本地时钟的物理时钟对齐;或者在当前物理时钟的后面增加16位,这16位的数值可以用0补充,即可完成与本地时钟的物理时钟对齐,物理时钟的精度可以是毫秒级,当然,此处只是示例性说明。可选地,可以利用ClockNow()函数实现,用max_ts表示本地时钟,则在ClockNow()函数中,max_ts=max{max_ts,local_phys_ts},其中,local_phys_ts表示与本地时钟的物理时钟对齐后的当前物理时钟,即左移16位之后的当前物理时钟。将当前物理时钟和本地时钟的当前值之中更大的数值确定为开始时间戳,可以保证开始时间戳是最新的时间点,避免多个事务之间出现乱序。
步骤202、向参与目标事务的至少一个计算节点,发送开始时间戳。
管控设备向参与目标事务的至少一个计算节点开始时间戳,参与目标事务的计算节点根据开始时间戳更新各自的本地时钟。计算节点的本地时钟可以和管控设备的本地时钟相同,此处不再赘述。需要说明的是,在一种实现方式中,管控设备可以向参与目标事务的所有计算节点发送开始时间戳,可以使得所有参与目标事务的计算节点的时钟保持一致。
步骤203、接收至少一个计算节点返回的至少一个返回时间戳。
计算节点的返回时间戳是根据该计算节点处理完成目标事务的时间确定的,因为每个计算节点都独立维护一个本地时钟,而且各个计算节点完成目标事务的时间并不一定完全一致,因此各个计算节点确定的返回时间戳不一定相同。
步骤204、根据至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟。
可选地,在一种实现方式中,根据至少一个返回时间戳确定目标事务的结束时间戳,包括:将至少一个返回时间戳中数值最大的时间戳确定为结束时间戳,并根据结束时间戳更新本地时钟。将数值最大的返回时间戳确定为目标事务的结束时间戳,可以使得目标事务的结束时间戳统一,并且是各个计算节点中最大的值,避免在目标事务之前完成的事务的结束时间戳小于目标事务的结束时间戳,保证了事务之间不会出现乱序。
示例性地,利用结束时间戳更新本地时钟时,可以将结束时间戳与本地时钟的当前值之中的更大数值确定为本地时钟的最新值。例如,可以利用ClockUpdate()函数实现,用max_ts表示本地时钟,则在ClockUpdate()函数中,max_ts=max{max_ts,commit_ts},其中,commit_ts表示数值最大的返回时间戳。当然,此处只是示例性说明。
步骤205、向参与目标事务的至少一个计算节点发送结束时间戳。
至少一个计算节点可以根据结束时间戳更新各自的本地时钟。
本申请实施例提供的时钟更新方法,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,实现更加简便,便于维护,提高了整体性能,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
实施例二
结合图1所示的场景,本申请实施例二提供一种时钟更新方法,应用于计算节点,图1只是本申请实施例二提供的时钟更新方法的一种应用场景,并不代表该时钟更新方法必须应用于图1所示的场景,参照图3所示,图3为本申请实施例二提供的一种时钟更新方法的流程图,该方法包括以下步骤:
步骤301、接收管控设备发送的目标事务的开始时间戳。
步骤302、根据开始时间戳更新计算节点的本地时钟。
各个参与目标事务的计算节点都会接收到开始时间戳,可以保证各个计算节点根据开始时间戳更新后的本地时钟是一致的。如果在更新本地时钟之前,各个计算节点的本地时钟的数值不同,在更新本地时钟之后,数值基本一致。
可选地,在一种具体的实现方式中,根据开始时间戳更新计算节点的本地时钟,包括:将开始时间戳与本地时钟的当前值中更大的数值,确定为本地时钟的最新值。示例性地,可以利用ClockUpdate()函数实现,用max_ts表示本地时钟,在ClockUpdate()函数中,max_ts=max{max_ts,start_ts},其中,start_ts表示目标事务的开始时间戳。当然,此处只是示例性说明。
步骤303、在目标事务处理完成后,生成返回时间戳,并更新本地时钟。
可选地,在一种实现方式中,在目标事务处理完成后,生成返回时间戳,并更新本地时钟,包括:在目标事务处理完成后,获取计算节点的当前物理时钟;将当前物理时钟与本地时钟的物理时钟对齐得到对齐后的当前物理时钟,本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与本地时钟的当前值之中更大的数值加1后得到的数值,确定为返回时间戳,并将返回时间戳作为本地时钟的最新值。将对齐后的当前物理时钟与本地时钟的当前值之中更大的数值加1后得到的数值,确定为返回时间戳,可以保证计算节点确定的返回时间戳是该计算节点可以确定的最大值,不会和其他事务的时间冲突,避免乱序。示例性地,可以利用ClockTick()函数实现,用max_ts表示本地时钟,在ClockTick()函数中,max_ts=max{max_ts,local_phys_ts}+1,其中,local_phys_ts表示与本地时钟的物理时钟对齐后的当前物理时钟。
步骤304、向管控设备发送返回时间戳。
步骤305、接收管控设备发送的目标事务的结束时间戳,并更新本地时钟。
根据结束时间戳更新本地时钟的方式与步骤302中的更新方式相同,此处不再赘述。
本申请实施例提供的时钟更新方法,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,实现更加简便,便于维护,提高了整体性能,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
实施例三
结合图1所示的场景,基于上述实施例一和实施例二所描述的数据更新方法,本申请实施例三提供一种数据更新方法,应用于分布式数据库,当然,本实施例只是以分布式数据库为例进行说明,分布式数据库可以包括如图1所示的至少一个管控设备和至少一个计算节点。管控设备也可以是协调节点(英文:Coordinator Node,CN),数据设备可以是计算节点(英文:Data Node,DN)。分布式数据库中的每个节点维护了一个本地混合时钟(本实施例中以本地时钟是本地混合时钟为例进行说明),用变量max_ts表示,这里定义了三种对max_ts的更新方式:ClockNow()函数,用于分配时钟,max_ts=max{max_ts,local_phys_ts},local_phys_ts为本地节点的当前物理时钟左移16位(和本地混合时钟的物理时钟对齐),返回max_ts;ClockUpdate()函数,用于更新max_ts,即max_ts=max{new_ts,max_ts},new_ts为新获取的时间戳;ClockTick(),用于递增读取max_ts,max_ts=max{max_ts,local_phys_ts}+1,返回max_ts。基于上述说明,参照图4所示,图4为本申请实施例三提供的一种时钟更新方法的信息交互图,该方法包括以下步骤:
步骤401、管控设备接收客户端设备发送的SQL请求,并根据SQL请求开始目标事务。
步骤402、管控设备在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟。
此处,分配开始时间戳和更新本地时钟可以利用ClockNow()函数在一次执行操作中同时完成,分配开始时间戳以及更新本地时钟的方式在实施例一中详细说明,此处不再赘述。
步骤403、管控设备向参与目标事务的至少一个计算节点,发送开始时间戳。
管控设备还可以根据SQL请求生成分布式查询执行指令,向参与目标事务的至少一个计算节点发送查询执行指令,在数据所在的各个计算节点上处理目标事务。需要说明的是,管控设备和计算节点之间通常用连接池来支持多会话之间的复用连接,以减少集群范围内网络连接数。如图5所示,管控设备和计算节点上都设置有一个连接池,连接池也可以是一个连接管理模块,以管控设备A为例,管控设备A的连接池里存储了与管控设备A建立连接的各计算节点的地址信息,并且保留了管控设备A与建立连接的各计算节点之间的数据传输进程,在管控设备A需要向计算节点传输数据时,不需要建立新的进程,也不需要建立连接,直接通过已有的进程以及存储的地址信息向计算节点传输数据即可。
步骤404、计算节点根据开始时间戳更新本地时钟。
可以利用ClockUpdate()函数,将开始时间戳作为new_ts,对本地时钟进行更新。
步骤405、计算节点处理目标事务,在目标事务处理完成后,生成返回时间戳,并更新本地时钟。
可以利用ClockTick()函数,确定返回时间戳,在确定返回时间戳的同时,即完成了对本地时钟的更新,或者,可以是确定本地时钟的最新值,并将本地时钟的最新值确定为返回时间戳。生成返回时间戳,更新本地时钟的方式在实施例二中详细描述,此处不再赘述。
步骤406、计算节点向管控设备发送返回时间戳。
步骤407、管控设备根据接收到的至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟。
结合步骤405-407,在一种具体的应用场景中,用户在客户端设备上操作可以触发目标事务处理完成。在用户触发目标事务处理完成后,管控设备向参与目标事务处理的计算节点发送预提交命令,计算节点进入预提交状态,计算节点就可以将目标事务添加预提交标记,以标记该目标事务进入预提交阶段,并生成返回时间戳,向管控设备发送返回时间戳。在管控设备接收到计算节点发送的返回时间戳后,将数值最大的返回时间戳确定为目标事务的结束时间戳,然后利用ClockUpdate()函数,将结束时间戳作为new_ts,对本地时钟进行更新。
步骤408、管控设备向参与目标事务的至少一个计算节点发送结束时间戳。
步骤409、计算节点根据目标事务的结束时间戳更新本地时钟。
结合上述步骤401-409,在目标事务涉及多个计算节点(计算节点)时,以计算节点1和计算节点b为例,在处理目标事务之前,计算节点1的本地时钟为n,在完成目标事务后,计算节点1的本地时钟更新为n+1,计算节点1向管控设备提交的提交时间戳即为n+1;在处理目标事务之前,计算节点b的本地时钟为m,在完成目标事务后,计算节点b的本地时钟更新为m+1,计算节点b向管控设备提交的提交时间戳即为m+1,m和n均为二进制整数;管控设备将n+1和m+1中更大的数值确定为目标事务的结束时间戳,例如,如果n大于m,则n+1为结束时间戳;如果n小于m,则m+1为结束时间戳。以n大于m,结束时间戳n+1为例,管控设备将结束时间戳发送至计算节点1和计算节点b,计算节点1和计算节点b都将本地时钟更新为n+1,则此时计算节点1和计算节点b的时钟一致。
对于不同的事务,例如,事务T1和事务T2,事务T1和事务T2开始时间戳和结束时间戳不同,在分布式数据库中,事务T1中数据的修改对于事务T2未必可见。如图6所示,图6为本申请实施例三提供的一种可见性判断示意图。
如果事务T1未进入预提交阶段,事务T1的数据修改对事务T2不可见;
如果事务T1已经进入预提交阶段,则等待事务T1提交完成后再判断事务T1的数据修改对事务T2是否可见;
如果事务T1已经结束/提交,则比较事务T1的结束时间戳和事务T2的开始时间戳,如果事务T2的开始时间戳大于或等于事务T1的结束时间戳,则事务T1的数据修改对事务T2可见,即在事务T2的处理过程中,可以获取到事务T1修改后的数据。
基于步骤401-409所描述的方法,以及图6所示的可见性判断,此处列举三个具体的示例进行说明。
在第一个示例中,以计算节点1、事务T1和事务T2为例,如果事务T2扫描事务T1的修改时,事务T1还未进入预提交阶段,则T1对T2不可见,则事务T2的开始时间戳小于事务T1的结束时间戳。因为在事务T1预提交阶段,事务T1的结束时间戳大于或等于计算节点1对事务T1的返回时间戳,而事务T1还没有预提交,因此,commit_ts_T1>max_ts>=start_ts_T2,其中,commit_ts_T1表示事务T1的结束时间戳,max_ts表示计算节点1的本地时钟的当前值,start_ts_T2表示事务T2的开始时间戳。由于事务T1的结束时间戳和事务T2的开始时间戳在整个分布式***中是统一的,因此,对于任意节点,commit_ts_T1>start_ts_T2这一条件都成立。
如果事务T2扫描事务T1的修改时,事务T1已经进入预提交阶段,则事务T2需要等待事务T1提交完成,即事务T1结束。如果事务T2开始时,在其某计算节点事务T1没有完成,即没有生成返回时间戳,则根据上一段的证明,最终commit_ts_T1>start_ts_T2,则在计算节点1等到事务T1结束,事务T1的修改对事务T2也不可见。因此,事务T1的修改对事务T2可见,当且仅当,事务T2开始时,所有参与目标事务的计算节点都对事务T1生成了返回时间戳,即事务T2的开始时间戳大于或等于事务T1的结束时间戳时,事务T1的修改对事务T2可见。
在第二个示例中,以读取事务和写入事务为例。多版本事务并发控制(英文:Multi-version Concurrency Control,MVCC)允许写入事务不阻塞读取事务,在写入事务产生新的版本时,如果写入事务的提交时间戳小于或等于读取事务的开始时间戳,则读取事务可以读取可见的版本。读取事务从旧版本往新版本方向遍历,直到找到对它可见的版本。因此,为保证事务的顺序,多版本链的提交时间戳是单调递增的。写入事务和写入事务之间的冲突通过元组锁(英文:tuple lock)去序列化,以实现对同一个版本链进行并发写入,还可以通过锁保证版本链提交时间戳的单调递增。如图7所示,图7为本申请实施例三提供的一种多版本链示意图,在计算节点1,事务T1是上一个版本的开始事务,事务T2是上一个版本的结束事务,是当前版本的开始事务,存在并发事务T2和事务T3。如果事务T2先获得锁,则事务T3需等到事务T2结束之后才能获得锁,则事务T2先获得锁,先进行提交,在事务T2提交时,max_ts>=commit_ts_T2,其中,max_ts表示计算节点1的本地时钟,commit_ts_T2表示事务2的结束时间戳;事务T3在事务T2结束之后,获得锁,事务T3处理完成后提交,commit_ts_T3>=prepare_ts_DN1=max{max_ts,local_phys_ts}+1;prepare_ts_DN1表示事务T3的返回时间戳,因此,commit_ts_T3>max_ts>=commit_ts_T2,版本链时间戳是递增的。
在第三个示例中,对外部一致性进行说明。以事务T1和事务T2为例进行说明,外部一致性是指事务T1提交返回给客户端,再发起T2事务(可以是不同的客户端),在后执行的事务T2可以看到在线完成的事务T1的修改结果。对于连接到同一个协调节点CN的客户端,协调节点CN利用事务T1的结束时间戳更新本地时钟max_ts_CN,事务T1返回到客户端,发起事务T2的请求(可以来自不同客户端),事务T2的开始时间戳为start_ts_T2=max{max_ts_CN,local_phys_ts}>=max_ts_CN>commit_ts_T1,其中,commit_ts_T1表示事务T1的结束时间戳,local_phys_ts表示协调节点CN的当前物理时钟,因此,事务T2的开始时间戳大于事务T1的结束时间戳,因此,事务T2可以看到事务T1的修改。
对于连接到不同协调节点CN的客户端,可以通过高精度时间同步协议(英文:Precision Time Protocol,PTP)实现一致性,利用PTP可以将一个分布式***中不同协调节点CN之间的时钟倾斜控制在1us内,而客户端到协调节点CN之间的网络延迟远大于时钟偏移,不会产生乱序。
本申请提供的时钟更新方法,不仅可以保证分布式***下各个节点之间时钟的一致性,减少单点性能以及单点故障对整个***带来的影响,还具有更好的稳定性和水平扩展能力。以基于事务处理性能委员会(英文:Transaction Processing PerformanceCouncil,TPC)的TPC-C基准测试为例,如图8所示,图8为本申请实施例三提供的一种测试效果示意图,利用包含100个节点的分布式数据库,100000仓库,4050万个模拟客户端,运行标准TPC-C负载一小时,度量每分钟事务处理数量作为性能结果。根据图8显示的测试结果,在***预热8分钟之后,事务处理的吞吐量进入稳态,并维持一小时的稳定吞吐量,性能波动极小。最终统计一小时稳态下每分钟处理的新订单(英文:New Order)事务数量为5148万。相比于单机一小时处理事务数量的60万,本方案能够应用于包含更多节点的分布式***,实现水平扩展。而且,如图9所示,本方案中事务处理的时延也维持在极低的水平,事务的50分位时延仅为8.1毫秒,处理性能更好。
本申请实施例提供的时钟更新方法,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。进一步地,相比于HLC采用混合逻辑时钟去中心化,通过各个计算节点之间的通信来维护更新时钟,本方案通过管控设备设备与计算节点之间的交互保持时钟的一致性,实现更为简便,维护更加容易便捷,而且处理性能更好。
实施例四、
基于上述实施例一所描述的方法,本申请实施例四提供一种管控设备,用于执行上述实施例一所描述的方法,如图10所示,该管控设备100包括:
时钟管理模块1001,用于在目标事务开始时,为目标事务分配开始时间戳,并更新本地时钟;
发送模块1002,用于向参与目标事务的至少一个计算节点,发送开始时间戳;
接收模块1003,用于接收至少一个计算节点返回的至少一个返回时间戳;
时钟管理模块1001,还用于根据至少一个返回时间戳确定目标事务的结束时间戳,并更新本地时钟;
发送模块1002,还用于向参与目标事务的至少一个计算节点发送结束时间戳。
可选地,在本申请的一个实施例中,时钟管理模块1001,用于在目标事务开始时,获取管控设备的当前物理时钟;将当前物理时钟与本地混合时钟的物理时钟对齐得到对齐后的当前物理时钟,本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与本地时钟的当前值之中更大的数值,确定为开始时间戳,并将开始时间戳作为本地时钟的最新值。
可选地,在本申请的一个实施例中,时钟管理模块1001,用于将至少一个返回时间戳中数值最大的时间戳确定为结束时间戳,并根据结束时间戳更新本地时钟。
本申请实施例提供的数据处理装置,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
实施例五、
基于上述实施例二所描述的方法,本申请实施例五提供一种计算节点,用于执行上述实施例二所描述的方法,如图11所示,该计算节点110包括:
接收模块1101,用于接收管控设备发送的目标事务的开始时间戳;
时钟管理模块1102,用于根据开始时间戳更新计算节点的本地时钟;在目标事务处理完成后,生成返回时间戳,并更新本地时钟;
发送模块1103,用于向管控设备发送返回时间戳;
接收模块1101,还用于接收管控设备发送的目标事务的结束时间戳;时钟管理模块,还用于根据结束时间戳更新本地时钟。
可选地,在本申请的一个实施例中,时钟管理模块1102,用于将开始时间戳与本地时钟的当前值中更大的数值,确定为本地时钟的最新值。
可选地,在本申请的一个实施例中,时钟管理模块1102,用于在目标事务处理完成后,获取计算节点的当前物理时钟;将当前物理时钟与本地时钟的物理时钟对齐得到对齐后的当前物理时钟,本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与本地时钟的当前值之中更大的数值加1后得到的数值,确定为返回时间戳,并将返回时间戳作为本地时钟的最新值。
本申请实施例提供的数据处理装置,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
实施例六
基于上述实施例一至实施例三所描述的时钟更新方法,以及实施例四所描述的管控设备和实施例五所描述的计算节点,本申请实施例六提供一种分布式数据库,如图12所示,该分布式数据库120包括:如实施例四所描述的管控设备100,以及至少一个如实施例五所描述计算节点110。
其中,管控设备在目标事务开始时,为目标事务分配开始时间戳,并更新管控设备的本地时钟;向参与目标事务的至少一个计算节点,发送开始时间戳;
计算节点根据开始时间戳更新计算节点的本地时钟;在目标事务处理完成后,生成返回时间戳,并更新计算节点的本地时钟;向管控设备发送返回时间戳;
管控设备根据至少一个返回时间戳确定目标事务的结束时间戳,并更新管控设备的本地时钟,向至少一个计算节点发送目标事务的结束时间戳。
可选地,在本申请的一个实施例中,管控设备在目标事务开始时,获取管控设备的当前物理时钟;将当前物理时钟与管控设备的本地时钟的物理时钟对齐得到对齐后的当前物理时钟,本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与管控设备的本地时钟的当前值之中更大的数值,确定为开始时间戳,并将开始时间戳作为管控设备的本地时钟的最新值。
可选地,在本申请的一个实施例中,管控设备将至少一个返回时间戳中数值最大的时间戳确定为结束时间戳,并根据结束时间戳更新管控设备的本地时钟。
可选地,在本申请的一个实施例中,计算节点将开始时间戳与计算节点的本地时钟的当前值中更大的数值,确定为计算节点的本地时钟的最新值。
可选地,在本申请的一个实施例中,计算节点在目标事务处理完成后,获取计算节点的当前物理时钟;将当前物理时钟与计算节点的本地时钟的物理时钟对齐得到对齐后的当前物理时钟,计算节点的本地时钟包括物理时钟和逻辑时钟;将对齐后的当前物理时钟与计算节点的本地时钟的当前值之中更大的数值加1后得到的数值,确定为返回时间戳,并将返回时间戳作为计算节点的本地时钟的最新值。
可选地,在本申请的一个实施例中,目标事务为写入事务;计算节点在目标事务开始时,确定是否存在写入事务已经获取锁;如果没有写入事务已经获取锁,则对目标事务获取锁。
可选地,在本申请的一个实施例中,计算节点在已经存在写入事务获取锁时,等待写入事务结束后,对目标事务获取锁。
实施例七
基于上述实施例一至实施例三所描述的方法,本申请实施例七提供一种电子设备,用于执行上述实施例一至实施例三所描述的方法,参照图13所示,图13为本申请实施例七提供的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图13所示,该电子设备130可以包括:处理器(processor)1302、通信接口(Communications Interface)1304、存储器(memory)1306、以及通信总线1308。
其中:
处理器1302、通信接口1304、以及存储器1306通过通信总线1308完成相互间的通信。
通信接口1304,用于与其它电子设备如终端设备或服务器进行通信。
处理器1302,用于执行程序1310,具体可以执行上述方法实施例中的相关步骤。
具体地,程序1310可以包括程序代码,该程序代码包括计算机操作指令。
处理器1302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器1306,用于存放程序1310。存储器1306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序1310具体可以用于使得处理器1302执行前述实施例一至实施例三中任一方法。
程序1310中各步骤的具体实现可以参见上述时钟更新方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本申请实施例提供的电子设备,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
实施例八
基于上述实施例一至实施例三所描述的方法,本申请实施例八提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一至实施例三所描述的方法。
本申请实施例提供的计算机存储介质,目标事务的开始时间戳由管控设备分配并统一发送给参与目标事务的计算节点,使得管控设备和计算节点的时钟一致,在目标事务处理完成时,管控设备根据至少一个计算节点返回的至少一个返回时间戳确定目标事务的结束时间戳,使得所有参与目标事务的计算节点具有统一的结束时间戳,通过管控设备和计算节点在处理事务过程中的交互,使得管控设备和计算节点的时钟能够始终保持一致,而且因为管控设备和计算节点都各自维护了本地时钟,并不依赖于一个设备,避免了单点性能的瓶颈,减少单点故障带来的影响。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的时钟更新方法。此外,当通用计算机访问用于实现在此示出的时钟更新方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的时钟更新方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (15)
1.一种分布式数据库,其包括:管控设备和至少一个计算节点;
所述管控设备在目标事务开始时,为所述目标事务分配开始时间戳,并更新所述管控设备的本地时钟;向参与所述目标事务的至少一个计算节点,发送所述开始时间戳;
所述计算节点根据所述开始时间戳更新所述计算节点的本地时钟;在所述目标事务处理完成后,生成返回时间戳,并更新所述计算节点的本地时钟;向所述管控设备发送所述返回时间戳;
所述管控设备根据至少一个返回时间戳确定所述目标事务的结束时间戳,并更新所述管控设备的本地时钟,向所述至少一个计算节点发送所述目标事务的结束时间戳。
2.根据权利要求1所述的分布式数据库,其中,
所述管控设备在所述目标事务开始时,获取所述管控设备的当前物理时钟;将所述当前物理时钟与所述管控设备的本地时钟的物理时钟对齐得到对齐后的所述当前物理时钟,所述本地时钟包括物理时钟和逻辑时钟;将对齐后的所述当前物理时钟与所述管控设备的本地时钟的当前值之中更大的数值,确定为所述开始时间戳,并将所述开始时间戳作为所述管控设备的本地时钟的最新值。
3.根据权利要求2所述的分布式数据库,其中,
所述管控设备将所述至少一个返回时间戳中数值最大的时间戳确定为所述结束时间戳,并根据所述结束时间戳更新所述管控设备的本地时钟。
4.根据权利要求1所述的分布式数据库,其中,
所述计算节点将所述开始时间戳与所述计算节点的本地时钟的当前值中更大的数值,确定为所述计算节点的本地时钟的最新值。
5.根据权利要求1所述的分布式数据库,其中,
所述计算节点在所述目标事务处理完成后,获取所述计算节点的当前物理时钟;将所述当前物理时钟与所述计算节点的本地时钟的物理时钟对齐得到对齐后的所述当前物理时钟,所述计算节点的本地时钟包括物理时钟和逻辑时钟;将对齐后的所述当前物理时钟与所述计算节点的本地时钟的当前值之中更大的数值加1后得到的数值,确定为所述返回时间戳,并将所述返回时间戳作为所述计算节点的本地时钟的最新值。
6.根据权利要求1所述的分布式数据库,其中,所述目标事务为写入事务;
所述计算节点在所述目标事务开始时,确定是否存在写入事务已经获取锁;如果没有写入事务已经获取锁,则对所述目标事务获取锁。
7.根据权利要求6所述的分布式数据库,其中,
所述计算节点在已经存在写入事务获取锁时,等待写入事务结束后,对所述目标事务获取锁。
8.一种时钟更新方法,应用于管控设备,其包括:
在目标事务开始时,为所述目标事务分配开始时间戳,并更新本地时钟;
向参与所述目标事务的至少一个计算节点,发送所述开始时间戳;
接收所述至少一个计算节点发送的至少一个返回时间戳;
根据所述至少一个返回时间戳确定所述目标事务的结束时间戳,并更新所述本地时钟;
向参与所述目标事务的所述至少一个计算节点发送所述结束时间戳。
9.根据权利要求8所述的方法,其中,所述在目标事务开始时,为所述目标事务分配开始时间戳,并更新本地时钟,包括:
在所述目标事务开始时,获取所述管控设备的当前物理时钟;
将所述当前物理时钟与所述本地混合时钟的物理时钟对齐得到对齐后的所述当前物理时钟,所述本地时钟包括物理时钟和逻辑时钟;
将对齐后的所述当前物理时钟与所述本地时钟的当前值之中更大的数值,确定为所述开始时间戳,并将所述开始时间戳作为所述本地时钟的最新值。
10.一种时钟更新方法,应用于计算节点,其包括:
接收管控设备发送的目标事务的开始时间戳;
根据所述开始时间戳更新所述计算节点的本地时钟;
在所述目标事务处理完成后,生成返回时间戳,并更新所述本地时钟;
向所述管控设备发送所述返回时间戳;
接收所述管控设备发送的所述目标事务的结束时间戳,并更新所述本地时钟。
11.根据权利要求10所述的方法,其中,所述在所述目标事务处理完成后,生成返回时间戳,并更新所述本地时钟,包括:
在所述目标事务处理完成后,获取所述计算节点的当前物理时钟;
将所述当前物理时钟与所述本地时钟的物理时钟对齐得到对齐后的所述当前物理时钟,所述本地时钟包括物理时钟和逻辑时钟;
将对齐后的所述当前物理时钟与所述本地时钟的当前值之中更大的数值加1后得到的数值,确定为所述返回时间戳,并将所述返回时间戳作为所述本地时钟的最新值。
12.一种管控设备,其包括:
时钟管理模块,用于在目标事务开始时,为所述目标事务分配开始时间戳,并更新本地时钟;
发送模块,用于向参与所述目标事务的至少一个计算节点,发送所述开始时间戳;
接收模块,用于接收所述至少一个计算节点返回的至少一个返回时间戳;
所述时钟管理模块,还用于根据所述至少一个返回时间戳确定所述目标事务的结束时间戳,并更新所述本地时钟;
所述发送模块,还用于向参与所述目标事务的所述至少一个计算节点发送所述结束时间戳。
13.一种计算节点,其包括:
接收模块,用于接收管控设备发送的目标事务的开始时间戳;
时钟管理模块,用于根据所述开始时间戳更新所述计算节点的本地时钟;在所述目标事务处理完成后,生成返回时间戳,并更新所述本地时钟;
发送模块,用于向所述管控设备发送所述返回时间戳;
所述接收模块,还用于接收所述管控设备发送的所述目标事务的结束时间戳;
所述时钟管理模块,还用于根据所述结束时间戳更新所述本地时钟。
14.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求8-11中任一项所述的时钟更新方法对应的操作。
15.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求8-11中任一所述的时钟更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125290.2A CN113420034A (zh) | 2021-01-29 | 2021-01-29 | 时钟更新方法、设备、数据库及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125290.2A CN113420034A (zh) | 2021-01-29 | 2021-01-29 | 时钟更新方法、设备、数据库及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113420034A true CN113420034A (zh) | 2021-09-21 |
Family
ID=77711703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110125290.2A Pending CN113420034A (zh) | 2021-01-29 | 2021-01-29 | 时钟更新方法、设备、数据库及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420034A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422560A (zh) * | 2022-01-12 | 2022-04-29 | 珠海格力电器股份有限公司 | 目标设备停止运行的方法、模组、电子设备和可读介质 |
-
2021
- 2021-01-29 CN CN202110125290.2A patent/CN113420034A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422560A (zh) * | 2022-01-12 | 2022-04-29 | 珠海格力电器股份有限公司 | 目标设备停止运行的方法、模组、电子设备和可读介质 |
CN114422560B (zh) * | 2022-01-12 | 2023-06-16 | 珠海格力电器股份有限公司 | 目标设备停止运行的方法、模组、电子设备和可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338766B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN111597015B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
EP2485150A1 (en) | Meta-information sharing distributed database system in virtual single memory storage | |
US11436218B2 (en) | Transaction processing for a database distributed across availability zones | |
CN108121782A (zh) | 查询请求的分配方法、数据库中间件***以及电子设备 | |
CN103297529A (zh) | 基于时间戳的树型结构数据同步方法 | |
CN107391634B (zh) | 数据迁移方法及装置 | |
CN109815248B (zh) | 一种基于Zookeeper的分布式架构数据一致性方法 | |
WO2018045758A1 (zh) | 一种数据存储方法及数据中心 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN111190935A (zh) | 数据读取方法、装置、计算机设备及存储介质 | |
CN105959420A (zh) | 多客户端元数据同步更新方法及*** | |
CN113076304A (zh) | 一种分布式版本管理方法、装置和*** | |
CN113420034A (zh) | 时钟更新方法、设备、数据库及计算机存储介质 | |
US7752225B2 (en) | Replication and mapping mechanism for recreating memory durations | |
CN114328739A (zh) | 数据同步、读取方法及装置、电子设备、存储介质及产品 | |
CN114185991A (zh) | 基于分布式数据库实现数据同步的方法及相关装置 | |
US20190065327A1 (en) | Efficient versioned object management | |
CN115189931A (zh) | 一种分布式密钥管理方法、装置、设备、存储介质 | |
CN114756385A (zh) | 一种深度学习场景下的弹性分布式训练方法 | |
CN110935168B (zh) | 用于全球同服架构的分布式id生成方法、装置及设备 | |
CN113392157A (zh) | 分布式事务处理方法、设备及存储介质 | |
CN114207600A (zh) | 分布式跨区域的数据库事务处理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058755 Country of ref document: HK |