CN113641763B - 一种分布式时序数据库系统以及电子设备和存储介质 - Google Patents
一种分布式时序数据库系统以及电子设备和存储介质 Download PDFInfo
- Publication number
- CN113641763B CN113641763B CN202111010991.8A CN202111010991A CN113641763B CN 113641763 B CN113641763 B CN 113641763B CN 202111010991 A CN202111010991 A CN 202111010991A CN 113641763 B CN113641763 B CN 113641763B
- Authority
- CN
- China
- Prior art keywords
- data
- service
- storage
- metadata
- migration
- 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.)
- Active
Links
- 230000000977 initiatory effect Effects 0.000 claims abstract description 4
- 230000005012 migration Effects 0.000 claims description 62
- 238000013508 migration Methods 0.000 claims description 62
- 238000007726 management method Methods 0.000 claims description 22
- 239000012752 auxiliary agent Substances 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 16
- 230000008439 repair process Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 8
- 238000007405 data analysis Methods 0.000 claims description 4
- 230000006837 decompression Effects 0.000 claims description 4
- 238000013524 data verification Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 26
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 239000000306 component Substances 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 238000012806 monitoring device Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013112 stability test 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
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于分布式数据库技术领域,具体公开了一种分布式时序数据库系统以及电子设备和存储介质。该系统包括:元数据服务,用于存储所述数据库系统的各组件的元数据;中间层服务,用于确定数据的路由策略,决定多个数据副本分发的物理地址;智能客户端,用于发起数据读写的请求,其中包括负载均衡算法,用于选择所述中间层服务;存储层服务,用于存储多个数据副本;管理服务6,管理所述元数据服务中的使用的元数据。本发明的优点在于:1.不依赖额外的网络环境,可以在任何互通网络中部署,且支持云原生部署;2.各个层次可以无限扩展,不存在容量瓶颈和单节点的性能瓶颈,可以通过其可扩展能力提升集群整体性能。
Description
技术领域
本发明涉及分布式数据库技术领域,尤其涉及了一种分布式时序数据库系统以及电子设备和存储介质。
背景技术
目前业界有很多公司内部使用Influxdb作为时序数据库,一般采用基于Influxdb-Proxy服务的双写模式或基于分布式块存储或分布式文件存储的第三方存储模式,或者结合使用上述两种模式。基于Influxdb-Proxy服务的双写模式中,数据写入Influxb-Proxy服务后,复制并拆分成两份,双写到两个单独的Influxdb节点中,两个节点存储相同的数据互为备份。基于分布式块存储或分布式文件存储的第三方存储模式中,将Influxdb存储所在的物理磁盘替换成分布式云盘,利用云盘的高性能和可靠性以及快速扩展性,将数据存储在分布式云盘中。
但是,上述的几种基于Influxdb的时序数据库模式存在如下缺陷:
1.使用Influxdb-Proxy模式的双写模式,需要使用其他服务来进一步保证Influxdb-Proxy服务的高可用,单点的InfluxdbProxy若存在异常,则会导致整个时序存储层服务失效。
2.未使用云盘作为存储的单点Influxdb将会在容量上达到物理限制,无法通过可扩展的方式提高整个集群的容量承载能力;
3.使用云盘作为Influxdb存储的方式,必须依赖第三方分布式块存储或分布式文件存储层服务,在云厂商提供该服务的前提下尚具备可操作性,若自行部署和维护分布式存储层服务则将带来巨大的人力和运维成本。
4.无论是双写模式还是基于云盘模式,都不能解决在大规模数据读写场景下,可能导致单个Influxdb节点读写性能瓶颈的问题。若通过创建额外的实例,则需要在业务层面进行复杂的控制,且其可扩展性相当局限。
发明内容
为了解决上述缺陷,本发明提供一种分布式时序数据库系统,包括:
元数据服务,用于存储所述数据库系统的各组件的元数据;
中间层服务,用于确定数据的路由策略,决定多个数据副本分发的物理地址;
智能客户端,用于发起数据读写的请求,其中包括负载均衡算法,用于选择所述中间层服务;
存储层服务,用于存储多个数据副本;
管理服务,管理所述元数据服务中的使用的元数据。
上述的时序数据库系统中,还包括:辅助代理层,运行在存储层的存储节点上,承担与数据存储相关的任务。
上述的时序数据库系统中,所述与数据存储相关的任务至少包括数据迁移任务和数据修复任务。
上述的时序数据库系统中,所述数据库系统中的数据写入包括:
有所述智能客户端启动写入数据的流程;
数据通过在所述智能客户端中的所述负载均衡算法选择所述中间层服务中相应的Proxy服务,并将所述数据发给所述Proxy服务;
所述中间层服务收到数据后,将数据进行结构化,进行数据分析,从而得到所述数据的写入地址;
所述中间层服务将结构化后的所述数据写入到各个存储节点;
所述存储层服务收到数据后,将数据压缩后写入磁盘。
上述的时序数据库系统中,所述数据库系统中的数据读取包括:
所述智能客户端发送用于启动数据读取流程的查询请求;
所述数据通过在所述智能客户端中的所述负载均衡算法选择所述中间层服务中相应的Proxy服务,将所述查询语句发给所述Proxy服务;
所述中间层服务收到所述查询语句后,利用存储在所述元数据服务中的所述元数据信息进行数据分析,获取所述数据可能存在的物理位置;
所述中间层服务将所述查询请求分拆后分发给多个存储节点;
所述存储层服务收到所述查询请求后,将所述数据返回给所述存储层服务;
所述存储层服务收到所有存储节点发来的所述数据后,进行数据的合并和去重,并将数据读取结果的相关信息返回给所述智能客户端。
上述的时序数据库系统中,所述数据库系统中的数据迁移包括:
触发所述数据副本的迁移操作,产生单条或多条迁移计划,并将所述迁移计划附加到迁移计划列表中;
所述辅助代理层定期监听属于本存储节点的所述迁移计划列表;
所述辅助代理层按照所述迁计划移列表中的迁移计划的顺序,依次发起迁移工作。
上述的时序数据库系统中,所述迁移工作进一步包括:
修改所述元数据中所述迁移计划的状态;
调用RPC服务访问源数据节点,获取数据副本;
所述源数据节点收到请求后,进行数据压缩和传输;
所述辅助代理层收到压缩后的所述数据后,进行数据校验以及解压缩工作;
将所述元数据中的相应迁移状态标识为完成。
相应的,本发明还提出了一种电子设备,包括:
存储器,是所述电子设备的存储器之一,用于存储计算机指令;
处理器,是所述电子设备的处理器之一,当所述电子设备执行所述计算机指令时,实现上述的方法。
相应的,本发明还提出了一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令在计算机上执行时,所述计算机执行上述的方法。
与现有技术中基于Influxdb-Proxy方案和云盘方案的架构相比,本发明具有如下优点:
1.不依赖额外的网络环境,可以在任何互通网络中部署,且支持云原生部署。
2.各个层次可以无限扩展,不存在容量瓶颈和单节点的性能瓶颈,可以通过其可扩展能力提升集群整体性能。
3.具备高可用能力,任何模块的单点异常都不会影响全局服务的读写。
4.具备数据多副本,数据迁移和数据修复能力。
5.具备数据冷热分离管理能力,可以在保证集群整体性能的前提下,进一步节省运营成本。
附图说明
图1是本发明中网络设备的一个硬件结构框图;
图2是基于本发明中一些实施例而提供的分布式架构的架构示意图;
图3是基于本发明中一些实施例而提供的数据写入流程图;
图4是基于本发明中一些实施例而提供的数据读取流程图;
图5是基于本发明中一些实施例而提供的数据迁移流程图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,默认为同一定义。
还需声明的是,本发明中对方法、流程进行编号是为了便于引用,而不是限定先后顺序,各步骤之间如有先后顺序,当以文字说明为准。
本发明的发目的在于,以单机版本的Influxdb为基础,构建新的分布式时序数据库,在功能上具备单机Influxdb版本上所有的基础能力,同时具备灵活的分布式可扩展能力,支持数据多副本、高可用、数据迁移、数据冷热分离存储等功能。且在分布式架构具体采用Shared Nothing模式的情况下,可以不依托特定网络环境,且支持云原生模式下部署管理。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本申请方式所提供的方法实施方式可以在服务器、交换机、路由器、计算机终端等网络设备中执行。图1是本发明所使用的网络设备的基本硬件结构框图。如图1所示,网络设备200可以包括一个或多个(图中仅示出一个)处理器210(处理器210可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于与用户交互的输入输出接口220、用于存储数据的存储器230、用于通信功能的传输装置240以及总线250。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。
存储器230可用于存储应用软件的软件程序以及模块,如本发明实施方式中的链路质量检测方法对应的程序指令/模块,处理器210通过运行存储在存储器230内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的链路质量检测方法。存储器230可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器230可进一步包括相对于处理器210远程设置的存储器,这些远程存储器可以通过网络连接至网络设备200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置240用于经由一个网络接收或者发送数据。在本发明中,传输装置240包括可编程的监测设备241,通过该监测设备241与其他网络设备相连进行通讯。作为一个示例,传输装置240可以是交换机芯片组、网卡等负责网络通信的设备,监测设备241可以是可编程硬件,诸如可编程网络芯片,例如ASIC芯片、P4芯片、Tofino芯片等,这些可编程硬件通过替代地或附加地设置在传输装置240中,本发明对此不作限制。
本发明实施方式并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。
本发明实施方式并不限定网络设备200的对端网络设备的类型和数量,例如,对端网络设备可以是与网络设备200相同或相似的设备,例如对端网络设备的传输装置具有与监测设备241相同或相似的设备,或者,对端网络设备可以是不具有上述监测设备的常规的网络设备,例如,常规的交换机、路由器、网关、或者主机等。可以理解,网络设备200可以同时与多个对端网络设备建立链路连接,并进行链路质量检测,例如,在数据中心、集群等场景。
以下结合图2-图5来说明本发明的具体实施例。
图2所示是基于本发明中一些实施例而提供的分布式架构的架构图。本实施例以现有单机版本Influxdb的性能和功能为基础,结合分布式理论,重新设计的分布式架构Influxdb Galaxy。其中,主要包括元数据服务1(即元数据层)、智能客户端2、中间层服务3(即路由层)、存储层服务4(即存储层)、辅助代理层5和管理服务6(即管理层)。
元数据服务1(MetaServer)用于存储整个Influxdb Galaxy的各个组件的元数据,包括各个组件的注册信息,配置信息,状态控制信息,存储层的路由信息等。简单来说,元数据是描述数据的数据,在数据治理的层面,元数据是对于数据的描述,其中可以存储关于数据的信息。它是属于数据库本身的一些数据,可以包含数据库名、数据库字符集、表名、表的大小、表的记录行数、表的字符集、表的字段、表的索引、表的描述、字段的类型、字段的精度、字段的描述等。
本实施例中,对元数据进行了设计和优化。元数据部分复用了Influxdb原有元数据的部分结构的同时,进行较大规模的改动,具体改动如下:
1)引入数据多副本功能。单个数据存储单元(Influxdb中称为Shard)的存储节点,从单个物理节点改为多个物理节点组成的列表。数据写入过程中,中间层服务3(ProxyServer)获取到多个存储节点列表后,将数据进行复制分发到多个节点,实现数据多副本的写入工作。
2)引入节点状态管理功能。针对后端存储节点,增加状态管理功能。数据副本进行迁移、下线、新建等操作时修改副本为特定状态,中间层服务3通过元数据读取到副本状态后,采取对应的规避措施,写入数据临时存储在本地异步消费,读取场景则不选择异常副本。通过对节点状态的扩展,还可以实现数据的冷热分离存储功能。
3)引入迁移计划(CopyPlan)。通过引入迁移计划,使得整个集群具备数据迁移能力,管理服务6通过对数据副本和集群容量的分析,可以创建迁移计划。辅助代理层5(Help-Agent)服务通过获取属于对应存储节点的迁移计划后开始具体实施,从迁移计划的数据源节点获取数据副本,通过压缩、传输、解压缩过程完成数据副本的迁移。数据迁移场景在集群扩缩容、高可用、负责均衡等场景上具有相当重要的意义。
4)引入修复计划(RepairPlan)。由于时序数据高写入量的场景,因此本发明采用最终一致性方案。通过修复计划可以在多副本场景下实现数据的一致性校验和数据修复功能。辅助代理层5定期对相同数据的多副本进行一致性分析,分析出数据的不同之处并进行数据修复,达到数据的最终一致性。
可以在多个集群之间共享元数据,使用namespace进行多租户控制。在本实施例提出的Influxdb Galaxy中我们使用etcd作为元数据服务1(Meta Server),利用其raft原理的高可用和数据强一致性能力,保证元数据服务1的可用性。同时,通过上述的修改原有元数据的格式,引入多副本功能、服务状态管理、迁移计划和修复计划。本实施例中,使用了基于Raft协议的Etcd作为元数据管理服务,通过Etcd的分布式锁,能够保证了数据的并发修改的强一致性。
智能客户端2(SmartClient)基于Golang语言的智能软件开发包(SoftwareDevelopment Kit,SDK)可以实现中间层服务3(Proxy Server)层面的负载均衡和高可用等问题。在k8s环境中,可以使用envoy代替,在公有云环境中可以使用LoadBalance服务代替。
中间层服务3(ProxyServer)是Influxdb Galaxy方案的核心组件,主要功能为数据的路由策略、数据多副本分发、数据读取和聚合等功能。中间层服务3服务基于Influxdb原有数据路由层进行二次开发,结合元数据多副本场景,实现数据的多副本路由,数据一致性控制,以及写入失败重试功能,在数据读取方面,使用Map-Reduce方式,实现多节点多数据副本的聚合和去重,从而实现了中间层服务的优化。该服务为数据读写的路由入口,由智能客户端2(SmartClient)负责其负载均衡和高可用性。
存储层服务4(Storage Server)将Influxdb中的时序数据库7(Time SquenceData Base,TSDB)部分单独拆分设计独立服务,TSDB7为Influxdb的核心数据存储层,其变动较小,负责最终数据的落盘存储部分,具有单机Influxdb的高效压缩和读写性能,拆分后便于更适应于版本迭代升级需求,高可用通过数据的多副本方案实现。通过将单机Influxdb中的TSDB部分分拆成单独的服务,存储层服务4可以只负责数据的存储。因而,在存储层面来说,并不需要关系集群的元数据信息,只接收中间层服务3的请求服务即可。在分布式多副本的场景中,不同的存储节点存储不同的副本,副本与存储的映射关系存储在元数据服务1中,单个存储服务的异常对整个分布式服务无影响。由于存储层服务4的简单设计,使其可以部署在任何网络环境中,只需中间层服务与其在应用层(指OSI的7层协议中的应用层)互通即可。
辅助代理层5(Help Agent)可以运行在存储层节点上,用于进行存储层元数据汇报,健康状态汇报,数据迁移等操作,在云原生环境中相当于TSDB服务的Sidecar部分。通过额外的代理服务,将数据迁移、数据修复等较为耗时且复杂的较大任务交给单独的模块(指相对于存储服务4而言的单独模块,例如辅助代理层5)处理,在不影响主读写和数据压缩存储逻辑的基础上,作为额外扩展功能服务提供。例如,数据迁移和数据修复之类的可异步(即不是必须与数据存储同时进行的任务)进行的任务,其任务执行的耗时长短取决于数据量,当数据量庞大时,数据迁移或数据修复任务所需要的时间会比较长。将这类任务设置在辅助代理层5中执行,可以不影响正常的读写性能。
管理服务6(Admin Server)包括管理API 61(Admin API)及管理UI 62(AdminUI),主要作用为进行元数据层的元数据的管理工作,是元数据管理工作的唯一入口。通过使用使用namespace,管理API 61和管理UI 62都可以做到多租户复用。
上述架构通过分层的方式,将元数据层、路由层、存储层和管理层分离,每一层只负责自己独特的工作,相互之间通过元数据服务1(MetaServer)进行信息交互,且每一层可以独立扩展,独立部署,在云原生环境下非常适合管理。并且,上述架构还能支持单机开源版本Influxdb的全部能力。通过对单机版本可能存在的20几种读取、写入及管理命令的测试,所有命令全部支持。
如图3所示,在本申请提出的新架构Influxdb Galaxy下,数据的写入流程包括如下步骤:
S31、使用智能客户端2启动写入数据的流程,即发起写入请求。
S32、数据通过在智能客户端2(即SmartClient层)中的负载均衡算法选择中间层服务3中相应的Proxy服务,将数据发给该Proxy服务。
S33、中间层服务3收到数据后,将数据进行结构化,利用存储在元数据服务1中的元数据(Meta)信息进行数据分析,由于分布式服务的高可用特性,数据存在多副本,因此会确定N个存储的物理位置。
S34、中间层服务3将结构化后的数据写入到各个存储节点(Storage),若写入某个存储节点失败,则将数据存储在中间层服务3本地的修复队列中,修复队列与后端存储节点一一对应,互不影响。根据用户设置的分布式数据的一致性策略,当数据写入满足策略条件后,返回成功信息给智能客户端2,否则返回失败信息。
S35、存储层服务4(即StorageServer层)收到数据后,将数据采用Influxdb高效的TSM(TimeStaMp)时序数据存储方式对数据进行压缩后写入磁盘。
通过增加存储节点来测试上述的写入流程的性能。具体的,关注存储节点与整体写入吞吐量之间的比例,观察由此带来的提升效果。经过多次实验,可以看出随存储节点的增加,写入性能基本达到线性增长,因此整体集群具备线性扩展能力。
图4所示为基于本申请提出的新架构Influxdb Galaxy而提出的数据读取流程,具体步骤如下:
S41、使用智能客户端2发送相关查询请求,例如发送用于启动数据读取流程的语句。
S42、数据通过在智能客户端2(即SmartClient层)中的负载均衡算法选择中间层服务3中相应的Proxy服务,将查询语句发给该Proxy服务。
S43、中间层服务3收到查询语句后,利用存储在元数据服务1中的元数据信息进行数据分析,获取数据可能存在的后端N个存储节点的物理位置。
S44、中间层服务3采用Map-Reduce的方法,将请求分拆后分发给多个存储节点。
S45、存储层服务4收到查询请求后,根据请求内容构建查询句柄,在底层磁盘进行查找后,将数据返回给存储层服务4(即ProxyServer层)。
S46、存储层服务4收到N个存储节点发来的数据后,进行数据的合并和去重,并将结果(成功或失败的信息)返回给智能客户端2。
申请人对上述读取流程进行测试,测试结果表明,存储节点的增加会带来一定的响应延时的增加,尤其是在简单的SQL场景上,呈现线性增长趋势,但基本保持在同一个数量级。而对于复杂的SQL语句来说,由于分布式场景下数据分布较散,单个存储节点的容量较小,map-reduce方案可以更加方便的利用分布式场景,从而可以提升复杂SQL语句的查询性能。
此外,结合读出和写入的双向考核,申请人还针对高可用场景进行了稳定性测试。申请人在持续读和/或写场景下,人为地在各个环节中断任意单个服务,通过监控图得出的结论很理想,异常期间整体的读写服务在出现短暂抖动后,集群各环节的高可用能力启动,服务在短时间内迅速恢复正常。
图5所示是基于本申请提出的新架构Influxdb Galaxy而提出的数据迁移流程,其具体步骤如下:
S51、由手动或被动(例如,事件触发)触发副本的迁移操作,产生单条或多条迁移计划。并将该迁移计划附加到迁移计划列表中。
手动触发时,手动进行数据副本迁移时会尝试一条包含源地址、目标地址、ShardID的迁移计划。
被动触发时,一般是在进行节点下线、节点替换、副本数量修复操作时。系统会自动进行元数据比对,寻找数量不满足设置条件的副本,为期选择源地址、目标地址,进而生成一系列迁移计划。
S52、由辅助代理层5定期监听属于本目标地址的迁移计划列表。
S53、辅助代理层5按照迁移计划列表中的迁移计划的顺序,依次发起迁移工作。所述迁移工作具体包括:
1)修改元数据中该迁移计划的状态。
2)调用RPC服务访问源数据节点,获取数据副本。
3)源节点收到请求后,进行数据压缩和传输。
4)辅助代理层5收到压缩后的数据后,进行数据校验以及解压缩工作。
5)修改元数据中该迁移状态为完成。
6)若迁移过程出现失败,则休息一段时间后重新开始整个流程。
重复上述的步骤S51~S53,则可完成所有的迁移计划。
申请人对上述数据迁移过程进行了能力的测试。通过人为的扩缩容节点,测试数据迁移能力,测试证明上述数据前六过程基本接近于Influxdb时序数据库备份恢复方式的数据迁移能力。
容灾系统是指在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)而停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。
在本申请提出的Influxdb Galaxy架构下,在触发容灾时,高可用性存在以下变化:
智能客户端2是客户端SDK,与客户端访问共享高可用能力。
中间层服务3通过与元数据服务1注册,使得智能客户端2获取其运行状态,由智能客户端2通过负载均衡算法将请求分发给中间层服务3。若注册失败,则智能客户端2感知后,将请求发给其他节点。
存储层服务4通过与中间层服务3进行周期性建立心跳机制来监控读写过程,若心跳失败,则中间层服务3将写入请求临时存放在本地,待恢复心跳后重新写入;读取请求则路由给其他副本。
辅助代理层5本身无高可用性,使用Systemd等守护程序监听即可。
管理服务6为无状态服务,部署多个节点,同中间层服务3。
本发明还提供了一种电子设备,其包括存储器和处理器。其中,存储器是所述电子设备的存储器之一,用于存储计算机指令。处理器是所述电子设备的处理器之一,当所述处理器执行所述计算机指令时,实现如上述的方法。
本发明还提供了一种计算机可读的存储介质,该存储介质具有存储在其中的指令,当指令被执行时,使得计算机执行如上所述的方法。
综上,本发明提供了一种新的分布式时序数据库系统以及在该系统下,数据的管理方法。本发明在单机开源版本的Influxdb基础上,改造其元数据体系,设计分布式架构,使其成为一个新的分布式时序数据库,该架构采用Shared Nothing模式,不依托特定环境,同时支持云原生部署管理。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
Claims (8)
1.一种分布式时序数据库系统,其特征在于,包括:
元数据服务,用于存储所述数据库系统的各组件的元数据;
中间层服务,用于确定数据的路由策略,决定多个数据副本分发的物理地址;
智能客户端,用于发起数据读写的请求,其中包括负载均衡算法,用于选择所述中间层服务;
存储层服务,用于存储多个数据副本;
管理服务,管理所述元数据服务中的使用的元数据;
其中,所述数据库系统中的数据写入包括:
由所述智能客户端启动写入数据的流程;
数据通过在所述智能客户端中的所述负载均衡算法选择所述中间层服务中相应的Proxy服务,并将所述数据发给所述Proxy服务;
所述中间层服务收到数据后,将数据进行结构化,进行数据分析,从而得到所述数据的写入地址;
所述中间层服务将结构化后的所述数据写入到各个存储节点;
所述存储层服务收到数据后,将数据压缩后写入磁盘。
2.如权利要求1所述的数据库系统,其特征在于,还包括:
辅助代理层,运行在存储层的存储节点上,承担与数据存储相关的任务。
3.如权利要求2所述的数据库系统,其特征在于,所述与数据存储相关的任务至少包括数据迁移任务和数据修复任务。
4.如权利要求1-3任一项所述的数据库系统,其特征在于,所述数据库系统中的数据读取包括:
所述智能客户端发送用于启动数据读取流程的查询请求;
所述数据通过在所述智能客户端中的所述负载均衡算法选择所述中间层服务中相应的Proxy服务,将查询语句发给所述Proxy服务;
所述中间层服务收到所述查询语句后,利用存储在所述元数据服务中的所述元数据信息进行数据分析,获取所述数据可能存在的物理位置;
所述中间层服务将所述查询请求分拆后分发给多个存储节点;
所述存储层服务收到所述查询请求后,将所述数据返回给所述存储层服务;
所述存储层服务收到所有存储节点发来的所述数据后,进行数据的合并和去重,并将数据读取结果的相关信息返回给所述智能客户端。
5.如权利要求2-3任一项所述的数据库系统,其特征在于,所述数据库系统中的数据迁移包括:
触发所述数据副本的迁移操作,产生单条或多条迁移计划,并将所述迁移计划附加到迁移计划列表中;
所述辅助代理层定期监听属于本存储节点的所述迁移计划列表;
所述辅助代理层按照所述迁移计划列表中的迁移计划的顺序,依次发起迁移工作。
6.如权利要求5所述的数据库系统,其特征在于,所述迁移工作进一步包括:
修改所述元数据中所述迁移计划的状态;
调用RPC服务访问源数据节点,获取数据副本;
所述源数据节点收到请求后,进行数据压缩和传输;
所述辅助代理层收到压缩后的所述数据后,进行数据校验以及解压缩工作;
将所述元数据中的相应迁移状态标识为完成。
7.一种电子设备,其特征在于,包括:
存储器,是所述电子设备的存储器之一,用于存储计算机指令;
处理器,是所述电子设备的处理器之一,当所述电子设备执行所述计算机指令时,实现如权利要求1-6中任一项所述的数据库系统。
8.一种计算机可读的存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时,所述计算机执行如权利要求1-6中任一项所述的数据库系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111010991.8A CN113641763B (zh) | 2021-08-31 | 2021-08-31 | 一种分布式时序数据库系统以及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111010991.8A CN113641763B (zh) | 2021-08-31 | 2021-08-31 | 一种分布式时序数据库系统以及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641763A CN113641763A (zh) | 2021-11-12 |
CN113641763B true CN113641763B (zh) | 2023-11-10 |
Family
ID=78424561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111010991.8A Active CN113641763B (zh) | 2021-08-31 | 2021-08-31 | 一种分布式时序数据库系统以及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641763B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3094055A1 (en) * | 2015-05-12 | 2016-11-16 | Datrium, Inc. | Data storage with a distributed virtual array |
CN110392876A (zh) * | 2017-03-10 | 2019-10-29 | 净睿存储股份有限公司 | 将数据集和其他受管理对象同步地复制到基于云的存储系统 |
CN111291235A (zh) * | 2020-05-13 | 2020-06-16 | 成都四方伟业软件股份有限公司 | 一种基于时序数据库的元数据存储方法及装置 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112199419A (zh) * | 2020-10-09 | 2021-01-08 | 深圳市欢太科技有限公司 | 一种分布式时序数据库、存储方法、设备及存储介质 |
CN113204600A (zh) * | 2021-07-05 | 2021-08-03 | 浩鲸云计算科技股份有限公司 | 基于表路由分片引擎的InfluxDB分布式集群方法 |
CN113704359A (zh) * | 2021-09-03 | 2021-11-26 | 优刻得科技股份有限公司 | 一种时序数据库多数据副本的同步方法、系统以及服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017037444A1 (en) * | 2015-08-28 | 2017-03-09 | Statustoday Ltd | Malicious activity detection on a computer network and network metadata normalisation |
GB201716170D0 (en) * | 2017-10-04 | 2017-11-15 | Palantir Technologies Inc | Controlling user creation of data resources on a data processing platform |
US11989186B2 (en) * | 2018-11-23 | 2024-05-21 | Amazon Technologies, Inc. | Scalable architecture for a distributed time-series database |
-
2021
- 2021-08-31 CN CN202111010991.8A patent/CN113641763B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3094055A1 (en) * | 2015-05-12 | 2016-11-16 | Datrium, Inc. | Data storage with a distributed virtual array |
CN110392876A (zh) * | 2017-03-10 | 2019-10-29 | 净睿存储股份有限公司 | 将数据集和其他受管理对象同步地复制到基于云的存储系统 |
CN111291235A (zh) * | 2020-05-13 | 2020-06-16 | 成都四方伟业软件股份有限公司 | 一种基于时序数据库的元数据存储方法及装置 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112199419A (zh) * | 2020-10-09 | 2021-01-08 | 深圳市欢太科技有限公司 | 一种分布式时序数据库、存储方法、设备及存储介质 |
CN113204600A (zh) * | 2021-07-05 | 2021-08-03 | 浩鲸云计算科技股份有限公司 | 基于表路由分片引擎的InfluxDB分布式集群方法 |
CN113704359A (zh) * | 2021-09-03 | 2021-11-26 | 优刻得科技股份有限公司 | 一种时序数据库多数据副本的同步方法、系统以及服务器 |
Non-Patent Citations (3)
Title |
---|
Analytic Queries over Geospatial Time-Series Data Using Distributed Hash Tables;M. Malensek 等;IEEE Transactions on Knowledge and Data Engineering;第28卷(第6期);1408-1422 * |
Apache IoTDB的分布式框架设计;李天安;黄向东;王建民;毛东方;徐毅;袁骏;;中国科学:信息科学(第05期);5-20 * |
大规模集群状态时序数据采集、存储与分析;刘金;中国优秀硕士学位论文全文数据库信息科技辑(第11期);I138-290 * |
Also Published As
Publication number | Publication date |
---|---|
CN113641763A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6404907B2 (ja) | 効率的な読み取り用レプリカ | |
AU2016405587B2 (en) | Splitting and moving ranges in a distributed system | |
WO2020263765A1 (en) | Orchestrator for orchestrating operations between a computing environment hosting virtual machines and storage environment | |
Azzedin | Towards a scalable HDFS architecture | |
JP2019101703A (ja) | 記憶システム及び制御ソフトウェア配置方法 | |
US20200265068A1 (en) | Replicating Big Data | |
CN112199419B (zh) | 一种分布式时序数据库、存储方法、设备及存储介质 | |
WO2018119601A1 (zh) | 数据转换方法及备份服务器 | |
CN103237046A (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN115858236A (zh) | 一种数据备份方法和数据库集群 | |
KR20100048130A (ko) | 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN116389233B (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
CN103108045B (zh) | 基于云架构的Web地图服务实现方法 | |
WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN113641763B (zh) | 一种分布式时序数据库系统以及电子设备和存储介质 | |
US10083121B2 (en) | Storage system and storage method | |
CN111752892A (zh) | 分布式文件系统及其实现方法、管理系统、设备及介质 | |
CN112685486B (zh) | 数据库集群的数据管理方法、装置、电子设备及存储介质 | |
CN109936594A (zh) | 一种基于电力数据的云存储系统 | |
CN113051108A (zh) | 一种数据备份方法及系统 | |
Chen et al. | Research of distributed file system based on massive resources and application in the network teaching system | |
Lin et al. | An optimized multi-Paxos protocol with centralized failover mechanism for cloud storage applications | |
US11954121B2 (en) | Selection apparatus, selection method, and program |
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 |