CN105278877A - 一种对象存储方法和装置 - Google Patents
一种对象存储方法和装置 Download PDFInfo
- Publication number
- CN105278877A CN105278877A CN201510640674.2A CN201510640674A CN105278877A CN 105278877 A CN105278877 A CN 105278877A CN 201510640674 A CN201510640674 A CN 201510640674A CN 105278877 A CN105278877 A CN 105278877A
- Authority
- CN
- China
- Prior art keywords
- write
- metadata
- data
- node
- stored
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种对象存储方法和装置,该方法可包括:获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。本发明实施例可以减少写操作的时延。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种对象存储方法和装置。
背景技术
随着存储技术的发展,分布式存储系统应用得到广泛应用。其中,目前分布式存储系统在存储对象进行存储时,主要通过如下方式进行存储:
当客户端接收请请求后,根据路由获取复制状态机(ReplicationStateMachine,RSM)的主节点,发送写请求到主节点;主节点先写本地,若写失败,则返回失败给客户端,若成功,则并发向两个备节点发送写请求,备节点写入后,返回结果给主节点,主节点返回结果给客户端。
然而,上述技术中存储对象的所有内容都是从客户端到主节点要经过一次路由,同时主节点与备节点是顺序写,写操作的时延较大。
发明内容
本发明实施例提供了一种对象存储方法和装置,可以减少写操作的时延。
第一方面,本发明实施例提供一种对象存储方法,包括:
获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
在第一方面的第一种可能的实现方式中,所述方法还包括:
接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
结合第一方面,在第一方面的第二种可能的实现方式中,所述方法还包括:
接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
所述获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,包括:
获取待存储对象的添加所述标记信息的元数据,并向主节点发送携带所述添加所述标记信息的元数据的写入请求。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,包括:
获取所述待存储对象的数据,并确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
第二方面,本发明实施例提供一种对象存储装置,包括:获取单元、第一写入单元和第二写入单元,其中:
所述获取单元,用于获取待存储对象的元数据;
所述第一写入单元,用于向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
所述获取单元还用于获取所述待存储对象的数据;
所述第二写入单元,用于向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
在第二方面的第一种可能的实现方式中,所述装置还包括:
第一接收单元,用于接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
第一判断单元,用于判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括:
第二接收单元,用于接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
第二判断单元,用于判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:
添加单元,用于在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
所述获取单元用于获取待存储对象的添加所述标记信息的元数据;
所述第一写入单元用于向主节点发送携带所述添加所述标记信息的元数据的写入请求。
结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二写入单元用于确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
上述技术方案中,获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。这样可以实现只有存储对象的元数据是从主节点到备节点的顺序写的,而存储对象的数据则是直接写至存储节点的,从而相比现有技术,本发明实施例可以减少写操作的时延。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种对象存储方法的流程示意图;
图2是本发明实施例提供的另一种对象存储方法的流程示意图;
图3是本发明实施例提供的一种对象存储逻辑示意图;
图4是本发明实施例提供的一种对象存储装置的结构示意图;
图5是本发明实施例提供的另一种对象存储装置的结构示意图;
图6是本发明实施例提供的另一种对象存储装置的结构示意图;
图7是本发明实施例提供的另一种对象存储装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施例提供的一种对象存储方法的流程示意图,如图1所示,包括以下步骤:
101、获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地。
本实施例中,待存储对象包括元数据和数据,其中,上述元数据可以用于描述数据属性的信息,而数据则是被元数据描述的数据。例如:上述待存储对象为键值(Key-Value,KV)对象,上述元数据可以是KV对象中的键(Key),上述数据可以是KV对象中的值(Value)。
另外,上述主节点可以是分布式存储系统中RSM的主节点,而上述至少一个备节点可以是RSM的备节点,且可以是一个或者多个备节点。当主节点接收到上述写入请求后,会将上述元数据写入本地,即主节点将元数据存储至主节点中。且当主节点写入成功时,会向上述至少一个备节点发送的上述写入请求,上述备节点接收到上述写入请求后,同样会将元数据写入本地,即备节点将元数据存储到该备节点中。
102、获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
需要说明的是,步骤101和步骤102执行的时间顺序可以不作限定,其中,附图以先执行步骤101再执行步骤102进行举例说明。
步骤102可以是向上述至少一个存储节点发送同样的写入请求,各存储节点接收到该写入请求后,会将上述数据写入至本地,即各存储节点将上述数据存储至该存储节点中。
需要说明的是,上述主节点和至少一个备节点可以属于同一个存储池,该存储池中每个节点可以理解为一个单独的存储设备,或者理解为同一个存储设备中不同的存储器。同理,上述至少一个存储节点可以属于同一个存储池,该存储池中每个节点可以理解为一个单独的存储设备,或者理解为同一个存储设备中不同的存储器。当然,上述主节点、至少一个备节点和存储节点可以属于同一个存储池,此处不作限定。另外,关于上述主节点、备节点和存储节点这三者可以是相同属于的节点,本实施例以不同的名称进行区分仅是为了方便描述。
本实施例中,上述方法可以由分布式存储系统中的能够进行存储策略决定的任意设备,例如:服务器、计算机、平板电脑、手机、电子阅读器、遥控器、笔记本电脑、车载设备、网络电视、可穿戴设备等。
本实施例中,获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。这样可以实现只有存储对象的元数据是从主节点到备节点的顺序写的,而存储对象的数据则是直接写至存储节点的,从而相比现有技术,本发明实施例可以减少写操作的时延。
请参阅图2,图2是本发明实施例提供的另一种对象存储方法的流程示意图,如图2所示,包括以下步骤:
201、获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地。
本实施例中,上述获取待存储对象的元数据可以是业务层下发待存储对象的元数据到分布式对象池(DistributedObjectPool,DOP)层。上述向主节点发送携带所述元数据的写入请求可以是DOP调用其KV接口,并根据路由算法找到RSM的主节点的KV存储池(Key-ValueSotre,KVS),该KVS层提供KV接口供DOP层调用,以便持久化数据,DOP先向主节点写上述元数据,写成功后,主节点再向其它备节点写上述元数据。
另外,本实施例中,上述方法还可以包括如下步骤:
在生成所述待存储对象的元数据时,在所述元数据中添加标记信息。
其中,上述标记信息在存储系中与上述元数据一一对应,另外,本实施例中,不同的存储对象的元数据添加的标记信息不同。例如:在生成上述存储对象的元数据时将当前的时间戳作为该元数据的标记信息。
上述获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求的步骤,可以包括:
获取待存储对象的添加所述标记信息的元数据,并向主节点发送携带所述添加所述标记信息的元数据的写入请求。
这样可以实现约束写数据时不会有覆盖写,这样可以保证写元数据时不会有覆盖写,即不会重复写同一个key,也就不会有同key的并发写。另外,由于不会有覆盖写,这样还可以减少I/O次数,减少系统时延。
202、获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
本实施例中,上述方法还可以包括如下步骤:
203、接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
204、判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功,若否,则确定所述待存储对象的数据写入失败。
这样可以实现当写入成功的存储节点数大于或者等于上述阈值时,就可以确定待存储对象的数据写入成功。
该实施方式中,上述预设阈值可以是理解为W,上述至少一个存储节点的节点数可以理解为N,这样可以实现根据NRW原则确定上述待存储对象的数据是否写入成功。具体的上述N和W的关系可以是预先设定好。
另外,上述实施方式中,还可以实现对待存储对象的数据进行最终一次性存储。
本实施例中,上述方法还可以包括如下步骤:
205、接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
206、判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
该实施方式中,由于只有所有数据都写入成功时,才确定上述待存储对照的元数据写入成功,当存在任意节点写入失败时,则确定上述待存储对象的元数据写入失败。这样可以实现对上述待存储对象的元数据实现强一致性存储。
通过上述两种实现方式可以实现对待存储对象的元数据实现强一致性存储,而对待存储对象的数据实现最终一致性存储。主要是因为在实际应用中,元数据更新操作多,对一致性要求高,数据量相对较少;而数据无更新操作,数据量大,对一致性要求相对较低。而对存储对象的数据进行上述方式的存储可以减少写操作的时延。
本实施例中,上述获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求的步骤,可以包括:
获取所述待存储对象的数据,并确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
这样可以实现只对无需更新操作的数据发送给上述至少一个存储节点进行写入。其中,上述确定数据是否无需更新操作可以是判断该存储对象的数据是否满足预先特性,若是,则确定为无需更新操作的数据;或者可以是判断发送该数据的客户端是否为预设客户端,若是,则确定为无需更新操作的数据。
另外,本实施例中,具体可以是如图3所示,对象存储系统31可以包括对象存储逻辑311、第一逻辑312、第二逻辑313、第一存储池314和第二存储池315,其中,上述对象存储逻辑311用于决策待存储对象的元数据和数据,当进行数据存储时,将数据下发给第一逻辑312,第一逻辑312使用上述介绍的对数据的写入方式将数据写入至第一存储池314;当进行元数据存储时,将元数据下发给第二逻辑313,第二逻辑313使用上述介绍的对元数据的写入方式将数据写入至第二存储池315。这样可以实现对待存储对象的元数据和数据采集不同的逻辑进行存储。另外,上述第一逻辑312对数据进行存储的逻辑可以理解为Quorum逻辑,上述第二逻辑312对元数据进行存储的逻辑可以理解为RSM逻辑。
本实施例中,在图1所示的实施例的基础上增加了多种可选的实施方式,且都可以实现减少写操作的时延。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至二实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一和实施例二。
请参阅图4,图4是本发明实施例提供的一种对象存储装置的结构示意图,如图4所示,包括:获取单元41、第一写入单元42和第二写入单元43,其中:
获取单元41,用于获取待存储对象的元数据。
本实施例中,待存储对象包括元数据和数据,其中,上述元数据可以用于描述数据属性的信息,而数据则是被元数据描述的数据。例如:上述待存储对象为KV对象,上述元数据可以是KV对象中的键(Key),上述数据可以是KV对象中的值(Value)。
第一写入单元42,用于向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地。
上述主节点可以是分布式存储系统中RSM的主节点,而上述至少一个备节点可以是RSM的备节点,且可以是一个或者多个备节点。当主节点接收到上述写入请求后,会将上述元数据写入本地,即主节点将元数据存储至主节点中。且当主节点写入成功时,会向上述至少一个备节点发送的上述写入请求,上述备节点接收到上述写入请求后,同样会将元数据写入本地,即备节点将元数据存储到该备节点中。
获取单元41还用于获取所述待存储对象的数据。
第二写入单元43,用于向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
第二写入单元43可以是向上述至少一个存储节点发送同样的写入请求,各存储节点接收到该写入请求后,会将上述数据写入至本地,即各存储节点将上述数据存储至该存储节点中。
需要说明的是,上述主节点和至少一个备节点可以属于同一个存储池,该存储池中每个节点可以理解为一个单独的存储设备,或者理解为同一个存储设备中不同的存储器。同理,上述至少一个存储节点可以属于同一个存储池,该存储池中每个节点可以理解为一个单独的存储设备,或者理解为同一个存储设备中不同的存储器。当然,上述主节点、至少一个备节点和存储节点可以属于同一个存储池,此处不作限定。另外,关于上述主节点、备节点和存储节点这三者可以是相同属于的节点,本实施例以不同的名称进行区分仅是为了方便描述。
本实施例中,上述装置可以由分布式存储系统中的能够进行存储策略决定的任意设备,例如:服务器、计算机、平板电脑、手机、电子阅读器、遥控器、笔记本电脑、车载设备、网络电视、可穿戴设备等。
本实施例中,获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。这样可以实现只有存储对象的元数据是从主节点到备节点的顺序写的,而存储对象的数据则是直接写至存储节点的,从而相比现有技术,本发明实施例可以减少写操作的时延。
请参阅图5,图5是本发明实施例提供的另一种对象存储装置的结构示意图,如图5所示,包括:获取单元51、第一写入单元52和第二写入单元53,其中:
获取单元51,用于获取待存储对象的元数据。
本实施例中,上述获取待存储对象的元数据可以是业务层下发待存储对象的元数据到DOP层。
第一写入单元52,用于向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地。
上述向主节点发送携带所述元数据的写入请求可以是DOP调用其KV接口,并根据路由算法找到RSM的主节点的KVS,该KVS层提供KV接口供DOP层调用,以便持久化数据,DOP先向主节点写上述元数据,写成功后,主节点再向其它备节点写上述元数据。
本实施例中,所述装置还可以包括:
添加单元54,用于在生成所述待存储对象的元数据时,在所述元数据中添加标记信息.
获取单元51可以用于获取待存储对象的添加所述标记信息的元数据;
第一写入单元52可以用于向主节点发送携带所述添加所述标记信息的元数据的写入请求。
其中,上述标记信息在存储系中与上述元数据一一对应,另外,本实施例中,不同的存储对象的元数据添加的标记信息不同。例如:在生成上述存储对象的元数据时将当前的时间戳作为该元数据的标记信息。
这样可以实现约束写数据时不会有覆盖写,这样可以保证写元数据时不会有覆盖写,即不会重复写同一个key,也就不会有同key的并发写。另外,由于不会有覆盖写,这样还可以减少I/O次数,减少系统时延。
获取单元51还用于获取所述待存储对象的数据。
第二写入单元53,用于向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
本实施例中,如图6所示,上述装置还可以包括:
第一接收单元55,用于接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
第一判断单元56,用于判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功,若否,则确定所述待存储对象的数据写入失败。
这样可以实现当写入成功的存储节点数大于或者等于上述阈值时,就可以确定待存储对象的数据写入成功。
该实施方式中,上述预设阈值可以是理解为W,上述至少一个存储节点的节点数可以理解为N,这样可以实现根据NRW原则确定上述待存储对象的数据是否写入成功。具体的上述N和W的关系可以是预先设定好。
另外,上述实施方式中,还可以实现对待存储对象的数据进行最终一次性存储。
本实施例中,上述装置还可以包括:
第二接收单元57,用于接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
第二判断单元58,用于判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
该实施方式中,由于只有所有数据都写入成功时,才确定上述待存储对照的元数据写入成功,当存在任意节点写入失败时,则确定上述待存储对象的元数据写入失败。这样可以实现对上述待存储对象的元数据实现强一致性存储。
通过上述两种实现方式可以实现对待存储对象的元数据实现强一致性存储,而对待存储对象的数据实现最终一致性存储。主要是因为在实际应用中,元数据更新操作多,对一致性要求高,数据量相对较少;而数据无更新操作,数据量大,对一致性要求相对较低。而对存储对象的数据进行上述方式的存储可以减少写操作的时延。
本实施例中,第二写入单元53可以用于确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
这样可以实现只对无需更新操作的数据发送给上述至少一个存储节点进行写入。其中,上述确定数据是否无需更新操作可以是判断该存储对象的数据是否满足预先特性,若是,则确定为无需更新操作的数据;或者可以是判断发送该数据的客户端是否为预设客户端,若是,则确定为无需更新操作的数据。
本实施例中,在图4所示的实施例的基础上增加了多种可选的实施方式,且都可以实现减少写操作的时延。
请参阅图7,图7是本发明实施例提供的另一种对象存储装置的结构示意图,如图7所示,包括:处理器71、网络接口72、存储器73和通信总线74,其中,所述通信总线74用于实现所述处理器71、网络接口72和存储器73之间连接通信,所述处理器71执行所述存储器73中存储的程序用于实现以下方法:
获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
本实施例中,处理器71执行的程序还可以包括:
接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,则确定所述待存储对象的数据写入成功。
本实施例中,处理器71执行的程序还可以包括:
接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
本实施例中,处理器71执行的程序还可以包括:
在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
处理器71执行的获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求的步骤,可以包括:
获取待存储对象的添加所述标记信息的元数据,并向主节点发送携带所述添加所述标记信息的元数据的写入请求。
本实施例中,处理器71执行的获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求的步骤,可以包括:
获取所述待存储对象的数据,并确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
本实施例中,上述装置可以由分布式存储系统中的能够进行存储策略决定的任意设备,例如:服务器、计算机、平板电脑、手机、电子阅读器、遥控器、笔记本电脑、车载设备、网络电视、可穿戴设备等。
本实施例中,获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。这样可以实现只有存储对象的元数据是从主节点到备节点的顺序写的,而存储对象的数据则是直接写至存储节点的,从而相比现有技术,本发明实施例可以减少写操作的时延。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种对象存储方法,其特征在于,包括:
获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
所述获取待存储对象的元数据,并向主节点发送携带所述元数据的写入请求,包括:
获取待存储对象的添加所述标记信息的元数据,并向主节点发送携带所述添加所述标记信息的元数据的写入请求。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述获取所述待存储对象的数据,并向至少一个存储节点发送携带有所述数据的写入请求,包括:
获取所述待存储对象的数据,并确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
6.一种对象存储装置,其特征在于,包括:获取单元、第一写入单元和第二写入单元,其中:
所述获取单元,用于获取待存储对象的元数据;
所述第一写入单元,用于向主节点发送携带所述元数据的写入请求,由所述主节点根据所述写入请求将所述元数据写入本地,并由所述主节点向至少一个备节点发送携带所述元数据的写入请求,以使所述至少一个备节点将所述元数据写入本地;
所述获取单元还用于获取所述待存储对象的数据;
所述第二写入单元,用于向至少一个存储节点发送携带有所述数据的写入请求,以使所述至少一个存储节点将所述数据写入本地。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
第一接收单元,用于接收所述至少一个存储节点中每个存储节点发送的第一写入结果,其中,所述第一写入结果用于表示所述数据写入是否成功;
第一判断单元,用于判断接收到的表示写入成功的第一写入结果的数量是否大于或者等于预设阈值时,若是,则确定所述待存储对象的数据写入成功。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收所述主节点发送的用于表示所述元数据写入是否成功的第二写入结果,以及接收所述主节点发送的第三写入结果,其中,所述第三写入结果包括所述至少一个备节点中每个备节点发送的用于表示所述元数据写入是否成功的写入结果;
第二判断单元,用于判断接收的所述第二写入结果和所述第三写入结果中是否存在表示所述元数据写入失败的写入结果,若是,则确定所述待存储对象的元数据写入失败,若否,则确定所述待存储对象的元数据写入成功。
9.如权利要求6-8中任一项所述的装置,其特征在于,所述装置还包括:
添加单元,用于在生成所述待存储对象的元数据时,在所述元数据中添加标记信息;
所述获取单元用于获取待存储对象的添加所述标记信息的元数据;
所述第一写入单元用于向主节点发送携带所述添加所述标记信息的元数据的写入请求。
10.如权利要求6-8中任一项所述的装置,其特征在于,所述第二写入单元用于确定所述数据为无需更新操作的数据时,向至少一个存储节点发送携带有所述数据的写入请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510640674.2A CN105278877A (zh) | 2015-09-30 | 2015-09-30 | 一种对象存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510640674.2A CN105278877A (zh) | 2015-09-30 | 2015-09-30 | 一种对象存储方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105278877A true CN105278877A (zh) | 2016-01-27 |
Family
ID=55147964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510640674.2A Pending CN105278877A (zh) | 2015-09-30 | 2015-09-30 | 一种对象存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105278877A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018040589A1 (zh) * | 2016-09-05 | 2018-03-08 | 华为技术有限公司 | 一种基于分布式存储系统的数据处理方法及存储设备 |
CN110337633A (zh) * | 2017-06-30 | 2019-10-15 | 华为技术有限公司 | 一种数据存储方法及设备 |
WO2021226905A1 (zh) * | 2020-05-14 | 2021-11-18 | 深圳市欢太科技有限公司 | 一种数据存储方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存系统 |
CN102265277A (zh) * | 2011-06-01 | 2011-11-30 | 华为技术有限公司 | 数据存储系统的操作方法和装置 |
WO2013097115A1 (zh) * | 2011-12-28 | 2013-07-04 | 华为技术有限公司 | 文件目录存储方法、检索方法和设备 |
CN104765661A (zh) * | 2014-12-30 | 2015-07-08 | 深圳市安云信息科技有限公司 | 一种云存储服务中元数据服务节点的多节点热备方法 |
CN104917843A (zh) * | 2015-06-17 | 2015-09-16 | 嘉兴市第一医院 | 云存储与医疗图像无缝对接系统 |
-
2015
- 2015-09-30 CN CN201510640674.2A patent/CN105278877A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存系统 |
CN102265277A (zh) * | 2011-06-01 | 2011-11-30 | 华为技术有限公司 | 数据存储系统的操作方法和装置 |
WO2013097115A1 (zh) * | 2011-12-28 | 2013-07-04 | 华为技术有限公司 | 文件目录存储方法、检索方法和设备 |
CN104765661A (zh) * | 2014-12-30 | 2015-07-08 | 深圳市安云信息科技有限公司 | 一种云存储服务中元数据服务节点的多节点热备方法 |
CN104917843A (zh) * | 2015-06-17 | 2015-09-16 | 嘉兴市第一医院 | 云存储与医疗图像无缝对接系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018040589A1 (zh) * | 2016-09-05 | 2018-03-08 | 华为技术有限公司 | 一种基于分布式存储系统的数据处理方法及存储设备 |
US11614867B2 (en) | 2016-09-05 | 2023-03-28 | Huawei Technologies Co., Ltd. | Distributed storage system-based data processing method and storage device |
CN110337633A (zh) * | 2017-06-30 | 2019-10-15 | 华为技术有限公司 | 一种数据存储方法及设备 |
WO2021226905A1 (zh) * | 2020-05-14 | 2021-11-18 | 深圳市欢太科技有限公司 | 一种数据存储方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN110427284B (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
CN103136110B (zh) | 内存管理方法、内存管理装置及numa系统 | |
CN103019960B (zh) | 分布式缓存方法及系统 | |
CN103034566B (zh) | 虚拟机还原的方法和装置 | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
CN106126374B (zh) | 数据写入方法、数据读取方法及装置 | |
CN102938784A (zh) | 应用于分布式存储系统中的数据存储方法和系统 | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
CN105808374B (zh) | 一种快照处理方法及相关设备 | |
CN102142032B (zh) | 一种分布式文件系统的数据读写方法及系统 | |
US20160246516A1 (en) | Data Operation Method and Device | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
CN105278877A (zh) | 一种对象存储方法和装置 | |
CN105760109B (zh) | 数据迁移方法和存储阵列 | |
CN108733307B (zh) | 存储管理方法、设备以及计算机可读介质 | |
CN113190384A (zh) | 基于纠删码的数据恢复控制方法、装置、设备及介质 | |
CN111046004B (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN111124256B (zh) | 管理存储的方法、设备和计算机程序产品 | |
CN105068760A (zh) | 数据存储方法、数据存储装置和存储设备 | |
CN106991121B (zh) | 超融合数据存储方法及系统 | |
CN107045426B (zh) | 一种多副本读取方法和系统 | |
CN106339279B (zh) | 一种业务恢复方法及装置 | |
CN111428453B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160127 |
|
RJ01 | Rejection of invention patent application after publication |