在分布式存储系统中写入日志数据的方法技术方案

技术编号:20369937 阅读:51 留言:0更新日期:2019-02-16 20:05
本发明专利技术涉及一种用于在分布式存储系统中写入日志数据的方法。分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程。该方法包括:将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。因此,不同的进程的日志数据可以被写入同一共享日志文件中,从而消除了日志数据的随机写入问题,提高了非暂态存储介质的性能。

Method of Writing Log Data in Distributed Storage System

The invention relates to a method for writing log data in a distributed storage system. A distributed system creates multiple processes for accessing data on the same non-transient storage medium. The method comprises writing the log data of the multiple processes into the same shared log file, which is stored on the same non-transient storage medium. Therefore, the log data of different processes can be written into the same shared log file, which eliminates the random writing problem of log data and improves the performance of non-transient storage media.

【技术实现步骤摘要】
在分布式存储系统中写入日志数据的方法
本专利技术涉及分布式存储系统。特别地,本专利技术涉及在分布式存储系统中写入日志数据的方法。
技术介绍
在分布式存储系统中,通常采用多个进程保存数据的多个副本,以便提供系统的可靠性。为了实现多个副本的数据的同步,本领域中通常是通过进程的日志文件而实现的。例如,raft协议是一种复制组通讯协议,它基于日志形式在复制组内的进程当中通讯以实现数据的一致性。因此,在分布式存储系统中,存在用于不同的应用的多个复制组。每个复制组包括用于存取数据的主进程(mater)。每个复制组还可以包括一个或多个用于存取数据的从进程(slave),以便备份数据。在raft协议中,主进程被称为leader而从进程被称为follower。每个进程(主进程或从进程)都需要维护一个日志文件,用于记录进程对数据的各种操作,而数据文件用于存储写入的数据。例如,当一个复制组将数据存储在分布式存储系统中时,该复制组中的主进程和从进程都要分别向其日志文件和数据文件写入数据。在分布式存储系统中,每个非暂态存储介质(例如磁盘)实际上服务于多个复制组。也就是说,一个磁盘上往往存储对应于多个复制组的进程的日志文件。当这些进程向各自的日志文件写入数据时,由于各个进程的日志文件在磁盘中的位置是不连续的,这些进程会产生多个随机写入操作。这会导致磁盘写入性能的下降。因此,需要提供一种可以解决日志数据在存储介质中的随机写入问题的方法。
技术实现思路
有鉴于此,本专利技术提供了一种用于在分布式存储系统中写入日志数据的方法,分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程,其特征在于,所述方法包括:将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。根据本专利技术的方法的一优选实施方式,将所述多个进程的日志数据分别写入同一共享日志文件包括:获取要写入日志数据的进程的标识;将要写入日志数据的进程的标识和对应的日志数据采用顺序写的方式写入所述共享日志文件。根据本专利技术的方法的一优选实施方式,所述多个进程属于不同的复制组。根据本专利技术的方法的一优选实施方式,所述多个进程包括主进程和/或从进程。根据本专利技术的方法的一优选实施方式,所述非暂态存储介质为磁盘。根据本专利技术的方法的一优选实施方式,所述要写入日志数据的进程的标识为该进程对应的复制组的标识。根据本专利技术的方法的一优选实施方式,所述分布式存储系统是基于分布式一致性协议raft的分布式存储系统。本专利技术还提供了一种用于在分布式存储系统中写入日志数据的装置,该分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程,其特征在于,所述装置包括:写入模块,用于将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。根据本专利技术的分布式存储系统的一优选实施方式,所述写入模块包括:获取模块,用于获取要写入日志数据的进程的标识;顺序写入模块,用于将要写入日志数据的进程的标识和对应的日志数据采用顺序写的方式写入所述共享日志文件。根据本专利技术的分布式存储系统的一优选实施方式,所述多个进程属于不同的复制组。根据本专利技术的分布式存储系统的一优选实施方式,所述多个进程包括主进程和/或从进程。根据本专利技术的分布式存储系统的一优选实施方式,所述非暂态存储介质为磁盘。根据本专利技术的分布式存储系统的一优选实施方式,所述要写入日志数据的进程的标识为该进程对应的复制组的标识。根据本专利技术的分布式存储系统的一优选实施方式,所述分布式存储系统是基于分布式一致性协议raft的分布式存储系统。本专利技术还提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述方法。本专利技术还提供了一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行上述方法。由以上技术方案可以看出,根据本专利技术的写入日志数据的方法以及分布式存储系统,使得不同进程的日志数据可以被写入同一共享日志文件。从而消除了日志数据的随机写入的问题,提高了非暂态存储介质的性能。【附图说明】图1为本专利技术实施例提供的用于在分布式存储系统中写入数据的方法的流程图;图2为本专利技术的实施例提供的分布式存储系统中的共享日志文件的结构的示意图;图3为本专利技术的实施例提供的用于在分布式存储系统中写入数据的装置的结构图;图4为本专利技术的实施例提供的分布式存储系统的结构的示意图;图5示出了适于用来实现本专利技术的实施方式的示例性计算机系统/服务器的框图。【具体实施方式】为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。在分布式存储系统中,同一非暂态存储介质一般服务于多个用于存取数据的进程。这些进程需要维护它们各自的日志文件。由于各日志文件在同一非暂态存储介质中的位置是不连续的,这些进程向日志文件写入日志数据时会引起随机写入的问题。特别是,当进程数量较大时,需要对向大量离散的日志文件中写入日志数据,这严重降低了存储介质的性能。事实上,分布式存储系统一般包括多个非暂态存储介质,而每个非暂态存储介质一般服务于多个进程。所以分布式存储系统中的每个非暂态存储介质都会存在随机写入的问题。以下仅以分布式存储系统中的一个非暂态存储介质作为对象进行讨论。本专利技术的核心思想在于,使分布式存储系统中的多个存取数据的进程(主进程和/或从进程)共享同一日志文件。具体地,本专利技术提供了一种用于在分布式存储系统中写入日志数据的方法。分布式存储系统中创建有用于在同一非暂态存储介质上存取数据的多个进程。该方法包括将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在同一非暂态存储介质上。由于各个进程的日志数据被写入同一日志文件,所以不必向各个进程专有的日志文件写入日志数据。因此根据本专利技术的方法可以消除向多个日志文件写入日志数据时产生的随机写入的问题。由于磁盘需要由磁头机械地在盘片上寻址,所以随机写入的问题对于磁盘的影响尤其明显。本专利技术特别适用于采用磁盘作为非暂态存储介质的分布式存储系统。图1为本专利技术实施例提供的用于在分布式存储系统中写入日志数据的方法的流程图。分布式存储系统中创建有用于在同一非暂态存储介质上存取数据的多个进程。该方法包括:将所述多个进程的日志数据分别写入同一共享日志文件。该共享日志文件存储在所述同一非暂态存储介质上。如图1所示,根据本实施例,将所述多个进程的日志数据分别写入同一共享日志文件可以包括以下步骤:在步骤10中,获取要写入日志数据的进程的标识。事实上,要写入日志数据的进程可以是多个进程中的任何一个进程。步骤10旨在获取所涉及的进程的标识。标识可以是分布式存储系统为每个进程分配的唯一标识。在步骤11中,将要写入日志数据的进程的标识和对应的日志数据采用顺序写的方式写入所述共享日志文件。也就是说,接着上次写入的标识和日志数据顺序而写入到共享日志文件。由此,当上述多个进程中的任何进程需要写入日志数据时,都将其标识和日志数据顺序写入到同一共享日志文件中。可见,根据图1中提供的方法,各个进程不再随机地将日志数据写入其各自的日志文件中,而是顺序地写入到同一共享日志文件中本文档来自技高网...

