CN109542330B - 数据存储方法、数据查询方法及装置 - Google Patents
数据存储方法、数据查询方法及装置 Download PDFInfo
- Publication number
- CN109542330B CN109542330B CN201710858464.XA CN201710858464A CN109542330B CN 109542330 B CN109542330 B CN 109542330B CN 201710858464 A CN201710858464 A CN 201710858464A CN 109542330 B CN109542330 B CN 109542330B
- Authority
- CN
- China
- Prior art keywords
- data
- data segment
- storage device
- streaming
- identifier
- 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
-
- 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/0626—Reducing size or complexity of storage systems
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法,属于数据存储技术领域。所述方法包括:对流式数据中的数据进行切分,获得数据片段;根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;将所述数据片段存储至对应的至少一个存储设备。后续用户在查找流式数据中的数据时,只需要提供需要查找的数据对应的时间信息,存储系统可以直接根据时间信息确定出存储对应的数据片段的存储设备,从而降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
Description
技术领域
本发明实施例涉及数据存储技术领域,特别涉及一种数据存储方法、数据查询方法及装置。
背景技术
一致性哈希(hash)算法是无中心节点的分布式存储方案中常用的算法,通过一致性哈希算法可以避免采用专用元数据服务来管理数据分布而导致的性能瓶颈、单点故障以及数据一致性等问题。
存储系统在通过一致性哈希算法对流式数据进行存储时,需要将接收到的流式数据切分为不同的数据片段,并对每一个数据片段的名称进行哈希计算,以确定该数据片段所在的存储设备。
由于流式数据的存储过程中,对流式数据进行切分的步骤由存储系统自动完成,对每一个数据片段的命名也由存储系统来实现,即用户无法知晓单个数据片段的名称,当用户查找某个数据片段时,存储系统中所有用于存储该流式数据的存储设备都需要在本地查询该数据片段,导致对流式数据中的数据进行查找的过程中,存储系统的开销较大,浪费较多的系统资源。
发明内容
为了解决现有技术中对流式数据中的数据进行查找的过程中,存储系统的开销较大,浪费较多的系统资源的问题,本申请提供了一种数据存储方法、数据查询方法及装置。
第一方面,提供了一种数据存储方法,所述方法包括:
对流式数据中的数据进行切分,获得数据片段;
根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间;
根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
将所述数据片段存储至所述数据片段对应的至少一个存储设备。
可选的,所述方法还包括:
接收包含目标时间的查询请求,所述查询请求用于查询所述流式数据中的数据片段;
根据所述目标时间确定所述数据片段对应的时间信息;
根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;
根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
从所述数据片段对应的至少一个存储设备中查询所述数据片段。
可选的,所述根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,包括:
按照一致性哈希算法分别对所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值;
根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识。
可选的,所述根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识,包括:
将所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值的和,获取为所述数据片段对应的虚拟存储节点的序号。
可选的,所述根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备,包括:
根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备。
可选的,所述根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备,包括:
获取所述流式数据对应的冗余策略,所述冗余策略用于指示所述数据片段对应的每一组冗余数据所在的存储设备区间;
根据所述数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从所述数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储所述数据片段的存储设备。
第二方面,提供了一种数据查询方法,所述方法包括:
接收包含目标时间的查询请求,所述查询请求用于查询流式数据中的数据片段;
根据所述目标时间确定所述数据片段对应的时间信息,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间;
根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;
根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
从所述数据片段对应的至少一个存储设备中查询所述数据片段。
可选的,所述根据所述目标时间确定所述数据片段对应的时间信息,包括:
确定所述目标时间所在的时间段,所述时间段是所述数据片段在所述流式数据中的起止时间段,并根据所述时间段确定所述数据片段对应的时间信息。
第三方面,提供了一种数据存储装置,所述装置包括:
切分模块,用于对流式数据中的数据进行切分,获得数据片段;
计算模块,用于根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间;
设备确定模块,用于根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
存储模块,用于将所述数据片段存储至所述数据片段对应的至少一个存储设备。
可选的,所述计算模块,包括:
计算单元,用于按照一致性哈希算法分别对所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值;
标识获得单元,用于根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识。
可选的,所述标识获得单元,用于将所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值的和,获取为所述数据片段对应的虚拟存储节点的序号。
可选的,所述设备确定模块,用于根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备。
可选的,所述设备确定模块,包括:
策略获取单元,用于获取所述流式数据对应的冗余策略,所述冗余策略用于指示所述数据片段对应的每一组冗余数据所在的存储设备区间;
设备确定单元,用于根据所述数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从所述数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储所述数据片段的存储设备。
第四方面,提供了一种数据查询装置,所述装置包括:
请求接收模块,用于接收包含目标时间的查询请求,所述查询请求用于查询所述流式数据中的数据片段;
信息确定模块,用于根据所述目标时间确定所述数据片段对应的时间信息,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间;
计算模块,用于根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;
设备确定模块,用于根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
查询模块,用于从所述数据片段对应的至少一个存储设备中查询所述数据片段。
可选的,所述信息确定模块,具体用于确定所述目标时间所在的时间段,所述时间段是所述数据片段在所述流式数据中的起止时间段,并根据所述时间段确定所述数据片段对应的时间信息。
第五方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令使得所述计算机设备实现如上述第一方面或者第二方面所述的方法。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,计算机设备执行所述指令使得所述计算机设备实现如上述第一方面或者第二方面所述的方法。
本发明实施例提供的技术方案可以包括以下有益效果:
通过将流式数据切分为数据片段,并根据该流式数据的标识以及数据片段对应的时间信息进行哈希计算,获得数据片段对应的虚拟存储节点的标识,在根据虚拟存储节点的标识确定对应的存储设备,在进行哈希计算时,考虑了数据片段的时间信息,后续用户在查找流式数据中的数据时,只需要提供需要查找的数据对应的时间信息,存储系统可以直接根据时间信息确定出存储对应的数据片段的存储设备,不需要所有的存储设备分别查找用户想要查找的数据片段,从而降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所涉及的数据存储系统的架构图;
图2是本发明一个实施例提供的数据存储方法的流程图;
图3是本发明一个实施例提供的数据存储方法的流程图;
图4是图3所示实施例涉及的一种存储设备中数据存储形式示意图;
图5是本发明一个实施例提供的数据查询方法的流程图;
图6是本发明一个实施例提供的数据存储装置的框图;
图7是本发明一个实施例提供的数据查询装置的框图;
图8是本发明一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是本发明实施例所涉及的一种数据存储系统的架构图。该数据存储系统可以对流式数据进行分布式存储。该数据存储系统包括以下设备:数据生成设备110、若干个存储设备120以及存取控制设备130。
流式数据可以是一组顺序、大量、快速、连续到达的数据序列,一般情况下,流式数据可以被视为一个随时间延续而增长的动态数据集合。典型的,流式数据可以是视频流、音频流或者其它类型的数据流等。流式数据广泛应用于网络监控、传感器网络、航空航天、气象测控和金融服务等领域。
在图1中,数据生成设备110是生成流式数据的设备;比如,当流式数据是监控视频流时,数据生成设备110可以是拍摄该监控视频流的监控摄像头;或者,当流式数据是音频流时,数据生成设备110可以是录制该音频流的麦克风;或者,当流式数据是某网络应用的日志流时,数据生成设备110可以是该网络应用的服务器。本发明实施例对于流式数据的具体数据类型以及数据生成设备110的具体设备类型不做限定。
存储设备120用于存储流式数据,其中,存储设备120的实现形式可以有多种,比如,存储设备120可以是磁盘或者包含磁盘的机械硬盘等,或者,存储设备120也可以是闪存或者包含闪存的固态硬盘,或者,存储设备120也可以包含磁盘和闪存的混合式硬盘等。
在本发明实施例中,若干个存储设备120可以通过集中式或者分布式的方式部署。
存取控制设备130用于控制流式数据在各个存储设备120中的存储和读取。在本发明实施例中,存取控制设备130可以设置在用户侧,比如,存取控制设备130可以是用户的个人电脑或者工作站等个人计算机,或者,存取控制设备130也可以是用户设置的服务器。或者,存取控制设备130也可以设置在存储服务提供商侧,比如,存取控制设备130可以是存储服务提供商设置的服务器。
该存取控制设备130与若干个存储设备120之间分别通过有线或者无线网络相连。相应的,该若干个存储设备120之间的全部或者部分设备之间也可以通过有线或者无线网络相连。
请参考图2,其示出了本发明一个实施例提供的数据存储方法的流程图。该方法可以用于图1所示的数据存储系统中。如图2所示,该数据存储方法可以包括:
步骤201,对流式数据中的数据进行切分,获得数据片段。
步骤202,根据该流式数据的标识以及该数据片段对应的时间信息进行哈希计算,获得该数据片段对应的虚拟存储节点的标识。
其中,上述时间信息用于指示数据片段对应在流式数据中的时间。
步骤203,根据该数据片段对应的虚拟存储节点的标识确定该数据片段对应的至少一个存储设备。
步骤204,将该数据片段存储至该数据片段对应的至少一个存储设备。
综上所述,本发明实施例提供的方法,通过将流式数据切分为数据片段,并根据该流式数据的标识以及数据片段对应的时间信息进行哈希计算,获得数据片段对应的虚拟存储节点的标识,在根据虚拟存储节点的标识确定对应的存储设备,在进行哈希计算时,考虑了数据片段的时间信息,后续用户在查找流式数据中的数据时,只需要提供需要查找的数据对应的时间信息,存储系统可以直接根据时间信息确定出存储对应的数据片段的存储设备,不需要所有的存储设备分别查找用户想要查找的数据片段,从而降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
请参考图3,其示出了本发明一个实施例提供的数据存储方法的流程图。该方法可以用于图1所示的数据存储系统中。如图3所示,以对数据生成设备发送的流式数据进行存储为例,该数据存储方法可以包括:
步骤301,存取控制设备接收数据生成设备发送的流式数据。
在本发明实施例中,数据生成设备将生成的数据以流式数据的形式源源不断的发送给存取控制设备,相应的,存取控制设备也源源不断的接收数据生成设备发送的流式数据。
比如,以数据生成设备是视频监控设备(比如监控摄像头)为例,由于视频监控设备通常是不间断运行的,其采集的视频数据需要源源不断的存储至存储系统中,此时,控制设备接收到的流式数据可以是视频监控设备拍摄的视频流。
步骤302,存取控制设备按照流式数据中的各个数据所对应的时间对该流式数据进行切分,获得数据片段。
在实际应用中,流式数据中每个单位的数据通常都对应各自的时间,且相邻两个单位的数据各自对应的时间是连续的,或者说,流式数据中的各个单位的数据是按照各自的时间顺序进行排列的。
比如,当流式数据是视频监控设备拍摄的视频流时,该视频流中的每一帧图像都对应各自的拍摄时间,且视频流中各帧图像按照各自的拍摄时间顺序排列。其中,各帧图像的拍摄时间即可以作为各帧图像在流式数据中各自对应的时间。
在本发明实施例中,存取控制设备可以按照流式数据中的各个数据对应的时间,将流式数据中的数据切分成固定或者非固定时间长度的数据片段。
具体的,由于流式数据中的数据通常是源源不断的生成并到达存取控制设备的,因此,存取控制设备需要对流式数据边接收边存储,在本发明实施例中,存取控制设备可以按照流式数据中的各个单位的数据所对应的时间,将每隔一段时间长度的数据切分为一个数据片段,后续以数据片段为单位进行存储。
在本发明实施例中,各个数据片段各自对应的时间长度可以固定,比如,存取控制设备可以将流式数据中每隔半小时的数据切分为一个数据片段,比如,以接收到的流式数据为视频监控设备发送的视频流为例,存取控制设备在接收视频流的过程中,检测当前收到的视频帧的时间戳是否跨越了整点或半整点,若是,则将在当前视频帧之前接收到的,且未切分的视频帧切分为一个视频片段(即相当于上述数据片段)。
或者,上述各个数据片段各自对应的时间长度也可以不固定,比如,存取控制设备可以将流式数据中每相邻两个整点之间的数据(比如从6:00:00~6:59:59之间的数据或者7:00:00~7:59:59之间的数据)切分为三个数据片段,其中,前两个数据片段对应的时间长度均为25min,最后一个数据片段对应的时间长度为10min;或者,存取控制设备可以将流式数据中每隔一个小时的数据切分成时间长度分别为30min、20min和10min中的三个数据片段。
对于存取控制设备按照流式数据中的各个数据对应的时间切分数据片段的具体方式,本发明实施例不做限定。
步骤303,存取控制设备根据该流式数据的标识以及该数据片段对应的时间信息进行哈希计算,获得该数据片段对应的Vnode(Virtual node,虚拟存储节点)的标识。
其中,上述时间信息用于指示数据片段对应在流式数据中的时间。
具体的,存取控制设备可以按照一致性哈希算法分别对该流式数据的标识以及该数据片段对应的时间信息进行哈希计算,获得该流式数据的标识的哈希数值以及该数据片段对应的时间信息的哈希数值;根据该流式数据的标识的哈希数值以及该数据片段对应的时间信息的哈希数值获得该数据片段对应的虚拟存储节点的标识。
其中,上述流式数据的标识可以是一个唯一表示该流式数据的标识,具体的,当流式数据源设备只向存取控制设备发送一条流式数据时,该流式数据的标识可以是流式数据源设备的标识,比如,以流式数据源设备为视频监控设备为例,该流式数据的标识可以是视频监控设备的编号(camera ID)。
此外,上述数据片段对应的时间信息可以是该数据片段对应的时间戳,具体的,可以是该数据片段的起始时间,或者,也可以是该数据片段的结束时间,或者,也可以是该数据片段的中间时间等等。
在本发明实施例中,存取控制设备在确定数据片段对应的虚拟存储节点时,可以结合流式数据的标识和数据片段的时间信息来综合确定对应的虚拟存储节点,这样一方面可以使得虚拟存储节点的确定引入数据片段的时间信息,便于后续根据时间信息进行查找,另一方面也可以使得不同的流式数据对应在相同时间的数据片段能够被分配至不同的虚拟存储节点。
可选的,在获得该数据片段对应的虚拟存储节点的标识时,存取控制设备可以将该流式数据的标识的哈希数值以及该数据片段对应的时间信息的哈希数值的和,获取为该数据片段对应的虚拟存储节点的序号。
具体比如,以流式数据为监控视频流,流式数据的标识为视频监控设备的编号(camera ID),数据片段对应的时间信息为数据片段的起始时间(假设为1:30:00)为例,存取控制设备对camera ID进行一致性哈希计算,获得哈希值为9527,并对起始时间“1:30:00”进行一致性哈希计算,获得哈希值为3,则存取控制设备确定该数据片段对应的虚拟存储节点的序号为9527+3=9530。
在本发明实施例中,虚拟存储节点是一个为便于系统处理而设置的虚拟的概念,对于一致性哈希算法而言,该虚拟存储节点的个数可以与一致性哈希算法的哈希环的长度相对应。
其中,上述一致性哈希计算的哈希环的长度可以是流式数据的存储周期与单个数据片段的时长的比值。比如,以流式数据的存储周期为一年(即存储系统默认存储流式数据中最近一年的数据),每个数据片段的时间长度为半小时为例,上述一致性算法的哈希环的长度可以为366*24*2=17568,其中,考虑到部分年份为闰年的因素,一年的天数以最大天数(即366天)计算。即上述哈希环的长度为17568,对应的虚拟存储节点的个数也为17568个。
在本发明实施例中,存取控制设备在切分获得数据片段之后,还可以自动设置数据片段的名称(即文件名),在本发明实施例中,数据片段的名称可以包括流式数据的标识、时间信息以及虚拟存储节点的标识,比如,以流式数据为上述视频监控设备生成的监控视频流为例,一个视频片段的名称可以为:camera ID+起始时间+Vnode序号。
步骤304,存取控制设备根据该数据片段对应的虚拟存储节点的标识确定该数据片段对应的至少一个存储设备。
在本发明实施例中,存取控制设备可以根据该数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定该数据片段对应的至少一个存储设备。
比如,以本发明实施例涉及的存储系统为分布式文件系统为例,存取控制设备可以通过CRUSH(Controlled Replication Under Scalable Hashing,可伸缩哈希下的受控复制)算法,根据数据片段对应的虚拟存储节点的标识计算确定数据片段对应的至少一个存储设备。
可选的,存取控制设备可以获取该流式数据对应的冗余策略,该冗余策略用于指示该数据片段对应的每一组冗余数据所在的存储设备区间;并根据该数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从该数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储该数据片段的存储设备。
其中,数据片段的冗余数据是指该数据片段对应的,存储在不同存储设备中的多组数据。在数据存储领域中,将数据片段存储为不同存储设备中的多组冗余数据,可以防止因为部分存储设备故障而导致存储在这部分存储设备中的数据片段丢失。
其中,若干个存储设备可以划分为不同层级的存储设备区间,具体比如,若干个存储设备可以分布在多个机房中,每个机房中设置有多台存储主机,每台存储主机对应多个存储设备组,每个存储设备组中包含多个存储设备。在数据存储过程中,用户或者系统可以指定冗余策略,即一份数据同时存储在多个不同的存储设备中,这样当一个存储设备发生故障时,该存储设备中存储的数据不至于丢失。上述冗余策略可以是指示通过什么样的层级来进行冗余,具体比如,该冗余策略可以是同一份数据的每个副本分别存储在不同机房中,或者,同一份数据的每个副本分别存储在一个机房中的不同主机中,或者,同一份数据的每个副本分别存储在一个主机中的不同存储设备组中,或者,同一份数据的每个副本分别存储在一个存储设备组中的不同存储设备中等等。
在确定存储设备时,存取控制设备可以根据冗余策略确定至少一个存储设备,比如,当冗余策略为同一个数据片段的各组冗余数据分别存储在不同机房中时,存取控制设备可以从每一个机房包含的所有存储设备中确定(比如,按照CRUSH等伪哈希算法确定)出一个存储设备作为当前存储的数据片段对应的存储设备,有多少个机房即确定多少个存储设备作为数据片段对应的存储设备。
步骤305,存取控制设备将该数据片段存储至该数据片段对应的至少一个存储设备。
其中,上述至少一个存储设备中包含一个主存储设备以及至少一个从存储设备,存取控制设备可以将该数据片段存储至该主存储设备,以便该主存储设备生成该数据片段的各组冗余数据,并将各组冗余数据分别同步给该至少一个从存储设备。
具体的,存取控制设备可以将确定的至少一个存储设备中的第一个存储设备设置为主存储设备,存储过程中所有的计算通过主存储设备完成,如果是副本模式,则主存储设备将副本数据发送给从存储设备;如果是纠删码模式,主存储设备需要先将数据拆分为条带,将第一份数据保存到本地,其它的数据发送到从存储设备,存储的过程需要等待数据至少一个存储设备中都写完才算成功。
其中,以将视频监控设备采集生成的流式数据存储在OSD(Object StorageDevice,对象存储设备)中为例,流式数据中的数据片段在每个OSD中数据存储形式可以如图4所示,图4的说明如下:
1、对象存储设备上的数据按照写入的虚拟存储节点(Vnode)数量,组织写入N个虚拟存储节点内的对象(object)中;
2、每个虚拟存储节点的目录下,产生1到M个虚拟存储节点目录,将每个对象通过哈希算法放入不同的目录中;
3、每个对象按照视频监控设备标识(比如camera ID)+桶标识(bucket ID)+时间戳(比如起始时间点)的形式命名并进行存储,在后续查询时,可以直接查找对应的对象名;
4、对象存储设备中还包含存储目录,该存储目录下可以包含索引文件以及日志文件等,其中,每个对象会产生相应的I帧索引,I帧索引存入索引文件中进行保存;日志文件中保存有在该对象存储设备上执行过的操作的记录,比如读取记录和存储记录等。
可选的,在本发明实施例中,当某个Vnode对应的存储设备发生改变,比如某个Vnode对应的存储设备涉及到设备添加、删除或者故障恢复后重上线时,导致映射数据需要迁移,此时,存储系统可以进行数据修复。
以数据存储在OSD中为例,数据修复以Vnode为单位发起,比如,当Vnode对应的OSD故障恢复并重上线时,Vnode对应的各个OSD中的某一个指定的OSD将发起数据修复流程,在此过程中,对OSD进行读写将被阻塞。数据修复的步骤可以如下:
步骤1,查看对应的时间点的日志:指定的OSD获取故障时间内参与的OSD列表。
其中,如果Vnode对应的各个OSD中,故障恢复的OSD为主OSD(即上述主存储设备),则Vnode对应的各个OSD中的某一个从OSD(即上述从存储设备)将会被确定为上述指定的OSD,并由该指定的OSD获取主OSD发生故障的时间段内,参与存储该Vnode对应的数据片段的OSD列表。
如果Vnode对应的各个OSD中,故障恢复的OSD为从OSD,则Vnode对应的各个OSD中的主OSD将会被确定为上述指定的OSD,并由该指定的OSD获取从OSD发生故障的时间段内,参与存储该Vnode对应的数据片段的OSD列表。
步骤2,获取对应的日志:指定的OSD获取存储日志。
指定的OSD可以获取其它OSD发生故障的时间段内的存储日志,以确定在其它OSD发生故障的时间段内,有哪些数据变更,比如,新增了哪些数据或者删除了哪些数据等等。
步骤3,获取记录的需要修复的日志信息:指定的OSD获取每个副本需要修复的Object信息。
指定的OSD获取到其它OSD发生故障的时间段内的存储日志后,可以根据获取到的存储日志确定哪些Object需要被恢复到重新上线的OSD中。
步骤4,根据需要修复的日志信息进行数据修改,进行数据修复的具体操作可以如下:
如果主OSD是故障恢复的OSD,且主OSD中出现数据丢失的object,则由主OSD主动拉取未发生故障的从OSD上的object数据,根据拉取的object数据在本地进行数据恢复。
比如,当冗余模式为副本模式时,主OSD将从OSD上的object数据作为副本进行存储;或者,当冗余模式为纠删码模式时,主OSD根据从OSD上的object数据进行纠删码计算,获得主OSD上的object数据并存储。
如果从OSD是故障恢复的OSD,且从OSD中上出现数据丢失的object,则由主OSD主动向故障恢复的从OSD推送需要修复的object数据。
比如,当冗余模式为副本模式时,主OSD将本地的object数据作为副本推送给故障恢复的从OSD;或者,当冗余模式为纠删码模式时,主OSD根据本地存储的object数据以及其它未发生故障的从OSD上的object数据进行纠删码计算,获得故障恢复的从OSD上的object数据,并将计算获得的object数据推送给故障恢复的从OSD。
如果主OSD和部分从OSD是故障恢复的OSD,且缺失object数据,则先由主OSD从未发生故障的从OSD上拉取数据,进行本地恢复。下一次再把数据推送到需要恢复的从OSD上。
比如,当冗余模式为副本模式时,主OSD将未发生故障的从OSD上的object数据作为副本进行存储,并将副本推送给故障恢复的从OSD;或者,当冗余模式为纠删码模式时,主OSD根据未发生故障的从OSD上的object数据进行纠删码计算,获得主OSD上的object数据以及故障恢复的从OSD上的object数据,并将故障恢复的从OSD上的object数据推送给故障恢复的从OSD。
综上所述,本发明实施例提供的方法,通过按照时间对流式数据中的数据进行切分,并根据该流式数据的标识以及数据片段对应的时间信息进行哈希计算,获得数据片段对应的虚拟存储节点的标识,在根据虚拟存储节点的标识确定对应的存储设备,在进行哈希计算时,考虑了数据片段的时间信息,后续用户在查找流式数据中的数据时,只需要提供需要查找的数据对应的时间信息,存储系统可以直接根据时间信息确定出存储对应的数据片段的存储设备,不需要所有的存储设备分别查找用户想要查找的数据片段,从而降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
请参考图5,其示出了本发明一个实施例提供的数据查询方法的流程图。该方法可以用于图1所示的数据存储系统中。如图5所示,以查询流式数据中的数据片段为例,该数据查询方法可以包括:
步骤501,存取控制设备接收包含目标时间的查询请求,该查询请求用于查询流式数据中的数据片段。
在本发明实施例中,当流式数据按照上述图3所示的方法存储至各个存储设备之后,用户需要查询该流式数据中处于某个时间点处的数据时,可以在查询终端展示的查询界面中直接设置或者输入需要查询的目标时间,查询终端可以生成用于针对该流式数据,且包含目标时间的查询请求。
比如,以流式数据为某个视频监控设备生成的监控视频流为例,当用户想要查询17年9月10号上午7点15分左右的监控视频画面时,可以在查询界面中选中该视频监控设备和日期,并输入目标时间“7:15:00”,查询终端可以生成包含监控视频流的标识和目标时间“17-09-10,7:15:00”的查询请求,并将该查询请求提供给存取控制设备。
步骤502,存取控制设备根据该目标时间确定该数据片段对应的时间信息,该时间信息用于指示数据片段对应在流式数据中的时间。
存取控制设备获取到查询请求后,可以根据查询请求中包含的目标时间,确定所要查询的数据片段对应在流式数据中的时间段。
其中,存取控制设备根据查询请求中包含的目标时间,确定所要查询的数据片段对应在流式数据中的时间段的方法,与上述图3所示实施例中按照流式数据中的各个单位数据所对应的时间切分数据片段的方法相对应。
比如,假设在上述图3所示的实施例中,存取控制设备检测到当前收到的视频帧的时间戳跨越了整点或半整点时,将在当前视频帧之前接收到的,且未切分的视频帧切分为一个视频片段,则对于上述目标时间为“17-09-10,7:15:00”的查询请求,存取控制设备确定所要查询的数据片段对应的时间段为17年9月10号上午的7:00:00~7:29:59。
步骤503,存取控制设备根据该流式数据的标识以及该数据片段对应的时间信息进行哈希计算,获得该数据片段对应的虚拟存储节点的标识。
步骤504,存取控制设备根据该数据片段对应的虚拟存储节点的标识确定该数据片段对应的至少一个存储设备。
其中,上述步骤503至步骤504的实现过程与上述图3所示实施例中的步骤303至步骤304类似,详见上述图3所示实施例中的描述,此处不再赘述。
步骤505,存取控制设备从该数据片段对应的至少一个存储设备中查询该数据片段。
在本发明实施例中,存取控制设备确定查询的数据片段所在的至少一个存储设备后,可以向确定出的存储设备查询该数据片段,比如,可以向确定的至少一个存储设备中的主存储设备查询该数据片段。
在本发明实施例中,查询流式数据中的某一个数据片段时,用户只需要提供要查询的数据片段的标识以及流式数据的标识,存取控制设备即可以通过哈希算法确定存储该数据片段的至少一个存储设备,并向确定的至少一个存储设备查询数据片段,该过程中不需要向每一个存储设备都进行查询,从而极大的降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
综上所述,本发明实施例提供的方法,通过按照时间对流式数据中的数据进行切分,并根据该流式数据的标识以及数据片段对应的时间信息进行哈希计算,获得数据片段对应的虚拟存储节点的标识,在根据虚拟存储节点的标识确定对应的存储设备,在进行哈希计算时,考虑了数据片段的时间信息,后续用户在查找流式数据中的数据时,只需要提供需要查找的数据对应的时间信息,存储系统可以直接根据时间信息确定出存储对应的数据片段的存储设备,不需要所有的存储设备分别查找用户想要查找的数据片段,从而降低存储系统在查询流式数据过程中的系统开销,节约系统资源。
请参考图6,其示出了本发明一个实施例提供的数据存储装置的框图。该装置可以通过硬件或者软硬结合的方式实现为图1所示数据存储系统的存取控制设备110的部分或者全部,用以执行如图2或3中由存取控制设备所执行的全部或者部分步骤。该装置可以包括:
切分模块601,用于按照流式数据中的数据所对应的时间对所述流式数据中的数据进行切分,获得数据片段;
计算模块602,用于根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;
设备确定模块603,用于根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
存储模块604,用于将所述数据片段存储至所述数据片段对应的至少一个存储设备。
可选的,所述计算模块,包括:
计算单元,用于按照一致性哈希算法分别对所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值;
标识获得单元,用于根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识。
可选的,所述标识获得单元,用于将所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值的和,获取为所述数据片段对应的虚拟存储节点的序号。
可选的,所述设备确定模块,用于根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备。
可选的,所述设备确定模块,包括:
策略获取单元,用于获取所述流式数据对应的冗余策略,所述冗余策略用于指示所述数据片段对应的每一组冗余数据所在的存储设备区间;
设备确定单元,用于根据所述数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从所述数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储所述数据片段的存储设备。
可选的,所述至少一个存储设备中包含一个主存储设备以及至少一个从存储设备,
所述存储模块,用于将所述数据片段存储至所述主存储设备,以便所述主存储设备将所述数据片段同步给所述至少一个从存储设备。
请参考图7,其示出了本发明一个实施例提供的数据查询装置的框图。该装置可以通过硬件或者软硬结合的方式实现为图1所示数据存储系统的存取控制设备110的部分或者全部,用以执行如图5中由存取控制设备所执行的全部或者部分步骤。该装置可以包括:
请求接收模块701,用于接收包含目标时间的查询请求,所述查询请求用于查询所述流式数据中的数据片段;
信息确定模块702,用于根据所述目标时间确定所述数据片段对应的时间信息,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间;
计算模块703,用于根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识;
设备确定模块704,用于根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
查询模块705,用于从所述数据片段对应的至少一个存储设备中查询所述数据片段。
可选的,所述信息确定模块,具体用于确定所述目标时间所在的时间段,所述时间段是所述数据片段在所述流式数据中的起止时间段,并根据所述时间段确定所述数据片段对应的时间信息。
请参考图8,其示出了本发明一个示例性实施例提供的计算机设备的结构示意图,该计算机设备可以实现为上述图1所示系统中的存取控制设备130。该计算机设备包括:处理器81、通信组件82、存储器83以及总线84。
处理器81包括一个或者一个以上处理核心,处理器81通过运行软件程序以及模块,从而执行各种功能以及信息处理。
通信组件82可以包括有线网络接口(比如以太网接口)和无线网络接口(比如WLAN、BLE、ZigBee等接口)中的至少一种。该通信组件82用于对信息进行调制和/或解调,并通过有线信号或无线信号接收或发送该信息。
存储器83通过总线84与处理器81相连。
存储器83可用于存储软件程序以及模块。
存储器83可存储至少一个功能所述的应用程序模块86。处理器81可以通过执行上述应用程序模块86来实现上述图2、图3或图5中存取控制设备执行的全部或者部分步骤。
此外,存储器83可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本发明一个实施例还提供一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由计算机设备的处理器执行以完成本发明各个实施例所示的数据存储方法或者数据查询方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
本领域普通技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
将流式数据中的数据切分成固定时长的数据片段;
根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间,其中,所述虚拟存储节点的个数与所述哈希计算的哈希环的长度相对应,所述哈希计算的哈希环的长度是流式数据的存储周期与所述数据片段的时长的比值;
根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
将所述数据片段存储至所述数据片段对应的至少一个存储设备;
当所述虚拟存储节点的标识对应的存储设备发生改变时,获取对应的时间点的日志,获取所述日志中记录的需要修复的日志信息,根据所述需要修复的日志信息进行数据修改,其中,所述日志中保存有所述日志信息,所述日志信息是在所述存储设备上执行过的操作的记录。
2.根据权利要求1所述的方法,其特征在于,所述根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,包括:
按照一致性哈希算法分别对所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值;
根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识。
3.根据权利要求2所述的方法,其特征在于,所述根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识,包括:
将所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值的和,获取为所述数据片段对应的虚拟存储节点的序号。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备,包括:
根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备。
5.根据权利要求4所述的方法,其特征在于,所述根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备,包括:
获取所述流式数据对应的冗余策略,所述冗余策略用于指示所述数据片段对应的每一组冗余数据所在的存储设备区间;
根据所述数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从所述数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储所述数据片段的存储设备。
6.一种数据存储装置,其特征在于,所述装置包括:
切分模块,用于将流式数据中的数据切分成固定时长的数据片段;
计算模块,用于根据所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述数据片段对应的虚拟存储节点的标识,所述时间信息用于指示所述数据片段对应在所述流式数据中的时间,其中,所述虚拟存储节点的个数与所述哈希计算的哈希环的长度相对应,所述哈希计算的哈希环的长度是流式数据的存储周期与所述数据片段的时长的比值;
设备确定模块,用于根据所述数据片段对应的虚拟存储节点的标识确定所述数据片段对应的至少一个存储设备;
存储模块,用于将所述数据片段存储至所述数据片段对应的至少一个存储设备;
当所述虚拟存储节点的标识对应的存储设备发生改变时,获取对应的时间点的日志,获取所述日志中记录的需要修复的日志信息,根据所述需要修复的日志信息进行数据修改,其中,所述日志中保存有所述日志信息,所述日志信息是在所述存储设备上执行过的操作的记录。
7.根据权利要求6所述的装置,其特征在于,所述计算模块,包括:
计算单元,用于按照一致性哈希算法分别对所述流式数据的标识以及所述数据片段对应的时间信息进行哈希计算,获得所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值;
标识获得单元,用于根据所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值获得所述数据片段对应的虚拟存储节点的标识。
8.根据权利要求7所述的装置,其特征在于,
所述标识获得单元,用于将所述流式数据的标识的哈希数值以及所述数据片段对应的时间信息的哈希数值的和,获取为所述数据片段对应的虚拟存储节点的序号。
9.根据权利要求6所述的装置,其特征在于,所述设备确定模块,
用于根据所述数据片段对应的虚拟存储节点的标识,通过伪哈希算法计算确定所述数据片段对应的至少一个存储设备。
10.根据权利要求9所述的装置,其特征在于,所述设备确定模块,包括:
策略获取单元,用于获取所述流式数据对应的冗余策略,所述冗余策略用于指示所述数据片段对应的每一组冗余数据所在的存储设备区间;
设备确定单元,用于根据所述数据片段对应的虚拟存储节点的标识,通过所述伪哈希算法从所述数据片段对应的每一组冗余数据所在的存储设备区间中分别计算确定出至少一个用于存储所述数据片段的存储设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710858464.XA CN109542330B (zh) | 2017-09-21 | 2017-09-21 | 数据存储方法、数据查询方法及装置 |
PCT/CN2018/106495 WO2019057081A1 (zh) | 2017-09-21 | 2018-09-19 | 数据存储方法、数据查询方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710858464.XA CN109542330B (zh) | 2017-09-21 | 2017-09-21 | 数据存储方法、数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542330A CN109542330A (zh) | 2019-03-29 |
CN109542330B true CN109542330B (zh) | 2020-11-10 |
Family
ID=65811112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710858464.XA Active CN109542330B (zh) | 2017-09-21 | 2017-09-21 | 数据存储方法、数据查询方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109542330B (zh) |
WO (1) | WO2019057081A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275873A (zh) * | 2019-06-28 | 2019-09-24 | 重庆紫光华山智安科技有限公司 | 文件存储方法、装置、存储管理设备及存储介质 |
CN110336891A (zh) * | 2019-07-24 | 2019-10-15 | 中南民族大学 | 缓存数据分布方法、设备、存储介质及装置 |
CN111093094A (zh) * | 2019-12-03 | 2020-05-01 | 深圳市万佳安物联科技股份有限公司 | 视频转码方法、装置、系统及电子设备及可读存储介质 |
CN111263183A (zh) * | 2020-02-26 | 2020-06-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 唱歌状态识别方法及装置 |
CN111400322B (zh) * | 2020-03-25 | 2023-10-03 | 抖音视界有限公司 | 用于存储数据的方法、装置、电子设备和介质 |
CN112015561A (zh) * | 2020-09-16 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 用于流式计算服务的方法、装置和系统 |
CN113194117A (zh) * | 2021-03-22 | 2021-07-30 | 海南视联通信技术有限公司 | 一种基于视联网的数据处理的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357452A (zh) * | 2016-09-29 | 2017-01-25 | 上海和付信息技术有限公司 | 一种单点异构数据存储的高可用框架系统及其实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561057A (zh) * | 2013-10-15 | 2014-02-05 | 深圳清华大学研究院 | 基于分布式哈希表和纠删码的数据存储方法 |
CN104881481B (zh) * | 2015-06-03 | 2018-05-01 | 广东省机电设备招标有限公司 | 一种存取海量时间序列数据的方法及装置 |
CN105243140B (zh) * | 2015-10-10 | 2018-07-06 | 中国科学院软件研究所 | 一种面向高速列车实时监控的海量数据管理方法 |
CN107154957A (zh) * | 2016-12-29 | 2017-09-12 | 贵州电网有限责任公司铜仁供电局 | 基于虚拟环负载均衡算法的分布式存储控制方法 |
-
2017
- 2017-09-21 CN CN201710858464.XA patent/CN109542330B/zh active Active
-
2018
- 2018-09-19 WO PCT/CN2018/106495 patent/WO2019057081A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357452A (zh) * | 2016-09-29 | 2017-01-25 | 上海和付信息技术有限公司 | 一种单点异构数据存储的高可用框架系统及其实现方法 |
Non-Patent Citations (2)
Title |
---|
关于MongoDB Sharding,你应该知道的;张友东;《http://www.mongoing.com/archives/3397》;20160907;正文第1-7页 * |
如何将鸡蛋放入不同的篮子?分布式存储中数据分布算法介绍;余洋;《http://www.bocloud.com.cn/news/show-201.html》;20170324;正文第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019057081A1 (zh) | 2019-03-28 |
CN109542330A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542330B (zh) | 数据存储方法、数据查询方法及装置 | |
US8260742B2 (en) | Data synchronization and consistency across distributed repositories | |
CN103473277B (zh) | 文件系统的快照方法和装置 | |
WO2018049983A1 (zh) | 数据同步方法、系统、同步获取方法及装置 | |
CN102968486B (zh) | 一种基于变化日志的高可靠文件同步方法 | |
CN109407977B (zh) | 一种大数据分布式存储管理方法及系统 | |
CN105376277B (zh) | 一种数据同步方法及装置 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN101673289B (zh) | 分布式文件存储构架的构建方法和装置 | |
CN104348859B (zh) | 文件同步方法、装置、服务器、终端及系统 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN110046062B (zh) | 分布式数据处理方法及系统 | |
JP2016513306A (ja) | データ格納方法、データストレージ装置、及びストレージデバイス | |
CN105550230B (zh) | 分布式存储系统节点故障的侦测方法和装置 | |
US20130226867A1 (en) | Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system | |
US9871863B2 (en) | Managing network attached storage | |
CN111404737B (zh) | 一种容灾处理方法以及相关装置 | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
US20210240350A1 (en) | Method, device, and computer program product for recovering based on reverse differential recovery | |
CN109783463A (zh) | 文件同步方法、装置及计算机可读存储介质 | |
JP5685213B2 (ja) | 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
JP6376626B2 (ja) | データ格納方法、データストレージ装置、及びストレージデバイス | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN109445988A (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 |