元数据读写方法和装置制造方法及图纸

技术编号:13176827 阅读:112 留言:0更新日期:2016-05-10 20:29
本发明专利技术涉及一种元数据读写方法和装置,所述方法包括:从内存中获取有效区域指针;当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。本发明专利技术提供的元数据读写方法和装置在保证原子性的前提下,提升了大块数据下元数据的存储效率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体涉及一种元数据读写方法和装置
技术介绍
随着IT系统的发展,数据规模越来越大,目前已有很多公司采用分布式存储系统对海量数据进行存储和管理,而元数据管理是分布式系统中不可或缺的模块。分布式存储系统的元数据具有变更频繁、集中管理、存储节点多,集群元数据庞大、管理节点采用一主多备模式等特点,所以在设计分布式存储系统时需考虑如何对元数据进行高效的管理。现有技术中大多采用基于日志的元数据读写方法,图1为现有技术的日志元数据管理示意图,系统初始部署时,由分布式系统管理软件(Zooke印er,ZK)选出主管理节点,需要读写元数据时,由主管理节点负责完成读写操作;当主管理节点发生故障,ZK从多个备管理节点中选择出新的主管理节点,新的主管理节点从共享存储中恢复元数据。一次写操作主要有以下步骤:(1)元数据写入元数据日志区;(2)元数据写入元数据区;(3)删除元数据日志区中的元数据。为了保证元数据的原子性,一次写操作需要串行地执行上述三个步骤,包括两次写元数据和一次删除日志区元数据。因此,当系统集群规模大、元数据量大且操作频繁时,使用基于日志的元数据读写方法表现出存储效率较低的问题。
技术实现思路
本专利技术提供了一种元数据读写方法和装置,以解决当数据量大时元数据存储效率低,从而实现了在保证原子性的前提下,提升大块数据下元数据的存储效率。第一方面,本专利技术实施例提供了一种元数据写方法,所述方法包括:从内存中获取有效区域指针;当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。结合第一方面,在第一方面的第一种可能的实现方式中,当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第一元数据区。结合第一方面,在第二种可能的实现方式中,当所述有效区域指针指向所述共享存储的第二元数据区,则将元数据写入所述共享存储的第一元数据区;当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区,并将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第二元数据区。结合第一方面或者第一方面的上述三种可能的实现方式中任意一种可能的实现方式,在第四种可能的实现方式中,所述从内存中获取有效区域指针具体为:主管理节点从内存中获取有效区域指针。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。第二方面,本专利技术实施例提供了一种元数据读方法,所述方法包括:从内存中获取有效区域指针;当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并将所述元数据写入所述内存;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并将所述元数据写入所述内存。结合第二方面,在第二方面的第一种可能的实现方式中,所述从内存中获取有效区域指针具体为:主管理节点从内存中获取有效区域指针。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。第三方面,本专利技术实施例提供了一种元数据写装置,所述装置包括:获取单元、写入单元,修改单元;获取单元,用于从内存中获取有效区域指针,并发送给所述写入单元;写入单元,用于当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;修改单元,用于当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区。结合第三方面,在第三方面的第一种可能的实现方式中,所述写入单元还用于将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。结合第三方面,在第三方面的第二种可能的实现方式中,所述修改单元还用于当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第一元数据区。结合第三方面,在第三种可能的实现方式中,所述写入单元还用于当所述有效区域指针指向所述第二元数据区,则将元数据写入所述第一元数据区。结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述修改单元还用于当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区。结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述写入单元还用于将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。结合第三方面的第二种可能的实现方式,在第六种可能的实现方式中,所述修改单元还用于当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第二元数据区。结合第三方面或者第三方面的上述六种可能的实现方式中任意一种可能的实现方式,在第七种可能的实现方式中,所述获取单元具体用于主管理节点从内存中获取有效区域指针。结合第三方面的第七种可能的实现方式,在第八种可能的实现方式中,所述获取单元还用于当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。第四方面,本专利技术实施例提供了一种元数据读装置,所述装置包括:获取单元、读取单元、写入单元;获取单元,用于从内存中获取有效区域指针,并发送给所述读取单元;读取单元,用于当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并发送给所述写入单元;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并发送给所述写入单元;写入单元,用于将接收到的所述元数据写入所述内存。结合第四方面,在第四方面的第一种可能的实现方式中,所述获取单元具体用于主管理节点从所述内存中获取有效区域指针。结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取单元还用于当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。通过上述方案,在写元数据时通过有效区域指针确定有效的元数据区,交替写第一元数据区和第二元数据区,写成功后将指针指向最后写成功的元数据区,写元数据失败则不修改指针,进而使得分布式系统的元数据保存在共享存储中,并天然保存一份快照,在读元数据时依据当前指针的指向先选择有效的元数据区,然后从有效的元数据区读取元数据。该方法仅需要写一次元数据加一次指针,从而在保证元数据的原子性前提下,提升了大块元数据的存储效率。另外,元数据读写当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种元数据写方法,其特征在于,所述方法包括:从内存中获取有效区域指针;当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。

【技术特征摘要】

【专利技术属性】
技术研发人员:王振宇岑新星
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1