一种基于丢弃的多元数据服务器元数据日志一致性的方法

文档序号:6436448阅读:466来源:国知局
专利名称:一种基于丢弃的多元数据服务器元数据日志一致性的方法
技术领域
本发明涉及多数据器的元数据日志方法,具体来说,涉及一种基于丢弃的多元数据服务器元数据日志一致性的方法。
背景技术
在分布式文件系统中,元数据之间存在相关性,这表现在很多操作要同时修改几部分的元数据,当只有部分数据修改时,系统是不一致的,即这种相关性受到破坏。当整个操作完成时,系统从一个一致状态转移到另一个一致的状态。当系统处于不一致状态时,受影响的元数据及相关的数据将不能被正确使用,甚至成为垃圾。如果系统不纠正该问题,而继续运行,将造成更大的损害。对于多元数据服务器,每个元数据存储于不同节点,当节点发生崩溃时,这些节点上的元数据就会处于一个不一致的状态,导致元数据服务不可用。因此,如何保证多个元数据服务器上的元数据一致性是影响元数据可靠性的重要因素。为了保证元数据的一致性,一些分布式文件系统采用了日志系统。将多个相关的元数据操作封装为一个事务。日志系统均采用先写日志后应用磁盘的策略,这样即使其发生崩溃时,未应用到磁盘的事务也可以通过重新应用日志来保证其一致性。然而,若日志设备发生损坏时,不能通过应用日志设备来恢复崩溃引起的系统不一致,传统的方法是使用磁盘拷贝的方法,将副本进行数据恢复,在TB级乃至PB级的系统中,这种开销是不能容忍的。

发明内容
本发明涉及一种基于丢弃的多数据器的元数据日志方法,目的是降低在日志设备损坏时的恢复所需的时间。一种基于丢弃的多元数据服务器元数据日志一致性的方法,主元数据服务器收到元数据请求后,将其保存到内存后,传播请求给从元数据服务器;从元数据服务器接收传播请求保存到内存后,应答主元数据服务器;主元数据服务器收到应答后将请求提交到日志设备,完成后,提交请求给从元数据服务器;从元数据服务器收到提交请求后,提交到日志设备,同时应答提交请求并应用到磁盘并同步;主元数据服务器收到提交请求应答后,应用到磁盘并同步后,发送丢弃命令给从元数据服务器,并根据丢弃情况保存本地副本日志。优选的,所述根据丢弃情况保存本地副本日志的过程为如果从副本收到主副本的丢弃请求,则回收对应的内存及日志设备,并返回丢弃应答命令给主副本,否则保存到日志设备上;如果主副本收到从副本的丢弃应答命令,则回收对应的内存及日志设备,否则保存到日志设备上。优选的,所述日志设备发生损坏时,将没有丢弃的日志发送到损坏的日志设备的副本节点。优选的,所述从副本上丢弃消息的记录使用一个hash表进行管理,将元数操作的事务号作为hash key若从副本将事务应用完,则检查该hash表中是否有该事务,若没有该事务,则将该事务加入到hash表中;若有该事务,则发送丢弃应答。优选的,所述从副本上到该事务的丢弃请求时,首先查询hash表中是否有该事务,有则发送应答,否则加入hash表中。本发明通过引入三次通信机制,使得日志系统在日志设备损坏的情况下,可以通过少量拷贝日志文件,来实现恢复,极大了减少了恢复的时间。


