CN116561221A - 支持物联网场景的分布式时序数据库副本共识协议方法 - Google Patents
支持物联网场景的分布式时序数据库副本共识协议方法 Download PDFInfo
- Publication number
- CN116561221A CN116561221A CN202310440709.2A CN202310440709A CN116561221A CN 116561221 A CN116561221 A CN 116561221A CN 202310440709 A CN202310440709 A CN 202310440709A CN 116561221 A CN116561221 A CN 116561221A
- Authority
- CN
- China
- Prior art keywords
- consensus
- request
- synchronous
- writing
- internet
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000001360 synchronised effect Effects 0.000 claims abstract description 115
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供支持物联网场景的分布式时序数据库副本共识协议方法,包括:获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。本发明解决了现有时序数据库日志写入成本高、缺少对整体资源控制的问题。
Description
技术领域
本发明涉及数据管理技术领域,尤其涉及一种支持物联网场景的分布式时序数据库副本共识协议方法。
背景技术
随着物联网技术的普及和设备传感器数量的快速增长,工业领域对于时序数据存储的需求呈现出快速增长的趋势。如何将大量高速产生的时序数据存储到分布式时序数据库中成为一个难题。工业领域的传感器及其产生的数据有以下特点:传感器所产生的数据是一种由时间戳和采集值构成的时间序列数据。对于某一个特定的传感器而言,其特定时间戳所对应的采集值往往不会发生变化。传感器所产生的数据产生速度较快。以风力发电机设备为例,IEC TC88技术委员会编写制定的IEC61400-25标准指出,单台风力发电机每秒钟将产生225k字节的传感器数据,极端情况下数据采集频率可以达到8KHz。在对传感器数据进行操作时,用户需要根据传感器属性信息或传感器本身进行简单的增加、查询、更新、删除操作以及复杂操作。
因此,寻找一种分布式时序数据库物联网共识算法来高效地存储大量时序数据,同时支持多副本的副本同步机制,并且包括保证系统高可用尤为关键。现有的若干共识算法难以满足工业物联网场景下的高频时序数据读写需求。Raft等共识算法提供的一致性级别为线性一致性,这种一致性级别能够保证读写请求在不同的副本之上执行时类似于从单副本上执行一样,是最强的一致性级别。但由于Raft算法的多数派写入等机制具有较大的代价,在实际的系统场景中对于系统的整体性能有较大的影响。这种追求极致一致性而牺牲性能的共识算法并不满足工业物联网等场景下对一致性要求不高但对性能要求较高的需求。
发明内容
本发明提供一种支持物联网场景的分布式时序数据库副本共识协议方法,用以解决现有时序数据库日志写入成本高、缺少对整体资源控制的问题。
本发明提供一种支持物联网场景的分布式时序数据库副本共识协议方法,包括:
获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
根据本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,所述获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求,具体包括:
所述时序数据库的共识层接收共识写入请求;
所述共识层将共识写入请求转发至对应的状态机;
检查系统状态安全性,确定系统的共识文件总大小;
对共识写入请求进行预编号,对应的状态机执行共识写入请求,并写入共识日志;
将共识写入请求放入同步缓存队列,更新已成功写入的请求编号为当前共识写入请求编号,返回最终的执行结果。
根据本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,所述检查系统状态安全性,确定系统的共识文件总大小,具体包括:
根据确定的共识文件总大小,判断系统的共识文件总大小小于设定阈值,则正常执行后续流程;
判断系统的共识文件总大小大于等于设有阈值,则进行等待,直至当前系统的共识日志文件的总大小小于设定阈值后继续执行后续流程,或者达到设定的最大等待时间后拒绝写入。
根据本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组,具体包括:
从同步缓存队列和共识日志中按照编号顺序构造批写入请求;
在所述构造批写入请求结果为空的情况下,等待新的共识写入请求到达同步缓存队列或者在最大等待时间后重新尝试构造批写入请求;
尝试将构造的批写入请求放入同步状态管理器中,检查系统安全性,将批写入请求放入异步回调等待队列,构造对应的同步写入请求,创建对应的异步回调处理器,并向目标节点进行同步。
根据本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态,具体包括:
接收同步现成流程发送是同步共识日志请求;
检查当前系统的安全性,在接收端按照共识请求的编号顺序进行重新排序;
同步共识日志执行成功后返回给异步回调线程,继续执行异步回调流程,更新系统状态。
根据本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,所述基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立,具体包括:
在异步回调过程中,异步回调处理器收到执行失败的回调结果,则在设定时间后重试;
异步回调处理器收到执行成功的回调结果,则更新系统状态,将对应的批写入请求从异步回调等待队列中移除;
更新日志中的安全可删除共识写入请求编号,通过日志管理器异步删除可以安全删除的共识日志;
检查当前系统的共识日志总大小,小于设定阈值,则在共识层执行本地写入请求中等待的共识写入请求继续执行。
本发明还提供一种支持物联网场景的分布式时序数据库副本共识协议系统,所述系统包括:
主写入模块,用于获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
同步线程模块,用于在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
接收端执行模块,用于基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
异步回调模块,用于基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述支持物联网场景的分布式时序数据库副本共识协议方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述支持物联网场景的分布式时序数据库副本共识协议方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述支持物联网场景的分布式时序数据库副本共识协议方法。
本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,通过将所有的共识请求在每个节点按照顺序、无间隙地进行自增的编号,在本地完成请求的处理后,异步地将该共识请求转发给当前共识组内的其他节点,同时分别记录每一个同步线程的转发进度,保证需要同步的写入请求不丢失。并且可用性高,支持多主写入,副本组中即使只剩一个副本也可以正常提供服务,通过日志异步复制的思想,提高系统整体的写入性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法的流程示意图之一;
图2是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法的流程示意图之二;
图3是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法的流程示意图之三;
图4是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法的流程示意图之四;
图5是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议方法的流程示意图之五;
图6是本发明提供的一种支持物联网场景的分布式时序数据库副本共识协议系统的模块连接示意图;
图7是本发明提供的节点交互示意图;
图8是本发明提供的电子设备的结构示意图。
附图标记:
110:主写入模块;120:同步线程模块;130:接收端执行模块;140:异步回调模块;
810:处理器;820:通信接口;830:存储器;840:通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图5描述本发明的一种支持物联网场景的分布式时序数据库副本共识协议方法,包括:
S100、获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
S200、在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
S300、基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
S400、基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
本发明中将所有的共识请求在每个节点按照顺序、无间隙地进行自增的编号,在本地完成请求的处理后,异步地将该共识请求转发给当前共识组内的其他节点,同时分别记录每一个同步线程的转发进度,保证需要同步的写入请求不丢失。
获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求,具体包括:
S101、所述时序数据库的共识层接收共识写入请求;
S102、所述共识层将共识写入请求转发至对应的状态机;
S103、检查系统状态安全性,确定系统的共识文件总大小;
S104、对共识写入请求进行预编号,对应的状态机执行共识写入请求,并写入共识日志;
S105、将共识写入请求放入同步缓存队列,更新已成功写入的请求编号为当前共识写入请求编号,返回最终的执行结果。
所述检查系统状态安全性,确定系统的共识文件总大小,具体包括:
根据确定的共识文件总大小,判断系统的共识文件总大小小于设定阈值,则正常执行后续流程;
判断系统的共识文件总大小大于等于设有阈值,则进行等待,直至当前系统的共识日志文件的总大小小于设定阈值后继续执行后续流程,或者达到设定的最大等待时间后拒绝写入。
通过主写入流程完成本地执行共识写入,便于后续进行数据同步。
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组,具体包括:
S201、从同步缓存队列和共识日志中按照编号顺序构造批写入请求;
S202、在所述构造批写入请求结果为空的情况下,等待新的共识写入请求到达同步缓存队列或者在最大等待时间后重新尝试构造批写入请求;
S203、尝试将构造的批写入请求放入同步状态管理器中,检查系统安全性,将批写入请求放入异步回调等待队列,构造对应的同步写入请求,创建对应的异步回调处理器,并向目标节点进行同步。
本发明中,通过同步线程流程在当前节点向同样位于共识组内的其他节点同步本节点已成功写入的请求,从而形成副本组,在将构造的批写入请求放入同步状态管理器中后,检查系统状态安全性,如果正在同步过程中的批写入请求数量达到上限,则进入阻塞等待状态,否则,则继续执行;将批写入请求放入异步回调等待队列,构造对应的同步写入请求,创建对应的异步回调处理器,并向目标节点进行同步。通过同步线程流程完成共识组内的节点同步写入请求,与目标节点进行同步。
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态,具体包括:
S301、接收同步现成流程发送是同步共识日志请求;
S302、检查当前系统的安全性,在接收端按照共识请求的编号顺序进行重新排序;
S303、同步共识日志执行成功后返回给异步回调线程,继续执行异步回调流程,更新系统状态。
本发明中,接收端执行流程通过接收同步线程流程发送的同步共识日志请求,检查系统安全性,如果系统处于安全状态,则继续执行后续流程,否则返回执行失败给异步回调线程,继续执行异步回调流程的在设定时间后重试步骤;在接收端按照共识请求的编号顺序进行重排序后,按照顺序执行,执行成功后返回给异步回调线程,继续执行异步回调流程的更新系统状态步骤。
S401、基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立,具体包括:
S402、在异步回调过程中,异步回调处理器收到执行失败的回调结果,则在设定时间后重试;
S403、异步回调处理器收到执行成功的回调结果,则更新系统状态,将对应的批写入请求从异步回调等待队列中移除;
S404、更新日志中的安全可删除共识写入请求编号,通过日志管理器异步删除可以安全删除的共识日志;
检查当前系统的共识日志总大小,小于设定阈值,则在共识层执行本地写入请求中等待的共识写入请求继续执行。
参考图7,在一个具体实施例中,假设当前会话的当前已成功写入请求编号为CurrentIndex=100,已成功同步写入请求编号为SafeIndex=100,即将执行的共识写入请求为Request,则该请求在本发明提出的分布式时序数据库物联网共识算法的执行步骤为:
主写入流程的执行过程为:
共识层接收到共识写入请求Request;
共识层将共识写入请求转发给对应的状态机;
检查当前的系统状态是否安全,确认安全后继续执行后续流程;
为共识写入请求Request进行预编号,此时,Request被编号为101
对应的状态机执行共识写入请求Request,并写入该请求的共识日志Log;
尝试将当前共识请求Request放入同步缓存队列Queue,但是由于系统内存紧张,该共识请求Request无法放入同步缓存队列Queue;
更新已成功写入请求编号CurrentIndex为101;
返回最终的执行结果。
在同步线程流程中,执行过程为:
构造批写入请求:首先同步线程从同步缓存队列Queue中查找请求,发现为空,然后根据编号顺序,读取编号为101的共识日志;
尝试将批写入请求放入同步状态管理器:假设此时向共识层内存管理器申请内存空间成功,则将批写入请求直接放入同步状态管理器的异步回调等待队列中,构造同步请求,创建出对应的异步回调处理器,并向目标节点进行同步。
接收端执行流程,具体执行流程为:
接收同步线程流程中发送的同步共识日志请求;
检查当前系统的安全性:当前系统处于安全状态,继续执行后续流程;
在接收端按照共识请求的编号顺序进行重排序后,按照顺序执行执行成功后返回给异步回调线程,继续执行异步回调流程。
异步回调流程的执行流程为:
异步回调处理器收到了批写入请求的执行成功回调结果;
将批写入请求从异步回调等待队列中移除;
更新日志安全可删除共识写入请求编号为101,由日志管理器异步删除可以被安全删除的日志文件;
检查当前的系统日志总大小,如果小于阈值,则通知其他主写入流程中正在等待的共识写入请求继续执行。
本发明公开的一种支持物联网场景的分布式时序数据库副本共识协议方法,通过将所有的共识请求在每个节点按照顺序、无间隙地进行自增的编号,在本地完成请求的处理后,异步地将该共识请求转发给当前共识组内的其他节点,同时分别记录每一个同步线程的转发进度,保证需要同步的写入请求不丢失。并且可用性高,支持多主写入,副本组中即使只剩一个副本也可以正常提供服务,通过日志异步复制的思想,提高系统整体的写入性能。
参考图6,本发明还公开了一种支持物联网场景的分布式时序数据库副本共识协议系统,所述系统包括:
主写入模块110,用于获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
同步线程模块120,用于在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
接收端执行模块130,用于基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
异步回调模块140,用于基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
其中,主写入模块110通过所述时序数据库的共识层接收共识写入请求;
所述共识层将共识写入请求转发至对应的状态机;
检查系统状态安全性,确定系统的共识文件总大小;
对共识写入请求进行预编号,对应的状态机执行共识写入请求,并写入共识日志;
将共识写入请求放入同步缓存队列,更新已成功写入的请求编号为当前共识写入请求编号,返回最终的执行结果。
检查系统状态安全性,确定系统的共识文件总大小,具体包括:
根据确定的共识文件总大小,判断系统的共识文件总大小小于设定阈值,则正常执行后续流程;
判断系统的共识文件总大小大于等于设有阈值,则进行等待,直至当前系统的共识日志文件的总大小小于设定阈值后继续执行后续流程,或者达到设定的最大等待时间后拒绝写入。
同步线程模块120,从同步缓存队列和共识日志中按照编号顺序构造批写入请求;
在所述构造批写入请求结果为空的情况下,等待新的共识写入请求到达同步缓存队列或者在最大等待时间后重新尝试构造批写入请求;
尝试将构造的批写入请求放入同步状态管理器中,检查系统安全性,将批写入请求放入异步回调等待队列,构造对应的同步写入请求,创建对应的异步回调处理器,并向目标节点进行同步。
接收端执行模块130,接收同步现成流程发送是同步共识日志请求;
检查当前系统的安全性,在接收端按照共识请求的编号顺序进行重新排序;
同步共识日志执行成功后返回给异步回调线程,继续执行异步回调流程,更新系统状态。
异步回调模块140,在异步回调过程中,异步回调处理器收到执行失败的回调结果,则在设定时间后重试;
异步回调处理器收到执行成功的回调结果,则更新系统状态,将对应的批写入请求从异步回调等待队列中移除;
更新日志中的安全可删除共识写入请求编号,通过日志管理器异步删除可以安全删除的共识日志;
检查当前系统的共识日志总大小,小于设定阈值,则在共识层执行本地写入请求中等待的共识写入请求继续执行。
通过本发明公开的一种分布式时序数据库物联网共识建立系统,将所有的共识请求在每个节点按照顺序、无间隙地进行自增的编号,在本地完成请求的处理后,异步地将该共识请求转发给当前共识组内的其他节点,同时分别记录每一个同步线程的转发进度,保证需要同步的写入请求不丢失。并且可用性高,支持多主写入,副本组中即使只剩一个副本也可以正常提供服务,通过日志异步复制的思想,提高系统整体的写入性能。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行一种支持物联网场景的分布式时序数据库副本共识协议方法,该方法包括:获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,该方法包括:获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一种支持物联网场景的分布式时序数据库副本共识协议方法,该方法包括:获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,包括:
获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
2.根据权利要求1所述的支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,所述获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求,具体包括:
所述时序数据库的共识层接收共识写入请求;
所述共识层将共识写入请求转发至对应的状态机;
检查系统状态安全性,确定系统的共识文件总大小;
对共识写入请求进行预编号,对应的状态机执行共识写入请求,并写入共识日志;
将共识写入请求放入同步缓存队列,更新已成功写入的请求编号为当前共识写入请求编号,返回最终的执行结果。
3.根据权利要求2所述的支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,所述检查系统状态安全性,确定系统的共识文件总大小,具体包括:
根据确定的共识文件总大小,判断系统的共识文件总大小小于设定阈值,则正常执行后续流程;
判断系统的共识文件总大小大于等于设有阈值,则进行等待,直至当前系统的共识日志文件的总大小小于设定阈值后继续执行后续流程,或者达到设定的最大等待时间后拒绝写入。
4.根据权利要求1所述的支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组,具体包括:
从同步缓存队列和共识日志中按照编号顺序构造批写入请求;
在所述构造批写入请求结果为空的情况下,等待新的共识写入请求到达同步缓存队列或者在最大等待时间后重新尝试构造批写入请求;
尝试将构造的批写入请求放入同步状态管理器中,检查系统安全性,将批写入请求放入异步回调等待队列,构造对应的同步写入请求,创建对应的异步回调处理器,并向目标节点进行同步。
5.根据权利要求1所述的支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态,具体包括:
接收同步现成流程发送是同步共识日志请求;
检查当前系统的安全性,在接收端按照共识请求的编号顺序进行重新排序;
同步共识日志执行成功后返回给异步回调线程,继续执行异步回调流程,更新系统状态。
6.根据权利要求1所述的支持物联网场景的分布式时序数据库副本共识协议方法,其特征在于,所述基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立,具体包括:
在异步回调过程中,异步回调处理器收到执行失败的回调结果,则在设定时间后重试;
异步回调处理器收到执行成功的回调结果,则更新系统状态,将对应的批写入请求从异步回调等待队列中移除;
更新日志中的安全可删除共识写入请求编号,通过日志管理器异步删除可以安全删除的共识日志;
检查当前系统的共识日志总大小,小于设定阈值,则在共识层执行本地写入请求中等待的共识写入请求继续执行。
7.一种支持物联网场景的分布式时序数据库副本共识协议系统,其特征在于,所述系统包括:
主写入模块,用于获取时序数据库的写入请求,在时序数据库的共识层执行本地写入请求;
同步线程模块,用于在所述共识层执行本地写入请求后向当前节点所在共识组内的其它节点执行写入请求,同步线程流程,形成副本组;
接收端执行模块,用于基于所述同步线程流程,接收同步的共识写入请求,并更新系统状态;
异步回调模块,用于基于同步的共识写入请求,通过异步回调进行最终系统状态更新,完成时序数据库物联网共识建立。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述支持物联网场景的分布式时序数据库副本共识协议方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述支持物联网场景的分布式时序数据库副本共识协议方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述支持物联网场景的分布式时序数据库副本共识协议方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310440709.2A CN116561221B (zh) | 2023-04-21 | 2023-04-21 | 支持物联网场景的分布式时序数据库副本共识协议的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310440709.2A CN116561221B (zh) | 2023-04-21 | 2023-04-21 | 支持物联网场景的分布式时序数据库副本共识协议的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561221A true CN116561221A (zh) | 2023-08-08 |
CN116561221B CN116561221B (zh) | 2024-03-19 |
Family
ID=87490816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310440709.2A Active CN116561221B (zh) | 2023-04-21 | 2023-04-21 | 支持物联网场景的分布式时序数据库副本共识协议的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561221B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150230A1 (en) * | 2016-11-29 | 2018-05-31 | Sap Se | State machine abstraction for log-based consensus protocols |
CN108334545A (zh) * | 2017-12-27 | 2018-07-27 | 微梦创科网络科技(中国)有限公司 | 一种实现异步服务的方法及装置 |
CN109992219A (zh) * | 2019-04-11 | 2019-07-09 | 深信服科技股份有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
CN111538785A (zh) * | 2020-04-23 | 2020-08-14 | 北京海益同展信息科技有限公司 | 区块链的数据写入方法、装置、系统及电子设备 |
CN113204530A (zh) * | 2021-04-22 | 2021-08-03 | 平安消费金融有限公司 | 分布式文件系统的数据写入方法、装置、设备以及介质 |
CN115292407A (zh) * | 2022-07-15 | 2022-11-04 | 阿里巴巴(中国)有限公司 | 同步方法、设备及存储介质 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN115774754A (zh) * | 2022-11-01 | 2023-03-10 | 北京奥星贝斯科技有限公司 | 基于分布式事务的元数据管理方法、装置、设备及介质 |
-
2023
- 2023-04-21 CN CN202310440709.2A patent/CN116561221B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150230A1 (en) * | 2016-11-29 | 2018-05-31 | Sap Se | State machine abstraction for log-based consensus protocols |
CN108334545A (zh) * | 2017-12-27 | 2018-07-27 | 微梦创科网络科技(中国)有限公司 | 一种实现异步服务的方法及装置 |
CN109992219A (zh) * | 2019-04-11 | 2019-07-09 | 深信服科技股份有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
CN111538785A (zh) * | 2020-04-23 | 2020-08-14 | 北京海益同展信息科技有限公司 | 区块链的数据写入方法、装置、系统及电子设备 |
CN113204530A (zh) * | 2021-04-22 | 2021-08-03 | 平安消费金融有限公司 | 分布式文件系统的数据写入方法、装置、设备以及介质 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN115292407A (zh) * | 2022-07-15 | 2022-11-04 | 阿里巴巴(中国)有限公司 | 同步方法、设备及存储介质 |
CN115774754A (zh) * | 2022-11-01 | 2023-03-10 | 北京奥星贝斯科技有限公司 | 基于分布式事务的元数据管理方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
余琅 等: "一种面向小集群同步的改进Raft 的分布式一致性模型", 《信息记录材料》, vol. 23, no. 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN116561221B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7636868B2 (en) | Data replication in a distributed system | |
CN107919977B (zh) | 一种基于Paxos协议的在线扩容、在线缩容的方法和装置 | |
CN109684307A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN108776897B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
US7818749B2 (en) | Data processing method, data processing apparatus, and data processing program | |
CN115665174B (zh) | 一种梯度数据的同步方法、系统、设备及存储介质 | |
US11151157B2 (en) | Database management method | |
US8812468B2 (en) | Database management method | |
CN114422537B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
CN116561221B (zh) | 支持物联网场景的分布式时序数据库副本共识协议的方法 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN106354830B (zh) | 一种数据库集群节点间数据同步的方法及装置 | |
CN115659315A (zh) | 一种基于数字口令的任务处理方法及装置 | |
CN111708780B (zh) | 分布式表格系统与分片选主方法、装置、服务器及介质 | |
CN112463757A (zh) | 一种分布式系统的资源访问方法及相关装置 | |
CN113297263A (zh) | 数据处理方法、装置、系统、电子设备及存储介质 | |
CN116166300B (zh) | 知识产权系统的升级管理方法及装置 | |
CN112988905B (zh) | 用于集群部署的节点内存同步方法及装置 | |
CN114584572B (zh) | 一种分布式对象存储中数据同步方法、装置、设备及介质 | |
CN117763035A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN118353890A (zh) | 云主机的创建方法、装置和云管理平台 | |
CN112667148A (zh) | 一种集群存储数据在线迁移的方法及系统 | |
CN116225572A (zh) | Bmc启动阶段第一次对时的方法、装置、设备、介质 | |
CN117135162A (zh) | 一种键值数据库集群选举的方法、系统、设备和存储介质 | |
CN115168003A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |