CN112965945A - 数据存储方法、装置、电子设备及计算机可读介质 - Google Patents
数据存储方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112965945A CN112965945A CN201911289656.9A CN201911289656A CN112965945A CN 112965945 A CN112965945 A CN 112965945A CN 201911289656 A CN201911289656 A CN 201911289656A CN 112965945 A CN112965945 A CN 112965945A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- time sequence
- database corresponding
- leader node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000013500 data storage Methods 0.000 title claims abstract description 69
- 239000012634 fragment Substances 0.000 claims description 57
- 238000003860 storage Methods 0.000 claims description 46
- 230000001360 synchronised effect Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013467 fragmentation Methods 0.000 claims description 4
- 238000006062 fragmentation reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 239000011521 glass Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004984 smart glass Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据存储方法、装置、电子设备及计算机可读介质,涉及数据存储领域。其中,所述方法包括:基于接收到的客户端的数据写入请求生成操作日志数据,并将操作日志数据同步至跟随节点,使得跟随节点将操作日志数据应用于跟随节点对应的时序数据库;对领导节点对应的时序数据库中的元数据进行快照,以获得元数据的快照数据;将快照数据同步至跟随节点,使得跟随节点对应的时序数据库基于快照数据和操作日志数据的应用结果与领导节点对应的时序数据库保持数据一致。通过本申请实施例,不仅显著减少了数据快照操作导致的时间延迟,而且还显著减轻了领导节点和跟随节点构成的分布式系统的负载。
Description
技术领域
本申请实施例涉及数据存储领域,尤其涉及一种数据存储方法、装置、电子设备及计算机可读介质。
背景技术
在IoT(Internet of Things,物联网)趋势的大背景下,千百亿个探点源源不断地采集时序数据,并将采集到的时序数据存储于数据中心。数据中心的存储视角与传统的关系型数据库的存储视角不同,可以说是一种偏向于积分的存储形式。具体地,存储“事无巨细”的原子数据,再将这些数据“积分”成各式各样的事件,以此去判断一个事物发生过什么,并基于曾经的数据规律预测未来的一段时间内会大概率性的发生什么。因此,每一原子数据都不可或缺,这就对此类时序数据提出了强一致性的要求。
在数据存储的一致性问题上,业界通常会选择使用Paxos方案和Raft方案。Paxos方案的核心缺点在于其难以理解的状态自动机和较难以在工业场景中实现的算法模式。与Paxos方案相比,Raft方案则以简单的状态自动机和易于理解的算法模式著称。使用传统的Raft方案,需要三节点模式,并通过领导节点来驱动所有节点。由于时序数据为海量数据,传统的Raft方案将节点的本地磁盘中存储时序数据的数据文件进行一次快照的成本是非常大的。具体地,由于节点的数据快照操作和日志应用操作是串行操作,因此,快照存储时序数据的数据文件的时间延迟将直接影响线上服务的质量。此外,存储时序数据的数据文件的快照操作会造成节点的本地磁盘和连接节点的网络的大量数据输入输出,给节点构成的分布式系统带来较重的负载。由此可见,如何显著减小数据快照操作导致的时间延迟以及分布式系统的负载成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种数据存储方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何显著减小数据快照操作导致的时间延迟以及分布式系统的负载的问题。
根据本申请实施例的第一方面,提供了一种数据存储方法。所述方法包括:领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;所述领导节点将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
根据本申请实施例的第二方面,提供了一种数据存储方法。所述方法包括:跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;所述跟随节点接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;所述跟随节点基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
根据本申请实施例的第三方面,提供了一种数据存储装置。所述装置包括:第一同步模块,用于基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;快照模块,用于对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;第二同步模块,用于将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
根据本申请实施例的第四方面,提供了一种数据存储装置。所述装置包括:第二应用模块,用于将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;接收模块,用于接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;保持模块,用于基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
根据本申请实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面或第二方面所述的数据存储方法。
根据本申请实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面或第二方面所述的数据存储方法。
根据本申请实施例提供的技术方案,领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将操作日志数据同步至跟随节点,使得跟随节点将操作日志数据应用于跟随节点对应的时序数据库,再对领导节点对应的时序数据库中的元数据进行快照,以获得元数据的快照数据,再将快照数据同步至跟随节点,使得跟随节点对应的时序数据库基于快照数据和操作日志数据的应用结果与领导节点对应的时序数据库保持数据一致,与传统的Raft方案相比,仅对领导节点对应的时序数据库中的元数据进行快照,而不对存储时序数据的数据文件进行快照,不仅显著减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还显著减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而大大减轻了领导节点和跟随节点构成的分布式系统的负载。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例一中数据存储方法的步骤流程图;
图2为本申请实施例二中数据存储方法的步骤流程图;
图3A为本申请实施例三中数据存储方法的步骤流程图;
图3B为根据本申请实施例三提供的数据存储方法的示意图;
图4为本申请实施例四中数据存储装置的结构示意图;
图5为本申请实施例五中数据存储装置的结构示意图;
图6为本申请实施例六中数据存储装置的结构示意图;
图7为本申请实施例七中数据存储装置的结构示意图;
图8为本申请实施例八中电子设备的结构示意图;
图9为本申请实施例九中电子设备的硬件结构。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例一
参照图1,示出了本申请实施例一的一种数据存储方法的步骤流程图。
本实施例从领导节点的角度,对本申请实施例提供的数据存储方法进行说明。具体地,本实施例的数据存储方法包括以下步骤:
在步骤S101中,领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库。
在本申请实施例中,所述客户端采用GRPC远程调用协议将数据写入请求发送至所述领导节点。所述客户端可理解为与服务器相对应,为客户提供本地服务的程序。所述数据写入请求可为时序数据写入请求。所述领导节点可为应用于时序数据库的数据存储一致性的raft算法中的领导节点。所述跟随节点可为应用于时序数据库的数据存储一致性的raft算法中的跟随节点。其中,raft算法是一种更为简单方便易于理解的分布式算法,主要解决了分布式系统中的数据一致性问题。所述时序数据库全称为时间序列数据库,时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据。时序数据即为带时间标签的数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,客户端向领导节点发送的数据写入请求携带有数据写入操作指令。领导节点将该数据写入操作指令追加成一个日志条目,也即是生成操作日志数据。然后,领导节点并行地向跟随节点发起追加该日志条目的RPC消息,使得跟随节点复制该日志条目,从而达到将该日志条目同步到跟随节点的目的。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述领导节点将所述操作日志数据同步至跟随节点之后,所述方法还包括:所述领导节点将所述操作日志数据对应的数据写入操作指令应用于所述领导节点的状态自动机,以在本地磁盘生成用于存储所述数据写入操作指令指示写入的时序数据的分片文件;所述领导节点将所述分片文件上传至云存储系统,使得所述云存储系统存储有与所述本地磁盘的分片文件一致的分片文件。籍此,能够将领导节点中每一份用于存储时序数据的本地磁盘的分片文件上传至云存储系统,使得云存储系统存储有与本地磁盘的分片文件对应的分片文件,为后续时序数据库的数据一致性做准备。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,所述状态自动机是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型。状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。磁盘分片文件可理解为存储于本地磁盘的时序数据的集合,相当于云存储系统的分片文件的快速缓存。云存储系统可为阿里云的对象存储服务系统(OSS,Object Storage Service)。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S102中,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。
在本申请实施例中,所述元数据可为用于描述数据属性的信息,用来支持如指示时序数据存储位置、历史时序数据、资源查找、文件记录等功能的关联数据信息。例如,清洁机器人的位置信息、型号以及配置的软件版本号等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照之前,所述方法还包括:如果所述领导节点对应的时序数据库中存有预写式日志数据,则所述领导节点强制刷新内存中的时序数据,以在本地磁盘生成用于存储所述时序数据的分片文件,并全量删除所述预写式日志数据。籍此,通过全量删除领导节点对应的时序数据库中的预写式日志数据,无需对预写式日志数据进行数据快照操作,不仅减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而减轻了领导节点和跟随节点构成的分布式系统的负载。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,当领导节点执行数据快照操作时,如果领导节点对应的时序数据库中存有预写式日志数据,则强制刷新内存中的时序数据生成本地磁盘的分片文件。由于磁盘分片文件是不变的持久化数据,因此,预写式日志数据可以全量删除,那么很自然无需对预写式日志数据进行快照操作,降低了领导节点执行数据快照操作的难度,并且为时序数据库的数据一致性的协调节约了大量的负载。其中,预写式日志数据所在的系统可理解为一个不断地追加写原子日志的记录系统,以达到自表述的目的,从而可以用于单机数据重启后恢复本机数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照时,所述领导节点采用写时复制的方式,对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。籍此,仅对领导节点对应的时序数据库中的元数据进行快照,而不对存储时序数据的数据文件进行快照,不仅显著减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还显著减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而大大减轻了领导节点和跟随节点构成的分布式系统的负载。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,当领导节点执行数据快照操作时,领导节点对应的时序数据库的全量数据包括三个部分,分别为元数据、预写式日志数据和磁盘分片文件。而预写式日志数据可通过强制刷盘消除(见上文描述),磁盘分片文件已经上传至云存储系统上(见上文描述),故需要执行快照操作的数据仅仅为元数据。而在时序数据场景中,由于流数在一定时间段后是收敛稳定的,海量的数据仅仅是来源于数据采集点的时序数据,故元数据也存在这种稳定性。那么恰恰可以利用这个稳定的性质,使用操作系统的写时复制特性进行元数据的快照。即实际的时序数据场景中并没有物理拷贝,只是逻辑拷贝了一份元数据,而这份逻辑的数据又因为元数据的稳定性,极少情况下会触发写操作的真实物理拷贝动作,故整个元数据的快照操作所带来的整体负载会非常非常低。其中,写时复制是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S103中,所述领导节点将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
在一个具体的例子中,当领导节点与跟随节点进行快照数据的同步时,只需要同步时序数据库中的元数据的快照数据。由于快照数据的同步这个动作在领导节点上是读操作,故仍然未触发写操作的物理拷贝,不会带来很高的系统负载。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述方法还包括:所述领导节点接收所述客户端发送的数据读请求,并确定所述领导节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;如果确定所述本地磁盘中未存有所述分片文件,则所述领导节点从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。籍此,领导节点的本地磁盘充当高速缓存提供后续读服务。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在接收到客户端发送的数据读请求时,领导节点发现本地磁盘中未存有存储数据读请求所请求的时序数据的分片文件,那么直接从云存储系统中重载于本地磁盘中,从此本地磁盘充当高速缓存提供后续读服务。另外,时序数据与传统的互联网业务数据不同,具有写多读少的特点,因此请求读操作的情况并不会频繁发生。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
通过本申请实施例提供的数据存储方法,领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将操作日志数据同步至跟随节点,使得跟随节点将操作日志数据应用于跟随节点对应的时序数据库,再对领导节点对应的时序数据库中的元数据进行快照,以获得元数据的快照数据,再将快照数据同步至跟随节点,使得跟随节点对应的时序数据库基于快照数据和操作日志数据的应用结果与领导节点对应的时序数据库保持数据一致,与传统的Raft方案相比,仅对领导节点对应的时序数据库中的元数据进行快照,而不对存储时序数据的数据文件进行快照,不仅显著减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还显著减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而大大减轻了领导节点和跟随节点构成的分布式系统的负载。
本实施例的数据存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例二
参照图2,示出了本申请实施例二的一种数据存储方法的步骤流程图。
本实施例从跟随节点的角度,对本申请实施例提供的数据存储方法进行说明。具体地,本实施例的数据存储方法包括以下步骤:
在步骤S201中,跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库。
在一些可选实施例中,在所述跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库时,所述跟随节点将所述第一操作日志数据对应的数据写入操作指令应用于所述跟随节点的状态自动机,以对所述跟随节点对应的时序数据库执行所述数据写入操作指令指示的时序数据写入操作。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S202中,所述跟随节点接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据。
在步骤S203中,所述跟随节点基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
在一些可选实施例中,在所述跟随节点基于所述操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致时,所述跟随节点从云存储系统中加载所述领导节点的本地磁盘中存有的存储所述领导节点对应的时序数据库中的时序数据的分片文件;所述跟随节点基于所述操作日志数据的应用结果、所述快照数据和所述分片文件,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。籍此,通过云存储系统,无需对领导节点中存储有时序数据的分片文件进行快照操作,只需跟随节点从云存储系统中加载领导节点的本地磁盘中存有的存储领导节点对应的时序数据库中的时序数据的分片文件,能够快速地实现不同节点的时序数据库中的数据一致性和跟随节点的冷启动。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,五点十分启动的节点可通过采用领导节点五点钟对元数据进行快照的快照数据、五点到五点十分之间的操作日志数据的应用结果,以及从云存储系统中加载的存储领导节点对应的时序数据库中的时序数据的分片文件来恢复该节点的数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述方法还包括:所述跟随节点接收所述领导节点基于所述客户端的数据读请求同步的第二操作日志数据,并基于所述第二操作日志数据,确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;如果确定所述本地磁盘中未存有所述分片文件,则所述跟随节点从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。籍此,跟随节点的本地磁盘充当高速缓存提供后续读服务。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,所述领导节点基于接收到的客户端的数据读请求生成第二操作日志数据,并将所述第二操作日志数据同步至跟随节点。跟随节点基于所述第二操作日志数据,确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件。具体地,所述跟随节点将所述第二操作日志数据应用于状态自动机,以确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件。如果确定所述本地磁盘中未存有所述分片文件,则所述跟随节点从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
通过本申请实施例提供的数据存储方法,跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于跟随节点对应的时序数据库,并接收领导节点同步的领导节点对应的时序数据库中的元数据的快照数据,再基于第一操作日志数据的应用结果和快照数据,使得跟随节点对应的时序数据库与领导节点对应的时序数据库保持数据一致,与传统的Raft方案相比,仅对领导节点对应的时序数据库中的元数据进行快照,而不对存储时序数据的数据文件进行快照,不仅显著减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还显著减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而大大减轻了领导节点和跟随节点构成的分布式系统的负载。
本实施例的数据存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例三
参照图3A,示出了本申请实施例三的一种数据存储方法的步骤流程图。
本实施例从领导节点与跟随节点交互的角度,对本申请实施例的数据存储方法进行说明。具体地,本实施例的数据存储方法包括以下步骤:
在步骤S301中,领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点。
由于该步骤S301与上述步骤S101类似,在此不再赘述。
在步骤S302中,跟随节点将接收到的领导节点基于客户端的数据写入请求同步的操作日志数据应用于所述跟随节点对应的时序数据库。
由于该步骤S302与上述步骤S201类似,在此不再赘述。
在步骤S303中,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。
由于该步骤S303与上述步骤S102类似,在此不再赘述。
在步骤S304中,所述领导节点将所述快照数据同步至所述跟随节点。
由于该步骤S304与上述步骤S103类似,在此不再赘述。
在步骤S305中,所述跟随节点接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据。
由于该步骤S305与上述步骤S202类似,在此不再赘述。
在步骤S306中,所述跟随节点基于所述操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
由于该步骤S306与上述步骤S203类似,在此不再赘述。
在一个具体的例子中,如图3B所示,分布式系统包括客户端、领导节点(领导节点1)、跟随节点(如跟随节点1和跟随节点2)、领导节点和跟随节点对应的时序数据库,以及对象存储服务系统。其中,客户端通过采用GRPC远程调用协议与领导节点通信,领导节点与领导节点对应的时序数据库,以及跟随节点与跟随节点对应的时序数据库均通过采用Unix套接字接口进行通信。领导节点与跟随节点位于不同的可用区,以做容灾最大化准备,并且每一个节点完成独立的状态自动机的转移过程。下面详细描述时序数据存储的过程:在第一步骤中,客户端的软件开发工具包通过网络源源不断地向领导节点发送数据写入请求;在第二步骤中,领导节点基于客户端的数据写入请求生成的操作日志数据,驱动跟随节点进行状态自动机的状态转移。在第三步骤中,领导节点与跟随节点通过本地的套接字接口与时序数据库交互,这个过程是Raft算法中日志条目被应用的过程,称之为应用日志;在第四步骤中,领导节点1对领导节点1对应的时序数据库中的元数据进行快照,以获得元数据的快照数据;在第五步骤中,领导节点将元数据的快照数据同步至跟随节点;在第六步骤中,领导节点中每一份用于存储时序数据的本地磁盘的分片文件都将会装载一份到对象存储服务系统中;在第七步骤中,当跟随节点将数据读请求的操作日志数据应用于对应的时序数据库时,发现所需要的分片文件在本地磁盘没有,那么直接从对象存储服务系统上重载于本地磁盘中;在第八步骤中,如果所述领导节点对应的时序数据库中存有预写式日志数据,则所述领导节点强制刷新内存中的时序数据,以在本地磁盘生成用于存储所述时序数据的分片文件,并全量删除所述预写式日志数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
通过本申请实施例提供的数据存储方法,领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将操作日志数据同步至跟随节点;跟随节点将接收到的领导节点基于客户端的数据写入请求同步的操作日志数据应用于跟随节点对应的时序数据库;领导节点对领导节点对应的时序数据库中的元数据进行快照,以获得元数据的快照数据,并将所述快照数据同步至跟随节点;跟随节点接收领导节点同步的领导节点对应的时序数据库中的元数据的快照数据,并基于操作日志数据的应用结果和快照数据,使得跟随节点对应的时序数据库与领导节点对应的时序数据库保持数据一致,与传统的Raft方案相比,仅对领导节点对应的时序数据库中的元数据进行快照,而不对存储时序数据的数据文件进行快照,不仅显著减少了因时序数据库的数据一致性而进行的数据快照操作导致的时间延迟,而且还显著减小了领导节点和跟随节点的磁盘的数据输入输出,及连接领导节点与跟随节点的网络的数据输入输出,从而大大减轻了领导节点和跟随节点构成的分布式系统的负载。
本实施例的数据存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
参照图4,示出了本申请实施例四中数据存储装置的结构示意图。
本实施例的数据存储装置包括:第一同步模块401,用于基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;快照模块402,用于对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;第二同步模块403,用于将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
本实施例的数据存储装置用于实现前述多个方法实施例中相应的数据存储方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图5,示出了本申请实施例五中数据存储装置的结构示意图。
本实施例的数据存储装置包括:第一同步模块501,用于基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;快照模块502,用于对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;第二同步模块503,用于将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
可选地,所述第一同步模块501之后,所述装置还包括:第一应用模块506,用于将所述操作日志数据对应的数据写入操作指令应用于所述领导节点的状态自动机,以在本地磁盘生成用于存储所述数据写入操作指令指示写入的时序数据的分片文件;上传模块507,用于将所述分片文件上传至云存储系统,使得所述云存储系统存储有与所述本地磁盘的分片文件一致的分片文件。
可选地,所述快照模块502之前,所述装置还包括:刷新模块508,用于如果所述领导节点对应的时序数据库中存有预写式日志数据,则强制刷新内存中的时序数据,以在本地磁盘生成用于存储所述时序数据的分片文件,并全量删除所述预写式日志数据。
可选地,所述快照模块502,包括:快照子模块5021,用于采用写时复制的方式,对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。
可选地,所述装置还包括:第一确定模块504,用于接收所述客户端发送的数据读请求,并确定所述领导节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;第一加载模块505,用于如果所述第一确定模块确定所述本地磁盘中未存有所述分片文件,则从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
本实施例的数据存储装置用于实现前述多个方法实施例中相应的数据存储方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图6,示出了本申请实施例六中数据存储装置的结构示意图。
本实施例的数据存储装置包括:第二应用模块601,用于将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;接收模块602,用于接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;保持模块603,用于基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
本实施例的数据存储装置用于实现前述多个方法实施例中相应的数据存储方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图7,示出了本申请实施例七中数据存储装置的结构示意图。
本实施例的数据存储装置包括:第二应用模块701,用于将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;接收模块702,用于接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;保持模块703,用于基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
可选地,所述第二应用模块701,具体用于:将所述第一操作日志数据对应的数据写入操作指令应用于所述跟随节点的状态自动机,以对所述跟随节点对应的时序数据库执行所述数据写入操作指令指示的时序数据写入操作。
可选地,所述保持模块703,具体用于:从云存储系统中加载所述领导节点的本地磁盘中存有的存储所述领导节点对应的时序数据库中的时序数据的分片文件;基于所述操作日志数据的应用结果、所述快照数据和所述分片文件,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
可选地,所述装置还包括:第二确定模块704,用于接收所述领导节点基于所述客户端的数据读请求同步的第二操作日志数据,并基于所述第二操作日志数据,确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;第二加载模块705,用于如果所述第二确定模块确定所述本地磁盘中未存有所述分片文件,则从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
本实施例的数据存储装置用于实现前述多个方法实施例中相应的数据存储方法,并具有相应的方法实施例的有益效果,在此不再赘述。
图8为本申请实施例八中电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器801;
计算机可读介质802,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一、实施例二或实施例三所述的数据存储方法。
图9为本申请实施例九中电子设备的硬件结构;如图9所示,该电子设备的硬件结构可以包括:处理器901,通信接口902,计算机可读介质903和通信总线904;
其中处理器901、通信接口902、计算机可读介质903通过通信总线904完成相互间的通信;
可选地,通信接口902可以为通信模块的接口,如GSM模块的接口;
其中,处理器901具体可以配置为:基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。此外,处理器901还可以配置为:将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
处理器901可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质903可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一同步模块、快照模块和第二同步模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一同步模块还可以被描述为“基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一、实施例二或实施例三所描述的数据存储方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。此外,还使得该装置:将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种数据存储方法,其特征在于,所述方法包括:
领导节点基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;
所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;
所述领导节点将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
2.根据权利要求1所述的方法,其特征在于,所述领导节点将所述操作日志数据同步至跟随节点之后,所述方法还包括:
所述领导节点将所述操作日志数据对应的数据写入操作指令应用于所述领导节点的状态自动机,以在本地磁盘生成用于存储所述数据写入操作指令指示写入的时序数据的分片文件;
所述领导节点将所述分片文件上传至云存储系统,使得所述云存储系统存储有与所述本地磁盘的分片文件一致的分片文件。
3.根据权利要求1所述的方法,其特征在于,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照之前,所述方法还包括:
如果所述领导节点对应的时序数据库中存有预写式日志数据,则所述领导节点强制刷新内存中的时序数据,以在本地磁盘生成用于存储所述时序数据的分片文件,并全量删除所述预写式日志数据。
4.根据权利要求1所述的方法,其特征在于,所述领导节点对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据,包括:
所述领导节点采用写时复制的方式,对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述领导节点接收所述客户端发送的数据读请求,并确定所述领导节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;
如果确定所述本地磁盘中未存有所述分片文件,则所述领导节点从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
6.一种数据存储方法,其特征在于,所述方法包括:
跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;
所述跟随节点接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;
所述跟随节点基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
7.根据权利要求6所述的方法,其特征在于,所述跟随节点将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库,包括:
所述跟随节点将所述第一操作日志数据对应的数据写入操作指令应用于所述跟随节点的状态自动机,以对所述跟随节点对应的时序数据库执行所述数据写入操作指令指示的时序数据写入操作。
8.根据权利要求6所述的方法,其特征在于,所述跟随节点基于所述操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致,包括:
所述跟随节点从云存储系统中加载所述领导节点的本地磁盘中存有的存储所述领导节点对应的时序数据库中的时序数据的分片文件;
所述跟随节点基于所述操作日志数据的应用结果、所述快照数据和所述分片文件,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述跟随节点接收所述领导节点基于所述客户端的数据读请求同步的第二操作日志数据,并基于所述第二操作日志数据,确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;
如果确定所述本地磁盘中未存有所述分片文件,则所述跟随节点从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
10.一种数据存储装置,其特征在于,所述装置包括:
第一同步模块,用于基于接收到的客户端的数据写入请求生成操作日志数据,并将所述操作日志数据同步至跟随节点,使得所述跟随节点将所述操作日志数据应用于所述跟随节点对应的时序数据库;
快照模块,用于对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据;
第二同步模块,用于将所述快照数据同步至所述跟随节点,使得所述跟随节点对应的时序数据库基于所述快照数据和所述操作日志数据的应用结果与所述领导节点对应的时序数据库保持数据一致。
11.根据权利要求10所述的装置,其特征在于,所述第一同步模块之后,所述装置还包括:
第一应用模块,用于将所述操作日志数据对应的数据写入操作指令应用于所述领导节点的状态自动机,以在本地磁盘生成用于存储所述数据写入操作指令指示写入的时序数据的分片文件;
上传模块,用于将所述分片文件上传至云存储系统,使得所述云存储系统存储有与所述本地磁盘的分片文件一致的分片文件。
12.根据权利要求10所述的装置,其特征在于,所述快照模块之前,所述装置还包括:
刷新模块,用于如果所述领导节点对应的时序数据库中存有预写式日志数据,则强制刷新内存中的时序数据,以在本地磁盘生成用于存储所述时序数据的分片文件,并全量删除所述预写式日志数据。
13.根据权利要求10所述的装置,其特征在于,所述快照模块,包括:
快照子模块,用于采用写时复制的方式,对所述领导节点对应的时序数据库中的元数据进行快照,以获得所述元数据的快照数据。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于接收所述客户端发送的数据读请求,并确定所述领导节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;
第一加载模块,用于如果所述第一确定模块确定所述本地磁盘中未存有所述分片文件,则从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
15.一种数据存储装置,其特征在于,所述装置包括:
第二应用模块,用于将接收到的领导节点基于客户端的数据写入请求同步的第一操作日志数据应用于所述跟随节点对应的时序数据库;
接收模块,用于接收所述领导节点同步的所述领导节点对应的时序数据库中的元数据的快照数据;
保持模块,用于基于所述第一操作日志数据的应用结果和所述快照数据,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
16.根据权利要求15所述的装置,其特征在于,所述第二应用模块,具体用于:
将所述第一操作日志数据对应的数据写入操作指令应用于所述跟随节点的状态自动机,以对所述跟随节点对应的时序数据库执行所述数据写入操作指令指示的时序数据写入操作。
17.根据权利要求15所述的装置,其特征在于,所述保持模块,具体用于:
从云存储系统中加载所述领导节点的本地磁盘中存有的存储所述领导节点对应的时序数据库中的时序数据的分片文件;
基于所述操作日志数据的应用结果、所述快照数据和所述分片文件,使得所述跟随节点对应的时序数据库与所述领导节点对应的时序数据库保持数据一致。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于接收所述领导节点基于所述客户端的数据读请求同步的第二操作日志数据,并基于所述第二操作日志数据,确定所述跟随节点的本地磁盘中是否存有存储所述数据读请求所请求的时序数据的分片文件;
第二加载模块,用于如果所述第二确定模块确定所述本地磁盘中未存有所述分片文件,则从云存储系统中加载所述分片文件,并将所述分片文件存储于所述本地磁盘中。
19.一种电子设备,包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任意一项权利要求所述的数据存储方法,或者实现如权利要求6-9中任意一项权利要求所述的数据存储方法。
20.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任意一项权利要求所述的数据存储方法,或者实现如权利要求6-9中任意一项权利要求所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911289656.9A CN112965945A (zh) | 2019-12-13 | 2019-12-13 | 数据存储方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911289656.9A CN112965945A (zh) | 2019-12-13 | 2019-12-13 | 数据存储方法、装置、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112965945A true CN112965945A (zh) | 2021-06-15 |
Family
ID=76270883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911289656.9A Pending CN112965945A (zh) | 2019-12-13 | 2019-12-13 | 数据存储方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965945A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268472A (zh) * | 2021-07-15 | 2021-08-17 | 北京华品博睿网络技术有限公司 | 一种分布式数据存储系统及方法 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN113806316A (zh) * | 2021-09-15 | 2021-12-17 | 星环众志科技(北京)有限公司 | 一种文件同步方法、设备及存储介质 |
CN115981574A (zh) * | 2023-03-10 | 2023-04-18 | 阿里巴巴(中国)有限公司 | 一种快照存储方法、系统、设备及存储介质 |
CN116226139A (zh) * | 2023-05-09 | 2023-06-06 | 南昌大学 | 一种适用大规模海洋数据的分布式存储和处理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0873619A1 (en) * | 1995-06-22 | 1998-10-28 | Mci Communications Corporation | Knowledge based path set up and spare capacity assignment for distributed network restoration |
CN105190533A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 原位快照 |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
CN107169126A (zh) * | 2017-05-31 | 2017-09-15 | 华为技术有限公司 | 一种日志处理方法及相关设备 |
US10210013B1 (en) * | 2016-06-30 | 2019-02-19 | Veritas Technologies Llc | Systems and methods for making snapshots available |
CN109522964A (zh) * | 2018-11-26 | 2019-03-26 | 广东电网有限责任公司电力调度控制中心 | 虚拟电厂的聚类方法、装置、调控设备及计算机存储介质 |
CN109542674A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 分布式系统的快照生成方法、装置、设备和介质 |
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
-
2019
- 2019-12-13 CN CN201911289656.9A patent/CN112965945A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0873619A1 (en) * | 1995-06-22 | 1998-10-28 | Mci Communications Corporation | Knowledge based path set up and spare capacity assignment for distributed network restoration |
CN105190533A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 原位快照 |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
US10210013B1 (en) * | 2016-06-30 | 2019-02-19 | Veritas Technologies Llc | Systems and methods for making snapshots available |
CN107169126A (zh) * | 2017-05-31 | 2017-09-15 | 华为技术有限公司 | 一种日志处理方法及相关设备 |
CN109542674A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 分布式系统的快照生成方法、装置、设备和介质 |
CN109522964A (zh) * | 2018-11-26 | 2019-03-26 | 广东电网有限责任公司电力调度控制中心 | 虚拟电厂的聚类方法、装置、调控设备及计算机存储介质 |
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
Non-Patent Citations (2)
Title |
---|
陈陆;黄树成;徐克辉;: "改进的Raft一致性算法及其研究", 江苏科技大学学报(自然科学版), no. 04, 15 August 2018 (2018-08-15) * |
黄晓微;陈玲;魏玮;徐世莲;: "基于快照日志分析的数据同步方法", 后勤工程学院学报, no. 02, 30 June 2006 (2006-06-30) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268472A (zh) * | 2021-07-15 | 2021-08-17 | 北京华品博睿网络技术有限公司 | 一种分布式数据存储系统及方法 |
CN113806316A (zh) * | 2021-09-15 | 2021-12-17 | 星环众志科技(北京)有限公司 | 一种文件同步方法、设备及存储介质 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN113656384B (zh) * | 2021-10-18 | 2022-04-08 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN115981574A (zh) * | 2023-03-10 | 2023-04-18 | 阿里巴巴(中国)有限公司 | 一种快照存储方法、系统、设备及存储介质 |
CN115981574B (zh) * | 2023-03-10 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 一种快照存储方法、系统、设备及存储介质 |
CN116226139A (zh) * | 2023-05-09 | 2023-06-06 | 南昌大学 | 一种适用大规模海洋数据的分布式存储和处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112965945A (zh) | 数据存储方法、装置、电子设备及计算机可读介质 | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
EP4033374A1 (en) | Method and device for synchronizing node data | |
US10291704B2 (en) | Networked solutions integration using a cloud business object broker | |
US8671085B2 (en) | Consistent database recovery across constituent segments | |
US9589153B2 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
CN109144785B (zh) | 用于备份数据的方法和装置 | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
CN111008244A (zh) | 一种用于数据库的同步和分析方法及系统 | |
CN111338834B (zh) | 数据存储方法和装置 | |
US10067943B2 (en) | Reducing read operations and branches in file system policy checks | |
US20200364241A1 (en) | Method for data synchronization between a source database system and target database system | |
WO2022078243A1 (zh) | 信息同步方法及装置 | |
CN113343312A (zh) | 基于前端埋点技术的页面防篡改方法及系统 | |
CN113127438B (zh) | 用于存储数据的方法、装置、服务器和介质 | |
CN109614383B (zh) | 数据复制方法、装置、电子设备及存储介质 | |
CN113032349A (zh) | 数据存储方法、装置、电子设备及计算机可读介质 | |
CN114036107B (zh) | 基于hudi快照的医疗数据查询方法及装置 | |
AU2021268828B2 (en) | Secure data replication in distributed data storage environments | |
CN111597200A (zh) | 数据处理方法、装置及存储介质 | |
CN110288309B (zh) | 数据交互方法、装置、系统、计算机设备以及存储介质 | |
CN112948494A (zh) | 数据同步方法、装置、电子设备和计算机可读介质 | |
US9880904B2 (en) | Supporting multiple backup applications using a single change tracker | |
US12019652B2 (en) | Method and device for synchronizing node data | |
US11593498B2 (en) | Distribution of user specific data elements in a replication environment |
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 |