一种分布式系统中基于流水线的元数据日志的方法

文档序号:6569388
专利名称:一种分布式系统中基于流水线的元数据日志的方法
技术领域
本发明涉及分布式文件系统中高效元数据日志方法,具体来说,涉及一种分布式系统中基于流水线的元数据日志的方法。
背景技术
在分布式文件系统中,元数据之间存在相关性,这表现在很多操作要同时修改几部分的元数据,当只有部分数据修改时,系统是不一致的,即这种相关性受到破坏。当整个操作完成时,系统从一个一致状态转移到另一个一致的状态。当系统处于不一致状态时,受影响的元数据及相关的数据将不能被正确使用,甚至成为垃圾。如果系统不纠正该问题,而继续运行,将造成更大的损害。为了提高元数据的可靠性,许多分布式文件系统采用了日志系统,并采用了先写日志后应用磁盘的逻辑,当应用磁盘失败时,可以通过应用日志来保证元数据操作的一致性。现有的日志系统,有的是应用于本地文件系统;应用于分布式文件系统的日志系统,则无法达成一个高效的目标。

发明内容
本发明旨在公开一种分布式系统中基于流水线的高效元数据日志方法,目的是提高元数据日志系统的数据处理能力。一种分布式系统中基于流水线的元数据日志的方法,元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。优选的,所述阶段包括元数据提交日志阶段,写内存阶段,写日志设备阶段,写磁盘阶段和回收空间阶段。优选的,无数据时,所述信号量睡眠,当上一个阶段有数据来时,则将数据插入队列,并将该阶段的线程唤醒。优选的,所述元数据提交日志阶段,申请至少一个提交队列,当有元数据提交日志时,通过hash值分配到队列中,之后由提交线程统一在队列中收集后提交。优选的,所述回收空间阶段回收空间后,则将新的空间量作为一个写操作传递给写日志设备。本发明针对了分布式文件系统的元数据访问特点,引入了流水线的概念,将元数据可靠性处理的多个阶段,即写可靠性介质.写磁盘以及文件sync等操作进行了流水化设计,不仅充分的利用了多线程提高了并发性,同时,实现了非阻塞的元数据可靠性处理,极大的提高了元数据日志系统的数据处理能力。
具体实施例方式发明中的技术方案具体描述如下
为了实现多个元数据服务器上的一致性,将元数据操作的可靠性操作分为几个阶段眷保存到内存 写入日志设备 写入磁盘 同步到磁盘如前所述,为了实现日志系统的可靠性目标,将日志系统的流程分为以下几个阶段1.元数据提交日志操作2.写入日志内存3.写入日志设备4.写入磁盘5.从内存及日志设备回收空间在该流程中引入流水线,即使用多线程技术。每个阶段分别由独立的线程来完成, 分另1Ji己为 commit—thd,crt_thd, wr_jnl_thd, app—disk—thd 禾口 reclaim—thd。不同阶段之间使用semque (带信号量的队列)进行数据传送,无数据时睡眠在信号量时,若上一个阶段有数据来,则将数据插入队列,并将该阶段的线程唤醒。这样每个元数据的操作,被切分为流水线的不同阶段,每一个阶段可以不断的处理新的请求,不必等待所有的阶段完成,才能开始下一个元数据的操作请求。在(1)提交日志阶段,由于元数据提交是多个元数据线程进行并发提交,如果使用同一个队列,将会使得多个线程对同一个队列进行竞争,导致不必要的互斥,这里申请了多个commit队列,每当元数据需要提交时,则hash到一个队列中,这样减少了多个元数据提交线程之间的性能。之后,由Commit_thd统一从各个队列中进行收集,由于收集的几率远低于提交,因此,这种收集时由于互斥产生的开销是可以忽略的。同时,由于日志设备中,不仅要记录日志信息,还要记录日志空间的信息,即可用空间和已用空间等信息,如果回收线程回收后,写该信息到日志设备,则会出现多线程写同一个日志文件的情形,必然要使用互斥技术如锁来保证互斥访问,这样无疑无降低性能。本发明将写日志和写空间信息均抽象为一个写操作,当回收线程回收空间后,则将新的空间量作为一个写操作传递给写日志设备,即所有的写日志的操作完全由一个线程完成,这样减少了互斥操作,提高了写入的速度。
权利要求
1.一种分布式系统中基于流水线的元数据日志的方法,其特征在于元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。
2.如权利要求1所述的方法,其特征在于所述阶段包括元数据提交日志阶段,写内存阶段,写日志设备阶段,写磁盘阶段和回收空间阶段。
3.如权利要求1所述的方法,其特征在于无数据时,所述信号量睡眠,当上一个阶段有数据来时,则将数据插入队列,并将该阶段的线程唤醒。
4.如权利要求2所述的方法,其特征在于所述元数据提交日志阶段,申请至少一个提交队列,当有元数据提交日志时,通过hash值分配到队列中,之后由提交线程统一在队列中收集后提交。
5.如权利要求2所述的方法,其特征在于所述回收空间阶段回收空间后,则将新的空间量作为一个写操作传递给写日志设备。
全文摘要
本发明提供了一种分布式系统中基于流水线的元数据日志的方法,元数据日志的每个阶段由一个独立的线程完成,不同阶段之间使用带信号量的队列进行数据传送。本发明针对了分布式文件系统的元数据访问特点,引入了流水线的概念,将元数据可靠性处理的多个阶段,即写可靠性介质.写磁盘以及文件sync等操作进行了流水化设计,不仅充分的利用了多线程提高了并发性,同时,实现了非阻塞的元数据可靠性处理,极大的提高了元数据日志系统的数据处理能力。
文档编号G06F9/38GK102368210SQ20111032598
公开日2012年3月7日 申请日期2011年10月25日 优先权日2011年10月25日
发明者刘新春, 张东阳, 张玉龙, 王勇, 苗艳超, 邵宗有 申请人:曙光信息产业(北京)有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1