CN114896276A - 数据存储方法、装置、电子设备及分布式存储*** - Google Patents

数据存储方法、装置、电子设备及分布式存储*** Download PDF

Info

Publication number
CN114896276A
CN114896276A CN202210307614.9A CN202210307614A CN114896276A CN 114896276 A CN114896276 A CN 114896276A CN 202210307614 A CN202210307614 A CN 202210307614A CN 114896276 A CN114896276 A CN 114896276A
Authority
CN
China
Prior art keywords
data
processed
stored
metadata information
storage
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
Application number
CN202210307614.9A
Other languages
English (en)
Inventor
张战防
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202210307614.9A priority Critical patent/CN114896276A/zh
Publication of CN114896276A publication Critical patent/CN114896276A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据库技术领域,具体涉及数据存储方法、装置、电子设备及分布式存储***,该方法应用于分布式存储***的计算节点,包括获取待处理数据以及待处理数据对应的元数据信息,所述元数据信息包括待处理数据需要写入的位置信息;将待处理数据写入内存并在内存中基于待处理数据以及元数据信息生成待存储数据;将待存储数据写入存储节点,以使得存储节点基于待存储数据中的元数据信息对待处理数据进行存储。将计算与存储分离,在计算节点中利用待处理数据以及元数据信息生成待存储数据,由于待存储数据是直接从内存进行网络传输,后续存储节点就可以直接在自身的内存中对待处理数据进行存储,避免了IO操作,提高了数据存储的效率。

Description

