CN105488047A - 元数据读写方法和装置 - Google Patents
元数据读写方法和装置 Download PDFInfo
- Publication number
- CN105488047A CN105488047A CN201410472909.7A CN201410472909A CN105488047A CN 105488047 A CN105488047 A CN 105488047A CN 201410472909 A CN201410472909 A CN 201410472909A CN 105488047 A CN105488047 A CN 105488047A
- Authority
- CN
- China
- Prior art keywords
- meta
- metadata
- data region
- effective coverage
- pointer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004321 preservation Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000011084 recovery Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种元数据读写方法和装置,所述方法包括:从内存中获取有效区域指针;当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。本发明提供的元数据读写方法和装置在保证原子性的前提下,提升了大块数据下元数据的存储效率。
Description
技术领域
本发明涉及计算机领域,具体涉及一种元数据读写方法和装置。
背景技术
随着IT***的发展,数据规模越来越大,目前已有很多公司采用分布式存储***对海量数据进行存储和管理,而元数据管理是分布式***中不可或缺的模块。分布式存储***的元数据具有变更频繁、集中管理、存储节点多,集群元数据庞大、管理节点采用一主多备模式等特点,所以在设计分布式存储***时需考虑如何对元数据进行高效的管理。
现有技术中大多采用基于日志的元数据读写方法,图1为现有技术的日志元数据管理示意图,***初始部署时,由分布式***管理软件(Zookeeper,ZK)选出主管理节点,需要读写元数据时,由主管理节点负责完成读写操作;当主管理节点发生故障,ZK从多个备管理节点中选择出新的主管理节点,新的主管理节点从共享存储中恢复元数据。一次写操作主要有以下步骤:(1)元数据写入元数据日志区;(2)元数据写入元数据区;(3)删除元数据日志区中的元数据。
为了保证元数据的原子性,一次写操作需要串行地执行上述三个步骤,包括两次写元数据和一次删除日志区元数据。因此,当***集群规模大、元数据量大且操作频繁时,使用基于日志的元数据读写方法表现出存储效率较低的问题。
发明内容
本发明提供了一种元数据读写方法和装置,以解决当数据量大时元数据存储效率低,从而实现了在保证原子性的前提下,提升大块数据下元数据的存储效率。
第一方面,本发明实施例提供了一种元数据写方法,所述方法包括:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;
当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。
结合第一方面,在第一方面的第一种可能的实现方式中,当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第一元数据区。
结合第一方面,在第二种可能的实现方式中,当所述有效区域指针指向所述共享存储的第二元数据区,则将元数据写入所述共享存储的第一元数据区;当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区,并将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第二元数据区。
结合第一方面或者第一方面的上述三种可能的实现方式中任意一种可能的实现方式,在第四种可能的实现方式中,所述从内存中获取有效区域指针具体为:主管理节点从内存中获取有效区域指针。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。
第二方面,本发明实施例提供了一种元数据读方法,所述方法包括:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并将所述元数据写入所述内存;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并将所述元数据写入所述内存。
结合第二方面,在第二方面的第一种可能的实现方式中,所述从内存中获取有效区域指针具体为:主管理节点从内存中获取有效区域指针。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。
第三方面,本发明实施例提供了一种元数据写装置,所述装置包括:获取单元、写入单元,修改单元;
获取单元,用于从内存中获取有效区域指针,并发送给所述写入单元;
写入单元,用于当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;
修改单元,用于当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区。
结合第三方面,在第三方面的第一种可能的实现方式中,所述写入单元还用于将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。
结合第三方面,在第三方面的第二种可能的实现方式中,所述修改单元还用于当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第一元数据区。
结合第三方面,在第三种可能的实现方式中,所述写入单元还用于当所述有效区域指针指向所述第二元数据区,则将元数据写入所述第一元数据区。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述修改单元还用于当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述写入单元还用于将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。
结合第三方面的第二种可能的实现方式,在第六种可能的实现方式中,所述修改单元还用于当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第二元数据区。
结合第三方面或者第三方面的上述六种可能的实现方式中任意一种可能的实现方式,在第七种可能的实现方式中,所述获取单元具体用于主管理节点从内存中获取有效区域指针。
结合第三方面的第七种可能的实现方式,在第八种可能的实现方式中,所述获取单元还用于当所述主管理节点故障时,备管理节点从内存中获取有效区域指针。
第四方面,本发明实施例提供了一种元数据读装置,所述装置包括:获取单元、读取单元、写入单元;
获取单元,用于从内存中获取有效区域指针,并发送给所述读取单元;
读取单元,用于当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并发送给所述写入单元;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并发送给所述写入单元;
写入单元,用于将接收到的所述元数据写入所述内存。
结合第四方面,在第四方面的第一种可能的实现方式中,所述获取单元具体用于主管理节点从所述内存中获取有效区域指针。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取单元还用于当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
通过上述方案,在写元数据时通过有效区域指针确定有效的元数据区,交替写第一元数据区和第二元数据区,写成功后将指针指向最后写成功的元数据区,写元数据失败则不修改指针,进而使得分布式***的元数据保存在共享存储中,并天然保存一份快照,在读元数据时依据当前指针的指向先选择有效的元数据区,然后从有效的元数据区读取元数据。该方法仅需要写一次元数据加一次指针,从而在保证元数据的原子性前提下,提升了大块元数据的存储效率。另外,元数据读写操作由主管理节点负责管理,如果主管理节点发生故障,备管理节点可以通过读取指针和元数据快照数据从共享存储中进行集群恢复。
附图说明
图1为现有技术的日志元数据管理示意图;
图2为本发明实施例提供的指针元数据管理应用场景示意图;
图3为本发明实施例提供的元数据写方法实施例的流程图;
图4为本发明实施例提供的元数据读方法实施例的流程图;
图5为本发明实施例提供的元数据写装置实施例的结构示意图;
图6为本发明实施例提供的元数据读装置实施例的结构示意图;
图7为本发明实施例提供的一种元数据写装置的硬件实现示意图;
图8为本发明实施例提供的一种元数据读装置的硬件实现示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它的实施例,都属于本发明保护的范围。
首先,图2为本发明指针元数据管理应用场景示意图,如图2所示,共享存储上保存元数据的空间被分为指针区、第一元数据区、第二元数据区。对于所述空间的划分没有具体限定,可以根据业务需要进行划分。ZK负责选出主管理节点,主管理节点负责元数据读写操作管理,当主管理节点发生故障时,ZK从备管理节点选择出新的主管理节点,新的主管理节点从共享存储中恢复元数据。
由于将共享存储上保存元数据的空间划分为指针区、第一元数据区、第二元数据区,首先从内存中获取有效区域指针,通过有效区域指针的指向确定有效的元数据区,当有效区域指针指向第一元数据区,则将元数据写入第二元数据区;当向第二元数据区写入元数据成功后,将有效区域指针指向第二元数据区,并将指向第二元数据区的有效区域指针保存到共享存储的指针区。该方法使得在保证元数据原子性的同时,还提升了大块数据下元数据的存储效率。
下面以图3为例详细说明本发明实施例提供的一种元数据写方法,图3为本发明元数据写方法实施例的流程图。如图3所示,该实施例的元数据写方法包括以下步骤:
步骤301,从内存中获取有效区域指针;
获取有效区域指针的目的是为了向第一元数据区或者第二元数据区进行元数据的写入操作;
步骤302,当有效区域指针指向共享存储的第一元数据区,则将元数据写入共享存储的第二元数据区;
从内存中获取有效区域指针,判断有效区域指针的指向,如果有效区域指针指向共享存储的第一元数据区,就将内存中的元数据写入共享存储的第二元数据区。
步骤303,当向第二元数据区写入所述元数据成功后,将有效区域指针指向第二元数据区,并将指向第二元数据区的有效区域指针保存到共享存储的指针区。
如果向第二元数据区写入元数据成功,就修改有效区域指针指向第二元数据区,同时将指向第二元数据区的有效区域指针保存到共享存储的指针区。如果向第二元数据区写入元数据失败时,则不修改有效区域指针,即有效区域指针仍指向第一元数据区。
在步骤302的另一种可能的情况,当有效区域指针指向共享存储的第二元数据区,则将元数据写入第一元数据区;当向第一元数据区写入元数据成功后,将有效区域指针指向第一元数据区,并将指向第一元数据区的有效区域指针保存到共享存储的指针区。当向第一元数据区写入元数据失败时,则有效区域指针指仍指向第二元数据区。
再如图2所示,因为在分布式管理***中,元数据读写操作管理都是由主管理节点负责的,所以通常来说,在步骤301中,都是主管理节点从内存中获取有效区域指针,但是主管理节点有可能无法进行读取,原因是主管理节点可能发生故障等其他导致无法读取的原因,此时,备管理节点将会替代主管理节点,之前由主管理节点完成的工作由备管理节点来完成,例如从内存中获取有效区域指针等操作。进而从共享存储中恢复元数据。
本发明实施例的元数据写方法,分布式***的元数据保存在内存中,然而保存在内存中带来的弊端是掉电后数据会丢失,因此,需将内存中的元数据保存到共享存储中,其中共享存储可以是共享磁盘、硬盘,但不限于此,共享存储可为其它存储介质。将共享存储上保存元数据的空间划分为指针区、第一元数据区、第二元数据区。在写元数据时通过有效区域指针确定有效元数据区,进而交替写第一元数据区和第二元数据区,写成功后将指针指向最后写成功的元数据区,如果写失败,则不修改指针。最终使得共享存储的第一元数据区和第二元数据区各保存一份元数据,指针区保存有效区域指针。该方法仅需要写一次元数据加一次指针,因此,与现有技术基于日志的元数据管理相比,在保证元数据的原子性前提下,提升了大块元数据的存储效率,同时也为元数据保存了一份快照。
下面以图4为例详细说明本发明实施例提供的一种元数据读方法,图4为本发明元数据读方法实施例的流程图。如图4所示,该实施例的元数据读方法包括以下步骤:
步骤401,从内存中获取有效区域指针;
获取有效区域指针的目的是为了从共享存储的第一元数据区或者第二元数据区进行元数据的读取操作;
步骤402,当有效区域指针指向共享存储的第一元数据区,从第一元数据区读取元数据,并将元数据写入内存;当有效区域指针指向共享存储的第二元数据区,从第二元数据区读取元数据,并将元数据写入所述内存。
在读元数据时依据当前指针的指向选择有效的元数据区,如果有效区域指针指向第一元数据区,就从第一元数据区读出元数据,同时将该元数据保存到内存中,如果有效区域指针指向第二元数据区,就从第二元数据区读出元数据,同时将该元数据保存到内存中。
再如图2所示,因为在分布式管理***中,元数据读写操作管理都是由主管理节点负责的,所以通常来说,在步骤301中,都是主管理节点从内存中获取有效区域指针,但是主管理节点有可能无法进行读取,原因是主管理节点可能发生故障等其他导致无法读取的原因,此时,备管理节点将会替代主管理节点,之前由主管理节点完成的工作由备管理节点来完成,例如从内存中获取有效区域指针等操作。进而从共享存储中恢复元数据。
本发明实施例的元数据读方法,在读元数据时依据当前指针的指向选择有效的元数据区,然后再读出元数据并写入内存,这与现有技术的日志元数据管理相比,在保证元数据的原子性前提下,提升了大块元数据的存储效率。
图5为本发明元数据写装置实施例的结构示意图,本发明实施例提供的元数据写装置用以实现写方法实施例,如图5所示,一种元数据写装置包括:获取单元501、写入单元502,修改单元503;
获取单元501,用于从内存中获取有效区域指针,并发送给写入单元;
获取单元501从内存中获取有效区域指针的目的是为了向第一元数据区或者第二元数据区进行元数据的写入操作,获取单元501将获取到的有效区域指针发送给写入单元502.
写入单元502,用于当有效区域指针指向共享存储的第一元数据区,则将元数据写入共享存储的第二元数据区;
写入单元502接收有效区域指针,由于有效区域指针的指向共享存储的第一元数据区,因此将元数据写入共享存储的第二元数据区。
修改单元503,用于当向第二元数据区写入元数据成功后,将有效区域指针指向第二元数据区。
当向第二元数据区写入元数据成功后,修改单元503将有效区域指针指向第二元数据区,同时写入单元502将指向第二元数据区的有效区域指针保存到共享存储的指针区。如果向第二元数据区写入元数据失败时,则不修改有效区域指针,即有效区域指针仍然指向第一元数据区。
另一种可能的情况中,当有效区域指针指向共享存储的第二元数据区,则写入单元502将元数据写入第一元数据区;当向第一元数据区写入元数据成功后,修改单元503将有效区域指针指向第一元数据区,同时写入单元502将指向第一元数据区的有效区域指针保存到共享存储的指针区。当向第一元数据区写入元数据失败时,则有效区域指针指仍指向第二元数据区。
再如图2所示,因为在分布式管理***中,元数据读写操作管理都是由主管理节点负责的,所以通常来说,都是主管理节点从内存中获取有效区域指针,但是主管理节点有可能无法进行读取,原因是主管理节点可能发生故障等其他导致无法读取的原因,此时,备管理节点将会替代主管理节点,从共享存储中恢复元数据。
本发明实施例提供的元数据写装置用以实现写方法实施例,在写元数据时通过指针交替写第一元数据区和第二元数据区,写元数据成功后将指针指向最后写成功的元数据区,写元数据失败则不修改指针,与现有技术的日志元数据管理相比,仅需要写一次元数据加一次指针即可保证原子性,还提升了大块元数据的存储效率,同时也为元数据保存了一份快照。另外,主管理节点负责元数据写操作管理,在主管理节点发生故障时,备管理节点可以通过读取指针和元数据快照数据进行集群恢复。
需要说明的是,本发明实施例提供的一种元数据写装置所包括的各个单元只是按照功能逻辑进行划分的,但并不限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图6为本发明元数据读装置实施例的结构示意图,本发明实施例提供的元数据读装置用以实现读方法实施例,如图6所示,一种元数据读装置包括:获取单元601、读取单元602、写入单元603。
获取单元601,用于从内存中获取有效区域指针,并发送给读取单元;
获取单元601获取有效区域指针的目的是为了从共享存储的第一元数据区或者第二元数据区读取元数据,然后将获取到的有效区域指针发送给读取单元602;
读取单元602,用于当有效区域指针指向共享存储的第一元数据区,从第一元数据区读取元数据,并发送给写入单元;当有效区域指针指向共享存储的第二元数据区,从第二元数据区读取元数据,并发送给写入单元;
读取单元602根据有效区域指针的指向来从共享存储的第一元数据区或者第二元数据区读取元数据,然后将读取到的元数据发送给写入单元。
写入单元603,用于将接收到的元数据写入内存。
再如图2所示,因为在分布式管理***中,元数据读写操作管理都是由主管理节点负责的,所以通常来说,都是主管理节点从内存中获取有效区域指针,但是主管理节点有可能无法进行读取,原因是主管理节点可能发生故障等其他导致无法读取的原因,此时,备管理节点将会替代主管理节点,从共享存储中恢复元数据。
本发明实施例提供的元数据读装置用以实现读方法实施例,在读元数据时依据当前指针的指向选择有效的元数据区,然后再读出元数据,这与现有技术的日志元数据管理相比提升了大块元数据的存储效率。另外,主管理节点负责元数据读操作管理,在主管理节点发生故障时,备管理节点可以通过读取指针和元数据快照数据进行集群恢复。
需要说明的是,本发明实施例提供的一种元数据读装置所包括的各个单元只是按照功能逻辑进行划分的,但并不限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
相应的,本发明实施例还提供了一种元数据写装置的硬件实现,具体如图7所示。本实施例包括网络接口71、处理器72和存储器73。***总线74用于连接网络接口71、处理器72和存储器73。
网络接口71用于与物联网终端、物联网接入网关、承载网、物联网服务网关和应用服务器通信。
存储器73可以是永久存储器,例如硬盘驱动器和闪存,存储器73中具有软件模块和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。
在启动时,这些软件组件被加载到存储器73中,然后被处理器72访问并执行如下指令:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;
当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。
进一步的,所述处理器72访问存储器73的软件组件后,执行以下过程的指令:
当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第一元数据区。
进一步的,所述处理器72访问存储器73的软件组件后,执行以下过程的指令:
当所述有效区域指针指向所述共享存储的第二元数据区,则将元数据写入所述共享存储的第一元数据区;当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区,并将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第二元数据区。
进一步的,所述从内存中获取有效区域指针的指令具体为:主管理节点从所述内存中获取有效区域指针。
进一步的,所述处理器72访问存储器73的软件组件后,执行以下过程的指令:
当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
本发明实施例提供的元数据写装置用以实现前述实施例中的写方法,在写元数据时通过指针交替写第一元数据区和第二元数据区,写元数据成功后将指针指向最后写成功的元数据区,写元数据失败则不修改指针,与现有技术的日志元数据管理相比,仅需要写一次元数据加一次指针即可保证原子性,还提升了大块元数据的存储效率,同时也为元数据保存了一份快照。另外,主管理节点负责元数据写操作管理,在主管理节点发生故障时,备管理节点可以通过读取指针和元数据快照数据进行集群恢复。
相应的,本发明实施例还提供了一种元数据读装置的硬件实现,具体如图8所示。本实施例包括网络接口81、处理器82和存储器83。***总线84用于连接网络接口81、处理器82和存储器83。
网络接口81用于与物联网终端、物联网接入网关、承载网、物联网服务网关和应用服务器通信。
存储器83可以是永久存储器,例如硬盘驱动器和闪存,存储器83中具有软件模块和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。
在启动时,这些软件组件被加载到存储器83中,然后被处理器82访问并执行如下指令:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并将所述元数据写入所述内存;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并将所述元数据写入所述内存。
进一步的,所述从内存中获取有效区域指针的指令具体为:主管理节点从所述内存中获取有效区域指针。
进一步的,所述处理器82访问存储器83的软件组件后,执行以下过程的指令:
当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
本发明实施例提供的元数据读装置用以实现前述实施例中的读方法,在读元数据时依据当前指针的指向选择有效的元数据区,然后再读出元数据,这与现有技术的日志元数据管理相比提升了大块元数据的存储效率。另外,主管理节点负责元数据读操作管理,在主管理节点发生故障时,备管理节点可以通过读取指针和元数据快照数据进行集群恢复。
本领域技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种元数据写方法,其特征在于,所述方法包括:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;
当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区,并将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。
2.根据权利要求1所述的方法,其特征在于,当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第一元数据区。
3.根据权利要求1所述的方法,其特征在于,当所述有效区域指针指向所述共享存储的第二元数据区,则将元数据写入所述共享存储的第一元数据区;当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区,并将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。
4.根据权利要求3所述的方法,其特征在于,当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第二元数据区。
5.根据权利要求1-4任一所述的方法,其特征在于,所述从内存中获取有效区域指针具体为:主管理节点从所述内存中获取有效区域指针。
6.根据权利要求5所述的方法,其特征在于,当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
7.一种元数据读方法,其特征在于,所述方法包括:
从内存中获取有效区域指针;
当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并将所述元数据写入所述内存;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并将所述元数据写入所述内存。
8.根据权利要求7所述的方法,其特征在于,所述从内存中获取有效区域指针具体为:主管理节点从所述内存中获取有效区域指针。
9.根据权利要求8所述的方法,其特征在于,当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
10.一种元数据写装置,其特征在于,所述装置包括:获取单元、写入单元,修改单元;
获取单元,用于从内存中获取有效区域指针,并发送给所述写入单元;
写入单元,用于当所述有效区域指针指向共享存储的第一元数据区,则将元数据写入所述共享存储的第二元数据区;
修改单元,用于当向所述第二元数据区写入所述元数据成功后,将所述有效区域指针指向所述第二元数据区。
11.根据权利要求10所述的装置,其特征在于,所述写入单元还用于将指向所述第二元数据区的有效区域指针保存到共享存储的指针区。
12.根据权利要求10所述的装置,其特征在于,所述修改单元还用于当向所述第二元数据区写入所述元数据失败时,则所述有效区域指针仍指向所述第一元数据区。
13.根据权利要求10所述的装置,其特征在于,所述写入单元还用于当所述有效区域指针指向所述第二元数据区,则将元数据写入所述第一元数据区。
14.根据权利要求13所述的装置,其特征在于,所述修改单元还用于当向所述第一元数据区写入所述元数据成功后,将所述有效区域指针指向所述第一元数据区。
15.根据权利要求14所述的装置,其特征在于,所述写入单元还用于将指向所述第一元数据区的有效区域指针保存到所述共享存储的指针区。
16.根据权利要求12所述的装置,其特征在于,所述修改单元还用于当向所述第一元数据区写入所述元数据失败时,则所述有效区域指针指仍指向所述第二元数据区。
17.根据权利要求10-16任一所述的装置,其特征在于,所述获取单元具体用于主管理节点从所述内存中获取有效区域指针。
18.根据权利要求17所述的装置,其特征在于,所述获取单元还用于当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
19.一种元数据读装置,其特征在于,所述装置包括:获取单元、读取单元、写入单元;
获取单元,用于从内存中获取有效区域指针,并发送给所述读取单元;
读取单元,用于当所述有效区域指针指向共享存储的第一元数据区,从所述第一元数据区读取元数据,并发送给所述写入单元;当所述有效区域指针指向所述共享存储的第二元数据区,从所述第二元数据区读取元数据,并发送给所述写入单元;
写入单元,用于将接收到的所述元数据写入所述内存。
20.根据权利要求19所述的装置,其特征在于,所述获取单元具体用于主管理节点从所述内存中获取有效区域指针。
21.根据权利要求20所述的装置,其特征在于,所述获取单元还用于当所述主管理节点故障时,备管理节点从所述内存中获取有效区域指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410472909.7A CN105488047B (zh) | 2014-09-16 | 2014-09-16 | 元数据读写方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410472909.7A CN105488047B (zh) | 2014-09-16 | 2014-09-16 | 元数据读写方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105488047A true CN105488047A (zh) | 2016-04-13 |
CN105488047B CN105488047B (zh) | 2019-01-18 |
Family
ID=55675029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410472909.7A Active CN105488047B (zh) | 2014-09-16 | 2014-09-16 | 元数据读写方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105488047B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107920131A (zh) * | 2017-12-08 | 2018-04-17 | 郑州云海信息技术有限公司 | 一种hdfs存储***的元数据管理方法及装置 |
CN108023914A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种内存数据共享***、内存数据的写入以及读取方法 |
CN114500683A (zh) * | 2021-12-30 | 2022-05-13 | 上海新时达机器人有限公司 | 基于tcp协议的数据传输方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082592A1 (en) * | 2006-09-28 | 2008-04-03 | Shlomo Ahal | Methods and apparatus for optimal journaling for continuous data replication |
CN102270179A (zh) * | 2010-06-03 | 2011-12-07 | 苏州浩辰软件股份有限公司 | 用于cad***的基于片元的数据存储和处理方法及其*** |
US20120166738A1 (en) * | 2010-12-28 | 2012-06-28 | International Business Machines Corporation | Managing shared data objects to provide visibility to shared memory |
CN102779097A (zh) * | 2011-05-13 | 2012-11-14 | 上海振华重工(集团)股份有限公司 | 流程数据的内存存取方法 |
CN103207916A (zh) * | 2013-04-24 | 2013-07-17 | 曙光信息产业(北京)有限公司 | 元数据处理的方法和装置 |
-
2014
- 2014-09-16 CN CN201410472909.7A patent/CN105488047B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082592A1 (en) * | 2006-09-28 | 2008-04-03 | Shlomo Ahal | Methods and apparatus for optimal journaling for continuous data replication |
CN102270179A (zh) * | 2010-06-03 | 2011-12-07 | 苏州浩辰软件股份有限公司 | 用于cad***的基于片元的数据存储和处理方法及其*** |
US20120166738A1 (en) * | 2010-12-28 | 2012-06-28 | International Business Machines Corporation | Managing shared data objects to provide visibility to shared memory |
CN102779097A (zh) * | 2011-05-13 | 2012-11-14 | 上海振华重工(集团)股份有限公司 | 流程数据的内存存取方法 |
CN103207916A (zh) * | 2013-04-24 | 2013-07-17 | 曙光信息产业(北京)有限公司 | 元数据处理的方法和装置 |
Non-Patent Citations (3)
Title |
---|
王健 等: ""STANAG-4575文件***在VXWorks上的实现"", 《微型电脑应用》 * |
胡鹏: ""海量存储***数据节点的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈宬: ""私有云存储***元数据管理模块的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023914A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种内存数据共享***、内存数据的写入以及读取方法 |
CN108023914B (zh) * | 2016-11-03 | 2021-03-02 | 阿里巴巴集团控股有限公司 | 一种内存数据共享***、内存数据的写入以及读取方法 |
CN107920131A (zh) * | 2017-12-08 | 2018-04-17 | 郑州云海信息技术有限公司 | 一种hdfs存储***的元数据管理方法及装置 |
CN114500683A (zh) * | 2021-12-30 | 2022-05-13 | 上海新时达机器人有限公司 | 基于tcp协议的数据传输方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105488047B (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043686B (zh) | 一种内存数据库的容灾方法、备用服务器及*** | |
CN102142032B (zh) | 一种分布式文件***的数据读写方法及*** | |
CN104239518A (zh) | 重复数据删除方法和装置 | |
CN102662992A (zh) | 一种海量小文件的存储、访问方法及装置 | |
CN101916290B (zh) | 内存数据库的管理方法和装置 | |
CN104111804A (zh) | 一种分布式文件*** | |
CN106170757B (zh) | 一种数据存储方法及装置 | |
CN103440204B (zh) | 一种更新文件***的方法和存储设备 | |
CN104735107A (zh) | 分布式存储***中数据副本恢复方法及装置 | |
CN103473343A (zh) | 一种文件管理方法、装置以及终端 | |
CN106201778B (zh) | 信息处理方法及存储设备 | |
CN103176920A (zh) | Nor flash掉电保护方法及装置 | |
CN104219639A (zh) | 一种显示短信记录的方法和装置 | |
CN106326082A (zh) | 网络***中记录日志的方法和装置 | |
CN105488047A (zh) | 元数据读写方法和装置 | |
CN106598548A (zh) | 存储单元读写冲突的解决方法及装置 | |
CN109189724B (zh) | 提高视频监控***音视频数据存储效率的方法及装置 | |
CN112463880B (zh) | 一种区块链数据存储方法及相关装置 | |
CN104281505A (zh) | 数据备份方法、装置和电子设备 | |
CN107148612A (zh) | 一种扩展用户分区的方法和装置 | |
CN108776670A (zh) | 一种异地容灾方法、***和电子设备 | |
CN104461779A (zh) | 一种分布式数据的存储方法、装置及*** | |
CN111124313A (zh) | 电力采集终端数据读写方法、装置和电子设备 | |
CN113467997B (zh) | 一种数据恢复方法、装置、移动设备和存储介质 | |
CN105245624A (zh) | 一种云存储文件*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220210 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |