CN116226139A - 一种适用大规模海洋数据的分布式存储和处理方法及系统 - Google Patents
一种适用大规模海洋数据的分布式存储和处理方法及系统 Download PDFInfo
- Publication number
- CN116226139A CN116226139A CN202310513271.6A CN202310513271A CN116226139A CN 116226139 A CN116226139 A CN 116226139A CN 202310513271 A CN202310513271 A CN 202310513271A CN 116226139 A CN116226139 A CN 116226139A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- storage
- nodes
- distributed
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 26
- 239000012634 fragment Substances 0.000 claims description 21
- 238000000926 separation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 abstract description 10
- 238000013500 data storage Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000475481 Nebula Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 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/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/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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及海洋数据存储技术领域,特别涉及一种适用大规模海洋数据的分布式存储和处理方法及系统。本申请首先通过分片数据的划分,将大规模图数据划分为多片数据,可以进行并行处理;然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
Description
技术领域
本申请涉及海洋数据处理技术领域,尤其涉及一种适用大规模海洋数据的分布式存储和处理方法及系统。
背景技术
近期随着海洋大数据的发展,存储并分析海洋和海洋环境数据成为我们了解地球的重要途径,从多种来源(例如气象卫星,路基气象站,气象热气球,各类船只,浮标,水下传感器等)收集到的海洋时空数据达到了 PB 级别,如何存储并利用这些海洋时空大数据是当前亟需解决的问题。目前只有极少对海洋时空数据进行存储和处理的系统。
海洋时空数据管理从节点数量方面可以分为两类,分别是单节点储存和处理模型和分布式多节点储存和处理模型,单节点处理模型受限于I/O瓶颈,缺乏并行计算能力且难以进行水平扩展,随着海洋时空数据量的增加其性能将不断降低,难以处理PB级别的海洋时空数据,多节点数据处理是指使用分布式计算技术处理数据,其对于解决某一个具体的问题时,各部分能够实现高效、统一的任务指令,随时随地都能与用户进行交互,既提高了系统性能,又提升了用户体验,但目前的分布式存储技术在存储方面主要利用键值存储引擎存储海洋数据,由于海洋时空数据具有来源复杂,结构多样、质量不一的特征,现有的键值存储引擎仍然存在存储海洋时空数据性能不高的缺陷,在计算方面主要利用Raft节点模型进行一致性问题的优化,但受限于Raft算法,在高读写压力的情况下,容易导致性能瓶颈。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例的主要目的在于提出一种适用大规模海洋数据的分布式存储和处理方法及系统,首先能够对图数据并行处理,对键值存储引擎优化,使得分布式图数据库能高效的存储图数据,最后通过对Raft一致性算法优化,解决高IO操作下存在的问题,来保证副本依旧保持强一致。
为实现上述目的,本公开实施例的第一方面提出了一种适用大规模海洋数据的分布式存储和处理方法,所述适用大规模海洋数据的分布式存储和处理方法包括:
获取海洋数据,并将所述海洋数据转换成键值对形式的图数据;
根据分布式服务器集群的规模和所述图数据的规模,将所述图数据划分为多个分片数据;
将每个所述分片数据分配至所述分布式服务器集群中对应服务器节点中,以使得所述服务器节点将得到的所述分片数据存储于图数据库的键值存储引擎中,其中,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据,所述服务器节点采用如下方式优化所述键值存储引擎的Raft节点模型:
当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本。
在一些实施例中,所述当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本,包括:
当所述分片数据的写入压力大于第一设定值且跟踪节点数量大于第一数量,则领导节点创建第一快照,将所述第一快照发送给新引入的秘书节点,以使秘书节点辅助领导节点将日志复制于跟踪节点中;当读取压力大于第二设定值且跟踪节点数量小于第二数量,则领导节点创建第二快照,将所述第二快照发送给新引入的观察节点,以使观察节点辅助领导节点进行数据的读取。
在一些实施例中,所述分片数据和所述服务器节点之间分配采用随机映射。
在一些实施例中,采用静态哈希将所述图数据划分为多个分片数据。
在一些实施例中,通过如下公式将每一个所述分片数据分配至所述分布式服务器集群中任意一个服务器节点中,包括:
在一些实施例中,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据,包括:
获取所述分片数据中的数据量大小,当数据的数据量大于阈值,则将数据的value存储于log日志当中,将key存储于LSM-Tree中;当数据量小于所述阈值,则将数据的value和key存储于LSM-Tree中。
为实现上述目的,本公开实施例的第二方面提出了一种适用大规模海洋数据的分布式存储和处理系统,所述适用大规模海洋数据的存储和处理系统包括:
客户端模块,用于获取海洋数据、接收指令或发出命令;
服务器节点,包括Graph模块和Storage模块,所述Graph模块用于将所述海洋数据转换成键值对形式的图数据,根据分布式服务器集群的规模和所述图数据的规模,将所述图数据划分为多个分片数据;所述Storage模块包括键值存储引擎,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据;所述服务器节点采用如下方式优化所述键值存储引擎的Raft节点模型:
当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本。
在一些实施例中,所述服务器节点还包括:Meta模块,所述Meta模块中存储了用户的账号和权限信息、存储和管理分片的位置信息、保证分片的负载均衡、管理作业任务。
为实现上述目的,本公开实施例的第三方面提出了一种电子设备,包括至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述计算机程序被存储在所述存储器中,处理器执行所述至少一个计算机程序以实现:
如第一方面实施例任一项所述的适用大规模海洋数据的分布式存储和处理方法。
为实现上述目的,本公开实施例的第四方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行:
如第一方面实施例任一项所述的适用大规模海洋数据的分布式存储和处理方法。
本申请实施例第一方面提供了一种适用大规模海洋数据的分布式存储和处理方法,首先通过分片数据的划分,将大规模图数据划分为多片数据,可以进行并行处理;然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
可以理解的是,上述第二方面至第四方面与相关技术相比存在的有益效果与上述第一方面与相关技术相比存在的有益效果相同,可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的一种适用大规模海洋数据的分布式存储和处理方法的流程示意图;
图2是本申请一个实施例提供的静态哈希划分图数据示意图;
图3是本申请一个实施例提供的键值分离的方法来键值存储引擎RocksDB的示意图;
图4是本申请一个实施例提供的Secretary操作的示意图;
图5是本申请一个实施例提供的Observer操作的示意图;
图6是本申请一个实施例提供的一种适用大规模海洋数据的分布式存储和处理系统的结构示意图;
图7是本申请一个实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在介绍本申请实施例之前,对本申请的部分技术概念进行如下说明:
图数据库,用于存储图数据的数据库,图数据库包括计算部分和存储部分,存储部分包括Meta存储服务和Store存储服务,Meta存储服务主要负责存储了用户的账号和权限信息、存储和管理分片的位置信息、保证分片的负载均衡、管理作业任务等操作,Store存储服务包括键值存储引擎(RocksDB),键值存储引擎内包括LSM-Tree结构。
Raft节点模型,Raft 采用多个副本之间竞选的方式,赢得“超过半数”副本投票的副本成为Leader(领导节点),由Leader 代表所有副本对外提供服务;其他Follower(跟随节点)作为备份。当该Leader 出现异常后(通信故障、运维命令等),其余Follower 进行新一轮选举,投票出一个新的Leader。Leader和Follower之间通过心跳的方式相互探测是否存活,并以Raft-wal的方式写入硬盘,超过多个心跳仍无响应的副本会被认为发生故障。
海洋时空数据管理从节点数量方面可以分为两类,分别是单节点储存和处理模型和分布式多节点储存和处理模型。
(1)传统关系型数据库管理系统(Relational Database Management System:RDBMS)是典型的单节点处理模型。虽然一些传统RDBMS的支持时空数据储存,但这些单节点的数据服务受限于I/O瓶颈,缺乏并行计算能力且难以进行水平扩展,随着海洋时空数据量的增加其性能将不断降低,难以处理PB级别的海洋时空数据。除此之外,海洋时空数据具有来源复杂,结构多样、质量不一的特征,难以在时空RDBMS中对其进行建模。即使传统RDBMS可以通过数据分片进行水平扩展,但还是难以使用以表格式储存数据来支持海洋数据的分布式储存和处理。
(2)多节点数据处理是指使用分布式计算技术处理数据,其对于解决某一个具体的问题时,各部分能够实现高效、统一的任务指令,随时随地都能与用户进行交互,既提高了系统性能,又提升了用户体验。分布式多节点数据处理方法在1998年由CarloStrozzi提出,称之为NoSQL。目前支持时空数据储存和处理的NoSQL有Redis、MongoDB、Couchbase、Nebula、TigerGraph、Cassandra等。
但目前的分布式存储技术在存储方面主要利用键值存储引擎存储海洋数据,由于海洋时空数据具有来源复杂,结构多样、质量不一的特征,现有的键值存储引擎仍然存在存储海洋时空数据性能不高的缺陷,在计算方面主要利用Raft节点模型进行一致性问题的优化,但受限于Raft算法,在高读写压力的情况下,容易导致性能瓶颈。
请参照图1,图1是本申请一个实施例提供的一种适用大规模海洋数据的分布式存储和处理方法,应理解,本申请实施例的适用大规模海洋数据的分布式存储和处理方法包括但不限于步骤S101、S102以及S103,以下结合图1对步骤S101至步骤S103进行详细介绍:
步骤S101、获取海洋数据,并将海洋数据转换成键值对形式的图数据。
在步骤S101中,首先获取大规模海洋数据,然后根据所获取海洋数据的类型,对数据进行类型转换,图数据中的节点以键值对的形式保存,最终得到图数据。如:一个图数据,将点和边的信息存储为key,同时将点和边的属性信息存储在value。其中的点的value存储着海洋数据的位置、速度、高度等物理数值,边的value则存储着时间信息。具体可以通过键值对的形式,从CSV中直接读取或者需要通过一定的处理方法,将其处理成这种图数据的形式。
步骤S102、根据分布式服务器集群的规模和图数据的规模,将图数据划分为多个分片数据。
在步骤S102中,首先获取分布式服务器集群的规模,然后判断图数据规模,如果图数据规模不超过某个预先设定值,则说明图数据规模足够小,可考虑使用单个服务器存储全部图数据即可。如果无法在单个服务器上存储整个图数据,那么需要依据服务器节点规模先对图数据进行分片。
参照图2,在本申请的一些实施例中,采用静态哈希将图数据划分为多个分片数据,即首先需要根据图空间,手动设定分片数量M,对点id进行哈希计算,接着转化为int64的数字,然后对数字进行取模,然后加1。假设总共有服务器节点N个,分片数据与服务器节点之间的映射是随机的,不能假设任何两个分片位于同一服务器节点。
步骤S103、将每个分片数据分配至分布式服务器集群中对应服务器节点中,以使得服务器节点将得到的分片数据存储于图数据库的键值存储引擎中,其中,键值存储引擎采用LSM-Tree和log日志的键值分离方式存储分片数据,服务器节点采用如下方式优化键值存储引擎的Raft节点模型:
当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,其中,跟踪节点、秘书节点、观察节点和领导节点均为分片数据的副本。
在服务器节点中,主要通过图数据库对图数据进行存储和计算,在本实施例中,图数据库采用数据存储与数据处理分离的架构,即图数据库包括计算部分和存储部分,其中,计算部分通过Graph负责处理查询请求,包括解析查询语句、校验语句、生成执行计划以及按照执行计划执行四个大步骤,另外,对于需要分布存储的大规模图数据,也通过Graph进行划分操作。存储部分包括Meta存储部分和Store存储部分,其中Meta存储部分主要负责管理用户、分片情况和图空间等信息;Store存储部分主要负责具体图数据的存储,Store存储部分包括底层的键值存储引擎,图数据直接存储于键值存储引擎中。
参照图3,现阶段,图数据常常会存储在键值存储引擎中的一个LSM-Tree结构上,对于海洋数据而言,通过值会比键大,导致LSM-Tree的深度很深,使得其读写性能不高。于是为了提升读写性能,在本实施例中,采用键值分离的方法来优化其底层的键值存储引擎,即采用LSM-Tree和log日志的键值分离方式存储分片数据,使得分布式的图数据库能高效的存储图数据,极大地提高存储引擎性能。在本申请的一些实施例中,采用LSM-Tree和log日志的键值分离方式存储分片数据具体包括:获取分片数据中的数据量大小,当数据的数据量大于阈值,则将数据的value存储于log日志当中,将key存储于LSM-Tree中;当数据量小于阈值,则将数据的value和key存储于LSM-Tree中。
现阶段,在Store的分布式处理一致性问题中,通常是采用Raft一致性算法优化节点模型,虽然Raft算法能够提供数据的强一致性保护,但无法实现不可靠节点集群上高的数据服务可靠性。在本实施例中,服务器节点采用如下方式优化键值存储引擎的Raft节点模型:
当分片数据的写入压力大于第一设定值且跟踪节点数量大于第一数量,则领导节点创建第一快照,将第一快照发送给新引入的秘书节点,以使秘书节点辅助领导节点将日志复制于跟踪节点中;当读取压力大于第二设定值且跟踪节点数量小于第二数量,则领导节点创建第二快照,将第二快照发送给新引入的观察节点,以使观察节点辅助领导节点进行数据的读取。需要注意的是,第一数量、第二数量、第一设定值和第二设定值可以进行提前进行设定,这里不进行限定其数值。
在现阶段的Raft算法中,当分布式的图数据库的写入压力比较大且跟踪节点的数量比较多,领导节点的日志复制(Log Replication)将会成为整个系统的性能瓶颈,于是,参照图4,本实施例在该种情况下,领导节点创建一个快照(或指定一个跟踪节点),将其发送给新引入的秘书节点,用来分担领导节点的Log Replication的压力。在Raft算法中,当分布式的图数据库的读取压力比较大且跟踪节点的数量比较少,因为集群中的跟踪节点数量非常少,所以即使是将一部分的读取压力分担给跟踪节点,各个节点的IO压力也会很大,于是,参照图5,本实施例在该种情况下,领导节点创建一个快照(或指定一个跟踪节点),将其发送给新引入的观察节点来分读取压力。
本实施例提供的适用大规模海洋数据的分布式存储和处理方法至少具有如下有益效果:
本方法的关键在于解决在现有技术中,实现海洋数据大规模存储的同时,实现高通量的数据处理。本方法首先通过分片数据的划分,将大规模图数据划分为多片数据,可以进行并行处理;然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
参照图6,本申请的一个实施例,提供了一种适用大规模海洋数据的存储和处理系统,所述适用大规模海洋数据的存储和处理系统包括:
客户端模块,用于给用户进行输入海洋数据、读写指令和发出命令等操作。
服务器节点,包括:
Graph模块(图计算模块),主要用来处理查询请求,包括解析查询语句、校验语句、生成执行计划以及按照执行计划执行四个大步骤。此外,对于需要分布存储的大规模图数据,也通过此模块中的图数据划分单元进行划分操作。
Meta模块(元数据存储模块),Meta模块中存储用户账号和权限信息、存储和管理分片的位置信息、保证分片的负载均衡、管理作业任务等操作。
Storage模块(图数据存储模块),主要负责具体分片数据的存储,具体的图数据通过键值分离优化过的键值存储引擎来存储,不同服务器之间通过如下方式保证强一致性和高可用性:当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,其中,跟踪节点、秘书节点、观察节点和领导节点均为分片数据的副本。
需要注意的是,本实施例提供的系统与上述的方法是基于相同的发明构思,因此,上述的方法实施例相关内容同样适应于本系统实施例,此处并不再赘述。
本实施例提供的适用大规模海洋数据的分布式存储和处理系统至少具有如下有益效果:本系统首先通过分片数据的划分,可以将大规模图数据划分为多片数据,可以进行并行处理,然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,本系统所有数据副本依旧保持强一致。
参照图2至图6,为了便于理解,以下是本申请的一个实施例,提供了一种适用大规模海洋数据的分布式存储和处理方法,本方法包括如下步骤:
步骤S201、获取大规模的海洋数据和多个分布式服务器(数据存储服务器)的基本存储数据(如存储规模)。
步骤S202、将海洋数据进行类型转换,图数据中的节点以键值对的形式保存,得到由海洋数据转换的图数据。
步骤S203、使用了静态哈希的方法进行图数据划分:首先需要根据图空间,手动设定分片数量M,对点id进行哈希计算,接着转化为int64的数字,接着对数字进行取模,然后加1。分片与服务器节点之间的映射是随机的,不能假设任何两个分片位于同一服务器节点。
步骤S204、将得到的分片发送到其对应的服务器节点上,通过每一个服务器节点上的图数据库进行存储和处理。图数据库主要采用数据存储与数据处理分离的方法,是一种存储与计算分离的架构,主要包括Graph计算服务、Meta存储服务和Store存储服务,Graph计算服务主要负责计算,Meta存储服务主要负责管理用户、分片情况、图空间等信息,Store存储服务是具体的分片数据存储。
在Store存储中,采用键值分离的方法来优化其底层的键值存储引擎RocksDB。使用键值分离的方法,检测需要存储的数据的值大小,将值较小的数据存储在LSM-Tree中,将值较大的数据存储在log中,即可将值较大的数据分流,可以有效减少LSM-Tree的层数,从而极大提高存储引擎性能。
在Store存储的分布式处理一致性问题中,对Raft节点模型进行优化,在系统的读写压力变大时,会进行Secretary(秘书节点)和Observer(观察节点)的扩展操作,Secretary扩展操作指的是集群中的写压力比较大且Follower节点比较多,Leader的LogReplication会成为整个系统的一个性能瓶颈,Leader创建一个快照(或指定一个Follower),将其发送给新引入的Secretary,用来分担Leader的Log Replication压力。Observer扩展操作指的是在读压力比较大且Follower节点比较小,整个Raft的集群的IO压力会比较大,此时因为集群中的Follower数量非常少,所以即使是将一部分的读压力分担给Follower,各个节点的IO压力也会非常的大,此时可以由Leader创建一个快照(或指定一个 Follower),将其发送给新引入的Observer来分担读压力。
本申请的有益效果包括:
首先通过分片数据的划分,将大规模图数据划分为多片数据,可以进行并行处理;然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
本申请实施例还提供了一种电子设备,本电子设备包括:
至少一个存储器;
至少一个处理器;
至少一个程序;
程序被存储在存储器中,处理器执行至少一个程序以实现本公开实施上述的适用大规模海洋数据的分布式存储和处理方法。
该电子设备可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、车载电脑等任意智能终端。
本申请实施例的电子设备,用于执行上述适用大规模海洋数据的分布式存储和处理方法,首先通过分片数据的划分,可以将大规模图数据划分为多片数据,可以进行并行处理,然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
下面结合图7对本申请实施例的电子设备进行详细介绍。
如图7,图7示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器1600,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
存储器1700,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器1700可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1700中,并由处理器1600来调用执行本公开实施例的适用大规模海洋数据的分布式存储和处理方法。
输入/输出接口1800,用于实现信息输入及输出;
通信接口1900,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线2000,在设备的各个组件(例如处理器1600、存储器1700、输入/输出接口1800和通信接口1900)之间传输信息;
其中处理器1600、存储器1700、输入/输出接口1800和通信接口1900通过总线2000实现彼此之间在设备内部的通信连接。
本公开实施例还提供了一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述适用大规模海洋数据的分布式存储和处理方法。
本申请实施例的存储介质,用于执行上述适用大规模海洋数据的分布式存储和处理方法,首先通过分片数据的划分,可以将大规模图数据划分为多片数据,可以进行并行处理,然后再通过对键值存储引擎优化,使得分布式图数据库即能够高效的存储图数据,最后通过对Raft一致性算法优化,即当分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行分片数据的读写,解决高IO操作下存在的问题,从而保证其在高读写状态下,分布式服务器集群架构中所有数据副本依旧保持强一致。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序的介质
以上是对本申请实施例的较佳实施进行了具体说明,但本申请实施例并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请实施例精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请实施例权利要求所限定的范围内。
Claims (10)
1.一种适用大规模海洋数据的分布式存储和处理方法,其特征在于,所述适用大规模海洋数据的分布式存储和处理方法包括:
获取海洋数据,并将所述海洋数据转换成键值对形式的图数据;
根据分布式服务器集群的规模和所述图数据的规模,将所述图数据划分为多个分片数据;
将每个所述分片数据分配至所述分布式服务器集群中对应服务器节点中,以使得所述服务器节点将得到的所述分片数据存储于图数据库的键值存储引擎中,其中,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据,所述服务器节点采用如下方式优化所述键值存储引擎的Raft节点模型:
当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本。
2.根据权利要求1所述的适用大规模海洋数据的分布式存储和处理方法,其特征在于,所述当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本,包括:
当所述分片数据的写入压力大于第一设定值且跟踪节点数量大于第一数量,则领导节点创建第一快照,将所述第一快照发送给新引入的秘书节点,以使秘书节点辅助领导节点将日志复制于跟踪节点中;当读取压力大于第二设定值且跟踪节点数量小于第二数量,则领导节点创建第二快照,将所述第二快照发送给新引入的观察节点,以使观察节点辅助领导节点进行数据的读取。
3.根据权利要求2所述的适用大规模海洋数据的分布式存储和处理方法,其特征在于,所述分片数据和所述服务器节点之间分配采用随机映射。
4.根据权利要求3所述的适用大规模海洋数据的分布式存储和处理方法,其特征在于,采用静态哈希将所述图数据划分为多个分片数据。
6.根据权利要求2所述的适用大规模海洋数据的分布式存储和处理方法,其特征在于,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据,包括:
获取所述分片数据中的数据量大小,当数据的数据量大于阈值,则将数据的value存储于log日志当中,将key存储于LSM-Tree中;当数据量小于所述阈值,则将数据的value和key存储于LSM-Tree中。
7.一种适用大规模海洋数据的分布式存储和处理系统,其特征在于,所述适用大规模海洋数据的存储和处理系统包括:
客户端模块,用于获取海洋数据、接收指令或发出命令;
服务器节点,包括Graph模块和Storage模块,所述Graph模块用于将所述海洋数据转换成键值对形式的图数据,根据分布式服务器集群的规模和所述图数据的规模,将所述图数据划分为多个分片数据;所述Storage模块包括键值存储引擎,所述键值存储引擎采用LSM-Tree和log日志的键值分离方式存储所述分片数据;所述服务器节点采用如下方式优化所述键值存储引擎的Raft节点模型:
当所述分片数据的读写压力大于设定值且跟踪节点过多或过少,引入秘书节点或观察节点辅助领导节点进行所述分片数据的读写,其中,所述跟踪节点、秘书节点、观察节点和领导节点均为所述分片数据的副本。
8.根据权利要求7所述的适用大规模海洋数据的分布式存储和处理系统,其特征在于,所述服务器节点还包括:Meta模块,所述Meta模块中存储了用户的账号和权限信息、存储和管理分片的位置信息、保证分片的负载均衡、管理作业任务。
9.一种电子设备,其特征在于,包括:
至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述计算机程序被存储在所述存储器中,处理器执行所述至少一个计算机程序以实现:
如权利要求1至6任一项所述的适用大规模海洋数据的分布式存储和处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行:
如权利要求1至6任一项所述的适用大规模海洋数据的分布式存储和处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310513271.6A CN116226139B (zh) | 2023-05-09 | 2023-05-09 | 一种适用大规模海洋数据的分布式存储和处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310513271.6A CN116226139B (zh) | 2023-05-09 | 2023-05-09 | 一种适用大规模海洋数据的分布式存储和处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116226139A true CN116226139A (zh) | 2023-06-06 |
CN116226139B CN116226139B (zh) | 2023-07-28 |
Family
ID=86587710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310513271.6A Active CN116226139B (zh) | 2023-05-09 | 2023-05-09 | 一种适用大规模海洋数据的分布式存储和处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226139B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991332A (zh) * | 2023-09-26 | 2023-11-03 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112965945A (zh) * | 2019-12-13 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN113742254A (zh) * | 2021-01-19 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 内存碎片治理方法、装置和系统 |
CN115168505A (zh) * | 2022-06-21 | 2022-10-11 | 中国人民解放军国防科技大学 | 一种用于海洋时空数据的管理系统以及方法 |
-
2023
- 2023-05-09 CN CN202310513271.6A patent/CN116226139B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965945A (zh) * | 2019-12-13 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN113742254A (zh) * | 2021-01-19 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 内存碎片治理方法、装置和系统 |
CN115168505A (zh) * | 2022-06-21 | 2022-10-11 | 中国人民解放军国防科技大学 | 一种用于海洋时空数据的管理系统以及方法 |
Non-Patent Citations (2)
Title |
---|
XIAOYONG LI等: "Distributed processing of spatiotemporal ocean data:a survey", 《WORLD WIDE WEB》 * |
谭凯中等: "面向过程的海洋时空数据分布式存储与并行检索", 《万方》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991332A (zh) * | 2023-09-26 | 2023-11-03 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
CN116991332B (zh) * | 2023-09-26 | 2023-12-15 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116226139B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522673B2 (en) | Method and device for blockchain full sharding based on a P2P storage network and a multi-layer architecture | |
CN111586091B (zh) | 一种实现算力组配的边缘计算网关系统 | |
US11676066B2 (en) | Parallel model deployment for artificial intelligence using a primary storage system | |
US11429566B2 (en) | Approach for a controllable trade-off between cost and availability of indexed data in a cloud log aggregation solution such as splunk or sumo | |
Wang et al. | Research and implementation on spatial data storage and operation based on Hadoop platform | |
CN116226139B (zh) | 一种适用大规模海洋数据的分布式存储和处理方法及系统 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN113485962B (zh) | 日志文件的存储方法、装置、设备和存储介质 | |
CN113826084A (zh) | 流媒体数据的高效进程外重组 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
CN111526188A (zh) | 基于Spark Streaming结合Kafka确保数据零丢失的系统和方法 | |
CN113051102A (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN107566341B (zh) | 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统 | |
CN112181724B (zh) | 大数据容灾方法、装置和电子设备 | |
CN103577604B (zh) | 一种用于Hadoop分布式环境的图像索引结构 | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
US11048756B2 (en) | Inserting datasets into database systems utilizing hierarchical value lists | |
CN108121807B (zh) | Hadoop环境下多维索引结构OBF-Index的实现方法 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
US20230113180A1 (en) | Methods and systems for expanding gpu memory footprint based on hybrid-memory | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
Tripathi et al. | A comparative analysis of conventional hadoop with proposed cloud enabled hadoop framework for spatial big data processing | |
CN115168505A (zh) | 一种用于海洋时空数据的管理系统以及方法 | |
US9916372B1 (en) | Folded-hashtable synchronization mechanism |
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 |