【技术保护点】
1.一种用于在分布式存储系统中写入日志数据的方法,分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程,其特征在于,所述方法包括:将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。

【技术特征摘要】
1.一种用于在分布式存储系统中写入日志数据的方法,分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程,其特征在于,所述方法包括:将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。2.根据权利要求1所述的方法,其特征在于,将所述多个进程的日志数据分别写入同一共享日志文件包括:获取要写入日志数据的进程的标识;将要写入日志数据的进程的标识和对应的日志数据采用顺序写的方式写入所述共享日志文件。3.根据权利要求1所述的方法,其特征在于,所述多个进程属于不同的复制组。4.根据权利要求1所述的方法,其特征在于,所述多个进程包括主进程和/或从进程。5.根据权利要求1所述的方法,其特征在于,所述非暂态存储介质为磁盘。6.根据权利要求3所属的方法,其特征在于,所述要写入日志数据的进程的标识为该进程对应的复制组的标识。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述分布式存储系统是基于分布式一致性协议raft的分布式存储系统。8.一种用于在分布式存储系统中写入日志数据的装置,该分布式系统中创建有用于在同一非暂态存储介质上存取数据的多个进程,其特征在于,所述装置包括:写入模块,用于将所述多个进程的日志数据分别写入同一共享日志文件,该共享日志文件存储在所述同一非暂态存储介质上。9.根据权利要...

【专利技术属性】
技术研发人员:马井玮
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1