数据存储方法、装置、电子设备及分布式存储***
技术领域
本发明涉及数据库技术领域,具体涉及数据存储方法、装置、电子设备及分布式存储***。
背景技术
为了解决分布式存储***,例如大规模并行处理(Massive ParallelProcessing,简称为MPP)数据库的快速弹性收缩,以及资源的最大化利用,在分布式存储***领域引入了读写分离技术。以MPP数据库为例,当前的MPP读写分离多采用热数据存储在本地盘(Cache),冷数据或者说历史数据通过网络存储在公共存储服务器中的架构。
这种架构虽然可以解决快速弹性收缩的问题,但是由于数据的多次传输和IO消耗,导致数据库IO放大,最终严重影响数据库写入数据的性能。
发明内容
有鉴于此,本发明实施例提供了一种数据存储方法、装置、电子设备及分布式存储***,以解决数据存储的效率较低的问题。
根据第一方面,本发明实施例提供了一种数据存储方法,应用于分布式存储***的计算节点,所述方法包括:
获取待处理数据以及所述待处理数据对应的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
将所述待处理数据写入内存并在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据;
将所述待存储数据写入存储节点,以使得所述存储节点基于所述待存储数据中的元数据信息对所述待处理数据进行存储。
本发明实施例提供的数据存储方法,将计算与存储分离,并在计算节点中利用待处理数据以及元数据信息生成待存储数据,将待存储数据直接写入存储节点,由于待存储数据是直接从内存进行网络传输,避免了计算节点的本地写操作,后续存储节点就可以直接在自身的内存中对待处理数据进行存储,而无需再访问计算节点,避免了IO操作,提高了数据存储的效率。
结合第一方面,在第一方面第一实施方式中,所述在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据,包括:
在所述内存中将所述待处理数据与所述元数据信息进行拼接,生成所述待存储数据。
本发明实施例提供的数据存储方法,通过将待处理数据与元数据信息直接拼接的方式生成待存储数据,该方式简单易实现。
结合第一方面或第一方面第一实施方式,在第一方面第二实施方式中,所述方法还包括:
对所述待存储数据进行广播,以使得所述计算节点的副本节点基于所述待存储数据中的元数据信息对所述待处理数据进行备份。
本发明实施例提供的数据存储方法,直接将待存储数据进行广播,由于带存储数据中包括有待处理数据,后续副本节点直接利用接收到的待存储数据就可以实现对待处理数据的备份,而无需再与计算节点进行IO操作,减少了IO操作的次数,提高了数据备份的效率。
根据第二方面,本发明实施例还提供了一种数据存储方法,应用于分布式存储***的存储节点,所述方法包括:
接收计算节点发送的待存储数据,所述待存储数据包括待处理数据以及所述待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
对所述待存储数据进行解析,确定所述元数据信息以及所述待处理数据;
基于所述元数据信息对所述待处理数据进行存储。
本发明实施例提供的数据存储方法,由于待存储数据中包括有待处理数据,对于存储节点而言直接利用接收到的待存储数据即可得到待处理数据,无需与计算节点进行IO通信,提高了数据存储的效率。
结合第二方面,在第二方面第一实施方式中,所述基于所述元数据信息对所述待处理数据进行存储,包括:
基于所述元数据信息以及所述待处理数据生成所述待处理数据对应的数据页;
对所述数据页以及所述待处理数据进行存储。
本发明实施例提供的数据存储方法,由于数据页是在计算节点而并非是在存储节点中生成的,后续在利用数据页进行数据查询时,直接在存储节点中即可进行处理,而无需访问计算节点,提高了数据查询的效率。
根据第三方面,本发明实施例还提供了一种数据存储装置,应用于分布式存储***的计算节点,所述装置包括:
第一获取模块,用于获取待处理数据以及所述待处理数据对应的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
第一写入模块,用于将所述待处理数据写入内存并在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据;
第二写入模块,用于将所述待存储数据写入存储节点,以使得所述存储节点基于所述待存储数据中的元数据信息对所述待处理数据进行存储。
根据第四方面,本发明实施例还提供了一种分布式存储***的数据存储装置,应用于存储节点,所述装置包括:
接收模块,用于接收计算节点发送的待存储数据,所述待存储数据包括待处理数据以及所述待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
解析模块,用于对所述待存储数据进行解析,确定所述元数据信息以及所述待处理数据;
存储模块,用于基于所述元数据信息对所述待处理数据进行存储。
根据第五方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式,或执行第二方面或者第二方面的任意一种实施方式中所述的数据存储方法。
根据第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式,或执行第二方面或者第二方面的任意一种实施方式中所述的数据存储方法。
根据第七方面,本发明实施例还提供了一种分布式存储***,包括:
计算节点,用于执行第一方面或者第一方面的任意一种实施方式所述的数据存储方法;
存储节点,与所述计算节点连接,用于执行第二方面或者第二方面的任意一种实施方式所述的数据存储方法。
需要说明的是,本发明实施例提供的数据存储装置、电子设备、计算机可读存储介质以及分布式存储***的相应有益效果,请参见上文数据存储方法对应有益效果的描述,在此不再赘述。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了数据存储的示意图;
图2是根据本发明实施例的分布式存储***的结构示意图;
图3是根据本发明实施例的数据存储方法的流程图;
图4是根据本发明实施例的待存储数据的结构图;
图5是根据本发明实施例的数据存储方法的流程图;
图6是根据本发明实施例的数据存储方法的流程图;
图7是根据本发明实施例的数据存储的示意图;
图8是根据本发明实施例的数据存储装置的结构框图;
图9是根据本发明实施例的数据存储装置的结构框图;
图10是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于分布式存储***而言,通过将计算资源和存储资源分离的方式来优化数据库的可伸缩性。在该模式下,数据存储在一个公共存储区,节点上的本地存储只作为缓存部分常用数据以加快查询,因而容易实现对节点的增加与删除。以MPP数据库为例,数据在进行存储时,首先数据会被分段,然后进入到不同节点的缓存(Depot)中,数据会在不同节点之间传递,以传递到那些订阅这些分段的节点,并将各个节点的分段数据刷入公共存储区,然后提交事务存储。其中,Depot位于计算节点,其存储经常查询的数据副本及该节点所订阅分段的目录的一部分;公共存储区(Communal Storage),用于存储数据库中的完整数据,并将该数据在数据库节点之间共享。
上述数据存储过程中,数据先经过计算节点的Depot,然后经过数据库的加工之后,存储到本地的磁盘中,然后再传输到共享存储。这个过程中出现多次IO操作,具体如图1所示:
(1)首先,数据写入的SQL命令进入执行引擎(Execution Engine)之后,会进行一些必要的检查,检查的过程中并不会涉及到磁盘的写入;
(2)检查完毕之后,存储引擎(Storage Engine)开始进行数据的写入,在这个过程中,数据写入绕过本地磁盘缓存(Depot)直接将数据写入到远程的共享存储中,此时存在一次网络IO和共享存储的写IO操作;
(3)在数据写入到共享存储的同时,元数据信息(Metadata)也会写入到本地磁盘缓存(Depot),用来防止断电等异常导致的元数据信息丢失,其中元数据主要记录事务类型等相关信息,此时存在一次本地写IO操作;
(4)为了保证副本节点(Replicate node)能读取到最新***的数据,需要将元数据信息(Metadata)进行广播,通知副本节点更新磁盘缓存(Depot)中的数据,此时存在一次网络IO操作;
(5)副本节点在读取到元数据信息之后,会到公共存储中将新***的数据进行重新获取,此时存在一次网络IO和共享存储的读IO操作。
针对以上流程,当数据写入过程中,(1)、(2)、(3)和(4)是同步进行的,需要四个步骤都完全满足后,该写入任务才算真正结束,所以数据存储总的延时等于以上四个步骤总的时间相加。因此,该数据存储方法存在多次IO处理问题,导致数据存储效率较低。
进一步地,如图1所示,副本节点需要在接收到元数据信息之后,再到远程的公共存储进行读取,才能获取到最新的数据,导致副本节点获取数据较慢。
基于此,为解决存在多次IO处理问题导致数据存储效率较低的问题,本发明实施例提供了一种数据存储方法,应用在计算节点,通过在计算节点的内存中利用元数据信息以及待处理数据生成待存储数据,将待存储数据写入存储节点中,存储节点就可以直接利用该待存储数据对待处理数据进行存储,能够避免多次IO操作。具体过程将在下文中进行详细描述。
进一步地,为了解决副本节点获取数据较慢的问题,本发明实施例提供的数据存储方法,应用在计算节点,该计算节点通过广播待存储数据,由于待存储数据中包括有待处理数据。后续副本节点在接收到待存储数据之后,就可以直接对待处理数据进行备份而无需再与计算节点进行IO操作,提高了副本节点获取数据的速度。
本发明实施例还提供了一种分布式存储***,如图2所示,该***包括计算节点10与存储节点20,其中,该分布式存储***中所包括的计算节点10与存储节点20的具体数量在此对其并不做任何限定,具体根据实际需求进行设置即可。对于计算节点10用于执行本发明实施例中所述的数据存储方法,主要是基于待处理数据与元数据信息生成待存储数据,并将待存储数据写入存储节点20;存储节点20通过执行本发明实施例中对应的数据存储方法,主要用于对接收到的待存储数据进行存储。
对于计算节点与存储节点而言,相应的数据存储方法将在下文中进行详细描述。
根据本发明实施例,提供了一种数据存储方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据存储方法,可用于上述分布式存储***的计算节点,图3是根据本发明实施例的数据存储方法的流程图,如图3所示,该流程包括如下步骤:
S11,获取待处理数据以及待处理数据对应的元数据信息。
其中,所述元数据信息包括所述待处理数据需要写入的位置信息。
对于计算节点而言,其所获取到的待处理数据可以是其他设备发送至计算节点的,或者也可以是计算节点通过其他计算处理得到的,等等。在此对待处理数据的获取方式并不做任何限定,具体根据实际需求进行设置即可。
元数据信息包括待处理数据需要写入的位置信息,例如,表示待处理数据的事务类型以及存储信息等等。
S12,将待处理数据写入内存并在内存中基于待处理数据以及元数据信息生成待存储数据。
计算节点在获取到待处理数据之后,将其写入内存,例如,计算节点利用存储引擎将待处理数据写入缓存池。同时,计算阶段在内存中利用待处理数据与元数据信息生成待存储数据。其中,待存储数据可以是待处理数据与元数据信息拼接而成,可以是待处理数据与元数据信息相互融合而成,等等,在此对其并不做任何限定,只需保证待存储数据同时包括有待处理数据及其元数据信息即可。
例如,如图4所示,待存储数据包括元数据信息以及待处理数据,其中,元数据信息包括Type、Space ID以及Page Num。具体地,Type:主要是记录事务的类型;Space ID:表示表空间的ID信息;Page Num:表示数据页的偏移量信息。
由于在之前的元数据信息中没有包含数据信息,因此,在本实施例中将待处理数据与元数据信息进行组合,形成待存储数据,又可以称之为数据库重写日志(Redo log)。需要说明的是,此处的数据库重写日志是重新创建了一种日志,而并不是数据库自身所包含的重做日志,该数据库重写日志里面包含了需要传输的数据。
S13,将待存储数据写入存储节点,以使得存储节点基于待存储数据中的元数据信息对待处理数据进行存储。
计算节点将得到的待存储数据写入到存储节点中,由于待存储数据包括待处理数据与元数据信息,那么后续存储节点就可以从待存储数据中解析出待处理数据并对待处理数据进行存储。例如,存储节点基于元数据信息生成待处理数据的数据页,再对数据页以及待处理数据进行存储。
在图1所述的数据存储过程中,存储与计算分离,数据库元数据以及数据页的生成是在计算节点完成的。由于数据页的生成和传输会导致磁盘IO和网络IO,基于此,在本发明实施例中,将利用所生成的待存储数据将待处理数据直接发送至存储节点,将利用待存储数据生成数据页的流程放到存储节点中,从而降低IO消耗。
本实施例提供的数据存储方法,将计算与存储分离,并在计算节点中利用待处理数据以及元数据信息生成待存储数据,将待存储数据直接写入存储节点,由于待存储数据是直接从内存进行网络传输,避免了计算节点的本地写操作,后续存储节点就可以直接在自身的内存中对待处理数据进行存储,而无需再访问计算节点,避免了IO操作,提高了数据存储的效率。
在本实施例中提供了一种数据存储方法,可用于上述分布式存储***的计算节点,图5是根据本发明实施例的数据存储方法的流程图,如图5所示,该流程包括如下步骤:
S21,获取待处理数据以及待处理数据对应的元数据信息。
其中,所述元数据信息包括所述待处理数据需要写入的位置信息。
详细请参见图3所示实施例的S11,在此不再赘述。
S22,将待处理数据写入内存并在内存中基于待处理数据以及元数据信息生成待存储数据。
计算节点在内存中将待处理数据与元数据信息进行拼接,生成待存储数据。即,将待处理数据最接拼接到元数据信息之后,形成待存储数据。通过将待处理数据与元数据信息直接拼接的方式生成待存储数据,该方式简单易实现。
S23,将待存储数据写入存储节点,以使得存储节点基于待存储数据中的元数据信息对待处理数据进行存储。
详细请参见图3所示实施例的S13,在此不再赘述。
S24,对待存储数据进行广播,以使得计算节点的副本节点基于待存储数据中的元数据信息对待处理数据进行备份。
计算节点在将待存储数据写入存储节点之后,对待存储数据进行广播,以实现对待存储数据中的待处理数据的备份。对于待处理数据的备份是利用计算节点的副本节点实现的,而对于副本节点在接收到待存储数据之后,对其进行解析得到元数据信息,再利用元数据信息对待处理数据进行备份。
对于副本节点的定义是事先在进行***配置时设置的,具体根据实际需求进行设置。
本实施例提供的数据存储方法,直接将待存储数据进行广播,由于带存储数据中包括有待处理数据,后续副本节点直接利用接收到的待存储数据就可以实现对待处理数据的备份,而无需再与计算节点进行IO操作,减少了IO操作的次数,提高了数据备份的效率。
在本实施例中提供了一种数据存储方法,可用于上述分布式存储***的存储节点,图6是根据本发明实施例的数据存储方法的流程图,如图6所示,该流程包括如下步骤:
S31,接收计算节点发送的待存储数据。
其中,所述待存储数据包括待处理数据以及待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息。
关于待存储数据的形成方式,请参见上文所示,在此不再赘述。
对于存储节点而言,存储节点接收计算节点生成的待存储数据,用于对该待存储数据进行存储。
S32,对待存储数据进行解析,确定元数据信息以及待处理数据。
如上文所述,待存储数据包括元数据信息以及待处理数据,存储节点通过对待存储数据进行解析就能够得到元数据信息以及待处理数据。例如,在待存储数据中,通过不同的字段对元数据信息以及待处理数据进行划分,从而对两者进行区分;或者,也可以是在待存储数据中通过不同的标识对两者进行区分,等等。
S33,基于元数据信息对待处理数据进行存储。
存储节点在解析得到元数据信息以及待处理数据之后,由于元数据信息表示待处理数据的属性以及待处理数据需要写入的地方,那么存储节点利用元数据信息即可对待处理数据进行存储。
本实施例提供的数据存储方法,由于待存储数据中包括有待处理数据,对于存储节点而言直接利用接收到的待存储数据即可得到待处理数据,无需与计算节点进行IO通信,提高了数据存储的效率。
在一些可选实施方式中,上述S33包括:
(1)基于元数据信息以及待处理数据生成待处理数据对应的数据页。
(2)对数据页以及待处理数据进行存储。
如上文所述,计算节点是用于生成待存储数据,并将待存储数据发送至存储节点;存储节点利用元数据信息以及待处理数据生成数据页,该数据页用于用来方便后续的数据查询,对于待处理数据而言,在存储节点中需要最终形成对应的数据块进行存储。
由于数据页是在计算节点而并非是在存储节点中生成的,后续在利用数据页进行数据查询时,直接在存储节点中即可进行处理,而无需访问计算节点,提高了数据查询的效率。
作为本实施例的一个具体应用实例,如图7所示,应用于图2所示的分布式存储***,该方法包括:
(1)首先,待处理数据写入的SQL命令进入执行引擎(Execution Engine)之后,会进行一些必要的检查,检查的过程中并不会涉及到磁盘的写入,此部分保持不变;
(2)检查完毕之后,存储引擎(Storage Engine)开始进行数据的写入,在这个过程中,数据仅仅写入到内存中,方便后续上层业务的查询,避免了一次网络IO和远程共享存储写IO操作;
(3)在数据写入到内存的同时,利用待处理数据以及元数据信息生成的待存储数据会直接写入到存储节点中,避免了本地写操作,存在一次网络IO和共享存储IO操作;
(4)为了保证副本节点(Replicate node)能读取到最新***的数据,需要将待存储数据进行广播,通知副本节点更新Depot(磁盘缓存)中的数据。此时存在一次网络IO操作;
(5)副本节点在读取到待存储数据之后,根据元数据信息直接将待处理数据重新应用到缓存中,此时不存在IO操作。
针对以上流程,当数据写入过程中,(1)、(2)和(3)是同步进行的,需要三个步骤都完全满足后,该写入任务才算真正结束,所以数据存储总的延时等于以上三个步骤总的时间相加。相比于图1所示的流程,可以看出本流程可以减少3次IO操作,并且避免的数据页的传输,从而减轻数据存储的延迟。
对于副本节点而言,副本节点在接收到待存储数据之后,即可将数据进行更新操作,而图1所示的操作则需要副本节点重写从共享存储中获取,与此相比,本方案极大地减少了数据同步所需要的时间。
本发明实施例提供的数据存储方法,通过构造待存储数据并将其下推到存储节点,利用存储节点进行数据页的构造,解决了数据库写放大的问题,达到提升数据库数据***效率的目的。进一步地,利用重写构造的待存储数据中包含待处理数据,副本节点仅需要将其重新应用即可,避免到存储节点进行二次查询的流程,加快数据同步效率。
在本实施例中还提供了一种数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据存储装置,应用于分布式存储***的计算节点,如图8所示,包括:
第一获取模块41,用于获取待处理数据以及所述待处理数据对应的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
第一写入模块42,用于将所述待处理数据写入内存并在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据;
第二写入模块43,用于将所述待存储数据写入存储节点,以使得所述存储节点基于所述待存储数据中的元数据信息对所述待处理数据进行存储。
在一些可选实施方式中,第一写入模块42包括:
拼接单元,用于在所述内存中将所述待处理数据与所述元数据信息进行拼接,生成所述待存储数据。
在一些可选实施方式中,该数据存储装置还包括:
广播模块,用于对所述待存储数据进行广播,以使得所述计算节点的副本节点基于所述待存储数据中的元数据信息对所述待处理数据进行备份。
本实施例提供一种数据存储装置,应用于分布式存储***的存储节点,如图9所示,包括:
接收模块51,用于接收计算节点发送的待存储数据,所述待存储数据包括待处理数据以及所述待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
解析模块52,用于对所述待存储数据进行解析,确定所述元数据信息以及所述待处理数据;
存储模块53,用于基于所述元数据信息对所述待处理数据进行存储。
在一些可选实施方式中,存储模块53包括:
生成单元,用于基于所述元数据信息以及所述待处理数据生成所述待处理数据对应的数据页;
存储单元,用于对所述数据页以及所述待处理数据进行存储。
本实施例中的数据存储装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图8或图9所示的数据存储装置。
请参阅图10,图10是本发明可选实施例提供的一种电子设备的结构示意图,如图10所示,该电子设备可以包括:至少一个处理器601,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口603,存储器604,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,通信接口603可以包括显示屏(Display)、键盘(Keyboard),可选通信接口603还可以包括标准的有线接口、无线接口。存储器604可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储装置。其中处理器601可以结合图8或图9所描述的装置,存储器604中存储应用程序,且处理器601调用存储器604中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线602可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器604可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器604还可以包括上述种类的存储器的组合。
其中,处理器601可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器604还用于存储程序指令。处理器601可以调用程序指令,实现如本申请任一实施例中所示的数据存储方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据存储方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种数据存储方法,其特征在于,应用于分布式存储***中的计算节点,所述方法包括:
获取待处理数据以及所述待处理数据对应的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
将所述待处理数据写入内存并在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据;
将所述待存储数据写入存储节点,以使得所述存储节点基于所述待存储数据中的元数据信息对所述待处理数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据,包括:
在所述内存中将所述待处理数据与所述元数据信息进行拼接,生成所述待存储数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对所述待存储数据进行广播,以使得所述计算节点的副本节点基于所述待存储数据中的元数据信息对所述待处理数据进行备份。
4.一种数据存储方法,其特征在于,应用于分布式存储***中的存储节点,所述方法包括:
接收计算节点发送的待存储数据,所述待存储数据包括待处理数据以及所述待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
对所述待存储数据进行解析,确定所述元数据信息以及所述待处理数据;
基于所述元数据信息对所述待处理数据进行存储。
5.根据权利要求4所述的方法,其特征在于,所述基于所述元数据信息对所述待处理数据进行存储,包括:
基于所述元数据信息以及所述待处理数据生成所述待处理数据对应的数据页;
对所述数据页以及所述待处理数据进行存储。
6.一种数据存储装置,其特征在于,应用于分布式存储***中的计算节点,所述装置包括:
第一获取模块,用于获取待处理数据以及所述待处理数据对应的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
第一写入模块,用于将所述待处理数据写入内存并在所述内存中基于所述待处理数据以及所述元数据信息生成待存储数据;
第二写入模块,用于将所述待存储数据写入存储节点,以使得所述存储节点基于所述待存储数据中的元数据信息对所述待处理数据进行存储。
7.一种数据存储装置,其特征在于,应用于分布式存储***中的存储节点,所述装置包括:
接收模块,用于接收计算节点发送的待存储数据,所述待存储数据包括待处理数据以及所述待处理数据的元数据信息,所述元数据信息包括所述待处理数据需要写入的位置信息;
解析模块,用于对所述待存储数据进行解析,确定所述元数据信息以及所述待处理数据;
存储模块,用于基于所述元数据信息对所述待处理数据进行存储。
8.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-3中任一项,或者权利要求4或5所述的数据存储方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-3中任一项,或者权利要求4或5所述的数据存储方法。
10.一种分布式存储***,其特征在于,包括:
计算节点,用于执行权利要求1-3中任一项所述的数据存储方法;
存储节点,与所述计算节点连接,用于执行权利要求4或5所述的数据存储方法。
CN202210307614.9A 2022-03-25 2022-03-25 数据存储方法、装置、电子设备及分布式存储*** Pending CN114896276A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210307614.9A CN114896276A (zh) 2022-03-25 2022-03-25 数据存储方法、装置、电子设备及分布式存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210307614.9A CN114896276A (zh) 2022-03-25 2022-03-25 数据存储方法、装置、电子设备及分布式存储***

