一种对象存储方法和装置的制造方法

文档序号:9523919阅读:181来源:国知局
一种对象存储方法和装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,尤其涉及一种对象存储方法和装置。
【背景技术】
[0002]随着存储技术的发展,分布式存储系统应用得到广泛应用。其中,目前分布式存储系统在存储对象进行存储时,主要通过如下方式进行存储:
[0003]当客户端接收请请求后,根据路由获取复制状态机(Replicat1n StateMachine,RSM)的主节点,发送写请求到主节点;主节点先写本地,若写失败,则返回失败给客户端,若成功,则并发向两个备节点发送写请求,备节点写入后,返回结果给主节点,主节点返回结果给客户端。
[0004]然而,上述技术中存储对象的所有内容都是从客户端到主节点要经过一次路由,同时主节点与备节点是顺序写,写操作的时延较大。

【发明内容】

[0005]本发明实施例提供了一种对象存储方法和装置,可以减少写操作的时延。
[0006]第一方面,本发明实施例提供一种对象存储方法,包括:
[0007]获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
[0008]获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
[0009]在第一方面的第一种可能的实现方式中,所述方法还包括:
[0010]接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
[0011]判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
[0012]结合第一方面,在第一方面的第二种可能的实现方式中,所述方法还包括:
[0013]接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
[0014]判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
[0015]结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
[0016]在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
[0017]所述获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,包括:
[0018]获取待存储对象的添加所述标记信息的元数据,并向主节点发送携带所述添加所述标记信息的元数据的写入请求。
[0019]结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,包括:
[0020]获取所述待存储对象的数据,并确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
[0021]第二方面,本发明实施例提供一种对象存储装置,包括:获取单元、第一写入单元和第二写入单元,其中:
[0022]所述获取单元,用于获取待存储对象的元数据;
[0023]所述第一写入单元,用于向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
[0024]所述获取单元还用于获取所述待存储对象的数据;
[0025]所述第二写入单元,用于向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
[0026]在第二方面的第一种可能的实现方式中,所述装置还包括:
[0027]第一接收单元,用于接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
[0028]第一判断单元,用于判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
[0029]结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括:
[0030]第二接收单元,用于接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
[0031]第二判断单元,用于判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
[0032]结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:
[0033]添加单元,用于在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
[0034]所述获取单元用于获取待存储对象的添加所述标记信息的元数据;
[0035]所述第一写入单元用于向主节点发送携带所述添加所述标记信息的元数据的写入请求。
[0036]结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二写入单元用于确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
[0037]上述技术方案中,获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。这样可以实现只有存储对象的元数据是从主节点到备节点的顺序写的,而存储对象的数据则是直接写至存储节点的,从而相比现有技术,本发明实施例可以减少写操作的时延。
【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1是本发明实施例提供的一种对象存储方法的流程示意图;
[0040]图2是本发明实施例提供的另一种对象存储方法的流程示意图;
[0041]图3是本发明实施例提供的一种对象存储逻辑示意图;
[0042]图4是本发明实施例提供的一种对象存储装置的结构示意图;
[0043]图5是本发明实施例提供的另一种对象存储装置的结构示意图;
[0044]图6是本发明实施例提供的另一种对象存储装置的结构示意图;
[0045]图7是本发明实施例提供的另一种对象存储装置的结构示意图。
【具体实施方式】
[0046]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]请参阅图1,图1是本发明实施例提供的一种对象存储方法的流程示意图,如图1所示,包括以下步骤:
[0048]101、获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地。
[0049]本实施例中,待存储对象包括元数据和数据,其中,上述元数据可以用于描述数据
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1