图1是本发明的流程图
具体实施例方式发明中的技术方案具体描述如下为了实现多个元数据服务器上的一致性,将元数据操作的可靠性操作分为几个阶段眷保存到内存 写入日志设备 写入磁盘 同步到磁盘 根据丢弃情况保存本地副本日志多副本的元数据服务的消息通信流程如图1所示主元数据服务器收到元数据请求后,将其保存到内存后,传播请求给从元数据服务器;从元数据服务器接收传播请求保存到内存后,应答主元数据服务器;主元数据服务器收到应答后将请求提交到日志设备,完成后,提交请求给从元数据服务器;从元数据服务器收到提交请求后,提交到日志设备,同时应答提交请求并应用到磁盘并同步;主元数据服务器收到提交请求应答后,应用到磁盘并同步后,发送丢弃命令给从元数据服务器,并根据丢弃情况保存本地副本日志。即如果从副本收到主副本的丢弃请求,则回收对应的内存及日志设备,并返回丢弃应答命令给主副本,否则保存到日志设备上;如果主副本收到从副本的丢弃应答命令,则回收对应的内存及日志设备,否则保存到日志设备上。通过发送三次消息,控制多副本元数据的元数据操作。其中,传播消息和提交消息保证先写日志后写磁盘,丢弃消息控制不会丢弃没有应用到磁盘的日志。通过上述的方法,在系统的日志设备发生损坏时,只需要将没有丢弃的日志发送到发生日志设备损坏的副本节点即可,无需拷贝所有的磁盘数据。从副本上丢弃消息的记录使用一个hash表进行管理,将元数据操作的事务号作为hash key,若从副本将事务应用完,则检查该hash表中是否有该事务,若没有该事务,则将该事务加入到hash表中;若有该事务,则发送丢弃应答。同理,该节点收到该事务的丢弃请求时,首先查询hash表中是否有该事务,有则发送应答,否则加入hash表中。查询和插入操作需要使用锁来互斥。 同时,这种丢弃消息可以根据系统来进行动态的设置,若系统的日志设备的可靠性较好,可以将丢弃的消息流程去掉,直接使用两阶段的消息通信,保证多副本的一致性需求。非常易于实现。
权利要求
1.一种基于丢弃的多元数据服务器元数据日志一致性的方法,其特征在于主元数据服务器收到元数据请求后,将其保存到内存后,传播请求给从元数据服务器;从元数据服务器接收传播请求保存到内存后,应答主元数据服务器;主元数据服务器收到应答后将请求提交到日志设备,完成后,提交请求给从元数据服务器;从元数据服务器收到提交请求后,提交到日志设备,同时应答提交请求并应用到磁盘并同步;主元数据服务器收到提交请求应答后,应用到磁盘并同步后,发送丢弃命令给从元数据服务器,并根据丢弃情况保存本地副本日志。
2.如权利要求1所述的方法,其特征在于所述根据丢弃情况保存本地副本日志的过程为如果从副本收到主副本的丢弃请求,则回收对应的内存及日志设备,并返回丢弃应答命令给主副本,否则保存到日志设备上;如果主副本收到从副本的丢弃应答命令,则回收对应的内存及日志设备,否则保存到日志设备上。
3.如权利要求1所述的方法,其特征在于所述日志设备发生损坏时,将没有丢弃的日志发送到损坏的日志设备的副本节点。
4.如权利要求1所述的方法,其特征在于所述从副本上丢弃消息的记录使用一个 hash表进行管理,将元数操作的事务号作为hash key若从副本将事务应用完,则检查该 hash表中是否有该事务,若没有该事务,则将该事务加入到hash表中;若有该事务,则发送丢弃应答。
5.如权利要求1所述的方法,其特征在于所述从副本上到该事务的丢弃请求时,首先查询hash表中是否有该事务,有则发送应答,否则加入hash表中。
全文摘要
本发明提供了一种基于丢弃的多元数据服务器元数据日志一致性的方法,主元数据服务器收到元数据请求后,将其保存到内存后,传播请求给从元数据服务器;从元数据服务器接收传播请求保存到内存后,应答主元数据服务器;主元数据服务器收到应答后将请求提交到日志设备,完成后,提交请求给从元数据服务器;从元数据服务器收到提交请求后,提交到日志设备,同时应答提交请求并应用到磁盘并同步;主元数据服务器收到提交请求应答后,应用到磁盘并同步后,发送丢弃命令给从元数据服务器,并根据丢弃情况保存本地副本日志。通过引入三次通信机制,使得日志系统在日志设备损坏的情况下,可以通过少量拷贝日志文件,来实现恢复,极大了减少了恢复的时间。
文档编号G06F17/30GK102508891SQ20111032829
公开日2012年6月20日 申请日期2011年10月25日 优先权日2011年10月25日
发明者刘新春, 张东阳, 张玉龙, 王勇, 苗艳超, 邵宗有 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1