Publications (1)

Publication Number Publication Date
CN114896276A true CN114896276A (zh) 2022-08-12

Family

ID=82715760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210307614.9A Pending CN114896276A (zh) 2022-03-25 2022-03-25 数据存储方法、装置、电子设备及分布式存储***

Country Status (1)

Country Link
CN (1) CN114896276A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115098045A (zh) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 一种数据存储***及网络数据读取和写入方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115098045A (zh) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 一种数据存储***及网络数据读取和写入方法
CN115098045B (zh) * 2022-08-23 2022-11-25 成都止观互娱科技有限公司 一种数据存储***及网络数据读取和写入方法

Similar Documents

Publication Publication Date Title
CN110442560B (zh) 一种日志重演方法、装置、服务器和存储介质
US8751441B2 (en) System, method, and computer program product for determining SQL replication process
CN109542682B (zh) 一种数据备份方法、装置、设备和存储介质
CN111651519B (zh) 数据同步方法、数据同步装置、电子设备及存储介质
CN108628885B (zh) 一种数据同步方法、装置及存储设备
CN111414362A (zh) 数据读取方法、装置、设备及存储介质
CN112948409A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113760846A (zh) 一种数据处理方法和装置
CN110019063B (zh) 计算节点数据容灾回放的方法、终端设备及存储介质
CN113806301A (zh) 数据同步方法、装置、服务器及存储介质
CN115858488A (zh) 基于数据治理的平行迁移方法、装置及可读介质
CN114896276A (zh) 数据存储方法、装置、电子设备及分布式存储***
CN109542860B (zh) 基于hdfs的业务数据管理方法、终端设备
CN109388651B (zh) 一种数据处理方法和装置
CN111753141B (zh) 一种数据管理方法及相关设备
US7949632B2 (en) Database-rearranging program, database-rearranging method, and database-rearranging apparatus
CN114064725A (zh) 一种数据处理方法、装置、设备及存储介质
CN114116723A (zh) 快照处理方法、装置及电子设备
CN109740027B (zh) 数据交换方法、装置、服务器和存储介质
CN115114258A (zh) 数据复制方法、装置、电子设备及计算机存储介质
CN113536047A (zh) 一种图数据库数据删除方法、***、电子设备及存储介质
CN113220237A (zh) 一种分布式存储方法、装置、设备及存储介质
CN112527841A (zh) 一种流数据合并处理方法及装置
CN112559457A (zh) 数据访问方法及装置
CN117422556B (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