CN114489515A - 一种基于流存储的数据写入方法 - Google Patents

一种基于流存储的数据写入方法 Download PDF

Info

Publication number
CN114489515A
CN114489515A CN202210129817.3A CN202210129817A CN114489515A CN 114489515 A CN114489515 A CN 114489515A CN 202210129817 A CN202210129817 A CN 202210129817A CN 114489515 A CN114489515 A CN 114489515A
Authority
CN
China
Prior art keywords
disk
data
group
cid
dgid
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.)
Granted
Application number
CN202210129817.3A
Other languages
English (en)
Other versions
CN114489515B (zh
Inventor
许文华
瞿洪桂
王思瑶
王兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sinonet Science and Technology Co Ltd
Original Assignee
Beijing Sinonet Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sinonet Science and Technology Co Ltd filed Critical Beijing Sinonet Science and Technology Co Ltd
Priority to CN202210129817.3A priority Critical patent/CN114489515B/zh
Publication of CN114489515A publication Critical patent/CN114489515A/zh
Application granted granted Critical
Publication of CN114489515B publication Critical patent/CN114489515B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

本发明提供一种基于流存储的数据写入方法,包括以下步骤:磁盘组的划分;确定本次数据写入的磁盘组标识DGID;确定磁盘组GroupDGID中选择的磁盘标识DID;确定数据存储目录DDIR;确定子目录;确定磁盘文件DFILE。具有以下优点:(1)提出磁盘组策略,保证低功耗模式的正常工作,同时可以并发提高系统的读写性能。(2)在磁盘组内对不同的设备数据进行离散分布,保证磁盘组之间的容量均衡;(3)根据设备及数据信息,通过运算快速定位磁盘及存储路径,提升系统的检索效率,降低存储元数据带来的业务复杂性。

Description

一种基于流存储的数据写入方法
技术领域
本发明属于视频云存储技术领域,具体涉及一种基于流存储的数据写入方法。
背景技术
近年来,随着智慧城市的不断发展,国家数字化转型的不断推进,各种数据呈爆发式增长,数据存储的需求日益剧增。其中视频云存储的需求也越来越多。目前在视频云存储领域使用的服务器可分为两类:X86架构的通用存储服务器和基于ARM的嵌入式系统服务器。不同架构种类的服务器整机的硬件规格,尤其是磁盘数量往往不尽相同。此外,一个视频监控系统通常会产生成百上千路的视频流数据需要存储。如何保证在低功耗模式运行时,既能满足大量数据并发读写的性能需求,又能保证数据分布的均匀性,是数据存储需要考虑的一个重要问题。
目前,常用的方法是在数据写入时,以轮询的方式写入预分配的目录中。这样设计的优点是写入数据时设计简单,实现容易,但是需要记录数据存储的路径信息,导致额外产生大量元数据文件,元数据文件的维护在数据检索和定位时性能较差,在数据并发量较大时严重影响系统性能。
如何有效解决以上问题,既保证数据存储分布的均匀性,又满足大量数据并发读写的性能需求,同时降低维护成本,是目前需要解决的问题。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于流存储的数据写入方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于流存储的数据写入方法,包括以下步骤:
步骤1,磁盘组的划分:
设共有n个磁盘,每个磁盘具有唯一的磁盘ID;将n个磁盘划分为N个磁盘组,依次表示为:磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1;其中,每个磁盘组包括至少一个磁盘;
设磁盘组Group0包括C(0)个磁盘,表示为:磁盘disk0 [0],磁盘disk1 [0],…,磁盘diskC(0)-1 [0]
磁盘组Group1包括C(1)个磁盘,表示为:磁盘disk0 [1],磁盘disk1 [1],…,磁盘diskC(1)-1 [1]
依此类推
磁盘组GroupN-1包括C(N-1)个磁盘,表示为:磁盘disk0 [N-1],磁盘disk1 [N-1],…,磁盘diskC(N-1)-1 [N-1]
步骤2,预设置轮询时长SLT;
步骤3,接收接入设备的写入数据请求;其中,所述写入数据请求中携带有接入设备标识CID、时间戳T以及需写入的数据内容;
其中,所述接入设备CID的生成方式为:随机产生随机数,并作为接入设备的接入设备标识CID;
时间戳T含义为:从预设定的时间原点T0开始,经过的时间长度;
步骤4,采用以下方法,确定本次数据写入的磁盘组标识DGID:
步骤4.1,预设置从时间原点T0=0开始,磁盘组的轮询顺序为:按磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1的顺序,依次轮询;
步骤4.2,预设置对磁盘组的轮询规则为:
从时间原点T0开始,在T0到SLT的时间段内,即在第1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0
在SLT到2SLT的时间段内,即在第2个轮询时长内,激活磁盘组Group1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group1
依此类推,在(N-1)SLT到N*SLT的时间段内,即在第N个轮询时长内,激活磁盘组GroupN-1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组GroupN-1
至此完成对N个磁盘组的第一轮轮询;
在N*SLT到(N+1)*SLT的时间段内,即在第N+1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0,如此开始对N个磁盘组的下一轮轮询;
步骤4.3,采用下式,计算得到当前激活的磁盘组标识DGID:
DGID=MOD(Int(T/SLT),N)
其中:
Int()代表向下取整数;
MOD()代表取余数;
由此确定本次数据写入的磁盘组为磁盘组GroupDGID,其中,DGID=1,2,…,N-1;磁盘组GroupDGID包括C(DGID)个磁盘;
步骤5,采用以下公式,确定磁盘组GroupDGID中选择的磁盘标识DID:
磁盘标识DID=MOD(CID+T,C(DGID))
由此得到磁盘组GroupDGID中选择的磁盘为:磁盘diskDID [DGID]
步骤6,在磁盘diskDID [DGID]中,采用以下方法,确定数据存储目录DDIR:
在磁盘diskDID [DGID]中,判断是否已存在与接入设备CID对应的数据存储目录DDIR,如果存在,则直接定位到该数据存储目录DDIR;如果不存在,则在磁盘diskDID [DGID]中创建与接入设备CID对应的数据存储目录DDIR,表示为:数据存储目录DDIR(CID),表明该数据存储目录DDIR(CID),是唯一用于存储接入设备CID上传的数据;其中,数据存储目录DDIR采用接入设备CID命名;
步骤7,在数据存储目录DDIR(CID)内,采用以下方法,确定子目录:
对时间戳T取整小时,表示为:整小时数时间戳T”;
在数据存储目录DDIR(CID)内,判断是否存在以整小时数时间戳T”命名的子目录IR(T”),如果存在,则直接定位到子目录IR(T”);如果不存在,则在数据存储目录DDIR(CID)中,创建命名为整小时数时间戳T”的子目录IR(T”);
具体的,对于来自于同一个接入设备CID的数据,以小时为单位进行存储,即:同一个小时的接入设备CID的数据,存储到同一个子目录中,不同小时的接入设备CID的数据,存储到不同的子目录中;
步骤8,在子目录IR(T”)内,采用以下方法,确定磁盘文件DFILE:
在子目录IR(T”)内,用于存储同一接入设备CID的元数据以及磁盘文件DFILE;其中,磁盘文件DFILE采用整小时数时间戳T”命名,即:同一个小时的接入设备CID的数据,存储到同一个磁盘文件DFILE中,不同小时的接入设备CID的数据,存储到不同的磁盘文件DFILE中;
因此,根据时间戳T,判断子目录IR(T”)中是否存在与时间戳T属于同一个小时内的磁盘文件DFILE,如果有,则直接将接入设备CID的数据存储到该磁盘文件DFILE;如果没有,则在子目录IR(T”)中创建命名为整小时数时间戳T”的磁盘文件DFILE,然后将接入设备CID的数据存储到该磁盘文件DFILE;
至此可知,数据写入路径为:磁盘组GroupDGID---磁盘标识DID---数据存储目录DDIR--子目录IR(T”)---磁盘文件DFILE;其中,磁盘组GroupDGID和磁盘标识DID可换算为磁盘绝对唯一标识;
由此完成数据写入过程。
优选的,还包括:
当需要读取接入设备的数据时,根据接入设备的标识CID以及需读取数据的时间戳T,重新计算得到读取路径;根据所述读取路径,读取到所需数据。
本发明提供的一种基于流存储的数据写入方法具有以下优点:
(1)提出磁盘组策略,保证低功耗模式的正常工作,同时可以并发提高系统的读写性能。
(2)在磁盘组内对不同的设备数据进行离散分布,保证磁盘组之间的容量均衡;
(3)根据设备及数据信息,通过运算快速定位磁盘及存储路径,提升系统的检索效率,降低存储元数据带来的业务复杂性。
附图说明
图1为本发明提供的一种基于流存储的数据写入方法的流程示意图;
图2为本发明提供的磁盘组内磁盘选择方法的原理图;
图3为本发明提供的设备节点接入分布图;
图4为本发明提供的流式存储算法中磁盘组轮询示意图;
图5为本发明提供的流式存储磁盘路径示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于流存储的数据写入方法,具体涉及一种基于流式存储的数据均衡分布方法,本发明可以实现在低功耗模式下,考虑兼容不同规格的硬件产品,依然可以保障视频数据存储的均衡性,并且,可快速定位磁盘,具有数据读写速度快的优点。
参考图1,本发明提供一种基于流存储的数据写入方法,包括以下步骤:
步骤1,磁盘组的划分:
设共有n个磁盘,每个磁盘具有唯一的磁盘ID;将n个磁盘划分为N个磁盘组,依次表示为:磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1;其中,每个磁盘组包括至少一个磁盘;
设磁盘组Group0包括C(0)个磁盘,表示为:磁盘disk0 [0],磁盘disk1 [0],…,磁盘diskC(0)-1 [0]
磁盘组Group1包括C(1)个磁盘,表示为:磁盘disk0 [1],磁盘disk1 [1],…,磁盘diskC(1)-1 [1]
依此类推
磁盘组GroupN-1包括C(N-1)个磁盘,表示为:磁盘disk0 [N-1],磁盘disk1 [N-1],…,磁盘diskC(N-1)-1 [N-1]
步骤2,预设置轮询时长SLT;
步骤3,接收接入设备的写入数据请求;其中,所述写入数据请求中携带有接入设备标识CID、时间戳T以及需写入的数据内容;
其中,所述接入设备CID的生成方式为:随机产生随机数,并作为接入设备的接入设备标识CID;
时间戳T含义为:从预设定的时间原点T0开始,经过的时间长度;
步骤4,采用以下方法,确定本次数据写入的磁盘组标识DGID:
步骤4.1,预设置从时间原点T0=0开始,磁盘组的轮询顺序为:按磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1的顺序,依次轮询;
步骤4.2,预设置对磁盘组的轮询规则为:
从时间原点T0开始,在T0到SLT的时间段内,即在第1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0
在SLT到2SLT的时间段内,即在第2个轮询时长内,激活磁盘组Group1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group1
依此类推,在(N-1)SLT到N*SLT的时间段内,即在第N个轮询时长内,激活磁盘组GroupN-1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组GroupN-1
至此完成对N个磁盘组的第一轮轮询;
在N*SLT到(N+1)*SLT的时间段内,即在第N+1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0,如此开始对N个磁盘组的下一轮轮询;
步骤4.3,采用下式,计算得到当前激活的磁盘组标识DGID:
DGID=MOD(Int(T/SLT),N)
其中:
Int()代表向下取整数;
MOD()代表取余数;
由此确定本次数据写入的磁盘组为磁盘组GroupDGID,其中,DGID=1,2,…,N-1;磁盘组GroupDGID包括C(DGID)个磁盘;
例如,假设T=30小时,SLT=7小时,N=3。设置三个磁盘组的轮询规则为:按磁盘组Group0,磁盘组Group1,磁盘组Group2的顺序,依次轮询;
则:对于T=30小时,Int(T/SLT)=Int(30/7)=4。MOD(4,3)=1。因此,当前激活的磁盘组标识DGID为磁盘组Group1
步骤5,采用以下公式,确定磁盘组GroupDGID中选择的磁盘标识DID:
磁盘标识DID=MOD(CID+T,C(DGID))
由此得到磁盘组GroupDGID中选择的磁盘为:磁盘diskDID [DGID]
步骤6,在磁盘diskDID [DGID]中,采用以下方法,确定数据存储目录DDIR:
在磁盘diskDID [DGID]中,判断是否已存在与接入设备CID对应的数据存储目录DDIR,如果存在,则直接定位到该数据存储目录DDIR;如果不存在,则在磁盘diskDID [DGID]中创建与接入设备CID对应的数据存储目录DDIR,表示为:数据存储目录DDIR(CID),表明该数据存储目录DDIR(CID),是唯一用于存储接入设备CID上传的数据;其中,数据存储目录DDIR采用接入设备CID命名;
步骤7,在数据存储目录DDIR(CID)内,采用以下方法,确定子目录:
对时间戳T取整小时,表示为:整小时数时间戳T”;
在数据存储目录DDIR(CID)内,判断是否存在以整小时数时间戳T”命名的子目录IR(T”),如果存在,则直接定位到子目录IR(T”);如果不存在,则在数据存储目录DDIR(CID)中,创建命名为整小时数时间戳T”的子目录IR(T”);
具体的,对于来自于同一个接入设备CID的数据,以小时为单位进行存储,即:同一个小时的接入设备CID的数据,存储到同一个子目录中,不同小时的接入设备CID的数据,存储到不同的子目录中。
步骤8,在子目录IR(T”)内,采用以下方法,确定磁盘文件DFILE:
在子目录IR(T”)内,用于存储同一接入设备CID的元数据以及磁盘文件DFILE;其中,磁盘文件DFILE采用整小时数时间戳T”命名,即:同一个小时的接入设备CID的数据,存储到同一个磁盘文件DFILE中,不同小时的接入设备CID的数据,存储到不同的磁盘文件DFILE中;
因此,根据时间戳T,判断子目录IR(T”)中是否存在与时间戳T属于同一个小时内的磁盘文件DFILE,如果有,则直接将接入设备CID的数据存储到该磁盘文件DFILE;如果没有,则在子目录IR(T”)中创建命名为整小时数时间戳T”的磁盘文件DFILE,然后将接入设备CID的数据存储到该磁盘文件DFILE;
至此可知,数据写入路径为:磁盘组GroupDGID---磁盘标识DID---数据存储目录DDIR--子目录IR(T”)---磁盘文件DFILE;其中,磁盘组GroupDGID和磁盘标识DID可换算为磁盘绝对唯一标识;
由此完成数据写入过程。
还包括:
当需要读取接入设备的数据时,根据接入设备的标识CID以及需读取数据的时间戳T,重新计算得到读取路径;根据所述读取路径,读取到所需数据。
本发明提供一种应用于系统在低功耗模式运行下,快速定位磁盘及确定存储路径,保障系统读写性能的数据写入方法,其核心思想如下:
提出磁盘组(DiskGroup,简称DG)概念,将系统节点上的不同磁盘,划分成不同的磁盘组,若干个磁盘归属于同一个磁盘组。同一个磁盘组内,拥有至少一块磁盘。不同的磁盘组之间,按照低功耗设计的轮询时长,以磁盘组为单位轮转工作。因此,在保证低功耗的前提下,是一种兼具高性能且满足磁盘负载均衡的磁盘定位方法。
具体方法包括:
(1)首先,在系统内选择磁盘组。
系统根据接入设备的时间戳T及轮询时长SLT运算,选择磁盘组。此时,不同设备的数据,如果数据采集时间戳相同,会存储在同一个磁盘组上。而其他所有磁盘组均为休眠状态,实现低功耗效果。
(2)其次,在磁盘组内,选择磁盘。
系统根据接入设备的时间戳T及设备ID(Camera ID,简称CID)计算,从确定的磁盘组中选择磁盘。如图2所示,为磁盘组中选择磁盘的示意图。
此时,不同接入设备的同一时刻的数据会依次在磁盘组内的磁盘上分布。当接入设备数量较多时,一块磁盘就会对应一部分接入设备的数据进行存储。此时,磁盘组内的磁盘并发存储,提升系统的写性能。
(3)再次,在磁盘上,选择数据存储目录DDIR。
系统根据接入设备的时间戳T及CID创建数据存储目录DDIR,数据存储目录DDIR与时间戳T、设备CID关联。相同设备的数据,存储在同一个数据存储目录DDIR下。
(4)再次,在数据存储目录DDIR内,选择子目录。
系统根据接入设备的时间戳T创建子目录,一个子目录,用于存储一个接入设备同一个小时内的数据。不同小时的数据,存储在不同的子目录。
(5)最后,在子目录内,确定磁盘文件DFILE:
同一个小时内的数据,存储在同一个子目录内的同一个磁盘文件DFILE。
关于数据存储时磁盘及存储路径定位的方法实现:
第一步:系统加载磁盘分组配置表,确保磁盘分组配置表配置及加载正确,预创建配置N个磁盘组,每个磁盘组内M个磁盘;当然,实际应用中,各个磁盘组内磁盘的数量可以不相同。
磁盘路径规划为/data/diskX,{X|1≤X≤M}。此处X代表磁盘的全局标识。
第二步:接入的设备数据在写盘时,根据时间戳T计算磁盘组ID(Disk Group ID,简称DGID)(算法:轮询时长SLT(固定)、时间戳T、磁盘组DG[N]、磁盘组数N入参,磁盘组DGID出参)。根据DGID,确定数据需要写在的磁盘组上。
核心:DGID=SelectDiskGroup(SLT、T、DG[N])
目前N个磁盘组,不同的磁盘组之间每间隔SLT小时依次轮询。一个轮询时长内内的数据,固定分布在同一个磁盘组内,从而保证磁盘组间的轮休,保证系统的低功耗运行。
第三步:已知磁盘组,根据接入设备数据的时间戳T及接入设备CID计算需要写盘的磁盘ID(Disk ID,简称DID)(算法:磁盘组DGID、时间戳T、磁盘组DG[N],接入设备CID入参,磁盘DID出参)。根据当前的磁盘DID,确定数据写入的磁盘路径。
核心:DID=SelectDisk(DG[DGID]、T、CID)
其中,DGID为磁盘组标识,T为时间戳,CID为接入设备标识,不同接入设备的CID不同。当有很多接入设备时,将接入的设备数据按照设备离散到不同的磁盘上,从而保证系统在接入大量设备时的写入性能。
第四步:已知磁盘,根据接入设备数据的时间戳T计算需要的写盘的数据存储目录(Disk Directory,简称DDIR)(算法:时间戳T、磁盘DID、设备CID入参,数据存储目录DDIR出参)。根据数据存储目录确定此时的数据存储目录。
核心:DDIR=SelectDiskDirectory(T、DID、CID);
第五步:根据数据存储目录DDIR及接入设备数据的时间戳T,计算子目录。
第六步:根据子目录,计算最终的磁盘文件(Disk File,简称DFILE)(算法:时间戳T、磁盘目录DDIR入参,磁盘文件DFILE出参)。根据DFILE,确定接入设备的数据所归属的文件信息。
核心:DFILE=CreateDiskFile(T、DDIR)
采用本发明方法,系统根据接入的设备数据信息,将数据分布在不同的磁盘上。随着磁盘组的轮转,接入设备的数据在不同的磁盘上写入,系统长期运行后,各个磁盘组之间在数据量上也逐步接近均衡。
以设备CID为9314089,时间戳T为1639126800举例说明,快速定位磁盘及存储路径:
/data/disk2/9314089/0000000061B31710/1639126800.data
其中:0000000061B31710为时间戳T的整小时数的16进制数;1639126800为时间戳T的整小时数的10进制数。
以某公司自主研发的嵌入式云存储刀片服务器部署说明。
本刀片服务器由24块磁盘、外置网口、USB接口、HDMI接口、风扇等等硬件组成。以磁盘组按照每8小时轮转举例说明。
磁盘路径规划为/data/disk1~/data/disk24。
具体实施步骤如下:
第一步:根据实际项目需要,确定需要部署的摄像机设备数量为100路设备,设备CID分布在[1000~1099]内。
第二步:将刀片服务器每8块磁盘归属于同一个磁盘组划分,总共划分为3个磁盘组;
Group1[/data/disk1,/data/disk8]
Group2[/data/disk9,/data/disk16]
Group3[/data/disk17,/data/disk24]
第三步:规划视频监控设备接入系统总图,如图3,系统接入100路设备;
第四步:接入设备的数据按照图4的算法进行快速运算定位。
第五步:确定图5所示的写入路径。
本发明涉及的技术要点:1.对磁盘按照磁盘组进行划分;2.根据接入设备及设备数据要素运算确定磁盘存储路径;3.磁盘组按照固定时长依次轮转,数据均衡分布到每个磁盘组;4.读取数据时,根据读取参数计算待读取文件的路径。也就是说,本发明,无论是写入数据还是读取数据,系统均不需要保存磁盘存储路径,从而减少了数据存储量,降低了对数据的维护量,解决存储元数据带来的业务复杂性。
与现有技术相比,本发明的有益效果是:
(1)提出磁盘组策略,保证低功耗模式的正常工作,同时可以并发提高系统的读写性能。
(2)在磁盘组内对不同的设备数据进行离散分布,保证磁盘组之间的容量均衡;
(3)根据设备及数据信息,通过运算快速定位磁盘及存储路径,提升系统的检索效率,降低存储元数据带来的业务复杂性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (2)

1.一种基于流存储的数据写入方法,其特征在于,包括以下步骤:
步骤1,磁盘组的划分:
设共有n个磁盘,每个磁盘具有唯一的磁盘ID;将n个磁盘划分为N个磁盘组,依次表示为:磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1;其中,每个磁盘组包括至少一个磁盘;
设磁盘组Group0包括C(0)个磁盘,表示为:磁盘disk0 [0],磁盘disk1 [0],…,磁盘diskC(0)-1 [0]
磁盘组Group1包括C(1)个磁盘,表示为:磁盘disk0 [1],磁盘disk1 [1],…,磁盘diskC(1)-1 [1]
依此类推
磁盘组GroupN-1包括C(N-1)个磁盘,表示为:磁盘disk0 [N-1],磁盘disk1 [N-1],…,磁盘diskC(N-1)-1 [N-1]
步骤2,预设置轮询时长SLT;
步骤3,接收接入设备的写入数据请求;其中,所述写入数据请求中携带有接入设备标识CID、时间戳T以及需写入的数据内容;
其中,所述接入设备CID的生成方式为:随机产生随机数,并作为接入设备的接入设备标识CID;
时间戳T含义为:从预设定的时间原点T0开始,经过的时间长度;
步骤4,采用以下方法,确定本次数据写入的磁盘组标识DGID:
步骤4.1,预设置从时间原点T0=0开始,磁盘组的轮询顺序为:按磁盘组Group0,磁盘组Group1,…,磁盘组GroupN-1的顺序,依次轮询;
步骤4.2,预设置对磁盘组的轮询规则为:
从时间原点T0开始,在T0到SLT的时间段内,即在第1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0
在SLT到2SLT的时间段内,即在第2个轮询时长内,激活磁盘组Group1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group1
依此类推,在(N-1)SLT到N*SLT的时间段内,即在第N个轮询时长内,激活磁盘组GroupN-1,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组GroupN-1
至此完成对N个磁盘组的第一轮轮询;
在N*SLT到(N+1)*SLT的时间段内,即在第N+1个轮询时长内,激活磁盘组Group0,其他N-1个磁盘组为休眠状态,在此时间段的所有设备的数据,均写入到磁盘组Group0,如此开始对N个磁盘组的下一轮轮询;
步骤4.3,采用下式,计算得到当前激活的磁盘组标识DGID:
DGID=MOD(Int(T/SLT),N)
其中:
Int()代表向下取整数;
MOD()代表取余数;
由此确定本次数据写入的磁盘组为磁盘组GroupDGID,其中,DGID=1,2,…,N-1;磁盘组GroupDGID包括C(DGID)个磁盘;
步骤5,采用以下公式,确定磁盘组GroupDGID中选择的磁盘标识DID:
磁盘标识DID=MOD(CID+T,C(DGID))
由此得到磁盘组GroupDGID中选择的磁盘为:磁盘diskDID [DGID]
步骤6,在磁盘diskDID [DGID]中,采用以下方法,确定数据存储目录DDIR:
在磁盘diskDID [DGID]中,判断是否已存在与接入设备CID对应的数据存储目录DDIR,如果存在,则直接定位到该数据存储目录DDIR;如果不存在,则在磁盘diskDID [DGID]中创建与接入设备CID对应的数据存储目录DDIR,表示为:数据存储目录DDIR(CID),表明该数据存储目录DDIR(CID),是唯一用于存储接入设备CID上传的数据;其中,数据存储目录DDIR采用接入设备CID命名;
步骤7,在数据存储目录DDIR(CID)内,采用以下方法,确定子目录:
对时间戳T取整小时,表示为:整小时数时间戳T”;
在数据存储目录DDIR(CID)内,判断是否存在以整小时数时间戳T”命名的子目录IR(T”),如果存在,则直接定位到子目录IR(T”);如果不存在,则在数据存储目录DDIR(CID)中,创建命名为整小时数时间戳T”的子目录IR(T”);
具体的,对于来自于同一个接入设备CID的数据,以小时为单位进行存储,即:同一个小时的接入设备CID的数据,存储到同一个子目录中,不同小时的接入设备CID的数据,存储到不同的子目录中;
步骤8,在子目录IR(T”)内,采用以下方法,确定磁盘文件DFILE:
在子目录IR(T”)内,用于存储同一接入设备CID的元数据以及磁盘文件DFILE;其中,磁盘文件DFILE采用整小时数时间戳T”命名,即:同一个小时的接入设备CID的数据,存储到同一个磁盘文件DFILE中,不同小时的接入设备CID的数据,存储到不同的磁盘文件DFILE中;
因此,根据时间戳T,判断子目录IR(T”)中是否存在与时间戳T属于同一个小时内的磁盘文件DFILE,如果有,则直接将接入设备CID的数据存储到该磁盘文件DFILE;如果没有,则在子目录IR(T”)中创建命名为整小时数时间戳T”的磁盘文件DFILE,然后将接入设备CID的数据存储到该磁盘文件DFILE;
至此可知,数据写入路径为:磁盘组GroupDGID---磁盘标识DID---数据存储目录DDIR--子目录IR(T”)---磁盘文件DFILE;其中,磁盘组GroupDGID和磁盘标识DID可换算为磁盘绝对唯一标识;
由此完成数据写入过程。
2.根据权利要求1所述的一种基于流存储的数据写入方法,其特征在于,还包括:
当需要读取接入设备的数据时,根据接入设备的标识CID以及需读取数据的时间戳T,重新计算得到读取路径;根据所述读取路径,读取到所需数据。
CN202210129817.3A 2022-02-11 2022-02-11 一种基于流存储的数据写入方法 Active CN114489515B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210129817.3A CN114489515B (zh) 2022-02-11 2022-02-11 一种基于流存储的数据写入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210129817.3A CN114489515B (zh) 2022-02-11 2022-02-11 一种基于流存储的数据写入方法

Publications (2)

Publication Number Publication Date
CN114489515A true CN114489515A (zh) 2022-05-13
CN114489515B CN114489515B (zh) 2022-08-16

Family

ID=81480550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210129817.3A Active CN114489515B (zh) 2022-02-11 2022-02-11 一种基于流存储的数据写入方法

Country Status (1)

Country Link
CN (1) CN114489515B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725258A (zh) * 2023-12-19 2024-03-19 北京中电兴发科技有限公司 基于空间和时间均衡安防视频存储规划和定位读写的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103123575A (zh) * 2011-11-18 2013-05-29 北京兴宇中科科技开发股份有限公司 一种数据写入方法
CN107145432A (zh) * 2017-03-30 2017-09-08 华为技术有限公司 一种建立模型数据库的方法以及客户端
CN107943890A (zh) * 2017-11-16 2018-04-20 武汉虹旭信息技术有限责任公司 基于HBase的移动互联网海量数据处理系统及其方法
CN111427508A (zh) * 2019-01-09 2020-07-17 深圳市茁壮网络股份有限公司 一种文件均衡分布方法及装置
US20210365192A1 (en) * 2018-06-28 2021-11-25 Zhengzhou Yunhai Information Technology Co., Ltd. Method, system, and apparatus for allocating hard disks to placement group, and storage medium
CN113791893A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 一种基于磁盘分组实现容量均衡的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103123575A (zh) * 2011-11-18 2013-05-29 北京兴宇中科科技开发股份有限公司 一种数据写入方法
CN107145432A (zh) * 2017-03-30 2017-09-08 华为技术有限公司 一种建立模型数据库的方法以及客户端
CN107943890A (zh) * 2017-11-16 2018-04-20 武汉虹旭信息技术有限责任公司 基于HBase的移动互联网海量数据处理系统及其方法
US20210365192A1 (en) * 2018-06-28 2021-11-25 Zhengzhou Yunhai Information Technology Co., Ltd. Method, system, and apparatus for allocating hard disks to placement group, and storage medium
CN111427508A (zh) * 2019-01-09 2020-07-17 深圳市茁壮网络股份有限公司 一种文件均衡分布方法及装置
CN113791893A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 一种基于磁盘分组实现容量均衡的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725258A (zh) * 2023-12-19 2024-03-19 北京中电兴发科技有限公司 基于空间和时间均衡安防视频存储规划和定位读写的方法

Also Published As

Publication number Publication date
CN114489515B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN102622185B (zh) 在多个存储单元中存储文件的方法以及存储分配方法
US7505890B2 (en) Hard disk drive emulator
CN110764706B (zh) 存储系统、数据管理方法及存储介质
CN107436725A (zh) 一种数据写、读方法、装置及分布式对象存储集群
CN102096698B (zh) 一种视频数据存储格式、存储方法及检索方法
US8930501B2 (en) Distributed data storage system and method
CN102004760A (zh) 多媒体文件的存储和播放方法、相关装置及系统
CN101753936B (zh) 一种视频监控系统的存储空间的配置方法和视频服务器
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
CN110222209B (zh) 图片存储方法、查询方法、装置及存取系统
CN114489515B (zh) 一种基于流存储的数据写入方法
CN102291256A (zh) 一种监控数据的查询方法和设备
CN110727406A (zh) 一种数据存储调度方法及装置
CN111143239B (zh) 一种智能电表的冻结电量数据压缩存储方法和解压方法
CN103778120A (zh) 全局文件标识生成方法、生成装置及相应的分布式文件系统
CN101729421A (zh) 一种基于时分复用的存储方法和装置
CN106708445B (zh) 链路选择方法及装置
CN102681918B (zh) 数据存储备份方法及装置
US7600151B2 (en) RAID capacity expansion interruption recovery handling method and system
US10489252B2 (en) Rotating incremental data backup
CN108664322A (zh) 数据处理方法及系统
CN111669629A (zh) 视频cdn节点即时扩容方法、调度器及cnd存储系统
CN103176745A (zh) 具有双控制器的储存系统的硬盘阵列接管方法
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN102523112A (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