CN107707619B - 分布式存储方法及装置 - Google Patents
分布式存储方法及装置 Download PDFInfo
- Publication number
- CN107707619B CN107707619B CN201710751085.0A CN201710751085A CN107707619B CN 107707619 B CN107707619 B CN 107707619B CN 201710751085 A CN201710751085 A CN 201710751085A CN 107707619 B CN107707619 B CN 107707619B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- node
- storage node
- instruction
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开是关于一种分布式存储方法及装置。该方法应用于分发中心节点,所述分发中心节点与多个存储节点连接,所述分发中心节点设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储方法包括:获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;将所述数据缓存至所述参考存储节点对应的缓存区。该技术方案中,分发中心节点在向存储节点下发数据的同时可以将这些数据进行缓存,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。
Description
技术领域
本公开涉及信息存储技术领域,尤其涉及一种分布式存储方法及装置。
背景技术
随着云计算和大数据技术的发展,传统的单一存储介质的数据存储方式已经不能满足大数据处理的需求,在这样的背景下,分布式存储系统得到了广泛的应用。
分布式存储系统由分发中心节点和若干存储节点互相连接构成,与传统的存储设备相比,分布式存储系统能够通过分发中心节点将数据池中的数据按照不同策略分布到不同的存储节点上,并在多个存储节点之间实现负载均衡。
发明内容
为克服相关技术中存在的问题,本公开实施例提供一种分布式存储方法及装置。所述技术方案如下:
根据本公开实施例的第一方面,提供一种分布式存储方法,应用于分发中心节点,所述分发中心节点与多个存储节点连接,所述分发中心节点设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储方法包括:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区。
本公开的实施例提供的技术方案可以包括以下有益效果:分发中心节点在向存储节点下发数据的同时可以将这些数据进行缓存,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,所述方法还包括:
接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;
根据所述清空缓存指令,将所述缓存区中的数据清空。
在一个实施例中,所述方法还包括:
确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;
若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
在一个实施例中,所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;
所述根据所述清空缓存指令,将所述缓存区中的数据清空包括:
根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
在一个实施例中,所述清空缓存指令还包括时间戳,所述时间戳为所述参考存储节点发送所述清空缓存指令的时间;所述方法还包括:
根据所述清空缓存指令包括的时间戳,确定所述清空缓存指令是否为有效指令;
所述根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配包括:
若所述清空缓存指令为有效指令,根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
在一个实施例中,所述清空缓存指令还包括参考存储节点标识;所述方法还包括:
根据所述清空缓存指令包括的参考存储节点标识,获取所述多个缓存区中与所述参考存储节点标识对应的缓存区;
所述根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配包括:
根据所述结束数据标志位,确定所述参考存储节点存储的数据与所述参考存储节点标识对应的缓存区中缓存的数据是否匹配。
根据本公开实施例的第二方面,提供一种分布式存储方法,应用于存储节点,包括:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
本公开的实施例提供的技术方案可以包括以下有益效果:存储节点可以根据已存储数据量的大小向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,所述确定已存储的数据量是否大于或等于数据量阈值包括:
确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;
所述若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令包括:
若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述方法还包括:
确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;
若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述方法还包括:
获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;
在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
在一个实施例中,所述方法还包括:
在所述清空缓存指令中添加表示当前时间的时间戳,便于所述分发中心节点根据所述时间戳确定所述清空缓存指令是否有效。
在一个实施例中,所述方法还包括:
获取所述存储节点的存储节点标识;
在所述清空缓存指令中添加所述存储节点标识,便于所述分发中心节点清空与所述存储节点标识对应的缓存区中的数据。
根据本公开实施例的第三方面,提供一种分布式存储装置,所述分布式存储装置与多个存储节点连接,所述分布式存储装置设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储装置包括:
第一获取模块,用于获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
缓存模块,用于将所述数据缓存至所述参考存储节点对应的缓存区。
在一个实施例中,所述装置还包括:
接收模块,用于接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;
清空模块,用于根据所述清空缓存指令,将所述缓存区中的数据清空。
在一个实施例中,所述装置还包括:
第一确定模块,用于确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;
发送模块,用于若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
在一个实施例中,所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;
所述清空模块包括:
确定子模块,用于根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;
清空子模块,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;
重发子模块,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
在一个实施例中,所述清空缓存指令还包括时间戳,所述时间戳为所述参考存储节点发送所述清空缓存指令的时间;所述装置还包括:
第二确定模块,用于根据所述清空缓存指令包括的时间戳,确定所述清空缓存指令是否为有效指令;
所述确定子模块包括:
第一确定单元,用于若所述清空缓存指令为有效指令,根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
在一个实施例中,所述清空缓存指令还包括参考存储节点标识;所述装置还包括:
第二获取模块,用于根据所述清空缓存指令包括的参考存储节点标识,获取所述多个缓存区中与所述参考存储节点标识对应的缓存区;
所述确定子模块包括:
第二确定单元,用于根据所述结束数据标志位,确定所述参考存储节点存储的数据与所述参考存储节点标识对应的缓存区中缓存的数据是否匹配。
根据本公开实施例的第四方面,提供一种分布式存储装置,包括:
第一确定模块,用于确定已存储的数据量是否大于或等于数据量阈值;
第一发送模块,用于若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
在一个实施例中,所述第一确定模块包括:
确定子模块,用于确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;
所述第一发送模块包括:
发送子模块,用于若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述装置还包括:
第二确定模块,用于确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;
第二发送模块,用于若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述装置还包括:
第一获取模块,用于获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;
第一添加模块,用于在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
在一个实施例中,所述装置还包括:
第二添加模块,用于在所述清空缓存指令中添加表示当前时间的时间戳,便于所述分发中心节点根据所述时间戳确定所述清空缓存指令是否有效。
在一个实施例中,所述装置还包括:
第二获取模块,用于获取所述存储节点的存储节点标识;
第三添加模块,用于在所述清空缓存指令中添加所述存储节点标识,便于所述分发中心节点清空与所述存储节点标识对应的缓存区中的数据。
根据本公开实施例的第五方面,提供一种分布式存储装置,所述分布式存储装置与多个存储节点连接,所述分布式存储装置设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储装置包括:
第一处理器;
用于存储第一处理器可执行指令的第一存储器;
其中,所述第一处理器被配置为:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区。
根据本公开实施例的第六方面,提供一种分布式存储装置,包括:
第二处理器;
用于存储第二处理器可执行指令的第二存储器;
其中,所述第二处理器被配置为:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
根据本公开实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现第一方面任一实施例所述方法的步骤。
根据本公开实施例的第八方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现第二方面任一实施例所述方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1a是根据一示例性实施例示出的分布式存储方法的流程图。
图1b是根据一示例性实施例示出的分布式存储方法的流程图。
图1c是根据一示例性实施例示出的分布式存储方法的流程图。
图1d是根据一示例性实施例示出的分布式存储方法的流程图。
图1e是根据一示例性实施例示出的分布式存储方法的流程图。
图1f是根据一示例性实施例示出的分布式存储方法的流程图。
图2a是根据一示例性实施例示出的分布式存储方法的流程图。
图2b是根据一示例性实施例示出的分布式存储方法的流程图。
图2c是根据一示例性实施例示出的分布式存储方法的流程图。
图2d是根据一示例性实施例示出的分布式存储方法的流程图。
图2e是根据一示例性实施例示出的分布式存储方法的流程图。
图2f是根据一示例性实施例示出的分布式存储方法的流程图。
图3是根据一示例性实施例示出的分布式存储方法的交互图。
图4是根据一示例性实施例示出的分布式存储方法的交互图。
图5a是根据一示例性实施例示出的分布式存储装置的结构示意图。
图5b是根据一示例性实施例示出的分布式存储装置的结构示意图。
图5c是根据一示例性实施例示出的分布式存储装置的结构示意图。
图5d是根据一示例性实施例示出的分布式存储装置的结构示意图。
图5e是根据一示例性实施例示出的分布式存储装置的结构示意图。
图5f是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6a是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6b是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6c是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6d是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6e是根据一示例性实施例示出的分布式存储装置的结构示意图。
图6f是根据一示例性实施例示出的分布式存储装置的结构示意图。
图7是根据一示例性实施例示出的分布式存储装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供的技术方案涉及分发中心节点、存储节点和数据池,其中,分发中心节点可以为服务器或云服务器,存储节点可以为网盘、云盘或者其他具有存储功能的存储设备,本公开实施例对此不作限定。相关技术中,分发中心节点可以将数据池中的数据分散存储在多个存储节点上,即将数据池中的大数据分成多个小数据依次下发给多个存储节点,实现快速存储和负载均衡化。由于分发中心节点同时连接有多个存储节点,不同存储节点的位置、当前网络的传输速度、当前网络的信号强度以及连接方式可能不同,因此在分发中心节点分发数据的过程中,容易出现一些存储节点掉线或者失效的情况。如果存储节点掉线或失效,则可能会出现分发中心节点下发的数据无法有效保存,数据存储不可靠性的情况。本公开的实施例提供的技术方案中,分发中心节点在向存储节点下发数据的同时可以将这些数据进行缓存,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。
本公开实施例提供了分布式存储方法,实施该方法的执行主体有分发中心节点和存储节点,其中分发中心节点可以为实体服务器或者云服务器;存储节点可以为云盘、网盘或者其他具有存储功能的设备。本公开实施例根据方法实施主体的不同,布置了两套实现该分布式存储方法的实施例,如下所述:
分发中心节点侧
图1a是根据一示例性实施例示出的一种分布式存储方法的流程图,该方法应用于分发中心节点,该分发中心节点与多个存储节点连接,且设置有多个缓存区,该多个缓存区分别与该多个存储节点对应,每个缓存区的可存储数据量可以按照实际情况进行划分。如图1a所示,该分布式存储方法包括以下步骤101至步骤102:
在步骤101中,获取下发给参考存储节点的数据。
示例的,该参考存储节点为上述多个存储节点中的任意一个。分发中心节点与数据池连接,该数据池中设置有待存储的数据,该待存储数据的数据量较大,难以统一存储于一个存储设备上,因此分发中心可以将该待存储数据划分为多个数据量较小的数据,并依次分发给多个存储节点进行存储。具体的,分发中心节点可以按照数据量划分数据池中的待存储数据,例如,分发中心节点将该待存储数据划分为多个数据量为1MB的数据。在存储数据时,分发中心节点首先从数据池中获取1MB的数据,然后根据预设规则将该1MB的数据下发给预设规则指定的存储节点进行存储。以参考存储节点为例进行说明,若预设规则指示存储该1MB数据的存储节点为参考存储节点,则该1MB数据即为分发中心节点下发给参考存储节点的数据。
在步骤102中,将该数据缓存至参考存储节点对应的缓存区。
示例的,在分发中心节点将该1MB数据下发给参考存储节点之后,可以同时将该1MB数据缓存在与参考存储节点对应的缓存区,即可以对该1MB数据进行备份,以免在参考存储节点失效时,该1MB数据出现丢失。
本公开的实施例提供的技术方案中,分发中心节点在向存储节点下发数据的同时可以将这些数据进行缓存,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,如图1b所示,该方法还包括步骤103和步骤104:
在步骤103中,接收参考存储节点发送的清空缓存指令,该清空缓存指令指示清空参考存储节点对应的缓存区中的数据。
在步骤104中,根据清空缓存指令,将参考存储节点对应的缓存区中的数据清空。
示例的,缓存区的数据仅作为存储节点失效时的数据保全,当数据已经安全存储时,分发中心节点可以及时清空缓存区的数据,便于使用清空后的存储资源继续进行数据保全。
具体的,参考存储节点在安全存储分发中心节点下发的数据之后,可以及时向分发中心节点发送清空缓存指令,便于分发中心节点根据该清空缓存指令,及时将参考存储节点对应的缓存区中的数据清空。
或者,为了节约通信资源,参考存储节点可以在连续存储分发中心节点下发的多个数据之后,向分发中心节点发送清空缓存指令,分发中心节点可以根据该清空缓存指令确定向参考存储节点下发的多个数据是否均有效存储,若该多个数据均已有效存储,则可以根据清空缓存指令,将参考存储节点对应的缓存区中的数据清空。
本公开的实施例提供的技术方案中,分发中心节点可以根据存储节点的指示清空该存储节点对应的缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,如图1c所示,该方法还包括步骤105和步骤106:
在步骤105中,确定从上一次清空缓存区开始的第一预设时间段内是否接收到参考存储节点发送的清空缓存指令。
在步骤106中,若从上一次清空缓存区开始的第一预设时间段内未接收到参考存储节点发送的清空缓存指令,将参考存储节点对应的缓存区在该第一预设时间段内缓存的数据发送给备用存储节点。
示例的,如果参考存储节点失效或者掉线,分发中心节点可能会无法及时接收到参考存储节点发送的清空缓存指令,此时分发中心节点只能连续不断地将下发给参考存储节点的数据进行缓存,若该缓存区缓存已满,分发中心节点无法继续写入需要缓存的数据,同样会出现数据丢失的情况。
为了避免上述情况,分发中心节点可以定时检测是否接收到参考存储节点发送的清空缓存指令,具体的,分发中心节点可以维护第一计时器,该第一计时器从分发中心节点上一次清空该参考存储节点对应的缓存区开始计时,其计时的最大时限满足第一预设时间段,即最大时限与第一预设时间段相同。在第一计时器计时的过程中,分发中心节点实时确定是否接收到参考存储节点发送的清空缓存指令,若在第一计时器计时未满足第一预设时间段时,分发中心节点已接收到参考存储节点发送的清空缓存指令,则分发中心节点根据该清空缓存指令再次清空参考存储节点对应的缓存区,并同时清零第一计时器,并指示第一计时器重新开始计时;若在第一计时器计时已满足第一预设时间段,但分发中心节点仍然未接收到参考存储节点发送的清空缓存指令时,分发中心节点可以确定该参考存储节点已失效或掉线,为了避免在第一预设时间段内分发中心节点下发给参考存储节点的数据丢失,分发中心节点可以获取参考存储节点对应的缓存区当前缓存的数据,即该缓存区在第一预设时间段内缓存的数据,然后将该数据全部下发给备用存储节点,便于备用存储节点对该部分数据进行存储,有效避免了数据丢失的情况。再将该缓存区的数据下发给备用存储节点之后,分发中心节点可以清空该缓存区,同时清零第一计时器,然后指示第一计时器重新开始计时。
实际应用中,若在第一计时器计时已满足第一预设时间段,但分发中心节点仍然未接收到参考存储节点发送的清空缓存指令时,分发中心节点还可以循环丢弃参考存储节点对应的缓存区中最先缓存的数据,并缓存最新下发给参考存储节点的数据,即在不清空缓存区的情况下,继续在缓存区缓存数据,避免直接清空缓存区的数据造成的数据丢失。
上述实施例同样适用于图1b所示的技术方案。
本公开的实施例提供的技术方案可以包括以下有益效果:若较长时间内未接收到存储节点的指示,分发中心节点也可以定时清空该存储节点对应的缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,该清空缓存指令包括结束数据标志位,结束数据标志位指示参考存储节点中已存储数据的结束标志位。如图1d所示,在步骤104中,根据清空缓存指令,将缓存区中的数据清空,可以通过步骤1041至步骤1043实现:
在步骤1041中,根据清空缓存指令包括的结束数据标志位,确定参考存储节点中存储的数据与对应缓存区中缓存的数据是否匹配。
在步骤1042中,若参考存储节点中存储的数据与对应缓存区中缓存的数据匹配,将该缓存区中的数据清空。
在步骤1043中,若参考存储节点中存储的数据与对应缓存区中缓存的数据不匹配,将该缓存区中的数据重新发送给参考存储节点。
示例的,该参考存储节点包括多个存储单元,可以按照该多个存储单元的排列顺序为该多个存储单元进行编号,每个存储单元的编号即为每个存储单元对应的存储地址,即不同的存储单元的存储地址不同,该结束数据标志位可以为参考存储节点已存储的最后一个数据占用的存储单元的存储地址。在接入分布式存储系统时,参考存储节点可以将该多个存储单元的存储地址发送给分发中心节点,分发中心节点即可根据该多个存储单元的存储地址确定该参考存储节点的最大可存储数据量,并据此向该参考存储节点下发数据。
具体的,参考存储节点在存储分发中心节点下发的数据之后,可以获取该数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后根据该结束数据标志位生成清空缓存指令,并将该清空缓存指令发送给分发中心节点。由于已知该参考存储节点的最大可存储数据量,因此分发中心节点每次向参考存储节点下发数据后,可以预判该数据存储后参考存储节点的结束数据标志位。分发中心节点在接收到参考存储节点发送的清空缓存指令之后,可以获取该清空缓存指令包括的结束数据标志位,然后确定该结束数据标志位与预判的结束数据标志位是否一致。若该结束数据标志位与预判的结束数据标志位一致,说明参考存储节点对下发的数据进行了有效存储,即参考存储节点中存储的数据与对应缓存区中缓存的数据匹配,此时分发中心节点可以将该缓存区中的数据清空;若该结束数据标志位与预判的结束数据标志位不一致,说明参考存储节点没有有效存储下发的数据,即参考存储节点中存储的数据与对应缓存区中缓存的数据不匹配,为了避免数据丢失,分发中心节点可以将该缓存区中的数据重新发送给参考存储节点。
实际应用中,为了避免参考存储节点与分发中心节点之间的通信占用较多的通信资源,可以简化参考存储节点与分发中心节点之间的通信步骤。具体的,参考存储节点可以维护第一计数器,该第一计数器用于记录分发中心节点发送给参考存储节点的数据量,即分发中心节点每下发一个数据,则该第一计数器加1。初始化时,分发中心节点可以按照下发的数据个数设置数据量阈值,并将该数据量阈值作为第一计数器的最大数限。假设参考存储节点的数据量阈值为1000,即第一计数器的最大数限为1000,当检测到第一计数器的计数大于或等于1000时,参考存储节点可以获取已存储的最后一个数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后根据该结束数据标志位生成清空缓存指令,并将该清空缓存指令发送给分发中心节点,同时清零第一计数器,便于第一计数器重新开始计数。分发中心节点中该参考存储节点对应的缓存区已缓存1000个数据,在接收到参考存储节点发送的清空缓存指令之后,分发中心节点可以确定该清空缓存指令包括的结束数据标志位与预判的结束数据标志位是否一致。若该结束数据标志位与预判的结束数据标志位一致,说明参考存储节点对下发的数据进行了有效存储,即参考存储节点中存储的数据与对应缓存区中缓存的数据匹配,此时分发中心节点可以将该缓存区中存储的1000个数据全部清空;若该结束数据标志位与预判的结束数据标志位不一致,说明参考存储节点未有效存储下发的数据,即参考存储节点中存储的数据与对应缓存区中缓存的数据不匹配,为了避免数据丢失,分发中心节点可以将该缓存区中存储的1000个数据全部重新发送给参考存储节点。
实际应用中还有一种情况,即分发中心节点连续向参考存储节点发送900个数据之后,数据池中没有待存储数据了,此时分发中心节点可以向参考存储节点发送截止标识,参考存储节点在接收到该截止标识之后,获取已存储的最后一个数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后根据该结束数据标志位生成清空缓存指令,并将该清空缓存指令发送给分发中心节点。在接收到参考存储节点发送的清空缓存指令之后,分发中心节点可以确定该清空缓存指令包括的结束数据标志位与预判的结束数据标志位是否一致。若该结束数据标志位与预判的结束数据标志位一致,说明参考存储节点对下发的数据进行了有效存储,即参考存储节点中存储的数据与对应缓存区中缓存的数据匹配,则分发中心节点可以将该缓存区中存储的900个数据全部清空;若该结束数据标志位与预判的结束数据标志位不一致,分发中心节点可以根据该清空缓存指令包括的结束数据标志位与预判的结束数据标志位确定参考存储节点未有效存储的数据是哪些,然后将该未有效存储的数据重新下发给参考存储节点。例如,假设清空缓存指令包括的结束数据标志位指示参考存储节点最后存数的数据为分发中心节点下发的第800个数据,则分发中心节点可以根据该结束数据标志位和预判的数据标志位确定参考存储节点未有效存储最后下发的100个数据,此时分发中心节点可以将缓存区中最后缓存的100个数据重新发送给参考存储节点,便于该参考存储节点重新进行存储。
本公开的实施例提供的技术方案中,分发中心节点可以根据清空缓存指令包括的结束数据标志位确定存储节点中存储的数据与缓存区中缓存的数据是否匹配,并在两者匹配时清空缓存区中的数据,避免了在数据没有写入存储节点时清空缓存区数据造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,该清空缓存指令还包括时间戳,时间戳为参考存储节点发送清空缓存指令的时间。该方法还包括步骤107:
在步骤107中,根据清空缓存指令包括的时间戳,确定清空缓存指令是否为有效指令。
在步骤1041中,根据结束数据标志位,确定参考存储节点中存储的数据与对应缓存区中缓存的数据是否匹配,可以通过步骤1041a实现:
在步骤1041a中,若清空缓存指令为有效指令,根据结束数据标志位,确定参考存储节点中存储的数据与对应缓存区中缓存的数据是否匹配。
示例的,由于参考存储节点的失效可以发生的任何时间点,有可能在参考存储节点正在发送清空缓存指令时失效。而在该参考存储节点掉线或失效的过程中,为了避免缓存资源的浪费,分发中心节点可以将该参考存储节点对应的缓存区重新划分给备用存储节点使用,即分发中心节点采用备用存储节点替换参考存储节点继续进行数据存储。在分发中心节点指示备用存储节点存储数据的过程中,参考存储节点可能会重新上线,并继续向分发中心节点发送清空缓存指令。如果分发中心节点在接收到该清空缓存指令之后清空参考存储节点对应的缓存区(当前备用存储节点对应的缓存区),可能会造成备用存储节点存储数据丢失的情况,数据存储可靠性不佳。
为了避免上述情况,参考存储节点在向分发中心节点发送清空缓存指令时,可以添加时间戳,该时间戳用于表明参考存储节点发送清空缓存指令的时间。分发中心节点可以设置第三预设时间段,该第三预设时间段用于确定接收到的清空缓存指令的有效性。具体的,分发中心节点可以根据接收到清空缓存指令的当前时间与参考存储节点发送清空缓存指令的时间之间的时间差确定清空缓存指令是否有效。若分发中心节点接收到清空缓存指令的当前时间与参考存储节点发送清空缓存指令的时间之间的时间差小于或等于第三预设时间段,即该时间差较小,说明接收到的清空缓存指令有效,分发中心节点可以根据结束数据标志位,确定参考存储节点中存储的数据与对应缓存区中缓存的数据是否匹配,并在其匹配时,清空该缓存区;若分发中心节点接收到清空缓存指令的当前时间与参考存储节点发送清空缓存指令的时间之间的时间差大于第三预设时间段,即该时间差较大,说明接收到的清空缓存指令无效,则分发中心节点可以丢弃该清空缓存指令。
本公开的实施例提供的技术方案中,分发中心节点可以根据时间戳确定是否接收到有效的清空缓存指令,避免了清空缓存指令无效时清空缓存区数据造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,该清空缓存指令还包括参考存储节点标识。该方法还包括步骤108:
在步骤108中,根据清空缓存指令包括的参考存储节点标识,获取多个缓存区中与该参考存储节点标识对应的缓存区。
在步骤1041中,根据结束数据标志位,确定参考存储节点中存储的数据与对应缓存区中缓存的数据是否匹配,可以通过步骤1041b实现:
在步骤1041b中,根据清空缓存指令包括的结束数据标志位,确定参考存储节点存储的数据与参考存储节点标识对应的缓存区中缓存的数据是否匹配。
示例的,由于分发中心节点中设置有多个存储节点的缓存区,为了避免分发中心节点对接收到的不同存储节点发送的清空缓存指令产生混淆,每个存储节点再向分发中心节点发送清空缓存指令时,可以添加对应的存储节点标识。分发中心节点中存储有缓存区与存储节点标识的对应关系,在接收到清空缓存指令之后,可以根据该缓存区与存储节点标识的对应关系,确定需要清空的缓存区。
具体的,参考存储节点在向分发中心节点发送清空缓存指令时,可以添加参考存储节点标识,用于指示该清空缓存指令对应的缓存区。分发中心节点在接收到清空缓存指令之后,首先获取该清空缓存指令包括的参考存储节点标识,然后根据该参考存储节点标识确定该参考存储节点标识指示的参考存储节点对应的缓存区,进而根据结束数据标志位,确定参考存储节点存储的数据与该缓存区中缓存的数据是否匹配,并在其匹配时,清空该缓存区。
本公开的实施例提供的技术方案中,分发中心节点可以根据清空缓存指令包括的存储节点标识确定需要清空的缓存区,避免了误清其他存储节点对应的缓存区的情况,进而避免了其他存储节点的数据出现丢失,提高了数据存储的可靠性。
存储节点侧
图2a是根据一示例性实施例示出的一种分布式存储方法的流程图,该方法用于存储节点,该存储节点可以为网盘、云盘以及其他具有存储功能的设备。如图2a所示,该分布式存储方法包括以下步骤201至步骤202:
在步骤201中,确定已存储的数据量是否大于或等于数据量阈值。
示例的,为了与分发中心节点侧的实施例对应,本实施例同样以参考存储节点为例进行说明,该分布式存储系统中的任意一个存储节点均可执行以参考存储节点为例的实施例所述的技术方案,本公开实施例对此不做限定。
具体的,初始化时参考存储节点可以预先设置数据量阈值,该数据量阈值可以根据实际情况进行修改。参考存储节点可以连续存储分发中心节点下发的多个数据,并在存储的过程中,实时检测已存储的数据量,该已存储的数据量即为参考存储节点存储最后一个数据之后的总的数据量,然后确定该数据量是否大于或等于数据量阈值。
在步骤202中,若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,该清空缓存指令指示分发中心节点清空与存储节点对应的缓存区中的数据。
示例的,如果该已存储的数据量大于或等于数据量阈值,说明当前已存储的数据量较大,即分发中心节点中该参考存储节点对应的缓存区缓存的数据也较多,为了节约分发中心节点的缓存资源,参考存储节点可以向分发中心节点发送清空缓存指令,分发中心节点在接收到该清空缓存指令之后,即可清空该参考存储节点对应的缓存区。
本公开的实施例提供的技术方案中,存储节点可以根据已存储数据量的大小向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,如图2b所示,在步骤201中,确定已存储的数据量是否大于或等于数据量阈值可以通过步骤2011实现;在步骤202中,若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令可以同步骤2021实现:
在步骤2011中,确定从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值。
在步骤2021中,若从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令。
示例的,为了更进一步的节约分发中心节点的缓存资源,即在参考存储节点存储数据的过程中,使得分发中心节点可以多次清空参考存储节点对应的缓存区,参考存储节点可以分批次存储分发中心节点下发的数据,并分批次向分发中心节点发送清空缓存指令。
具体的,参考存储节点可以维护第一计数器,该第一计数器用于记录分发中心节点发送给参考存储节点的数据量,即分发中心节点每下发一个数据,则该第一计数器加1。初始化时,分发中心节点可以按照下发的数据的个数设置参考存储节点的数据量阈值,并将该数据量阈值作为第一计数器的最大数限。假设参考存储节点的数据量阈值为1000,即第一计数器的最大数限为1000,参考存储节点每次向分发中心节点发送清空缓存指令之后,指示该第一计数器清零并重新开始计数。当检测到第一计数器的计数再次大于或等于1000时,参考存储节点可以生成清空缓存指令,并将该清空缓存指令发送给分发中心节点,同时指示第一计数器清零。此时分发中心节点中该参考存储节点对应的缓存区已缓存1000个数据,在接收到参考存储节点发送的清空缓存指令之后,分发中心节点可以将该缓存区中存储的1000个数据全部清空。
示例的,分发中心节点可以按照下发数据的数据量大小设置数据量阈值,假设分发中心节点设置的数据量阈值为100MB(MByte,兆)。参考存储节点可以实时检测从上一次向分发中心节点发送清空缓存指令之后存储的所有数据的数据量,当检测到该数据量大于或等于数据量阈值时,参考存储节点可以获取已存储的最后一个数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后根据该结束数据标志位生成清空缓存指令,并将该清空缓存指令发送给分发中心节点。
本公开的实施例提供的技术方案中,存储节点可以根据从上一次向分发中心节点发送清空缓存指令截止到当前时间的已存储数据量的大小向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,如图2c所示,该方法还包括步骤203和步骤204:
在步骤203中,确定从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内是否向分发中心节点发送清空缓存指令。
在步骤204中,若从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内未向分发中心节点发送清空缓存指令,向分发中心节点发送清空缓存指令。
示例的,参考存储节点在存储数据的过程中,可能会因为存储的数据量过大而出现进程执行缓慢的情况,此时参考存储节点可能会延迟向分发中心节点发送清空缓存指令。为了避免分发中心节点由于长时间接收不到清空缓存指令而无法释放缓存资源的情况,参考存储节点可以定时检测是否向分发中心节点发送清空缓存指令,并在检测到长时间未向分发中心节点发送清空缓存指令时,及时向分发中心节点发送清空缓存指令。
具体的,参考存储节点可以维护第二计时器,该第二计时器从参考存储节点上一次向分发中心节点发送清空缓存指令开始计时,其计时的最大时限满足第二预设时间段,即最大时限与预设的第二预设时间段相同。在第二计时器计时的过程中,参考存储节点实时确定是否向分发中心节点发送清空缓存指令。若在第二计时器计时未满足第二预设时间段时,参考存储节点已经向分发中心节点发送清空缓存指令,则参考存储节点清零第二计时器,并指示第二计时器重新开始计时;若在第二计时器计时已满足第二预设时间段时,参考存储节点仍然未向分发中心节点发送清空缓存指令,则参考存储节点可以及时向分发中心节点发送清空缓存指令,便于分发中心节点及时清空对应的缓存区。在向分发中心节点发送清空缓存指令之后,参考存储节点即可清零第二计时器,并指示第二计时器重新开始计时。
本公开的实施例提供的技术方案中,存储节点可以定时检查是否向分发中心节点发送清空缓存指令,并在较长时间内没有发送清空缓存指令的情况下,无论数据量是否达到数据量阈值,及时向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
在一个实施例中,如图2d所示,该方法还包括步骤205和步骤206:
在步骤205中,获取当前已存储数据的结束数据标志位,结束数据标志位指示存储节点中已存储数据的结束标志位。
在步骤206中,在清空缓存指令中添加结束数据标志位,便于分发中心节点根据结束数据标志位确定是否清空缓存区中的数据。
示例的,参考存储节点可以为包括的多个存储单元进行编号,即为每个存储单元设置存储地址,该结束数据标志位可以为参考存储节点已存储的最后一个数据占用的存储单元的存储地址。
具体的,参考存储节点在存储分发中心节点下发的数据之后,可以获取该数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后将该结束数据标志位添加在清空缓存指令中发送给分发中心节点。
实际应用中,参考存储节点还可以在第一计数器的计数大于或等于预设的数据量阈值时,获取已存储的最后一个数据按顺序占用的最后一个存储单元的存储地址,该存储地址即可作为结束数据标志位,然后将该结束数据标志位添加在清空缓存指令中发送给分发中心节点。
上述实施例同样适用于图2b和图2c所示的技术方案。
本公开的实施例提供的技术方案中,存储节点可以将结束数据标志位携带在清空缓存指令中发送给分发中心节点,便于分发中心节点根据结束数据标志位确定存储节点中存储的数据与缓存区中缓存的数据是否匹配,并在两者匹配时清空缓存区中的数据,避免了在数据没有写入存储节点时清空缓存区数据造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,如图2e所示,该方法还包括步骤207:
在步骤207中,在清空缓存指令中添加表示当前时间的时间戳,便于分发中心节点根据时间戳确定清空缓存指令是否有效。
示例的,为了避免在清空缓存指令无效时,分发中心节点对参考存储节点的缓存区清空造成的数据丢失,参考存储节点在每次向分发中心节点发送清空缓存指令时,均可获取发送清空缓存指令的当前时间作为时间戳添加在清空缓存指令中,然后将该清空缓存指令发送给分发中心节点。分发中心节点在接收到该清空缓存指令之后,可以根据该时间戳确定清空缓存指令是否有效,并在其有效时,根据该结束数据标志位确定是否清空缓存区中的数据。
上述实施例同样适用于图2b、图2c和图2d所示的技术方案。
本公开的实施例提供的技术方案中,存储节点可以将时间戳携带在清空缓存指令中发送给分发中心节点,便于分发中心节点根据时间戳确定是否接收到有效的清空缓存指令,避免了清空缓存指令无效时清空缓存区数据造成的数据丢失,提高了数据存储的可靠性。
在一个实施例中,如图2f所示,该方法还包括步骤208和步骤209:
在步骤208中,获取存储节点的存储节点标识。
在步骤209中,在清空缓存指令中添加存储节点标识,便于分发中心节点清空与存储节点标识对应的缓存区中的数据。
示例的,由于分发中心节点中设置有多个存储节点的缓存区,为了避免分发中心节点对接收到的不同存储节点发送的清空缓存指令产生混淆,每个存储节点再向分发中心节点发送清空缓存指令时,可以添加对应的存储节点标识。具体的,参考存储节点在向分发中心节点发送清空缓存指令时,可以添加参考存储节点标识,用于指示该清空缓存指令对应的缓存区。
上述实施例同样适用于图2b、图2c、图2d和图2e所示的技术方案。
本公开的实施例提供的技术方案中,存储节点可以将存储节点标识携带在清空缓存指令中发送给分发中心节点,便于分发中心节点根据存储节点标识确定需要清空的缓存区,避免了误清其他存储节点对应的缓存区的情况,进而避免了其他存储节点的数据出现丢失,提高了数据存储的可靠性。
下面通过几个实施例详细介绍实现过程。
图3是根据一示例性实施例示出的一种分布式存储方法的交互图,执行主体为分发中心节点和存储节点,该分发中心节点与多个存储节点连接,且设置有多个分别与多个存储节点对应的缓存区,本公开实施例以参考存储节点为例进行说明。如图3所示,包括以下步骤301至步骤310:
在步骤301中,分发中心节点获取下发给参考存储节点的数据,执行步骤302。
在步骤302中,分发中心节点将该数据缓存至参考存储节点对应的缓存区,执行步骤303。
在步骤303中,参考存储节点存储分发中心节点下发的数据,执行步骤304。
在步骤304中,参考存储节点确定从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;若从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量小于数据量阈值,执行步骤305;若从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,执行步骤307。
在步骤305中,参考存储节点确定从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内是否向分发中心节点发送清空缓存指令;若从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内已向分发中心节点发送清空缓存指令,执行步骤306;若从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内未向分发中心节点发送清空缓存指令,执行步骤307。
在步骤306中,参考存储节点保持当前状态不变,本流程结束。
在步骤307中,参考存储节点向分发中心节点发送清空缓存指令,执行步骤308。
在步骤308中,分发中心节点根据该清空缓存指令,将参考存储节点对应的缓存区中的数据清空,执行步骤309。
在步骤309中,分发中心节点确定从上一次清空该缓存区开始的第一预设时间段内是否接收到清空缓存指令;若从上一次清空该缓存区开始的第一预设时间段内已接收到清空缓存指令,执行步骤308;若从上一次清空该缓存区开始的第一预设时间段内未接收到清空缓存指令,执行步骤310。
在步骤310中,分发中心节点将参考存储节点对应的缓存区中的数据清空。
本公开的实施例提供一种分布式存储方法,分发中心节点在向参考存储节点下发数据的同时可以将这些数据缓存在于该参考存储节点对应的缓存区,同时还可以根据参考存储节点的指示及时清空该缓存区,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。同时避免了该缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
图4是根据一示例性实施例示出的一种分布式存储方法的交互图,执行主体为分发中心节点和存储节点,该分发中心节点与多个存储节点连接,且设置有多个分别与多个存储节点对应的缓存区,本公开实施例以参考存储节点为例进行说明。如图4所示,包括以下步骤401至步骤416:
在步骤401中,分发中心节点获取下发给参考存储节点的数据,执行步骤402。
在步骤402中,分发中心节点将该数据缓存至参考存储节点对应的缓存区,执行步骤403。
在步骤403中,参考存储节点存储分发中心节点下发的数据,执行步骤404。
在步骤404中,参考存储节点确定从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;若从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量小于数据量阈值,执行步骤405;若从上一次向分发中心节点发送清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,执行步骤407。
在步骤405中,参考存储节点确定从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内是否向分发中心节点发送清空缓存指令;若从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内已向分发中心节点发送清空缓存指令,执行步骤406;若从上一次向分发中心节点发送清空缓存指令开始的第二预设时间段内未向分发中心节点发送清空缓存指令,执行步骤407。
在步骤406中,参考存储节点保持当前状态不变,本流程结束。
在步骤407中,参考存储节点获取当前已存储数据的结束数据标志位、表示当前时间的时间戳和参考存储节点标识,执行步骤408。
在步骤408中,参考存储节点根据该结束数据标志位、时间戳和参考存储节点标识,生成清空缓存指令,执行步骤409。
在步骤409中,参考存储节点将该清空缓存指令发送给分发中心节点,执行步骤410。
在步骤410中,分发中心节点根据参考存储节点标识,确定该参考存储节点标识对应的缓存区,执行步骤411。
在步骤411中,分发中心节点根据时间戳,确定该清空缓存指令是否为有效指令;若该清空缓存指令为无效指令,执行步骤412;若该清空缓存指令为有效指令,执行步骤413。
在步骤412中,分发中心节点保持当前状态不变,本流程结束。
在步骤413中,分发中心节点根据结束数据标志位,确定参考存储节点中存储的数据与参考存储节点标识对应的缓存区中缓存的数据是否匹配;若参考存储节点中存储的数据与该缓存区中缓存的数据匹配,执行步骤414;若参考存储节点中存储的数据与该缓存区中缓存的数据不匹配,执行步骤415。
在步骤414中,分发中心节点根据该清空缓存指令,将参考存储节点标识对应的缓存区中的数据清空,执行步骤415。
在步骤415中,分发中心节点确定从上一次清空该缓存区开始的第一预设时间段内是否接收到清空缓存指令;若从上一次清空该缓存区开始的第一预设时间段内已接收到清空缓存指令,执行步骤414;若从上一次清空该缓存区开始的第一预设时间段内未接收到清空缓存指令,执行步骤416。
在步骤416中,分发中心节点将参考存储节点对应的缓存区中的数据清空。
本公开的实施例提供一种分布式存储方法,分发中心节点在向参考存储节点下发数据的同时可以将这些数据缓存在于该参考存储节点对应的缓存区,同时还可以根据参考存储节点的指示及时清空该缓存区,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。同时避免了该缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5a是根据一示例性实施例示出的一种分布式存储装置50的结构示意图,该装置50可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该分布式存储装置50与多个存储节点连接,且设置有多个分别与所述多个存储节点对应的缓存区。如图5a所示,所述分布式存储装置50包括第一获取模块501和缓存模块502。
其中,第一获取模块501,用于获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个。
缓存模块502,用于将所述数据缓存至所述参考存储节点对应的缓存区。
在一个实施例中,如图5b所示,所述装置50还包括接收模块503和清空模块504。
其中,接收模块503,用于接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据。
清空模块504,用于根据所述清空缓存指令,将所述缓存区中的数据清空。
在一个实施例中,如图5c所示,所述装置50还包括第一确定模块505和发送模块506。
其中,第一确定模块505,用于确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令。
发送模块506,用于若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
在一个实施例中,所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位。如图5d所示,所述清空模块504包括确定子模块5041,清空子模块5042和重发子模块5043。
其中,确定子模块5041,用于根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
清空子模块5042,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空。
重发子模块5043,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
在一个实施例中,所述清空缓存指令还包括时间戳,所述时间戳为所述参考存储节点发送所述清空缓存指令的时间。如图5e所示,所述装置50还包括第二确定模块507,所述确定子模块5041包括第一确定单元5041a。
所述第二确定模块507,用于根据所述清空缓存指令包括的时间戳,确定所述清空缓存指令是否为有效指令;
所述第一确定单元5041a,用于若所述清空缓存指令为有效指令,根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
在一个实施例中,所述清空缓存指令还包括参考存储节点标识。如图5f所示,所述装置50还包括第二获取模块508,所述确定子模块5041包括第二确定单元5041b。
所述第二获取模块508,用于根据所述清空缓存指令包括的参考存储节点标识,获取所述多个缓存区中与所述参考存储节点标识对应的缓存区。
所述第二确定单元5041b,用于根据所述结束数据标志位,确定所述参考存储节点存储的数据与所述参考存储节点标识对应的缓存区中缓存的数据是否匹配。
本公开的实施例提供一种分布式存储装置,该装置在向参考存储节点下发数据的同时可以将这些数据缓存在于该参考存储节点对应的缓存区,同时还可以根据参考存储节点的指示及时清空该缓存区,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。同时避免了该缓存区存储数据较多造成的数据缓存较慢的情况,节约了该装置的存储资源。
图6a是根据一示例性实施例示出的一种分布式存储装置60的结构示意图,该装置60可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6a所示,该分布式存储装置60包括第一确定模块601和第一发送模块602。
其中,第一确定模块601,用于确定已存储的数据量是否大于或等于数据量阈值。
第一发送模块602,用于若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
在一个实施例中,如图6b所示,所述第一确定模块601包括确定子模块6011,第一发送模块602包括发送子模块6021。
其中,确定子模块6011,用于确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值。
发送子模块6021,用于若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,如图6c所示,所述装置60还包括第二确定模块603和第二发送模块604。
其中,第二确定模块603,用于确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令。
第二发送模块604,用于若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,如图6d所示,所述装置60还包括第一获取模块605和第一添加模块606。
其中,第一获取模块605,用于获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位。
第一添加模块606,用于在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
在一个实施例中,如图6e所示,所述装置60还包括第二添加模块607。
所述第二添加模块607,用于在所述清空缓存指令中添加表示当前时间的时间戳,便于所述分发中心节点根据所述时间戳确定所述清空缓存指令是否有效。
在一个实施例中,如图6f所示,所述装置60还包括第二获取模块608和第三添加模块609。
其中,第二获取模块608,用于获取所述存储节点的存储节点标识。
第三添加模块609,用于在所述清空缓存指令中添加所述存储节点标识,便于所述分发中心节点清空与所述存储节点标识对应的缓存区中的数据。
本公开的实施例提供一种分布式存储装置,该装置可以根据已存储数据量的大小或者定时向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
本公开实施例提供一种分布式存储装置,所述分布式存储装置与多个存储节点连接,且设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储装置包括:
第一处理器;
用于存储第一处理器可执行指令的第一存储器;
其中,第一处理器被配置为:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区。
在一个实施例中,上述第一处理器还可被配置为:接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;根据所述清空缓存指令,将所述缓存区中的数据清空。
在一个实施例中,上述第一处理器还可被配置为:确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
在一个实施例中,所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;上述第一处理器还可被配置为:根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
在一个实施例中,所述清空缓存指令还包括时间戳,所述时间戳为所述参考存储节点发送所述清空缓存指令的时间;上述第一处理器还可被配置为:根据所述清空缓存指令包括的时间戳,确定所述清空缓存指令是否为有效指令;若所述清空缓存指令为有效指令,根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
在一个实施例中,所述清空缓存指令还包括参考存储节点标识;上述第一处理器还可被配置为:根据所述清空缓存指令包括的参考存储节点标识,获取所述多个缓存区中与所述参考存储节点标识对应的缓存区;根据所述结束数据标志位,确定所述参考存储节点存储的数据与所述参考存储节点标识对应的缓存区中缓存的数据是否匹配。
本公开的实施例提供一种分布式存储装置,该装置在向参考存储节点下发数据的同时可以将这些数据缓存在于该参考存储节点对应的缓存区,同时还可以根据参考存储节点的指示及时清空该缓存区,避免了由于存储节点失效数据无法写入造成的数据丢失,提高了数据存储的可靠性。同时避免了该缓存区存储数据较多造成的数据缓存较慢的情况,节约了该装置的存储资源。
本公开实施例提供一种分布式存储装置,该分布式存储装置包括:
第二处理器;
用于存储第二处理器可执行指令的第二存储器;
其中,第二处理器被配置为:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
在一个实施例中,上述第二处理器还可被配置为:确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,上述第二处理器还可被配置为:确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,上述第二处理器还可被配置为:获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
在一个实施例中,上述第二处理器还可被配置为:在所述清空缓存指令中添加表示当前时间的时间戳,便于所述分发中心节点根据所述时间戳确定所述清空缓存指令是否有效。
在一个实施例中,上述第二处理器还可被配置为:获取所述存储节点的存储节点标识;在所述清空缓存指令中添加所述存储节点标识,便于所述分发中心节点清空与所述存储节点标识对应的缓存区中的数据。
本公开的实施例提供一种分布式存储装置,该装置可以根据已存储数据量的大小或者定时向分发中心节点发送清空缓存指令,便于分发中心节点及时清空缓存区中的数据,避免了缓存区存储数据较多造成的数据缓存较慢的情况,节约了分发中心节点的存储资源。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种用于分布式存储装置70的框图。装置70包括处理组件702,其进一步包括一个或多个处理器,以及由存储器703所代表的存储器资源,用于存储可由处理组件702的执行的指令,例如应用程序。存储器703中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件702被配置为执行指令,以执行上述方法。
装置70还可以包括一个电源组件706被配置为执行装置70的电源管理,一个有线或无线网络接口705被配置为将装置70连接到网络,和一个输入输出(I/O)接口708。装置70可以操作基于存储在存储器703的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本公开实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置70的处理器执行时,使得装置70能够执行上述分发中心节点侧的方法,所述分发中心节点与多个存储节点连接,所述分发中心节点设置有多个分别与所述多个存储节点对应的缓存区;所述方法包括:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区。
在一个实施例中,所述方法还包括:接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;根据所述清空缓存指令,将所述缓存区中的数据清空。
在一个实施例中,所述方法还包括:确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
在一个实施例中,所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;所述根据所述清空缓存指令,将所述缓存区中的数据清空包括:根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
在一个实施例中,所述清空缓存指令还包括时间戳,所述时间戳为所述参考存储节点发送所述清空缓存指令的时间;所述方法还包括:根据所述清空缓存指令包括的时间戳,确定所述清空缓存指令是否为有效指令;所述根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配包括:若所述清空缓存指令为有效指令,根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配。
在一个实施例中,所述清空缓存指令还包括参考存储节点标识;所述方法还包括:根据所述清空缓存指令包括的参考存储节点标识,获取所述多个缓存区中与所述参考存储节点标识对应的缓存区;所述根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配包括:根据所述结束数据标志位,确定所述参考存储节点存储的数据与所述参考存储节点标识对应的缓存区中缓存的数据是否匹配。
本公开实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置70的处理器执行时,使得装置70能够执行上述存储节点侧的方法,所述方法包括:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据。
在一个实施例中,所述确定已存储的数据量是否大于或等于数据量阈值包括:确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;所述若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令包括:若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述方法还包括:确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
在一个实施例中,所述方法还包括:获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
在一个实施例中,所述方法还包括:在所述清空缓存指令中添加表示当前时间的时间戳,便于所述分发中心节点根据所述时间戳确定所述清空缓存指令是否有效。
在一个实施例中,所述方法还包括:获取所述存储节点的存储节点标识;在所述清空缓存指令中添加所述存储节点标识,便于所述分发中心节点清空与所述存储节点标识对应的缓存区中的数据。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种分布式存储方法,应用于分发中心节点,其特征在于,所述分发中心节点与多个存储节点连接,所述分发中心节点设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储方法包括:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区;
所述方法还包括:
接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;
根据所述清空缓存指令,将所述缓存区中的数据清空;
所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;
所述根据所述清空缓存指令,将所述缓存区中的数据清空包括:
根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;
若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
3.一种分布式存储方法,应用于存储节点,其特征在于,包括:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据;
所述方法还包括:
获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;
在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
4.根据权利要求3所述的方法,其特征在于,所述确定已存储的数据量是否大于或等于数据量阈值包括:
确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;
所述若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令包括:
若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;
若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
6.一种分布式存储装置,其特征在于,所述分布式存储装置与多个存储节点连接,所述分布式存储装置设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储装置包括:
第一获取模块,用于获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
缓存模块,用于将所述数据缓存至所述参考存储节点对应的缓存区;
所述装置还包括:
接收模块,用于接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;
清空模块,用于根据所述清空缓存指令,将所述缓存区中的数据清空;
所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;
所述清空模块包括:
确定子模块,用于根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;
清空子模块,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;
重发子模块,用于若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于确定从上一次清空所述缓存区开始的第一预设时间段内是否接收到所述清空缓存指令;
发送模块,用于若从上一次清空所述缓存区开始的第一预设时间段内未接收到所述清空缓存指令,将所述缓存区在所述第一预设时间段内缓存的数据发送给备用存储节点。
8.一种分布式存储装置,其特征在于,包括:
第一确定模块,用于确定已存储的数据量是否大于或等于数据量阈值;
第一发送模块,用于若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据;
所述装置还包括:
第一获取模块,用于获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;
第一添加模块,用于在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
9.根据权利要求8所述的装置,其特征在于,所述第一确定模块包括:
确定子模块,用于确定从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量是否大于或等于数据量阈值;
所述第一发送模块包括:
发送子模块,用于若从上一次向所述分发中心节点发送所述清空缓存指令截止到当前时间已存储的数据量大于或等于数据量阈值,向所述分发中心节点发送所述清空缓存指令。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于确定从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内是否向所述分发中心节点发送所述清空缓存指令;
第二发送模块,用于若从上一次向所述分发中心节点发送所述清空缓存指令开始的第二预设时间段内未向所述分发中心节点发送所述清空缓存指令,向所述分发中心节点发送所述清空缓存指令。
11.一种分布式存储装置,其特征在于,所述分布式存储装置与多个存储节点连接,所述分布式存储装置设置有多个分别与所述多个存储节点对应的缓存区;所述分布式存储装置包括:
第一处理器;
用于存储第一处理器可执行指令的第一存储器;
其中,所述第一处理器被配置为:
获取下发给参考存储节点的数据,所述参考存储节点为所述多个存储节点中的任意一个;
将所述数据缓存至所述参考存储节点对应的缓存区;
所述第一处理器还被配置为:
接收所述参考存储节点发送的清空缓存指令,所述清空缓存指令指示清空所述参考存储节点对应的缓存区中的数据;
根据所述清空缓存指令,将所述缓存区中的数据清空;
所述清空缓存指令包括结束数据标志位,所述结束数据标志位指示所述参考存储节点中已存储数据的结束标志位;
所述根据所述清空缓存指令,将所述缓存区中的数据清空包括:
根据所述结束数据标志位,确定所述参考存储节点中存储的数据与所述缓存区中缓存的数据是否匹配;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据匹配,将所述缓存区中的数据清空;
若所述参考存储节点中存储的数据与所述缓存区中缓存的数据不匹配,将所述缓存区中的数据重新发送给所述参考存储节点。
12.一种分布式存储装置,其特征在于,包括:
第二处理器;
用于存储第二处理器可执行指令的第二存储器;
其中,所述第二处理器被配置为:
确定已存储的数据量是否大于或等于数据量阈值;
若已存储的数据量大于或等于数据量阈值,向分发中心节点发送清空缓存指令,所述清空缓存指令指示所述分发中心节点清空与所述存储节点对应的缓存区中的数据;
所述第二处理器还被配置为:
获取当前已存储数据的结束数据标志位,所述结束数据标志位指示所述存储节点中已存储数据的结束标志位;
在所述清空缓存指令中添加所述结束数据标志位,便于所述分发中心节点根据所述结束数据标志位确定是否清空所述缓存区中的数据。
13.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1或2所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求3至5任意一项权利要求所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710751085.0A CN107707619B (zh) | 2017-08-28 | 2017-08-28 | 分布式存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710751085.0A CN107707619B (zh) | 2017-08-28 | 2017-08-28 | 分布式存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107707619A CN107707619A (zh) | 2018-02-16 |
CN107707619B true CN107707619B (zh) | 2020-12-04 |
Family
ID=61169834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710751085.0A Active CN107707619B (zh) | 2017-08-28 | 2017-08-28 | 分布式存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707619B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109407976B (zh) * | 2018-09-21 | 2021-09-14 | 联想(北京)有限公司 | 一种分布式存储方法及分布式存储装置 |
CN109542347B (zh) * | 2018-11-19 | 2022-02-18 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置、设备及可读存储介质 |
CN109918379B (zh) * | 2019-03-08 | 2020-02-28 | 新加坡贝尔信息科技有限公司 | 一种基于区块链的大数据的处理系统及处理方法 |
CN110209359B (zh) * | 2019-06-06 | 2022-10-14 | 北京金山云网络技术有限公司 | 系统存储空间的管理方法、装置及服务器 |
CN111078778A (zh) * | 2019-12-17 | 2020-04-28 | 中国有色金属长沙勘察设计研究院有限公司 | 一种基于多线程异步通信的高频数据入库系统 |
CN116382596B (zh) * | 2023-06-02 | 2023-08-11 | 智成时空(西安)创新科技有限公司 | 基于分布式技术的时空大数据存储方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件系统的存储方法及装置 |
CN103150304A (zh) * | 2011-12-06 | 2013-06-12 | 郑红云 | 云数据库系统 |
CN103401951A (zh) * | 2013-08-28 | 2013-11-20 | 浙江大学 | 基于对等架构的弹性云分发方法 |
CN103716343A (zh) * | 2012-09-29 | 2014-04-09 | 重庆新媒农信科技有限公司 | 基于数据缓存同步的分布式业务请求处理方法及系统 |
CN104571956A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 一种数据写入方法及拆分装置 |
CN106354851A (zh) * | 2016-08-31 | 2017-01-25 | 广州市乐商软件科技有限公司 | 数据缓存方法及装置 |
CN106407307A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库节点数据交互方法及装置 |
CN107046563A (zh) * | 2017-01-19 | 2017-08-15 | 无锡华云数据技术服务有限公司 | 一种分布式高效云盘的实现方法、系统及云平台 |
-
2017
- 2017-08-28 CN CN201710751085.0A patent/CN107707619B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150304A (zh) * | 2011-12-06 | 2013-06-12 | 郑红云 | 云数据库系统 |
CN103716343A (zh) * | 2012-09-29 | 2014-04-09 | 重庆新媒农信科技有限公司 | 基于数据缓存同步的分布式业务请求处理方法及系统 |
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件系统的存储方法及装置 |
CN103401951A (zh) * | 2013-08-28 | 2013-11-20 | 浙江大学 | 基于对等架构的弹性云分发方法 |
CN104571956A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 一种数据写入方法及拆分装置 |
CN106354851A (zh) * | 2016-08-31 | 2017-01-25 | 广州市乐商软件科技有限公司 | 数据缓存方法及装置 |
CN106407307A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库节点数据交互方法及装置 |
CN107046563A (zh) * | 2017-01-19 | 2017-08-15 | 无锡华云数据技术服务有限公司 | 一种分布式高效云盘的实现方法、系统及云平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107707619A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107707619B (zh) | 分布式存储方法及装置 | |
CN109995813B (zh) | 一种分区扩展方法、数据存储方法及装置 | |
US10831741B2 (en) | Log-shipping data replication with early log record fetching | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
CN103455368B (zh) | 一种死锁检测方法、节点及系统 | |
US10366106B2 (en) | Quorum-based replication of data records | |
CN103856569A (zh) | 一种同步域名系统资源信息的方法及设备 | |
US20210200681A1 (en) | Data storage method and apparatus, and server | |
US11461199B2 (en) | Redundancy method, device, and system | |
CN106991008B (zh) | 一种资源锁管理方法、相关设备及系统 | |
US10831402B2 (en) | Method and apparatus for ensuring data consistency | |
CN110633168A (zh) | 一种分布式存储系统的数据备份方法和系统 | |
CN111680015B (zh) | 文件资源处理方法、装置、设备和介质 | |
US9710196B2 (en) | Method of storing data, storage system, and storage apparatus | |
CN104850416A (zh) | 一种升级系统、方法、装置及云计算节点 | |
US9830263B1 (en) | Cache consistency | |
US9344363B2 (en) | Information processing system, relay device, information processing device, and information processing method | |
CN105357271A (zh) | 一种信息处理方法及对应装置 | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
US20140164324A1 (en) | Utilization of data structures to synchronize copies of a resource | |
CN107168774B (zh) | 一种基于本地存储的虚拟机迁移方法及系统 | |
CN105205160A (zh) | 一种数据写入方法及装置 | |
CN116541461A (zh) | 应用于数据库的数据处理方法、装置、设备及存储介质 | |
CN104038364A (zh) | 分布式流处理系统的容错方法、节点及系统 | |
CN116540938A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |