图像数据存储方法、装置及计算机可读存储介质与流程

文档序号:18329388发布日期:2019-08-03 11:53阅读:130来源:国知局
图像数据存储方法、装置及计算机可读存储介质与流程

本发明涉及存储技术领域,具体而言,涉及一种图像数据存储方法、装置及计算机可读存储介质。



背景技术:

通信技术的发展,使人们的生活逐步进入信息化时代。信息化时代给人们的生活带了便利的同时也存在一定的问题,比如日益严峻的存储压力。为了缓解存储压力,存储的方式也从原来的集中式存储转向了当下流行的分布式存储。

当前分布式存储系统可以解决数据存储量的压力,但其存储机制依然存在缺陷。高效的存储机制对整个分布式存储系统的灵活性和稳定性十分重要,特别是负载均衡机制。因此,当前亟需一种高效的负载均衡机制。



技术实现要素:

本发明的目的在于提供一种图像数据存储方法、装置及计算机可读存储介质,用以改善上述问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种图像数据存储方法,应用于云存储平台中的管理节点,所述云存储平台与多个图像采集设备通信连接,所述云存储平台还包括多个存储节点,所述管理节点与多个存储节点连接,所述管理节点存储有所述存储节点与虚拟节点的映射关系,及所述图像采集设备与所述虚拟节点之间的映射关系,所述方法包括:接收所述图像采集设备发送的存储请求;响应于所述存储请求,根据所述图像采集设备与所述虚拟节点之间的映射关系,及所述存储节点与虚拟节点的映射关系查找到当前对应用于存储所述图像采集设备采集数据的存储节点的节点信息,其中,在不同的预设的第一时间周期内,一个存储节点与不同的一个虚拟节点存在映射关系;将所述节点信息反馈至所述图像采集设备,以便所述图像采集设备根据获得的所述节点信息向对应的所述存储节点发送待存储数据。

第二方面,本发明实施例提供了一种图像数据存储装置,应用于云存储平台中的管理节点,所述云存储平台与多个图像采集设备通信连接,所述云存储平台还包括多个存储节点,所述管理节点与多个存储节点连接,所述管理节点存储有所述存储节点与虚拟节点的映射关系,及所述图像采集设备与所述虚拟节点之间的映射关系,所述装置包括:接收模块,用于接收所述图像采集设备发送的存储请求;查找模块,用于响应于所述存储请求,根据所述图像采集设备与所述虚拟节点之间的映射关系,及所述存储节点与虚拟节点的映射关系查找到当前对应用于存储所述图像采集设备采集数据的存储节点的节点信息,其中,在不同的预设的第一时间周期内,一个所述存储节点与不同的一个虚拟节点存在映射关系;发送模块,用于将所述节点信息反馈至所述图像采集设备,以便所述图像采集设备根据获得的所述节点信息向对应的所述存储节点发送待存储数据。

第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该些计算机指令被处理器执行时实现上述图像数据存储方法的步骤。

与现有技术相比,本发明实施例提供了一种图像数据存储方法,应用于云存储平台中的管理节点,所述方法通过响应于图像采集设备发送的存储请求,根据所述图像采集设备与所述虚拟节点之间的映射关系,及所述存储节点与虚拟节点的映射关系查找到当前对应用于存储所述图像采集设备采集数据的存储节点的节点信息,并反馈至图像采集设备,以便图像采集设备向对应的存储节点发送待存储数据。也就是,通过建立的两级映射关系,可以避免新增存储节点时,造成负载不均等问题,确保了整个云存储系统的稳定性。同时,通过存储节点与虚拟节点这件映射关系的轮换可以更好的实现容量均衡。使整个存储过程更加灵活。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供应用环境示意图。

图2为本发明实施例提供的管理节点的示意图。

图3为本发明实施例提供的一种图像数据存储方法的步骤流程图。

图4为图3中步骤s103的子步骤流程图。

图5为本发明实施例提供的一种图像数据存储方法的步骤流程图的一部分。

图6为本发明实施例提供的一种图像数据存储方法的步骤流程图的另一部分。

图7为本发明实施例提供的一种图像数据存储装置的示意图。

图标:100-管理节点;200-存储节点;300-图像采集设备;400-云存储平台;500-图像数据存储装置;501-接收模块;502-查找模块;503-发送模块;504-获取模块;505-建立模块;111-存储器;112-处理器;113-通信单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

通信技术的发展,使人们的生活逐步进入信息化时代。信息化时代给人们的生活带了便利的同时也存在一定的问题,比如日益严峻的存储压力。以安防领域中的道路监控为例。道路监控通过设置于卡口的图像采集设备实现监控,卡口建立越多,监控效果越好。但随着卡口越来越多,其需要存储的数据量也越来越大。

利用云存储系统解决存储数据量大带来的压力虽然是一种有效的方式,但相关技术中利用云存储系统进行存储的存储策略却存在很多问题。

相关技术中采用的存储策略通常为:每一个图像采集设备在每一轮存储周期内先从所有存储节点中选择一个负载最小的存储节点进行数据存储,待存储达到预定时间之后在从未选择过的存储节点中选择一存储节点继续进行数据存储,并重复上述过程,直至在该轮存储周期内所有存储节点均被写入数据。而上述存储策略在云存储系统实际应用过程中存在以下问题:当存储节点故障恢复或者新增节点后,因为本轮该节点未被写过数据,所有卡口上设置的图像采集设备都认为该节点为本轮未写入数据而都必须选择该节点,导致节点间的压力严重不均衡,甚至超过节点的写入规格从而业务出错。在瞬时密集业务时,无法完全保证任务数均衡;另外,任务数管理复杂,需要不断维护当前任务数信息,部分异常情况下存在任务数计数不准确导致负载不均衡。

针对上述情况,本发明实施例提供一种图像数据存储方法、装置及计算机可读存储介质。

如图1所示的本发明较佳实施例的应用环境中包括图像采集设备300及云存储平台400。图像采集设备300与云存储平台400连接。进一步地,云存储平台400包括管理节点100及多个存储节点200。管理节点100与多个存储节点200连接。

上述图像采集设备300用于执行长时间的图像数据采集任务。例如,在各街道设置的卡口处设置的摄像头。

上述存储节点200用于接收图像采集设备300写入的数据。

上述管理节点包括与在线的存储节点200个数相同的虚拟节点,且虚拟节点的个数会实时的根据在线的存储节点200的个数进行调整。

进一步地,请参照图2,是上述管理节点的方框示意图。管理节点还包括图像数据存储装置500、存储器111、处理器112及通信单元113。

所述存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述实现数据存储方法的软件包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述管理节点的操作系统(operatingsystem,os)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块。

其中,所述存储器111可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器111用于存储程序或者数据。例如,图像数据存储装置500对应的功能模块、存储节点200与虚拟节点的映射关系,及所述图像采集设备300与所述虚拟节点之间的映射关系。

所述通信单元113用于通过所述网络建立所述管理节点与其它通信终端之间的通信连接,并用于通过所述网络收发数据。

应当理解的是,图2所示的结构仅为管理节点的结构示意图,所述管理节点还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。

第一实施例

请参考图3,图3为本发明较佳实施例提供的一种图像数据存储方法的流程图。该数据存储方法应用于管理节点。上述图像数据存储方法包括以下步骤:

步骤s101,接收图像采集设备300发送的存储请求。

在本发明实施例中,上述存储请求可以是由图像采集设备300在启动存储时生成及启动存储之后的每一个第二时间周期结束时生成。

步骤s102,响应于所述存储请求,查询对应的节点信息。

在本发明实施例中,管理节点响应于接收到的存储请求,获取该存储请求对应的图像采集设备300的特征信息。上述特征信息可以是图像采集设备300的唯一编码信息(例如,硬件id)。上述管理节点基于特征信息,根据所述图像采集设备300与所述虚拟节点之间的映射关系,及所述存储节点200与虚拟节点的映射关系查找到当前对应用于存储对应的图像采集设备300采集数据的存储节点200的节点信息。上述图像采集设备300与所述虚拟节点之间的映射关系可以按照第二时间周期进行调整,上述存储节点200与虚拟节点的映射关系按照第一时间周期进行调整。

需要说明的是,在启动存储之后的存储节点200与虚拟节点均为一一对应。且相邻的两个第一时间周期中,一个存储节点200与不同的一个虚拟节点存在映射关系。作为一种实施方式,可以采用使虚拟节点与存储节点200之间按照第一时间周期进行轮循。例如,第一时间周期为4min,虚拟节点包括1号虚拟节点、2号虚拟节点、3号虚拟节点及4号虚拟节点,存储节点200包括1号存储节点、2号存储节点、3号存储节点及4号存储节点。在启动存储之后的0~4min内,1号虚拟节点与1号存储节点对应,2号虚拟节点与2号存储节点对应,3号虚拟节点与3号存储节点对应,4号虚拟节点与4号存储节点对应,在4~8min内,1号虚拟节点与2号存储节点对应,2号虚拟节点与3号存储节点对应,3号虚拟节点与4号存储节点对应,4号虚拟节点与5号存储节点对应。

优选地,第一时间周期对应的时间间隔不超过第二时间周期对应的时间间隔。

步骤s103,将所述节点信息反馈至所述图像采集设备300。

在本发明实施例中,将所述节点信息反馈至与存储请求对应的图像采集设备300,所述图像采集设备300根据获得的所述节点信息向对应的所述存储节点200发送待存储数据。

为了确保每一次发送给图像采集设备300的节点信息对应的存储节点200的有效性,提高存储的可靠性。管理节点内存储有每个存储节点200对应的信任系数,上述信任系数不小于第一阈值且不大于第二阈值,第二阈值大于第一阈值,每个存储节点200的信任系数的初始值均为第二阈值,若存储节点200被报出错时,对应的信任系数均可以被管理节点在第一阈值与第二阈值之间下调。作为一种实施方式,第二阈值可以为100,第一阈值可以为0。进一步地,如图4所示,步骤s103可以通过以下子步骤实现:

子步骤s1031,若获取的所述节点信息对应的所述存储节点200的信任系数小于所述第二阈值,则随机生成一随机数。

在本发明实施例中,所述存储节点200的信任系数小于所述第二阈值则代表存储节点200曾被报出错过,此时可以生成一值介于第一阈值与第二阈值之间的随机数。

子步骤s1032,将所述随机数与所述信任系数进行比较。

在本发明实施例中,当所述随机数不大于所述信任系数时,流程进入子步骤s1033;当所述随机数大于所述信任系数时,则流程进入子步骤s1034;

子步骤s1033,将所述节点信息反馈至所述图像采集设备300。

子步骤s1034,从其他存储节点200中选取一作为替代的存储节点200对应的节点信息。

在本实施例中,可以是将与当前的虚拟节点标号相邻的一虚拟节点所对应的存储节点200作为替代的存储节点200;也可以是从其他存储节点200中随机选择一负载小的存储节点200作为替代的存储节点200,需要说明的是,上述其他存储节点200可以是云存储平台400中在第二时间周期内未被匹配到该图像采集设备300的存储节点200。

子步骤s1035,将所述作为替代的存储节点200对应的信任系数与所述第二阈值进行比较。

在本实施例中,在上述子步骤s1035之后,流程回到子步骤s1031直至获取的作为替代的存储节点200对应的信任系数等于第二阈值或生成的与所述信任系数对应的所述随机数小于所述信任系数。

进一步地,为了确保每一次发送给图像采集设备300的节点信息对应的存储节点200的有效性,提高存储的可靠性,如上所述,在存储节点200被报出错时,对应的信任系数均可以被管理节点在第一阈值与第二阈值之间下调。作为一种可能的实时方式,请参考图5,所述方法还包括:

步骤s201,当接收到所述图像采集设备300反馈的与所述待存储数据对应的写入报错请求时,下调对应的所述存储节点200的信任系数。

在本发明实施例中,当接收到所述图像采集设备300反馈的与所述待存储数据对应的写入报错请求时,管理节点查询写入报错请求对应的存储节点200在当前的第二时间周期内是否有其他图像采集设备300已向与该存储节点200对应的写入报错请求。

若是没有,则按照预设减量对该存储节点200的信任系数进行扣减。例如,预设减量可以是5,该存储节点200的信任系数原为100,进行扣减后信任系数为95。

若在一所述第二时间周期内,至少两个所述图像采集设备300向所述管理节点100反馈与同一所述存储节点200对应的写入报错请求,将该存储节点200的信任系数下调为所述第一阈值对应的数值,直到至少两个所述第一时间周期之后将该存储节点200对应的信任系数的数值按照预设增量增加。例如,预设增量为5,第一阈值对应的数值为0,当一存储节点200的信任系数调下至0后,经过至少2个第一时间周期后,将该存储节点200的调整为5。

在将存储节点200对应的信任系数按照预设增量增加之后,侦测该存储节点200相邻下次被图像采集设备300选中进行数据写入时,是否向管理节点发送写入报错请求。当侦测到该写入报错请求,则再度将该存储节点200对应的信任系数下调为所述第一阈值对应的数值,并重复等待至少两个第一时间周期。需要说明的是,图像采集设备300接收到节点信息,则表明该节点信息对应的存储节点200被选中。

步骤s202,从其他存储节点200中选择一作为替代的存储节点200,并将该作为替代的存储节点200对应的节点信息发送至所述图像采集设备300,以使所述图像采集设备300将所述待存储数据向所述作为替代的存储节点200发送。

进一步地,为了应对存储节点200的由于客观原因的增加或者减少,避免存储节点200个数的变化对负载均衡造成影响。如图6所示,本发明实施例中提供的数据存储方法还包括以下步骤:

步骤s301,按照预设的第二时间周期间隔,获取所述存储节点200的个数。

在本发明实施例中,可以是管理节点在每个第二时间周期结束后,接到图像采集设备300发送的存储请求时,获取当前在线的存储节点200的个数。在线的存储节点200不包括对应的信任系数等于第一阈值的存储节点200。

步骤s302,获取每个所述图像采集设备300的特征信息。

在本发明实施例中,获取每一个接入该云存储平台400的图像采集设备300的特征信息。上述特征信息可以是图像采集设备300的唯一编码信息(例如,硬件id)。

步骤s303,基于获取的所述特征信息及所述存储节点200的个数,利用哈希函数建立每个所述图像采集设备300与所述虚拟节点之间的映射关系。

在本发明实施例中,可以是利用哈希函数提取每个所述特征信息对应的哈希值。再根据所述存储节点200的个数对每个所述哈希值进行取模处理,以获得对应的处理结果,上述处理结果可以是哈希值取模后的值。最后,根据每个所述哈希值对应的处理结果,确定所述哈希值对应的所述虚拟节点,以建立所述图像采集设备300与所述虚拟节点之间的映射关系。从而均匀的将图像采集设备300分配给虚拟节点,使每个虚拟节点对应的图像采集设备300数量上的均衡,以实现流量均衡。

通过上述步骤,若存储节点200个数不变,则图像采集设备300与虚拟节点之间的映射关系不变。若存储节点200个数变化,虚拟节点的个数也会随之变化,图像采集设备300与虚拟节点之间的映射关系也随之变化,灵活的实现再次均衡。避免出现当存储节点200故障恢复或者新增存储节点200后,因为本轮该节点未被写过数据,有可能所有卡口都认为该节点为本轮未写入数据而都必须选择该节点,导致节点间的压力严重不均衡。

作为一种实施方式,在利用哈希函数建立每个所述图像采集设备300与所述虚拟节点之间的映射关系的前提下,前述步骤s102中管理节点基于特征信息,根据所述图像采集设备300与所述虚拟节点之间的映射关系,及所述存储节点200与虚拟节点的映射关系查找到当前对应用于存储对应的图像采集设备300采集数据的存储节点200的节点信息的方式可以是:响应于接收到的存储请求,获取对应的所述图像采集设备300的所述特征信息。提取所述特征信息提取对应的所述哈希值。根据所述哈希值,查找对应的所述虚拟节点。依据所述存储请求,利用所述存储节点200与虚拟节点的映射关系查找到当前对应的所述存储节点200的节点信息。

本发明实施例还提供与上述方法相对应的一种图像数据存储装置500,该图像数据存储装置500应用于管理节点,该图像数据存储装置500中的细节方案可以参照上述方法来实现,如图7所示,上述图像数据存储装置500可以包括:

接收模块501,用于接收所述图像采集设备300发送的存储请求。

查找模块502,用于响应于所述存储请求,根据所述图像采集设备300与所述虚拟节点之间的映射关系,及所述存储节点200与虚拟节点的映射关系查找到当前对应用于存储所述图像采集设备300采集数据的存储节点200的节点信息,其中,在不同的预设的第一时间周期内,一个所述存储节点200与不同的一个虚拟节点存在映射关系。

发送模块503,用于将所述节点信息反馈至所述图像采集设备300,以便所述图像采集设备300根据获得的所述节点信息向对应的所述存储节点200发送待存储数据。

获取模块504,用于按照预设的第二时间周期间隔,获取所述存储节点200的个数。及还用于获取每个所述图像采集设备300的特征信息。

建立模块505,用于基于获取的所述特征信息及所述存储节点200的个数,利用哈希函数建立每个所述图像采集设备300与所述虚拟节点之间的映射关系。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明实施例还揭示了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器112执行时实现本发明前述实施例揭示的图像数据存储方法。

综上所述,本发明提供的一种图像数据存储方法、装置及计算机可读存储介质。应用于云存储平台中的管理节点。所述管理节点存储有所述存储节点与虚拟节点的映射关系,及所述图像采集设备与所述虚拟节点之间的映射关系。其中,所述方法包括接收所述图像采集设备发送的存储请求,响应于所述存储请求,根据所述图像采集设备与所述虚拟节点之间的映射关系,及所述存储节点与虚拟节点的映射关系查找到当前对应用于存储所述图像采集设备采集数据的存储节点的节点信息,其中,在不同的预设的第一时间周期内,一个存储节点与不同的一个虚拟节点存在映射关系;将所述节点信息反馈至所述图像采集设备,以便所述图像采集设备根据获得的所述节点信息向对应的所述存储节点发送待存储数据。也就是,通过建立的两级映射关系,可以避免新增存储节点时,造成负载不均等问题,确保了整个云存储系统的稳定性。同时,通过存储节点与虚拟节点这件映射关系的轮换可以更好的实现容量均衡。使整个存储过程更加灵活。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1