CN110968453A - 一种数据存储方法及装置 - Google Patents
一种数据存储方法及装置 Download PDFInfo
- Publication number
- CN110968453A CN110968453A CN201811142257.5A CN201811142257A CN110968453A CN 110968453 A CN110968453 A CN 110968453A CN 201811142257 A CN201811142257 A CN 201811142257A CN 110968453 A CN110968453 A CN 110968453A
- Authority
- CN
- China
- Prior art keywords
- data
- storage node
- storage
- downloaded
- destination
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据存储方法,包括:确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
Description
技术领域
本申请涉及存储领域,尤其涉及一种数据存储方法及装置。
背景技术
为了便于管理和存储当前快速增长的数据,云存储***得到广泛发展。所谓云存储***,其是指将网络中各种不同类型的存储节点通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问的***。
为了便于管理云存储***中的存储节点,云存储***中会设置一个中心管理节点,中心管理节点对云存储***中的所有存储节点进行管理,这种设有中心管理节点的云存储***称为有中心云存储***。
与有中心云存储***相对的,目前还出现了无中心云存储***。在无中心云存储***中,不设有中心管理节点,所有存储节点都是对等的,任何存储节点都可对外提供服务。
目前,常采用无中心云存储***对数据进行存储以及备份。但是无中心云存储***在数据存储至目的存储节点时,需要同时将数据备份至目的存储节点的冗余存储节点,由于目的存储节点与目的存储节点的冗余存储节点在网络中的位置不确定,将数据备份至目的存储节点的冗余存储节点可能需要花费较长时间,并且等目的存储节点和目的存储节点的冗余存储节点都成功存储数据后返回存储成功,以指示可以继续执行下一份数据的存储,这样存储效率较低。
发明内容
为提高存储效率,本申请提供一种数据存储方法及装置。
具体地,本申请是通过如下技术方案实现的:
一种数据存储方法,该方法包括:
确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
一种数据存储装置,该装置包括:
判断模块,用于确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
备份模块,用于若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
存储模块,用于若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
本申请实施例在数据存储的过程中,将无中心云存储***中所有存储节点进行分组,只要存储组内有一个存储节点成功存储数据,则返回数据存储成功,由此可以提高存储效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例示出的一种数据存储方法的流程图;
图2是本申请一示例性实施例示出的一种哈希环;
图3是本申请一示例性实施例示出的一种哈希环被分割成多个哈希值区间的示意图;
图4是本申请一示例性实施例示出的一种哈希环中本存储节点与目的存储节点分布示意图;
图5是本申请一示例性实施例示出的一种数据存储装置的结构示意图;
图6是本申请一示例性实施例示出的一种设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例应用于无中心云存储***中的存储节点,对于无中心云存储***,所有的存储节点都是对等的,任何存储节点都可对外提供服务。为了便于用户使用无中心云存储***中存储节点所提供的服务,本申请实施例中的无中心云存储***对外提供唯一访问域名,无中心云存储***的唯一访问域名对应所有存储节点的IP地址,即对应关系为一对多,以实现无中心云存储***中的任何存储节点都可对外平等提供服务。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请实施例提供了数据存储方法。图1示出了本申请实施例提供的数据存储方法的流程图,如图1所示,本实施例中的方法,可以包括:
步骤101,确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
当外部设备需要将数据上传至无中心云存储***时,外部设备接收域名服务器返回的存储节点的IP地址,其中域名服务器从当前存储节点对应的IP地址列表中选择出存储节点的IP地址,外部设备将数据上传至该IP地址对应的存储节点,以使该存储节点对所述数据进行存储,该存储节点即本存储节点。
本申请实施例中的域名服务器返回所选择的存储节点的IP地址,其中域名服务器选择存储节点的IP地址,其实现方式有多种,本申请实施例对其中两种实施方式进行描述,值得注意的是,但并不是限定如何选择存储节点的IP地址。
其中一种选择存储节点的IP地址的实现方式为:域名服务器从当前存储节点对应的IP地址列表中以轮询的方式选择存储节点的IP地址,并将该IP地址返回给外部设备。在一个例子中,由上述可知,无中心云存储***的域名对应所有的存储节点的IP地址,假设IP地址列表中当前有6个IP地址,从当前IP地址列表中以轮询的方式选择其中一个IP地址返回给外部设备,返回的IP地址为192.168.1.1。
另一种选择存储节点的IP地址的实现方式为:域名服务器从当前存储节点对应的IP地址列表中以随机的方式选择存储节点的IP地址,并将该IP地址返回给外部设备。在一个例子中,IP地址列表中当前有6个IP地址,随机选择的IP地址为192.168.1.2,域名服务器将此IP地址返回给外部设备。
作为优选实施例,在域名服务器选择存储节点的IP地址时,优先检测所选择的IP地址对应的存储节点的资源使用状况,例如CPU使用率是否超过阈值,内存使用率是否超过预设阈值等。在确保存储节点的资源使用状况没有超过阈值的情况下,将IP地址返回给外部设备,否则重新选择IP地址。
在外部设备接收到域名服务器返回的IP地址之后,将数据上传至IP地址对应的存储节点。作为一个例子,IP地址192.168.1.1对应存储节点1,在外部设备接收到域名服务器返回的IP地址192.168.1.1之后,将数据上传至存储节点1。
域名服务器所选择的IP地址对应的存储节点,即本存储节点,接收来自外部设备的数据,在确定来自外设设备的数据成功写入至本存储节点之后,判断本存储节点是否为该数据的目的存储节点。
由于域名服务器从当前存储节点对应的IP地址列表中选择其中一个IP地址返回给外部设备,外部设备接收域名服务器返回的IP地址,那么就可能存在,域名服务器返回的IP地址对应的存储节点并不是目的存储节点。因此在确定来自外设设备的数据成功写入至本存储节点之后,判断自身是否为该数据的目的存储节点。
具体的判断本存储节点是否为该数据的目的存储节点包括:按照预设的算法计算来自外部设备的数据携带的数据标识ID对应的存储节点选择参数,该存储节点选择参数是按照一致性哈希算法计算的数据标识ID对应的哈希值;判断存储节点选择参数是否在本存储节点对应的存储节点选择参数区间内,其中本存储节点对应的存储节点选择参数区间是哈希环中的一个哈希值区间,哈希环是由一致性哈希算法的哈希值的取值范围生成;若是,则确定本存储节点是该数据的目的存储节点;若否,则确定本存储节点不是该数据的目的存储节点。
无中心云存储***基于一致性哈希算法的哈希值的取值范围生成哈希环,根据无中心云存储***中每个存储节点的标识Key,通过一致性哈希算法计算出标识Key对应的哈希值,由标识Key对应的哈希值将哈希环分割成多个哈希值区间,由标识Key对应的哈希值确定无中心云存储***中每个存储节点所在的哈希值区间,本存储节点根据自身标识Key,可以确定自身对应的哈希值区间。
作为一个例子,无中心云存储***当前包含6个存储节点,无中心云存储***基于一致性哈希算法的哈希值的取值范围,哈希值的取值范围为0到2^32的区间,生成哈希环,如图2所示,根据无中心云存储***中每个存储节点的标识Key,即存储节点001,存储节点002,存储节点003,存储节点004,存储节点005,存储节点006,根据上述存储节点的标识Key计算各自对应的哈希值,由这些哈希值可以将哈希环分割成7个区间,并且还可以确定无中心云存储***中每个存储节点所在的哈希值区间,如图3所示。
按照一致性哈希算法计算来自外部设备的数据携带的数据标识ID对应的哈希值,作为一个例子,数据标识ID为0001,该数据标识ID对应的哈希值为1019211。其中来自外部设备的数据携带的数据标识ID,是为该数据指定的唯一ID,该数据标识ID的组合形式多种多样,不仅限于数据的组合,也可以是字符与数据的组合。作为一个例子,数据标识ID可以是001,也可以是camera001。该数据标识ID的作用在于确定数据所存储的目的存储节点,意味着只要外部设备上传的数据中携带的数据标识ID不变,数据所存储的目的存储节点不变。作为一个例子,数据携带的数据标识ID为0001,数据所存储的目的存储节点只会是哈希值区间包含1019211的存储节点,数据携带的数据标识ID为camera0001,数据所存储的目的存储节点只会是哈希值区间包含1019212的存储节点。
在确定本存储节点对应的哈希值区间以及计算出数据标识ID对应的哈希值之后,检测计算的数据标识ID对应的哈希值是否在本存储节点对应的哈希值区间内。作为一个例子,当前无中心云存储***包含6个存储节点,本存储节点为存储节点005,对应的哈希值区间为区间5,数据标识ID对应的哈希值为1019211,数据标识ID对应的哈希值所在的哈希值区间为区间1,目的存储节点为存储节点001,则可知数据标识ID对应的哈希值不在本存储节点对应的哈希值区间内,进而可以确定本存储节点不是目的存储节点,如图4所示。
本申请实施例中的外部设备可以客户端,例如电脑、手机、平板等终端设备,也可以为编码器。
本申请实施例中的数据可以是来自客户端的数据,客户端的数据可以为如上述所述的电脑、手机、平板等终端设备本地的图片、视频、文件等。
本申请实施例中的数据也可以是按照预设的取流规则从来自编码器发送的数据流中选取的数据。所谓编码器的取流规则,作为一个例子,可以是规定了截流对象以及截流时间的规则。
步骤102,若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至同一存储组的至少一个存储节点;
在上述本存储节点判断是否为该数据的目的存储节点之后,存在两种情况,其中一种情况是,本存储节点是该数据的目的存储节点,即域名服务器返回的IP地址对应的存储节点恰好是目的存储节点,本存储节点向外部设备返回数据存储成功响应,并将外部设备上传的数据异步备份至同一存储组的其他存储节点。
本申请实施例中的无中心云存***,将所有存储节点进行分组,其分组的依据为数据备份的份数,即每组内存储节点个数与备份份数相同,且数据只在同一存储组内进行备份,其中无中心云存储***中的备份份数可配置,默认备份份数为2或3。作为一个例子,无中心云存储***中包含6个存储节点,备份份数为2,则会将这6分存储节点划分为3组,每组内有2个存储节点,同样的一份数据只会在同一存储组内的2个存储节点上存储。
步骤103,若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,将所述数据存储至目的存储节点。
如上述所说,无中心云存储***将所有存储节点进行分组,组内存储节点个数与备份份数相同,本存储节点经过判断得知自身不是该数据的目的存储节点,但存在一种可能情况是本存储节点与目的存储节点属于同一存储组。为了能够节省存储节点的资源使用率以及提高数据存储效率,可以进一步判断本存储节点与目的存储节点是否属于同一存储组。当本存储节点与目的存储节点属于同一存储组,则向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点;当本存储节点与目的存储节点不属于同一存储组,则将外部设备上传的数据转发至目的存储节点,以使目的存储节点对数据进行存储,待目的存储节点成功写入数据至本地时,由目的存储节点向外部设备返回数据存储成功响应。
在上述实施例的描述中,默认无中心云存储***中所有存储节点在线,但是也可能存在目的存储节点不在线的情况,或者目的存储节点所在存储组的其他存储节点都不在线的情况。
在上述实施例的基础上,本申请另一实施例还包括:
在将数据存储到目的存储节点此之前,本存储节点确定目的存储节点是否在线,若是,将数据存储至目的存储节点,若否,将数据存储至目的存储节点所在存储组的其他在线的存储节点。作为一个例子,存储节点1将数据转发至目的存储节点6,但是目的存储节点6不在线,存储节点1将数据转发至目的存储节点6所在存储组的存储节点5,由存储节点5对数据进行存储,待目的存储节点6上线后,存储节点5将数据备份至目的存储节点6。
上述描述的是当本存储节点与目的存储节点属于同一存储组时,本存储节点在将数据存储至目的存储节点之前所要执行的操作,相应的当本存储节点与目的存储节点不属于同一存储组时,本存储节点在将数据转发至目的存储节点之前同样执行上述操作,本申请在此不再一一赘述。
特殊的,如果目的存储节点以及同组其他任意存储节点都不在线,则返回数据存储失败。
上述将数据备份、存储或转发的过程中,从预先建立的网络连接池中选取网络连接,使用该网络连接发送和接收数据,待数据收发完成后,将该网络连接归还到网络连接池中。本申请实施例中,无中心云存储***中的所有存储节点,任意两者之间预先建立用于数据收发的网络连接,并形成网络连接池。作为一个例子,无中心云存储***中10个存储节点,每两个存储节点之间建立网络连接,形成网络连接池,当有数据收发需求时,从预先建立的网络连接池中选取网络连接,使用该网络连接发送和接收数据,待数据收发完成后,将该网络连接归还到网络连接池中。
在上述实施例的基础上,本申请另一实施例还包括:
获取来自所述外部设备发送的数据下载请求;根据所述数据下载请求中携带的待下载数据的数据标识ID,确定所述待下载数据所在的存储节点;若本存储节点是所述待下载数据所在的存储节点,将本地存储的待下载数据返回给所述外部设备;若本存储节点不是所述待下载数据所在的存储节点,向所述待下载数据所在的存储节点获取所述待下载数据并返回给所述外部设备。
在本申请的另一实施例中,外部设备为客户端,例如电脑、手机、平板等终端设备。作为一个例子,本存储节点1获取来自客户端发送的数据请求,根据数据下载请求中携带的所要下载数据的数据标识0001,可以确定所要下载数据的所在的存储节点5,本存储节点1不是所要下载的数据的所在存储节点,也和存储节点5不属于同一存储组,则本存储节点1向所述所要下载的数据所在的存储节点5获取所述所要下载的数据并返回给客户端。
本申请实施例提供的技术方案,将无中心云存储***中所有存储节点进行分组,只要存储组内有一个存储节点成功存储数据,则返回数据存储成功,由此可以提高存储效率,相应的在下载数据时,存储组内的任意存储节点在线都可提供数据下载服务。
与前述数据存储方法的实施例相对应,本申请还提供了数据存储装置的实施例。
本申请实施例提供一种数据存储装置,如图5所示。图5示出了本申请实施例提供的数据存储装置的结构图,可以包括:判断模块501、备份模块502、存储模块503。
在本申请实施例中,判断模块501,用于确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
在本申请实施例中,备份模块502,用于若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
在本申请实施例中,存储模块503,用于若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
根据本申请提供的一种具体实施方式,所述判断模块具体用于:
按照预设的算法计算所述数据携带的数据标识ID对应的存储节点选择参数;
判断所述存储节点选择参数是否在本存储节点对应的存储节点选择参数区间内;
若是,则确定本存储节点为所述数据的目的存储节点;
若否,则确定本存储节点不为所述数据的目的存储节点。
根据本申请提供的一种具体实施方式,
所述存储节点选择参数是通过对所述数据标识进行哈希运算得到的;
所述存储节点选择参数区间是预设的哈希环中的其中一个哈希值区间。
根据本申请提供的一种具体实施方式,所述装置进一步包括:
确定模块504,用于当本存储节点与所述目的存储节点不属于同一存储组,确定所述目的存储节点是否在线;
若是,将所述数据存储至所述目的存储节点;
若否,将所述数据存储至所述目的存储节点所在存储组的其他在线的存储节点。
根据本申请提供的一种具体实施方式,所述装置还包括:
下载模块505,用于获取来自所述外部设备发送的数据下载请求;
根据所述数据下载请求中携带的待下载数据的数据标识ID,确定所述待下载数据所在的存储节点;
若本存储节点是所述待下载数据所在的存储节点,将本地存储的待下载数据返回给所述外部设备;
若本存储节点不是所述待下载数据所在的存储节点,向所述待下载数据所在的存储节点获取所述待下载数据并返回给所述外部设备。
根据本申请提供的一种具体实施方式,
所述外部设备为:客户端或者编码器。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本申请实施例提供的技术方案,将无中心云存储***中所有存储节点进行分组,只要存储组内有一个存储节点成功存储数据,则返回数据存储成功,由此可以提高存储效率,相应的在下载数据时,存储组内的任意存储节点在线都可提供数据下载服务。
本申请实施例还提供一种计算机设备,如图6所示,该设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作***和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的***支付处理方法。该方法至少包括:
确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请实施例的保护范围。
Claims (13)
1.一种数据存储方法,其特征在于,该方法应用于无中心云存储***中的存储节点,包括:
确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
2.根据权利要求1所述的方法,其特征在于,判断本存储节点是否为所述数据的目的存储节点,包括:
按照预设的算法计算所述数据携带的数据标识ID对应的存储节点选择参数;
判断所述存储节点选择参数是否在本存储节点对应的存储节点选择参数区间内;
若是,则确定本存储节点为所述数据的目的存储节点;
若否,则确定本存储节点不为所述数据的目的存储节点。
3.根据权利要求2所述的方法,其特征在于,
所述存储节点选择参数是通过对所述数据标识进行哈希运算得到的;
所述存储节点选择参数区间是预设的哈希环中的其中一个哈希值区间。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当本存储节点与所述目的存储节点不属于同一存储组,确定所述目的存储节点是否在线;
若是,将所述数据存储至所述目的存储节点;
若否,将所述数据存储至所述目的存储节点所在存储组的其他在线的存储节点。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取来自所述外部设备发送的数据下载请求;
根据所述数据下载请求中携带的待下载数据的数据标识ID,确定所述待下载数据所在的存储节点;
若本存储节点是所述待下载数据所在的存储节点,将本地存储的待下载数据返回给所述外部设备;
若本存储节点不是所述待下载数据所在的存储节点,向所述待下载数据所在的存储节点获取所述待下载数据并返回给所述外部设备。
6.根据权利要求1至4任一项所述的方法,其特征在于,
所述外部设备为:客户端或者编码器。
7.一种数据存储装置,其特征在于,所述装置包括:
判断模块,用于确定来自外部设备的数据成功写入至本存储节点时,判断本存储节点是否为所述数据的目的存储节点;
备份模块,用于若是,向所述外部设备返回数据存储成功响应,并将所述数据备份至与本存储节点处于同一存储组的其他存储节点;
存储模块,用于若否,当本存储节点与所述目的存储节点属于同一存储组,向所述外部设备返回数据存储成功响应,并将所述数据存储至目的存储节点。
8.根据权利要求7所述的装置,其特征在于,所述判断模块具体用于:
按照预设的算法计算所述数据携带的数据标识ID对应的存储节点选择参数;
判断所述存储节点选择参数是否在本存储节点对应的存储节点选择参数区间内;
若是,则确定本存储节点为所述数据的目的存储节点;
若否,则确定本存储节点不为所述数据的目的存储节点。
9.根据权利要求8所述的装置,其特征在于,
所述存储节点选择参数是通过对所述数据标识进行哈希运算得到的;
所述存储节点选择参数区间是预设的哈希环中的其中一个哈希值区间。
10.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:
确定模块,用于当本存储节点与所述目的存储节点不属于同一存储组,确定所述目的存储节点是否在线;
若是,将所述数据存储至所述目的存储节点;
若否,将所述数据存储至所述目的存储节点所在存储组的其他在线的存储节点。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
下载模块,用于获取来自所述外部设备发送的数据下载请求;
根据所述数据下载请求中携带的待下载数据的数据标识ID,确定所述待下载数据所在的存储节点;
若本存储节点是所述待下载数据所在的存储节点,将本地存储的待下载数据返回给所述外部设备;
若本存储节点不是所述待下载数据所在的存储节点,向所述待下载数据所在的存储节点获取所述待下载数据并返回给所述外部设备。
12.根据权利要求7-10所述的装置,其特征在于,
所述外部设备为:客户端或者编码器。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1-6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142257.5A CN110968453A (zh) | 2018-09-28 | 2018-09-28 | 一种数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142257.5A CN110968453A (zh) | 2018-09-28 | 2018-09-28 | 一种数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110968453A true CN110968453A (zh) | 2020-04-07 |
Family
ID=70027022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811142257.5A Pending CN110968453A (zh) | 2018-09-28 | 2018-09-28 | 一种数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968453A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522883A (zh) * | 2020-04-28 | 2020-08-11 | 杭州海康威视***技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514173A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 数据处理的方法和节点设备 |
US20160105313A1 (en) * | 2014-10-09 | 2016-04-14 | Netapp, Inc. | Configuration replication across distributed storage systems |
CN106375404A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 数据存储控制方法、数据存储方法、数据获取方法及装置 |
CN106502829A (zh) * | 2016-10-21 | 2017-03-15 | 杭州迪普科技股份有限公司 | 一种数据备份方法及装置 |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
CN107102918A (zh) * | 2017-05-26 | 2017-08-29 | 郑州云海信息技术有限公司 | 一种数据处理方法和装置 |
-
2018
- 2018-09-28 CN CN201811142257.5A patent/CN110968453A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514173A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 数据处理的方法和节点设备 |
US20160105313A1 (en) * | 2014-10-09 | 2016-04-14 | Netapp, Inc. | Configuration replication across distributed storage systems |
CN106375404A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 数据存储控制方法、数据存储方法、数据获取方法及装置 |
CN106502829A (zh) * | 2016-10-21 | 2017-03-15 | 杭州迪普科技股份有限公司 | 一种数据备份方法及装置 |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
CN107102918A (zh) * | 2017-05-26 | 2017-08-29 | 郑州云海信息技术有限公司 | 一种数据处理方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522883A (zh) * | 2020-04-28 | 2020-08-11 | 杭州海康威视***技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
CN111522883B (zh) * | 2020-04-28 | 2023-04-28 | 杭州海康威视***技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI743458B (zh) | 一種並行化執行區塊鏈交易的方法、裝置及系統 | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
CN110022260B (zh) | 一种跨环境回执消息处理方法及*** | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及*** | |
CN111290866A (zh) | 业务处理方法及装置 | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及*** | |
US20210158353A1 (en) | Methods, systems, apparatuses, and devices for processing request in consortium blockchain | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及*** | |
CN109145053B (zh) | 数据处理方法和装置、客户端、服务器 | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN109982034B (zh) | 视频监控***中的访问请求处理方法及装置 | |
CN110581784B (zh) | 一种节点健康检查方法、装置及设备 | |
CN113687940B (zh) | 负载均衡方法、装置及物理机 | |
CN110968453A (zh) | 一种数据存储方法及装置 | |
US11086849B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
JP6553650B2 (ja) | データ処理の方法及びシステム | |
CN111488388B (zh) | 一种数据存储合约的部署方法、装置及设备 | |
CN109510855B (zh) | 事件分发***、方法及装置 | |
CN112910988A (zh) | 一种资源获取方法及资源调度装置 | |
CN110855764A (zh) | 网络流量调度方法、装置、电子设备 | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
CN110912953A (zh) | 一种文件存储***及方法 | |
CN109582449B (zh) | 风控业务***中的风控任务分组方法、装置、计算机设备 | |
CN109905320B (zh) | 一种聚合端口的报文分配方法和装置 | |
CN118283051A (zh) | 动态确定节点工作状态的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |