CN112100146A - 一种高效的纠删分布式存储写入方法、系统、介质及终端 - Google Patents
一种高效的纠删分布式存储写入方法、系统、介质及终端 Download PDFInfo
- Publication number
- CN112100146A CN112100146A CN202010993516.6A CN202010993516A CN112100146A CN 112100146 A CN112100146 A CN 112100146A CN 202010993516 A CN202010993516 A CN 202010993516A CN 112100146 A CN112100146 A CN 112100146A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- block
- connection
- writing
- 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
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/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种高效的纠删分布式存储写入方法、系统、介质及终端,包括:通过客户端向元数据服务器发起第一请求信息,元数据服务器根据第一请求信息,在数据节点创建数据块对应的元数据,并将对应的block ID信息反馈至客户端;客户端根据block ID信息,向数据节点端发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;根据数据块操作句柄,将待存储数据写入数据节点,并关闭写入的数据块;本发明通过在初始化时建立管理socket链接池的线程,能够保证socket链接的最大利用率,减少服务端的线程数和链接数,减少了线程的上下文切换,提高了CPU的利用率,降低了网络压力,降低系统开销,提高了服务吞吐量。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种高效的纠删分布式存储写入方法、系统、介质及终端。
背景技术
在大数据环境下,元数据的体量也非常大,元数据的存取性能是整个分布式文件系统性能的关键,分布式元数据管理架构通过将元数据分散在多个结点上.解决了元数据服务器的性能瓶颈等问题。
但是,在传统的IO模型中,在客户端写入IPC视频文件时,一种方式是采用一线程一socket链接的模式,会造成并发链接过多,线程上下文切换频繁,导致CPU利用率低;另一种是采用x线程处理y个链接(x<y),减少服务端的线程数,但是在写入并发量高时,较少的x线程数却无法及时处理完y个链接的写入业务,导致视频文件在传输中丢失,。此外,在服务端一般采用seek后写入视频文件,在多线程写入同一磁盘还需要加锁保护,同样会带来非常大的系统开销。
发明内容
鉴于以上所述现有技术的缺点,本发明提供一种高效的纠删分布式存储写入方法、系统、介质及终端,以解决上述技术问题。
本发明提供的高效的纠删分布式存储写入方法,包括:
通过客户端向元数据服务器发起第一请求信息,所述第一请求信息包括用于写入数据节点端的每个数据块的block ID信息;
元数据服务器根据所述第一请求信息,在数据节点创建数据块对应的元数据,并将对应的block ID信息反馈至客户端;
客户端根据所述block ID信息,向数据节点端发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
根据所述数据块操作句柄,将待存储数据写入数据节点,并关闭写入的数据块。
可选的,将待存储数据分成n份原始数据,并通过纠删算法获取m份数据;
所述第一请求信息包括用于写入n+m份数据的数据节点端的n+m个数据块的blockID信息;
分别向n+m个数据节点请求打开对应的数据块,获取对应的数据块操作句柄;
根据每个数据块操作句柄,将数据写入至数据节点。
可选的,当同一条socket链路上的多个数据块并发传输时,通过消息ID、写入的数据块操作句柄和请求消息包大小对不同的数据写入消息包进行识别,根据数据块操作句柄的字段对不同的数据块的写入进行识别。
可选的,在建立socket连接时,使用长连接进行连接,且通过哈希表结构保存空闲节点信息;
使用长连接后将连接信息加入至空闲节点链表中;
同一服务端下次再次使用时,优先从所述空闲节点链表中获取空闲节点,若无法获取,则创建新的socket连接,并在使用完后再次加入到空闲连接链表中。
可选的,在建立socket工作线程,创建写入的数据块的元数据时,对所述请求消息包进行解析,获取每个数据块的block ID信息,创建元数据信息并记录在管理元数据的全局哈希表和磁盘的元数据日志文件中。
可选的,数据节点和客户端建立的所有socket连接为并发的接收来自客户端的写请求消息;
每条socket链路上通过解析,获取消息ID、数据块操作句柄和实际写入的数据;
根据所述数据块操作句柄,通过prwite方式将数据写入至磁盘。
本发明还提供一种高效的纠删分布式存储写入系统,包括:客户端写入单元、元数据服务器单元和数据节点服务器写入单元,
通过所述客户端写入单元向元数据服务器单元发起第一请求信息,所述第一请求信息包括用于写入数据节点端的每个数据块的block ID信息;
元数据服务器单元根据所述第一请求信息,在数据节点创建数据块对应的元数据,并将对应的block ID信息反馈至客户端;
客户端写入单元根据所述block ID信息,向数据节点端发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
数据节点服务器写入单元根据所述数据块操作句柄,接收待存储数据,写入数据节点,并关闭写入的数据块。
可选的,还包括任务添加管理模块,用于对数据块信息进行解析,将每个数据块绑定到对应的数据节点,以及将不同数据节点上的数据块读写操作对应于一个工作任务,并添加到线程池的任务队列中;
数据收发模块,用于建立Socket连接,所述连接包括用于文件类操作的长连接和用于配置类操作的短连接;
在建立socket连接时,使用长连接进行连接,且通过哈希表结构保存空闲节点信息;
使用长连接后将连接信息加入至空闲节点链表中;
同一服务端下次再次使用时,优先从所述空闲节点链表中获取空闲节点,若无法获取,则创建新的socket连接,并在使用完后再次加入到空闲连接链表中;
当创建的总的工作线程数超过工作最小线程数且大于正在执行工作的工作线程数的两倍,对已建立的工作线程进行部分回收,当空闲连接链表中工作线程链接的空闲时间超过预设的时间阈值时,对所述链接进行关闭释放。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法。
本发明还提供一种电子终端,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述中任一项所述方法。
本发明的有益效果:本发明中的高效的纠删分布式存储写入方法、系统、介质及终端,通过在初始化时建立管理socket链接池的线程,能够保证socket链接的最大利用率,减少服务端的线程数和链接数,减少了线程的上下文切换,提高了CPU的利用率,降低了网络压力,降低系统开销,提高了服务吞吐量。
另外,在IPC视频写入业务繁忙时,能够自增sokcet线程池的大小,在链接有多余时,并且该链接的空闲(未使用)时间超过一定时间,将链接释放,同时在数据节点端写入数据时,采用pwrite方式写入,避免了使用seek和加锁操作,减少了系统开销。上述方案很大程度上。
附图说明
图1是本发明实施例中高效的纠删分布式存储写入方法的客户端分割文件示意图。
图2是本发明实施例中高效的纠删分布式存储写入系统的任务添加管理模块框架示意图。
图3是本发明实施例中高效的纠删分布式存储写入方法的socket消息处理建立示意图。
图4是本发明实施例中高效的纠删分布式存储写入方法的哈希表结构示意图。
图5是本发明实施例中高效的纠删分布式存储写入方法的申请block ID消息示意图。
图6是本发明实施例中高效的纠删分布式存储写入方法的打开BLOCK消息流程示意图。
图7是本发明实施例中高效的纠删分布式存储写入系统的客户端和数据节点写入模型示意图。
图8是本发明实施例中高效的纠删分布式存储写入方法的客户端写业务socket数据包结构示意图。
图9是本发明实施例中高效的纠删分布式存储写入方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
如图9所示,本实施例中的高效的纠删分布式存储写入方法,包括:
S1.通过客户端向元数据服务器发起第一请求信息,第一请求信息包括用于写入数据节点端的每个数据块的block ID信息;
S2.元数据服务器根据第一请求信息,在数据节点创建数据块对应的元数据,并将对应的block ID信息反馈至客户端;
S3.客户端根据block ID信息,向数据节点发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
S4.根据数据块操作句柄,将待存储数据写入数据节点,并关闭写入的数据块。
为了减少多路IPC视频文件写入时的socket链接网络压力,降低数据节点端频繁seek和加锁写入数据时带来的系统开销,在本实施例中,在多路IPC视频文件写入时,客户端在同一条socket传输链路上可同时发送多个不同文件的数据。客户端和数据节点建立一定数量的socket传输链接,每条连接上可并发的传输多个不同文件的数据包。
在本实施例中,将待存储数据分成n份原始数据,并通过纠删算法获取m份数据;第一请求信息包括用于写入n+m份数据的数据节点端的n+m个数据块的block ID信息;分别向n+m个数据节点请求打开对应的数据块,获取对应的数据块操作句柄;根据每个数据块操作句柄,将数据写入至数据节点。
在本实施例中,首先向元数据服务器发起第一请求信息,申请用于写入数据节点端的每个数据块的block ID信息;
申请数据块block ID信息的请求来到时,在数据节点创建数据块对应的元数据,然后将分配好的block ID返还给客户端;
其次,依据申请到的数据块block ID信息,再发起第二请求信息,请求打开数据节点端的数据块操作句柄block fd,最后根据数据块操作句柄block fd将数据写入数据节点,再关闭写入的数据块,如附图5,,附图6所示。
在本实施例中,数据节点采用pwrite方式落盘数据,减少了数据节点的socket链接数和线程数,有效的减小了传输网络压力和系统资源开销,提高CPU利用率。
在本实施例中,在分布式存储场景纠删模式为节点冗余n+m,例如:客户端收到IPC视频文件A的1M数据(默认一次1M)后,向将视频文件A的1M数据等量分割成n份原始数据,使用纠删算法计算出m份数据,再向元数据服务器申请用于写入这个n+m份数据的n+m个数据块的block ID信息,客户端分别向n+m个数据节点申请打开对应的数据块block,获取对应block操作句柄fd,客户端依据每个数据块的句柄,将数据写入至数据节点。
在本实施例中,当同一条socket链路上的多个数据块并发传输时,通过消息ID、写入的数据块操作句柄和请求消息包大小对不同的数据写入消息包进行识别,根据数据块操作句柄的字段对不同的数据块的写入进行识别。客户端向元数据服务器请求申请数据块block用于写入的block ID信息,将数据切割完毕后得到n+m份block数据,客户端需要申请这n+m份block数据的ID信息,用于在数据节点写入时使用,客户端和元数据服务器之间建立socket长连接,发送请求n+m个block ID信息,请求中包含了请求消息的ID,待写入文件A对应纠删n+m切割出来的第几组(OBJ)的block等信息,如图1所示。当存在多个文件并发写入时,客户端申请Block ID的请求可在Socket收发模块管理的socket链接中并发的发送给元数据服务器,同一sokcet链路的多个请求消息之前可通过封装请求消息头中msg ID和请求消息包大小做区分,区分不同的block的申请ID消息。
在本实施例中,客户端在申请完n+m个block ID信息后,向数据节点申请打开对应block的获取对应fd,用于后续写入操作。同样的,建立socket长连接,发送请求打开n+m个block,请求中包含了请求消息的ID,待打开的block ID信息等。当存在多个文件并发写入时,客户端申请打开Block的请求可在socket链接中并发的发送给数据节点,同一sokcet链路的多个请求消息之前可通过封装请求消息头中msg ID和请求消息包大小做区分,区分不同的block的申请打开消息。
在本实施例中,客户端在打开获取到n+m个数据节点上的blcok fd之后,向数据节点发起写入请求。同样的,建立socket长连接,同一条socket链路上的多个block数据并发的传输,不同的block写入消息包通过消息ID和写入的block fd以及请求消息包大小做区分。客户端对每个block的写入依据写请求包中block fd字段作区分,写入请求消息包的末尾包含了本次需要的写入数据,写业务socket数据包结构如图8所示。
在本实施例中,在数据节点创建对应第一请求信息的block的元数据。元数据服务器并发的接收客户端的申请block ID请求,通过解析请求消息头中消息ID和消息体中的文件名,OBJ信息等,依据时间分配出虚化的文件ID,再依据n+m个节点分配出实际的blockID,向数据节点发起创建对应block的元数据,将创建成功的block ID返还给客户端。
在本实施例中,数据节点在初始化时建立socket工作线程,在元数据服务器申请创建写入的block的元数据时,数据节点解析出请求消息包中的每个block的ID信息,并将元数据信息(包含了文件名信息,block ID信息,已写入的长度信息等)创建并记录在管理元数据的全局哈希表和磁盘的元数据日志文件中,哈希表结构如图4所示。在客户端发起block打开时,数据节点将对应block操作句柄fd(每个blockfd是唯一的,通过全局管理,以分配的管理已打开的block空闲链表节点id和创建元数据所在磁盘的标识符disktag组合而成)返回给客户端,客户端依据block fd再次发起写入数据请求。数据节点和客户端建立的所有socket连接都并发的接收来自客户端的写请求消息,每条socket链路上通过解析写请求的消息头中包含的消息ID,以及消息体中的block fd和实际写入的数据buf,再根据解析出的每个数据块的句柄,采用pwrite方式将数据buf写入至磁盘。
相应的,本发明还提供一种高效的纠删分布式存储写入系统,包括:客户端写入单元、元数据服务器单元和数据节点服务器写入单元,
通过所述客户端写入单元向元数据服务器单元发起第一请求信息,所述第一请求信息包括用于写入数据节点端的每个数据块的block ID信息;
元数据服务器单元根据所述第一请求信息,在数据节点创建数据块对应的元数据,并将对应的block ID信息反馈至客户端;
客户端写入单元根据所述block ID信息,向数据节点端发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
数据节点服务器写入单元根据所述数据块操作句柄,接收待存储数据,写入数据节点,并关闭写入的数据块。
在本实施例中,客户端消息处理模块初始化主要分两个模块,用于和元数据服务器和数据节点进行文件操作交互业务,分别为任务添加管理模块TaskMgr和数据收发模块。
任务添加管理模块主要维护了一个动态可调节的线程池,主要包括管理线程、工作任务队列以及工作线程。socket消息处理模块外部接口接收需要处理的block信息,内部解析处理,每个block绑定到对应的DN数据节点上,不同DN数据节点上的block读写操作对应于一个工作任务并会添加到线程池的任务队列中,如图2所示。如果任务队列数超过默认的工作线程数,则管理线程会动态申请创建新的工作线程组,如果创建的总的工作线程数超过默认工作最小线程数且大于正在执行工作的工作线程数的两倍,则管理线程会主动回收一部分工作线程,每个链接在使用完毕后,都会保存至空闲节点链表,数据收发模块可以通过一个定时巡检的线程,去计时空闲节点链表中每个链接的空闲时间,当这个空闲时间(未使用时间)超过预设的时间阈值时,例如超过7200s时,就将该链接对应的空闲节点链表成员删除,并关闭该链接,即该链接被释放。
数据收发模块(Socket收发模块)作为网络数据收发的接口提供者,基于TCP协议,对连接管理作限制,主要分为长连接和短连接。文件类操作使用长连接,配置类操作使用短连接。客户端长连接管理主要采用哈希表结构保存空闲节点信息,建立socket连接时,首先根据服务端IP和端口号进行哈希(服务端对SDK开放的端口号是固定且唯一的,对于同一个数据节点,连接数主要与客户端的并发读写数即业务实际场景有关,最大连接数由服务侧控制保证),如果没有哈希节点则创建新节点进行插入,然后建立socket连接,使用完后将连接信息加入到空闲连接链表中,对于同一个服务端数据收发,下次再次使用时会优先从空闲节点链表中获取空闲节点,如果获取不到则会创建新的socket连接使用完后会再次加入到空闲连接链表中,如图3所示。
在本实施例中,高效的纠删分布式存储写入系统通过上述方法对IPC视频文件进行分布式存储写入。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
本实施例还提供一种电子终端,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,除非另外规定,否则通过使用“第一”、“第二”等序号对共同的对象进行描述,只表示其指代相同对象的不同实例,而非是采用表示被描述的对象必须采用给定的顺序,无论是时间地、空间地、排序地或任何其他方式。在上述实施例中,说明书对“本实施例”的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”的多次出现不一定全部都指代相同的实施例。
在上述实施例中,尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变形对本领域普通技术人员来说将是显而易见的。例如,其他存储结构(例如,动态RAM(DRAM))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种高效的纠删分布式存储写入方法,其特征在于,包括:
通过客户端向元数据服务器发起第一请求信息,所述第一请求信息包括并发的用于写入数据节点端的每个数据块的blockID信息;
元数据服务器根据所述第一请求信息,在数据节点创建数据块对应的元数据,并将对应的blockID信息反馈至客户端;
客户端根据所述block ID信息,向数据节点发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
根据所述数据块操作句柄,将待存储数据写入数据节点,并关闭写入的数据块。
2.根据权利要求1所述的高效的纠删分布式存储写入方法,其特征在于,
将待存储数据分成n份原始数据,并通过纠删算法获取m份数据;
所述第一请求信息包括用于写入n+m份数据的数据节点端的n+m个数据块的block ID信息;
分别向n+m个数据节点请求打开对应的数据块,获取对应的数据块操作句柄;
根据每个数据块操作句柄,将数据写入至数据节点。
3.根据权利要求2所述的高效的纠删分布式存储写入方法,其特征在于,当同一条socket链路上的多个数据块并发传输时,通过消息ID、写入的数据块操作句柄和请求消息包大小对不同的数据写入消息包进行识别,根据数据块操作句柄的字段对不同的数据块的写入进行识别。
4.根据权利要求3所述的高效的纠删分布式存储写入方法,其特征在于,
在建立socket连接时,使用长连接进行连接,且通过哈希表结构保存空闲节点信息;
使用长连接后将连接信息加入至空闲节点链表中;
同一服务端下次再次使用时,优先从所述空闲节点链表中获取空闲节点,若无法获取,则创建新的socket连接,并在使用完后再次加入到空闲连接链表中。
5.根据权利要求4所述的高效的纠删分布式存储写入方法,其特征在于,在建立socket工作线程,创建写入的数据块的元数据时,对所述请求消息包进行解析,获取每个数据块的block ID信息,创建元数据信息并记录在管理元数据的全局哈希表和磁盘的元数据日志文件中。
6.根据权利要求4所述的高效的纠删分布式存储写入方法,其特征在于,
数据节点和客户端建立的所有socket连接为并发的接收来自客户端的写请求消息;
每条socket链路上通过解析,获取消息ID、数据块操作句柄和实际写入的数据;
根据所述数据块操作句柄,通过prwite方式将数据写入至磁盘。
7.一种高效的纠删分布式存储写入系统,其特征在于,包括:客户端写入单元、元数据服务器单元和数据节点服务器写入单元,
通过所述客户端写入单元向元数据服务器单元发起第一请求信息,所述第一请求信息包括用于写入数据节点端的每个数据块的block ID信息;
元数据服务器单元根据所述第一请求信息,在数据节点创建数据块对应的元数据,并将对应的blockID信息反馈至客户端;
客户端写入单元根据所述block ID信息,向数据节点端发起用于请求打开数据节点端的数据块操作句柄的第二请求信息;
数据节点服务器写入单元根据所述数据块操作句柄,接收待存储数据,写入数据节点,并关闭写入的数据块。
8.根据权利要求7所述的高效的纠删分布式存储写入系统,其特征在于,还包括
任务添加管理模块,用于对数据块信息进行解析,将每个数据块绑定到对应的数据节点,以及将不同数据节点上的数据块读写操作对应于一个工作任务,并添加到线程池的任务队列中;
数据收发模块,用于建立Socket连接,所述连接包括用于文件类操作的长连接和用于配置类操作的短连接;
在建立socket连接时,使用长连接进行连接,且通过哈希表结构保存空闲节点信息;
使用长连接后将连接信息加入至空闲节点链表中;
同一服务端下次再次使用时,优先从所述空闲节点链表中获取空闲节点,若无法获取,则创建新的socket连接,并在使用完后再次加入到空闲连接链表中;
当创建的总的工作线程数超过工作最小线程数且大于正在执行工作的工作线程数的两倍,对已建立的工作线程进行部分回收,当空闲连接链表中工作线程链接的空闲时间超过预设的时间阈值时,对所述链接进行关闭释放。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至8中任一项所述方法。
10.一种电子终端,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求1至8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993516.6A CN112100146B (zh) | 2020-09-21 | 2020-09-21 | 一种高效的纠删分布式存储写入方法、系统、介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993516.6A CN112100146B (zh) | 2020-09-21 | 2020-09-21 | 一种高效的纠删分布式存储写入方法、系统、介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100146A true CN112100146A (zh) | 2020-12-18 |
CN112100146B CN112100146B (zh) | 2021-06-29 |
Family
ID=73760506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010993516.6A Active CN112100146B (zh) | 2020-09-21 | 2020-09-21 | 一种高效的纠删分布式存储写入方法、系统、介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100146B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489508A (zh) * | 2022-01-26 | 2022-05-13 | 重庆紫光华山智安科技有限公司 | 数据管理方法、装置、设备及介质 |
CN114661676A (zh) * | 2022-04-19 | 2022-06-24 | 重庆紫光华山智安科技有限公司 | 分布式数据库管理系统、方法、电子设备及可读存储介质 |
CN117472930A (zh) * | 2023-12-26 | 2024-01-30 | 成都大成均图科技有限公司 | 一种高并发数据的存储方法、装置和设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
CN102375780A (zh) * | 2011-10-25 | 2012-03-14 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中元数据缓存管理的方法 |
CN102821164A (zh) * | 2012-08-31 | 2012-12-12 | 河海大学 | 一种高效并行分布式数据处理系统 |
CN102882983A (zh) * | 2012-10-22 | 2013-01-16 | 南京云创存储科技有限公司 | 一种云存储系统中提升并发访问性能的数据快速存储方法 |
CN103294786A (zh) * | 2013-05-17 | 2013-09-11 | 华中科技大学 | 一种分布式文件系统的元数据组织管理方法和系统 |
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
US20140172790A1 (en) * | 2012-12-13 | 2014-06-19 | Amit PATHAK | Synchronization of Metadata in a Multi-Threaded System |
CN104331421A (zh) * | 2014-10-14 | 2015-02-04 | 安徽四创电子股份有限公司 | 一种大数据的高效处理方法及系统 |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件系统数据i/o优化方法 |
CN105610899A (zh) * | 2015-12-10 | 2016-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种文本文件并行上传方法及装置 |
CN106446126A (zh) * | 2016-09-19 | 2017-02-22 | 哈尔滨航天恒星数据系统科技有限公司 | 一种海量空间信息数据存储管理方法及存储管理系统 |
CN106997307A (zh) * | 2017-02-13 | 2017-08-01 | 上海大学 | 一种面向多终端无线通信的Socket线程池设计方法 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
US20170286436A1 (en) * | 2016-03-31 | 2017-10-05 | Acronis International Gmbh | System and method for fast parallel data processing in distributed storage systems |
CN109871365A (zh) * | 2019-01-15 | 2019-06-11 | 苏州链读文化传媒有限公司 | 一种分布式文件系统 |
CN111124643A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种分布式存储中的删除任务调度方法、系统及相关装置 |
-
2020
- 2020-09-21 CN CN202010993516.6A patent/CN112100146B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
CN102375780A (zh) * | 2011-10-25 | 2012-03-14 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中元数据缓存管理的方法 |
CN102821164A (zh) * | 2012-08-31 | 2012-12-12 | 河海大学 | 一种高效并行分布式数据处理系统 |
CN102882983A (zh) * | 2012-10-22 | 2013-01-16 | 南京云创存储科技有限公司 | 一种云存储系统中提升并发访问性能的数据快速存储方法 |
US20140172790A1 (en) * | 2012-12-13 | 2014-06-19 | Amit PATHAK | Synchronization of Metadata in a Multi-Threaded System |
CN103294786A (zh) * | 2013-05-17 | 2013-09-11 | 华中科技大学 | 一种分布式文件系统的元数据组织管理方法和系统 |
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
CN104331421A (zh) * | 2014-10-14 | 2015-02-04 | 安徽四创电子股份有限公司 | 一种大数据的高效处理方法及系统 |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件系统数据i/o优化方法 |
CN105610899A (zh) * | 2015-12-10 | 2016-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种文本文件并行上传方法及装置 |
US20170286436A1 (en) * | 2016-03-31 | 2017-10-05 | Acronis International Gmbh | System and method for fast parallel data processing in distributed storage systems |
CN106446126A (zh) * | 2016-09-19 | 2017-02-22 | 哈尔滨航天恒星数据系统科技有限公司 | 一种海量空间信息数据存储管理方法及存储管理系统 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
CN106997307A (zh) * | 2017-02-13 | 2017-08-01 | 上海大学 | 一种面向多终端无线通信的Socket线程池设计方法 |
CN109871365A (zh) * | 2019-01-15 | 2019-06-11 | 苏州链读文化传媒有限公司 | 一种分布式文件系统 |
CN111124643A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种分布式存储中的删除任务调度方法、系统及相关装置 |
Non-Patent Citations (2)
Title |
---|
师明 等: "一种面向分布式文件系统的文件预取模型的设计与实现", 《计算机科学》 * |
张宇露: "分布式视频流存储系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489508A (zh) * | 2022-01-26 | 2022-05-13 | 重庆紫光华山智安科技有限公司 | 数据管理方法、装置、设备及介质 |
CN114489508B (zh) * | 2022-01-26 | 2023-09-01 | 重庆紫光华山智安科技有限公司 | 数据管理方法、装置、设备及介质 |
CN114661676A (zh) * | 2022-04-19 | 2022-06-24 | 重庆紫光华山智安科技有限公司 | 分布式数据库管理系统、方法、电子设备及可读存储介质 |
CN114661676B (zh) * | 2022-04-19 | 2023-03-21 | 重庆紫光华山智安科技有限公司 | 分布式数据库管理系统、方法、电子设备及可读存储介质 |
CN117472930A (zh) * | 2023-12-26 | 2024-01-30 | 成都大成均图科技有限公司 | 一种高并发数据的存储方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112100146B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100146B (zh) | 一种高效的纠删分布式存储写入方法、系统、介质及终端 | |
CN108052675B (zh) | 日志管理方法、系统及计算机可读存储介质 | |
CN108268208B (zh) | 一种基于rdma的分布式内存文件系统 | |
CN106657365B (zh) | 一种基于rdma的高并发数据传输方法 | |
RU2365049C2 (ru) | Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером | |
US20150213134A1 (en) | Data query method and system and storage medium | |
US7185060B2 (en) | Message processing pipeline for streams | |
CN111966446B (zh) | 一种容器环境下rdma虚拟化方法 | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
WO2016095149A1 (zh) | 一种数据压缩存储方法、装置,及分布式文件系统 | |
CN113891396B (zh) | 数据包的处理方法、装置、计算机设备和存储介质 | |
US8539089B2 (en) | System and method for vertical perimeter protection | |
CN109525495B (zh) | 一种数据处理装置、方法和fpga板卡 | |
CN109564502A (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
WO2017032152A1 (zh) | 将数据写入存储设备的方法及存储设备 | |
CN111897492B (zh) | 一种基于块设备驱动的数据处理方法、装置及电子设备 | |
WO2023160276A1 (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN111935017A (zh) | 跨网络的应用调用方法、装置及路由设备 | |
CN111314480A (zh) | 负载自适应跨平台文件传输协议及其分布式服务实现方法 | |
US10536560B2 (en) | System and method for implementing augmented object members for remote procedure call | |
CN116049085A (zh) | 一种数据处理系统及方法 | |
WO2021238259A1 (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
US20090271526A1 (en) | Data transfer method and proxy server, and storage subsystem | |
CN116980475B (zh) | 一种基于binlog与双环形缓冲区的数据推送系统 | |
CN111782399B (zh) | 一种基于udp的配置服务器高效实现的方法 |
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 |