CN108228709A - 数据存储方法和系统、电子设备、程序和介质 - Google Patents
数据存储方法和系统、电子设备、程序和介质 Download PDFInfo
- Publication number
- CN108228709A CN108228709A CN201711229930.4A CN201711229930A CN108228709A CN 108228709 A CN108228709 A CN 108228709A CN 201711229930 A CN201711229930 A CN 201711229930A CN 108228709 A CN108228709 A CN 108228709A
- Authority
- CN
- China
- Prior art keywords
- fragment
- feature
- tile features
- main management
- library
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据存储方法和系统、电子设备、程序和介质,其中,方法包括:主分片管理器对特征队列中的特征进行分片;对于任一分片,主分片管理器将任一分片存储到相应的分片特征库中,并在映射表中记录任一分片与相应的分片特征库之间的映射关系;响应于主分片管理器发生故障,至少一个从分片管理器共同选择一个分片管理器作为新的主分片管理器;新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。本发明实施例具备容错及自动恢复能力,可以保证已入库的征数据具备一致性。
Description
技术领域
本发明涉及计算机视觉技术,尤其是一种数据存储方法和系统、电子设备、程序和介质。
背景技术
基于深度神经网络特征的大规模索引、搜索是计算机视觉以及智能视频监控领域的重要问题。由于目前视频监控摄像机捕捉的数据量已经远超过单机系统的处理能力,通过对深度神经网络特征进行多级压缩,使用分布式图形处理单元(GPU)集群对摄像机捕捉的数据进行实时特征提取、入库、按照时间区间和空间区域进行搜索前若干个与待搜索目标相似的数据成为了必要。
发明内容
本发明实施例提供一种数据存储技术方案。
根据本发明实施例的一个方面,提供的一种数据存储方法,所述数据存储方法应用于数据存储系统,所述数据存储系统包括主分片管理器和至少一个从分片管理器,所述主分片管理器和所述至少一个从分片管理器之间相互通信连接,所述方法包括:
所述主分片管理器对特征队列中的特征进行分片;
对于任一分片,所述主分片管理器将所述任一分片存储到相应的分片特征库中,并在映射表中记录所述任一分片与所述相应的分片特征库之间的映射关系;
响应于所述主分片管理器发生故障,所述至少一个从分片管理器共同选择一个分片管理器作为新的主分片管理器;
所述新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
可选地,在本发明上述各方法实施例中,所述主分片管理器对特征队列中的特征进行分片,包括:
所述主分片管理器按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片。
可选地,在本发明上述各方法实施例中,所述主分片管理器按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片,包括:
所述主分片管理器从所述特征队列中读取一个特征及该特征的元信息,所述元信息包括时间戳和摄像机信息,所述摄像机信息包括摄像机所属的区域标识和摄像机标识;
所述主分片管理器根据读取的特征及该特征的元信息,将时间戳在预设时间区间、摄像机信息在同一个空间区域的特征划分为一个分片。
可选地,在本发明上述各方法实施例中,所述主分片管理器将所述任一分片存储到相应的分片特征库中,包括:
所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库,并将所述任一分片存储到选择的分片特征库中。
可选地,在本发明上述各方法实施例中,所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库,包括:
所述主分片管理器从已有的至少一个分片特征库中选择一个被分配所述任一分片时,存储量的大小小于预设阈值的分片特征库,将所述任一分片分配到选择的分片特征库中;
若所述至少一个分片特征库中不存在被分配所述任一分片时、存储量的大小小于预设阈值的分片特征库,所述主分片管理器创建一个新的分片特征库,并将所述任一分片分配到所述新的分片特征库中。
可选地,在本发明上述各方法实施例中,所述已有的至少一个分片特征库分布于至少一个设备上;
所述创建一个新的分片特征库,包括:
根据所述至少一个设备的硬件性能、当前负载和创建一个新的分片特征库后的未来负载,选择一个设备,并在选择的设备上创建所述新的分片特征库。
可选地,在本发明上述各方法实施例中,还包括:
响应于接收到检索请求,检索单元将所述检索请求转发到所有分片特征库;所述检索请求中包括检索条件;
所述所有分片特征库中的各分片特征库分别检索符合所述检索条件的特征并返回所述检索单元;
所述检索单元对所有分片特征库返回的特征进行聚合,获得检索结果。
可选地,在本发明上述各方法实施例中,所述检索条件包括:待检索特征、时间条件、区域条件;
所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库之后,还包括:
所述选择的分片特征库,在索引表中创建所述任一分片的索引,所述任一分片的索引包括所述任一分片的时间区间和空间区域、特征信息;
所述分片特征库检索符合所述检索条件的特征,包括:所述分片特征库查询所述索引表,检索符合所述时间条件和所述区域条件的索引;所述分片特征库从所述符合所述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的多个特征;
所述检索单元对所有分片特征库返回的符合所述检索条件的特征进行聚合,获得检索结果,包括:所述检索单元对各分片特征库返回的特征进行合并,得到特征集合;所述检索单元分别计算所述特征集合中各特征与所述待检索特征之间的相似度,并选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果。
可选地,在本发明上述各方法实施例中,所述检索条件还包括:检索结果数量K,其中,K的取值为大于0的整数;
所述查询与待检索特征之间的相似度最高的多个特征,包括:查询与待检索特征之间的相似度最高的前K个特征;
所述选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果,包括:选取所述特征集合中与所述待检索特征之间的相似度最高的前K个特征作为检索结果。
可选地,在本发明上述各方法实施例中,将所述任一分片存储到选择的分片特征库中,包括:
获取所述任一分片中的特征的持久化特征,并将所述持久化特征存储到分布式键值对数据库中;所述索引表位于分片特征库的显存中,所述任一分片的索引包括的特征信息为持久化特征,所述分片特征库查询到的所述多个特征、以及所述特征集合中的特征为持久化特征。
可选地,在本发明上述各方法实施例中,将所述任一分片存储到选择的分片特征库中,包括:
对所述任一分片中的特征进行量化,得到量化特征,将得到的量化特征存储在分片特征库的显存中;所述索引表位于所述选择的分片特征库的显存中,所述任一分片的索引包括的特征信息为量化特征,所述分片特征库查询到的所述多个特征、以及所述特征集合中的特征为量化特征。
可选地,在本发明上述各方法实施例中,还包括:所述选择的分片特征库获取所述分片中的特征的持久化特征,并将所述持久化特征存储到分布式键值对数据库中;
所述检索单元分别计算所述特征集合中各特征与所述待检索特征之间的相似度,并选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果,包括:
所述检索单元从所述分布式键值对数据库中获取所述特征集合中各量化特征对应的持久化特征;
所述检索单元分别计算所述特征集合中各量化特征对应的持久化特征与所述待检索特征之间的相似度,选取与所述待检索特征之间的相似度最高的多个持久化特征作为检索结果。
可选地,在本发明上述各方法实施例中,还包括:
各分片特征库分别按照预设周期对所述索引表进行快照操作,获得索引快照,并将所述索引快照和对应的快照操作时间戳存储到存储设备的快照列表中;
响应于一个分片特征库重启,重启的分片特征库从存储设备读取该重启的分片特征库的快照列表存储到该重启的分片特征库的显存中;并从所述重启的分片特征库的快照列表中最近的快照操作时间戳起,从分布式键值对数据库中读取所述重启的分片特征库的快照列表中自最近的快照操作时间戳起的持久化特征,获取自最近的快照操作时间戳起的持久化特征对应的量化特征,并重新在索引表中建立自最近的快照操作时间戳起的量化特征的索引。
可选地,在本发明上述各方法实施例中,还包括:所述分片特征库按照预设聚类周期对所述分布式键值对数据库中各分片的持久化特征进行聚类操作,并获取聚类得到的各类别特征的平均特征;所述索引中还包括各类别的平均特征;
所述分片特征库从所述符合所述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的多个特征,包括:
所述分片特征库从所述符合所述时间条件和所述区域条件的索引中,查询与待检索特征之间的相似度大于预设相似度阈值的平均特征,并在所述相似度大于预设相似度阈值的平均特征对应的类别中查询与待检索特征之间的相似度最高的多个特征。
可选地,在本发明上述各方法实施例中,所述主分片管理器对特征队列中的特征进行分片之前,还包括:
响应于接收到图片,通过图片队列将接收到的图片分发给至少一个特征提取器;所述图片携带有所述元信息;
所述至少一个特征提取器中的任一特征提取器,对接收到的图片进行特征提取,并将提取到的特征及其对应图片的元信息存入所述特征队列中。
根据本发明实施例的另一个方面,提供的一种数据存储系统,包括:第一存储单元、主分片管理器、至少一个从分片管理器和至少一个分片特征库;所述主分片管理器和所述至少一个从分片管理器之间相互通信连接;
第一存储单元,用于存储特征队列;
所述主分片管理器,用于对所述特征队列中的特征进行分片;对于任一分片,将所述任一分片存储到相应的分片特征库中,并在映射表中记录所述任一分片与所述相应的分片特征库之间的映射关系;以及响应于原主分片管理器发生故障被选择作为主分片管理器,从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系;
各分片特征库,用于存储分片、以及各分片的分片信息。
可选地,在本发明上述各系统实施例中,所述主分片管理器对特征队列中的特征进行分片时,具体用于:按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片。
可选地,在本发明上述各系统实施例中,所述主分片管理器按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片时,具体用于:从所述特征队列中读取一个特征及该特征的元信息,所述元信息包括时间戳和摄像机信息,所述摄像机信息包括摄像机所属的区域标识和摄像机标识;以及根据读取的特征及该特征的元信息,将时间戳在预设时间区间、摄像机信息在同一个空间区域的特征划分为一个分片。
可选地,在本发明上述各系统实施例中,所述主分片管理器将所述任一分片存储到相应的分片特征库中时,具体用于:基于启发式分配算法选择存储所述任一分片的分片特征库,并将所述任一分片存储到选择的分片特征库中。
可选地,在本发明上述各系统实施例中,所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库时,具体用于:从已有的至少一个分片特征库中选择一个被分配所述任一分片时,存储量的大小小于预设阈值的分片特征库,将所述任一分片分配到选择的分片特征库中;以及若所述至少一个分片特征库中不存在被分配所述任一分片时、存储量的大小小于预设阈值的分片特征库,创建一个新的分片特征库,并将所述任一分片分配到所述新的分片特征库中。
可选地,在本发明上述各系统实施例中,所述已有的至少一个分片特征库分布于至少一个设备上;
所述主分片管理器创建一个新的分片特征库时,具体用于:根据所述至少一个设备的硬件性能、当前负载和创建一个新的分片特征库后的未来负载,选择一个设备,并在选择的设备上创建所述新的分片特征库。
可选地,在本发明上述各系统实施例中,还包括:
检索单元,用于响应于接收到检索请求,将所述检索请求转发到所有分片特征库,所述检索请求中包括检索条件;以及对所有分片特征库返回的特征进行聚合,获得检索结果;
所述分片特征库,还用于检索符合所述检索条件的特征并返回所述检索单元。
可选地,在本发明上述各系统实施例中,所述检索条件包括:待检索特征、时间条件、区域条件;
所述选择的分片特征库,还用于在索引表中创建所述任一分片的索引,所述任一分片的索引包括所述任一分片的时间区间和空间区域、特征信息;
所述分片特征库检索符合所述检索条件的特征时,具体用于:查询所述索引表,检索符合所述时间条件和所述区域条件的索引;以及从所述符合所述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的多个特征;
所述检索单元对所有分片特征库返回的符合所述检索条件的特征进行聚合,获得检索结果时,具体用于:对各分片特征库返回的特征进行合并,得到特征集合;以及分别计算所述特征集合中各特征与所述待检索特征之间的相似度,并选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果。
可选地,在本发明上述各系统实施例中,所述检索条件还包括:检索结果数量K,其中,K的取值为大于0的整数;
所述选择的分片特征库查询与待检索特征之间的相似度最高的多个特征时,具体用于:查询与待检索特征之间的相似度最高的前K个特征;
所述选择的分片特征库选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果时,具体用于:选取所述特征集合中与所述待检索特征之间的相似度最高的前K个特征作为检索结果。
可选地,在本发明上述各系统实施例中,还包括:
分布式键值对数据库,用于存储持久化特征;
所述选择的分片特征库将所述任一分片存储到选择的分片特征库中,具体用于:获取所述任一分片中的特征的持久化特征,并将所述持久化特征存储到所述布式键值对数据库中,所述索引表位于所述选择的分片特征库的显存中,所述任一分片的索引包括的特征信息为持久化特征,所述分片特征库查询到的所述多个特征、以及所述特征集合中的特征为持久化特征。
可选地,在本发明上述各系统实施例中,所述选择的分片特征库,还用于对所述任一分片中的特征进行量化,得到量化特征,将得到的量化特征存储在所述选择的分片特征库的显存中;所述索引表位于所述选择的分片特征库的显存中,所述任一分片的索引包括的特征信息为量化特征,所述分片特征库查询到的所述多个特征、以及所述特征集合中的特征为量化特征。
可选地,在本发明上述各系统实施例中,还包括:
分布式键值对数据库,用于存储持久化特征;
所述选择的分片特征库,还用于获取所述分片中的特征的持久化特征,并将所述持久化特征存储到所述分布式键值对数据库中;
所述检索单元分别计算所述特征集合中各特征与所述待检索特征之间的相似度,并选取所述特征集合中与所述待检索特征之间的相似度最高的多个特征作为检索结果时,具体用于:从所述分布式键值对数据库中获取所述特征集合中各量化特征对应的持久化特征;以及分别计算所述特征集合中各量化特征对应的持久化特征与所述待检索特征之间的相似度,选取与所述待检索特征之间的相似度最高的多个持久化特征作为检索结果。
可选地,在本发明上述各系统实施例中,还包括:
存储设备,用于存储所述索引表的索引快照和对应的快照操作时间戳;
所述分片特征库,还用于按照预设周期对所述索引表进行快照操作,获得索引快照,并将所述索引快照和对应的快照操作时间戳存储到所述存储设备的快照列表中;以及响应于重启,从存储设备读取该重启的分片特征库的快照列表存储到该重启的分片特征库的显存中;并从所述重启的分片特征库的快照列表中最近的快照操作时间戳起,从分布式键值对数据库中读取所述重启的分片特征库的快照列表中自最近的快照操作时间戳起的持久化特征,获取自最近的快照操作时间戳起的持久化特征对应的量化特征,并重新在索引表中建立自最近的快照操作时间戳起的量化特征的索引。
可选地,在本发明上述各系统实施例中,所述分片特征库,还用于按照预设聚类周期对所述分布式键值对数据库中各分片的持久化特征进行聚类操作,并获取聚类得到的各类别特征的平均特征;所述索引中还包括各类别的平均特征;
所述分片特征库从所述符合所述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的多个特征时,具体用于:从所述符合所述时间条件和所述区域条件的索引中,查询与待检索特征之间的相似度大于预设相似度阈值的平均特征,并在所述相似度大于预设相似度阈值的平均特征对应的类别中查询与待检索特征之间的相似度最高的多个特征。
可选地,在本发明上述各系统实施例中,还包括:
接收单元,用于将接收到的图片存储在图片队列中;所述图片携带有所述元信息;
第二存储单元,用于存储所述图片队列;
至少一个特征提取器中的任一特征提取器,分别用于对所述图片队列中分发给所述任一特征提取器的图片进行特征提取,并将提取到的特征及其对应图片的元信息存入所述特征队列中。
根据本发明实施例的又一个方面,提供的一种电子设备,包括:
处理器和本发明任一实施例所述的数据存储系统;
在处理器运行所述数据存储系统时,本发明任一实施例所述的数据存储系统中的单元被运行。
根据本发明实施例的又一个方面,提供的一种电子设备,包括:一个或多个处理器、存储器、通信部件和通信总线,所述处理器、所述存储器和所述通信部件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如本发明任一实施例所述的数据处理方法对应的操作。
根据本发明实施例的再一个方面,提供的一种计算机程序,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现本发明任一实施例所述的数据处理方法中各步骤的指令。
根据本发明实施例的再一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时实现本发明任一实施例所述的数据处理方法中各步骤的操作。
基于本发明上述实施例提供的数据存储方法和系统、电子设备、程序和存储介质,主分片管理器对特征队列中的特征进行分片并存储到其中一个分片特征库中,并在映射表中记录任一分片与对应的分片特征库标识之间的映射关系,实现了特征信息的分布式存储;在主分片管理器发生故障时,重新选择一个分片管理器作为新的主分片管理器,由新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并据此重新创建目前正在写入分片的映射关系,具备容错及自动恢复能力,可以避免单一软硬件故障导致分布式系统整体失效,并且在软硬件等部件失效时,可以保证已入库的征数据具备一致性。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明数据存储方法一个实施例的流程图。
图2为本发明数据存储方法另一个实施例的流程图。
图3为本发明数据存储方法一个应用实施例的流程图。
图4为本发明数据存储系统一个实施例的结构示意图。
图5为本发明数据存储系统另一个实施例的结构示意图。
图6为本发明电子设备一个应用实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序单元)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
在实现本发明的过程中,发明人经过研究发现,使用分布式GPU集群对海量视频进行处理是很复杂的。一方面,由于分布式系统存在多级存储和计算并行度,需要对硬件进行精确的控制以发挥分布式GPU集群的最佳性能。另一方面,大规模分布式系统需要具备容错及自动恢复能力,以避免单一软硬件故障导致分布式系统整体失效;同时在软硬件等部件失效时,需要保证已入库的监控视频的特征数据具备一定的一致性。而现有分布式系统一般不考虑软硬件容错问题,在大规模部署时容易出现稳定性问题。
图1为本发明数据存储方法一个实施例的流程图。本发明各实施例的数据存储方法应用于数据存储系统,该数据存储系统包括主分片管理器和至少一个从分片管理器,其中,主分片管理器和至少一个从分片管理器之间相互通信连接。如图1所示,该实施例的数据存储方法包括:
102,主分片管理器对特征队列中的特征进行分片。
在本发明各实施例的一个可选实施方式中,主分片管理器可以按照时间区间和空间区域对特征队列中的特征进行分片,由属于同一时间区间和空间区域的特征形成一个分片。
本发明各实施例中,特征队列中的特征为基于深度学习方式从目标对象(例如图片、文字等)提取的特征。
104,对于任一分片,主分片管理器将该任一分片存储到相应的分片特征库中,并在映射表中记录该任一分片与相应的分片特征库之间的映射关系。
在本发明各实施例的一个可选实施方式中,主分片管理器可以选择存储该任一分片的分片特征库,将该任一分片存储到选择的分片特征库中,并在映射表中记录该任一分片对应的时间区间和空间区域与选择的分片特征库标识(ID)之间的映射关系。
其中的分片特征库ID用于唯一标识一个分片特征库。
106,响应于主分片管理器发生故障,至少一个从分片管理器共同选择一个分片管理器作为新的主分片管理器。
108,新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
基于本发明上述实施例提供的数据存储方法,主分片管理器对特征队列中的特征进行分片并存储到其中一个分片特征库中,并在映射表中记录任一分片与对应的分片特征库标识之间的映射关系,实现了特征信息的分布式存储;在主分片管理器发生故障时,重新选择一个分片管理器作为新的主分片管理器,由新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并据此重新创建目前正在写入分片的映射关系,具备容错及自动恢复能力,可以避免单一软硬件故障导致分布式系统整体失效,并且在软硬件等部件失效时,可以保证已入库的征数据具备一致性。
在本发明数据存储方法的其中一个可选实施方式中,操作102中,主分片管理器按照时间区间和空间区域对特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片,可以包括:
主分片管理器从特征队列中读取一个特征及该特征的元信息,该元信息包括时间戳和摄像机信息,其中的摄像机信息包括摄像机所属的区域标识(RID)和摄像机标识(CID);
主分片管理器根据读取的特征及该特征的元信息,将时间戳在一定时间区间、摄像机信息在同一个空间区域的特征划分为一个分片。
在本发明数据存储方法的另一个可选实施方式中,操作104中,主分片管理器选择存储任一分片的分片特征库时,可以基于启发式分配算法选择存储任一分片的分片特征库。
在其中一个示例中,主分片管理器基于启发式分配算法选择存储任一分片的分片特征库,可以包括:
主分片管理器从已有的至少一个分片特征库中选择一个被分配上述任一分片时,存储量的大小小于预设阈值的分片特征库,将上述任一分片分配到选择的分片特征库中;
若至少一个分片特征库中不存在被分配任一分片时、存储量的大小小于预设阈值的分片特征库,主分片管理器创建一个新的分片特征库,并将上述任一分片分配到新的分片特征库中。
进一步可选地,已有的至少一个分片特征库可以分布于至少一个设备上。相应地,主分片管理器创建一个新的分片特征库时,可以根据至少一个设备的硬件性能、当前负载和创建一个新的分片特征库后的未来负载,从上述至少一个设备中选择一个设备,并在选择的设备上创建新的分片特征库。
在本发明数据存储方法的另一个实施例中,还可以包括:
响应于接收到检索请求,检索单元将该检索请求转发到所有的分片特征库,该检索请求中包括检索条件;
所有分片特征库中的各分片特征库分别检索符合检索条件的特征并返回检索单元;
检索单元对所有分片特征库返回的符合检索条件的特征进行聚合,获得检索结果。
在实现本发明的过程中,本发明通过研究发现,现在分布式系统一般直接使用待搜索目标的原特征,通过中央处理单元(CPU)和内存进行搜索,需要使用大量设备,无法实时处理时间跨度和覆盖区域比较大的相似特征查询。基于本发明实施例,可以从分布式的分片特征库中进行满足指定检索条件(例如一定时间跨度和一定覆盖区域)的相似特征查询。
在本发明数据存储方法的其中一个可选实施方式中,上述检索条件例如可以包括待检索特征、时间条件、区域条件,另外还可以选择性地包括检索结果数量K,其中,K的取值为大于0的整数。相应地,主分片管理器选择存储任一分片的分片特征库之后,还可以包括:选择的任一分片的分片特征库,在索引表中创建任一分片的索引,该任一分片的索引包括该任一分片的时间区间和空间区域、特征信息。相应地,该实施例中,分片特征库检索符合检索条件的特征,可以包括:分片特征库查询索引表,检索符合检索条件中时间条件和区域条件的索引;分片特征库从符合上述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的多个特征。检索单元对所有分片特征库返回的符合检索条件的特征进行聚合,获得检索结果,可以包括:检索单元对各分片特征库返回的特征进行合并,得到特征集合;检索单元分别计算特征集合中各特征与待检索特征之间的相似度,并选取特征集合中与待检索特征之间的相似度最高的多个特征作为检索结果。
在上述实施例中,检索条件包括检索结果数量K时,分片特征库具体从符合上述时间条件和所述区域条件的索引中查询与待检索特征之间的相似度最高的前K个特征;检索单元具体选取特征集合中与待检索特征之间的相似度最高的前K个特征作为检索结果。
在其中一个示例中,分片特征库将任一分片存储到选择的分片特征库中,可以包括:
分片特征库获取任一分片中的特征的持久化特征,并将持久化特征存储到分布式键值对数据库中。相应地,上述索引表具体位于选择的分片特征库的显存中,任一分片的索引包括的特征信息具体为持久化特征,分片特征库查询到的多个特征、以及特征集合中的特征具体为持久化特征。
在其中的另一个示例中,分片特征库将任一分片存储到选择的分片特征库中,可以包括:
分片特征库存储任一分片的分片特征库对分片中的特征进行量化,得到量化特征;其中的索引表具体位于分片特征库的显存中,任一分片的索引包括的特征信息具体为量化特征,分片特征库查询到的多个(例如前K个)特征、以及特征集合中的特征具体为量化特征。
在基于上述另一个示例的又一个示例中,还可以包括:选择的分片特征库获取分片中的特征的持久化特征,并将持久化特征存储到分布式键值对数据库中。相应地,该示例中,检索单元分别计算特征集合中各特征与待检索特征之间的相似度,并选取特征集合中与待检索特征之间的相似度最高的多个(例如前K个)特征作为检索结果,可以包括:检索单元从分布式键值对数据库中获取特征集合中各量化特征相应的持久化特征;检索单元分别计算特征集合中各量化特征对应的持久化特征与待检索特征之间的相似度,选取与待检索特征之间的相似度最高的多个(例如前K个)持久化特征作为检索结果。
在本发明数据存储方法的又一个实施例中,还可以包括:
各分片特征库分别按照预设周期对索引表进行快照操作,获得索引快照,并将该索引快照和对应的快照操作时间戳存储到存储设备的快照列表中;
响应于一个分片特征库重启,该重启的分片特征库从存储设备读取该重启的分片特征库的快照列表存储到该重启的分片特征库的显存中;并从重启的分片特征库的快照列表中最近的快照操作时间戳起,从分布式键值对数据库中读取重启的分片特征库的快照列表中自最近的快照操作时间戳起的持久化特征,获取自最近的快照操作时间戳起的持久化特征对应的量化特征,并重新在索引表中建立自最近的快照操作时间戳起的量化特征的索引。
另外,在本发明数据存储方法的再一个实施例中,还可以包括:各分片特征库分别按照预设聚类周期对分布式键值对数据库中各分片的持久化特征进行聚类操作,并获取聚类得到的各类别特征的平均特征,其中的索引中还包括各类别的平均特征。相应的,分片特征库从符合时间条件和区域条件的索引中查询与待检索特征之间的相似度最高的多个特征,可以包括:分片特征库从符合上述时间条件和区域条件的索引中,查询与待检索特征之间的相似度大于预设相似度阈值的平均特征,并在相似度大于预设相似度阈值的平均特征对应的类别中查询与待检索特征之间的相似度最高的多个特征。
进一步地,在本发明数据存储方法的还一个实施例中,在主分片管理器对特征队列中的特征进行分片之前,还可以包括:
响应于接收到图片,通过图片队列将接收到的图片分发给至少一个特征提取器,其中的图片携带有元信息,该元信息包括时间戳和摄像机信息,其中的摄像机信息可以包括摄像机所属的区域标识(RID)和摄像机标识(CID);
至少一个特征提取器中的任一特征提取器,对接收到的图片进行特征提取,并将提取到的特征及其对应图片的元信息存入特征队列中。
图2为本发明数据存储方法另一个实施例的流程图。如图2所示,该实施例的数据存储方法包括:
202,响应于接收到图片,通过图片队列将接收到的图片分发给至少一个特征提取器。
其中的图片携带有元信息,该元信息包括时间戳和摄像机信息,其中的摄像机信息可以包括摄像机所属的区域标识RID和摄像机标识CID。
其中,RID为区域标识,用于标识摄像机的区域相邻性,指相机所属的地理位置区域,可以被预先分配并设置在摄像机中,例如可视某市某区为一个区域,为其分配RID,给区域内摄像机视为地域相邻;CID用于标识采集该特征对应图片的摄像机,CID预先为摄像机分配并设置在摄像机中;时间戳t在摄像机采集图片时获得,为采集图片的时刻信息。
204,上述至少一个特征提取器中的任一特征提取器,对接收到的图片进行特征提取,并将提取到的特征及其对应图片的元信息存入特征队列中。
206,主分片管理器按照时间区间和空间区域对特征队列中的特征进行分片,由属于同一时间区间和空间区域的特征形成一个分片。
208,对于任一分片,主分片管理器选择存储该任一分片的分片特征库,将该任一分片存储到选择的分片特征库中,并在映射表中记录该任一分片对应的时间区间和空间区域与选择的分片特征库ID之间的映射关系。
210,响应于主分片管理器发生故障,由至少一个从分片管理器共同选举一个分片管理器作为新的主分片管理器。
在本发明各实施例中,主分片管理器和从分配管理器是分片管理器的两种工作状态,所有分片管理器之间通信连接,相互发现对方的存在,在原主分片管理器故障时,其他所分片分配管理器共同选举出一个新的主分片管理器,其他分片管理器自动降级为从分片管理器。若大多数从分片管理器发现当前的主分片管理器失效,则从新选举新的主分片管理器,被选中的分片管理器升级为主分片管理器,原有主分片管理器的故障恢复后自动降级为从分片管理器。
212,新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
其中,操作210~212为基于响应于主分片管理器发生故障这一触发条件触发的操作,如未发生该触发条件,不执行该操作210~212。
214,响应于接收到检索请求,检索单元将该检索请求转发到所有的分片特征库,该检索请求中包括检索条件。
216,所有分片特征库中的各分片特征库分别检索符合检索条件的特征并返回检索单元。
218,检索单元对所有分片特征库返回的符合检索条件的特征进行聚合,获得检索结果。其中,操作214~218为基于响应于接收到检索请求这一触发条件触发的操作,如未发生该触发条件,不执行该操作214~218。
图3为本发明数据存储方法一个应用实施例的流程图。如图3所示,该应用实施例的数据存储方法包括:
302,接收单元接收到图片流后,通过图片队列,对接收到的图片流进行负载均衡操作,通过发布-订阅(Pub-Sub)模型,将图片流中的图片分发给至少一个特征提取器。
其中的图片流包括多张图片。
其中,Pub-Sub模型通过主题(Topic)关联/解偶生产者与消费者:生产者(即:接收单元)将图片发布(Publish)入约定好的Topic(即:图片队列中的Topic);消费者(即:特征提取器)订阅(Subscribe)该Topic,从该Topic将特征取出。接收单元作为生产者将图片流写入图片队列中的Topic;特征提取器作为消费者从该Topic将特征取出。Topic会将收到的特征划分为若干分片(例如与特征提取器数量相同的分片)缓存,各特征提取器分别读取Topic中不同分片,从而实现特征提取器之间的负载均衡。
其中,特征提取器的数量可动态增减,特征提取器数量变化后,会触发图片队列中Topic分片的重新分配,从而实现负载均衡。
304,每个特征提取器分别提取各自负责的一部分图片的特征。
示例性地,每个特征提取器可以通过一个深度神经网络实现,且每个特征提取器包括一个图形处理单元(GPU),使用GPU大规模并行计算能力来批量执行特征提取操作,通过提高并行度来加速特征提取,从而可大大加速深度神经网络运行速度。
示例性地,特征提取器也可以包括中央处理单元(CPU)和GPU,同时使用CPU、GPU等部件的计算能力,以流水线方式隐藏各级计算、通讯延迟,具体处理如下:
通过队列消费单元从图片队列成批读取图片流;
通过CPU进行图片解码及目标检测/对齐(Detect/Alignment),即:在CPU上对读取到的图片进行解码、目标检测/对齐。其中,目标检测指使用人脸或其他对象检测器对输入图片中的感兴趣对象进行检测,输出对象区域;对齐是指:输入图片和检测输出区域,计算对象关键点,并根据关键点对图片进行缩放和转正;
同GPU(即:深度神经网络)进行特征提取,将图片解码及目标检测/对齐后的图片在GPU上执行特征提取操作;
通过特征输出入队列将提取到的特征写入特征队列。
306,主分片管理器从特征队列读入特征f及对应图片的时间戳t和摄像机信息(RID,CID)。
308,主分片管理器对t作离散化,若t落在一定时间区间D:[t,t+d)内,则把(RID,D)作为一个分片S,若分片S已分配到分配特征库Pi,则发送插入请求到分配特征库Pi,并记录到映射表M[(RID,D)->Pi]中;若S未进行分配,则选择一可用的分配特征库Pj,把分配S分配到分配特征库Pj,发送插入请求到分配特征库Pj,并记录到映射表M[(RID,D)->Pj]中。插入请求中包括请求插入的分片S。
其中,D是一个时间区间,d为该区间长度,M存储在主分片管理器的内存中,i、j分别为大于1的整数,Pi、Pj分别为上述至少一个分片特征库中的两个分片特征库。
之后,执行操作310或314。
310,若原有主分片管理器发生故障,需要进行错误恢复时,各主分片管理器启动时,例如可以使用任意Leader选举协议进行选举,选择一个新的主分片管理器,以保证至多一个活动的分片管理器作为新的主分片管理器。
312,新的主分片管理器启动后对映射表进行恢复。
示例性地,新的主分片管理器可以通过远程过程调用从所有分片特征库上读取其正在写入的索引表,根据读取到的索引表对映射表进行恢复,避免对各分片特征库正在写入的分片重新分配。
其中,上述操作310~312为基于原有主分片管理器发生故障这一触发条件触发的操作,未发生该触发条件则不执行该操作。
314,主分片管理器记录每个分片的创建时间,若分片活动超过一段时间,则对映射表进行更新,切换分片对应的分片特征库,以免热点区域对应的S落到同一分片特征库上,从而实现分片特征库之间的负载均衡。
其中,每个分片特征库可以通过一个GPU实现。
对于每个特征提取器(例如深度神经网络)输出的特征,可以有三种形态:
原特征:维度为N,每维为32浮点数(float32),本形态可用于特征相似度计算;其中,N为大于1的整数;
持久化特征:维度为N,每维为半(half)浮点数,本形态用于在数据库中持久化特征,可以比原特征节省50%存储空间,此特征将持久化至分布式键值对数据库中;
量化特征:维度为M(一般为小于等于32的整数),每维为一个字节,例如使用优化产品量化(Optimized Product Quantization,OPQ)等算法获取,本形态为GPU的索引中特征存储形态。
上述三种形态分别使用不同的存储设备进行存储:原特征存放于特征队列里,只存储最近若干天的数据以便于错误恢复;持久化特征大小为原特征的一半,存储在分布式键值对数据库中,用于特征数据持久化、聚类及其他任务;量化特征使用OPQ【OptimizedProduct Quantization】算法,对原特征或持久化特征进行压缩,以便存储在GPU显存中。
其中,上述操作314为可选性操作。
316,每个分片特征库接收到的主分片管理器发送的插入请求,对该插入请求中的特征进行量化得到量化特征Fq。
318,每个分片特征库根据插入请求中分片S的分片信息,识别插入请求中分片S是否为新的分片还是已经创建了索引的分片。
若分片S为新的分片,则执行操作320。否则,若分片S不是新的分片,执行操作322。
320,每个分片特征库在索引表中创建该分片的索引,用于存储Fq,把Fq插入到对应分片的索引((RID,CID,t),Fq),以及把原特征转换为持久化特征Fh,持久化到分布式键值对数据库。
其中,持久化特征Fh是压缩后的特征,可以通过IEEE 754相关半精度标准,将原特征转换为持久化特征Fh,以优化特征存储空间。
之后,执行操作324。
322,每个分片特征库把Fq插入到对应分片的索引((RID,CID,t),Fq),若分片S的大小大于一定阈值,则可以在索引表中创建新的索引,以及把原特征转换为持久化特征Fh,持久化到分布式键值对数据库。
324,为对GPU显存中的索引表进行快速错误恢复,每个分片特征库每过一段时间,对GPU显存中的索引表进行快照操作,将索引快照持久化到磁盘(即:存储设备)的快照列表中,并记录对应的快照操作时间戳Ts。
其中,磁盘可以通过高可用特性实现过程中用到的外部存储资源实现。
326,分片特征库发生错误重启后,读取快照列表及对应的快照操作时间戳Ts,从磁盘上加载索引快照到GPU显存,并从时间戳Ts开始,从分布式键值对数据库中读取自最近的快照操作时间戳起的持久化特征插入到索引快照中。
328,检索单元接收到检索请求,每个检索请求包括一个待检索特征Qf,一个摄像机标识CID的Qc,一个时间范围Qt,检索结果数量K,根据Qc和Qt,过滤待搜索的索引表,对索引表中的每个索引,通过扫描方式查找索引中与Qf相似的前K个特征,对所有分片特征库返回的K个特征进行聚合(即:归并),获得检索结果,并分别计算特征集合中各特征与待检索特征之间的相似度,选取特征集合中与待检索特征之间的相似度最高的K个特征作为检索结果。
在本发明的一个应用示例中,基于检索请求进行检索的一个示例如下:
检索单元接收到检索请求,该检索请求中包含待检索特征、待查询的摄像机区域集合、一个时间区间、及检索结果数量K;
检索单元将检所请求转发到所有分片特征库;
每个分片特征库Pi包含多个分片S,每个分片Si对应于一个摄像头区域RID、及时间区间,每个分片特征库Pi按照检索请求选择符合检索条件的分片;
每个分片特征库Pi对于每个符合检索条件的分片,使用GPU显存中的OPQ索引,计算每个分片中与待检索特征相似度最高的K个特征,n个分片共输出n组特征,每组特征可以形成一个特征向量;分片特征库Pi对所有分片输出的n个特征向量经行归并、并取前K个特征返回至检索单元;
检索单元对所有分片特征库返回的K个特征进行归并,得到特征集合由于此特征集合是由OPQ量化后的量化特征得到的结果,排序并不准确,检索单元从分布式键值对数据库中读取该特征集合中各量化特征对应的半浮点持久化特征后,使用反应特征之间相似度的距离函数计算特征集合中各量化特征对应的持久化特征与带检索特征之间的相似度,并对特征集合重新排序后,选取其中相似度最高的K个特征作为检索结果进行输出。
本发明实施例提供的任一种数据存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本发明实施例提供的任一种数据存储方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本发明实施例提及的任一种数据存储方法。下文不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明数据存储系统一个实施例的结构示意图。该实施例的数据存储系统可用于实现本发明上述各数据存储方法实施例。如图4所示,该实施例的数据存储系统包括:第一存储单元、主分片管理器、至少一个从分片管理器(图中未示出)和至少一个分片特征库,其中的主分片管理器和上述至少一个从分片管理器之间相互通信连接。其中:
第一存储单元,用于存储特征队列。
主分片管理器,用于对特征队列中的特征进行分片;对于任一分片,将任一分片存储到相应的分片特征库中,并在映射表中记录任一分片与相应的分片特征库之间的映射关系。以及响应于原主分片管理器发生故障被选择作为主分片管理器,从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
各分片特征库,用于存储分片、以及各分片的分片信息。
基于本发明上述实施例提供的数据存储系统,主分片管理器对特征队列中的特征进行分片并存储到其中一个分片特征库中,并在映射表中记录任一分片与对应的分片特征库标识之间的映射关系,实现了特征信息的分布式存储;在主分片管理器发生故障时,重新选择一个分片管理器作为新的主分片管理器,由新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并据此重新创建目前正在写入分片的映射关系,具备容错及自动恢复能力,可以避免单一软硬件故障导致分布式系统整体失效,并且在软硬件等部件失效时,可以保证已入库的征数据具备一致性。
可选地,在本发明各数据存储系统实施例的一个实施方式中,主分片管理器对特征队列中的特征进行分片时,具体用于:按照时间区间和空间区域对特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片。
示例性地,主分片管理器按照时间区间和空间区域对特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片时,具体用于:从特征队列中读取一个特征及该特征的元信息,元信息包括时间戳和摄像机信息,摄像机信息包括摄像机所属的区域标识和摄像机标识;以及根据读取的特征及该特征的元信息,将时间戳在预设时间区间、摄像机信息在同一个空间区域的特征划分为一个分片。
可选地,在本发明各数据存储系统实施例的一个实施方式中,主分片管理器将任一分片存储到相应的分片特征库中时,具体用于:基于启发式分配算法选择存储任一分片的分片特征库,并将任一分片存储到选择的分片特征库中。
示例性地,主分片管理器基于启发式分配算法选择存储任一分片的分片特征库时,具体用于:从已有的至少一个分片特征库中选择一个被分配任一分片时,存储量的大小小于预设阈值的分片特征库,将任一分片分配到选择的分片特征库中;以及若至少一个分片特征库中不存在被分配任一分片时、存储量的大小小于预设阈值的分片特征库,创建一个新的分片特征库,并将任一分片分配到新的分片特征库中。
进一步示例性地,已有的至少一个分片特征库分布于至少一个设备上。相应地,主分片管理器创建一个新的分片特征库时,具体用于:根据至少一个设备的硬件性能、当前负载和创建一个新的分片特征库后的未来负载,选择一个设备,并在选择的设备上创建新的分片特征库。
图5为本发明数据存储系统另一个实施例的结构示意图。如图5所示,与图4所示实施例相比,该实施例的数据存储系统还包括:检索单元,用于响应于接收到检索请求,将检索请求转发到所有分片特征库,检索请求中包括检索条件;以及对所有分片特征库返回的特征进行聚合,获得检索结果。相应地,该实施例中,分片特征库还用于检索符合检索条件的特征并返回检索单元。
可选地,在本发明各数据存储系统实施例的一个实施方式中,上述检索条件可以包括:待检索特征、时间条件、区域条件。相应地,该实施例中,选择的分片特征库还用于在索引表中创建任一分片的索引,任一分片的索引包括任一分片的时间区间和空间区域、特征信息。分片特征库检索符合检索条件的特征时,具体用于查询索引表,检索符合时间条件和区域条件的索引;以及从符合时间条件和区域条件的索引中查询与待检索特征之间的相似度最高的多个特征。检索单元对所有分片特征库返回的符合检索条件的特征进行聚合,获得检索结果时,具体用于:对各分片特征库返回的特征进行合并,得到特征集合;以及分别计算特征集合中各特征与待检索特征之间的相似度,并选取特征集合中与待检索特征之间的相似度最高的多个特征作为检索结果。
可选地,上述检索条件还可以包括检索结果数量K,其中,K的取值为大于0的整数。相应地,该实施例中,选择的分片特征库查询与待检索特征之间的相似度最高的多个特征时,具体用于:查询与待检索特征之间的相似度最高的前K个特征。选择的分片特征库选取特征集合中与待检索特征之间的相似度最高的多个特征作为检索结果时,具体用于:选取特征集合中与待检索特征之间的相似度最高的前K个特征作为检索结果。
再参见图5,本发明数据存储系统的又一个实施例中,还可以包括:分布式键值对数据库,用于存储持久化特征。相应的,该实施例中,选择的分片特征库将任一分片存储到选择的分片特征库中,具体用于:获取任一分片中的特征的持久化特征,并将持久化特征存储到布式键值对数据库中,索引表位于选择的分片特征库的显存中,任一分片的索引包括的特征信息为持久化特征,分片特征库查询到的多个特征、以及特征集合中的特征为持久化特征。
可选地,在本发明上述各数据存储系统实施例的一个实施方式中,选择的分片特征库,还用于对任一分片中的特征进行量化,得到量化特征,将得到的量化特征存储在选择的分片特征库的显存中;索引表位于选择的分片特征库的显存中,任一分片的索引包括的特征信息为量化特征,分片特征库查询到的多个特征、以及特征集合中的特征为量化特征。
再参见图5,本发明数据存储系统的再一个实施例中,分布式键值对数据库,用于存储持久化特征。相应地,选择的分片特征库还用于获取分片中的特征的持久化特征,并将持久化特征存储到分布式键值对数据库中。相应地,检索单元分别计算特征集合中各特征与待检索特征之间的相似度,并选取特征集合中与待检索特征之间的相似度最高的多个特征作为检索结果时,具体用于:从分布式键值对数据库中获取特征集合中各量化特征对应的持久化特征;以及分别计算特征集合中各量化特征对应的持久化特征与待检索特征之间的相似度,选取与待检索特征之间的相似度最高的多个持久化特征作为检索结果。
再参见图5,本发明数据存储系统的还一个实施例中,还可以包括:存储设备,用于存储索引表的索引快照和对应的快照操作时间戳。相应地,该实施例中,分片特征库还用于按照预设周期对索引表进行快照操作,获得索引快照,并将索引快照和对应的快照操作时间戳存储到存储设备的快照列表中;以及响应于重启,从存储设备读取该重启的分片特征库的快照列表存储到该重启的分片特征库的显存中;并从重启的分片特征库的快照列表中最近的快照操作时间戳起,从分布式键值对数据库中读取重启的分片特征库的快照列表中自最近的快照操作时间戳起的持久化特征,获取自最近的快照操作时间戳起的持久化特征对应的量化特征,并重新在索引表中建立自最近的快照操作时间戳起的量化特征的索引。
进一步的,在本发明上述各数据存储系统实施例中,分片特征库还可用于按照预设聚类周期对分布式键值对数据库中各分片的持久化特征进行聚类操作,并获取聚类得到的各类别特征的平均特征,其中的索引中还包括各类别的平均特征。相应地,该实施例的分片特征库从符合时间条件和区域条件的索引中查询与待检索特征之间的相似度最高的多个特征时,具体用于:从符合时间条件和区域条件的索引中,查询与待检索特征之间的相似度大于预设相似度阈值的平均特征,并在相似度大于预设相似度阈值的平均特征对应的类别中查询与待检索特征之间的相似度最高的多个特征。
进一步可选地,再参见图5,在本发明上述各数据存储系统实施例中,还可以包括:接收单元,第二存储单元和至少一个特征提取器中的任一特征提取器。其中:
接收单元,用于将接收到的图片存储在图片队列中,其中的图片携带有元信息。
第二存储单元,用于存储图片队列。
至少一个特征提取器中的任一特征提取器,分别用于对图片队列中分发给任一特征提取器的图片进行特征提取,并将提取到的特征及其对应图片的元信息存入特征队列中。
另外,本发明实施例还提供了一种电子设备,包括:
处理器和本发明上述任一实施例的数据存储系统;
在处理器运行数据存储系统时,本发明上述任一实施例的数据存储系统中的单元被运行。
另外,本发明实施例还提供了另一种电子设备,包括:一个或多个处理器、存储器、通信部件和通信总线,处理器、存储器和通信部件通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本发明上述任一实施例的数据处理方法对应的操作。
图6为本发明电子设备一个应用实施例的结构示意图。下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图6所示,该电子设备包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU),和/或一个或多个图像处理器(GPU)等,处理器可以根据存储在只读存储器(ROM)中的可执行指令或者从存储部分加载到随机访问存储器(RAM)中的可执行指令而执行各种适当的动作和处理。通信部可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡,处理器可与只读存储器和/或随机访问存储器中通信以执行可执行指令,通过总线与通信部相连、并经通信部与其他目标设备通信,从而完成本申请实施例提供的任一方法对应的操作,例如,主分片管理器对特征队列中的特征进行分片;对于任一分片,所述主分片管理器将所述任一分片存储到相应的分片特征库中,并在映射表中记录所述任一分片与所述相应的分片特征库之间的映射关系;响应于所述主分片管理器发生故障,从至少一个从分片管理器中重新选择一个分片管理器作为新的主分片管理器;所述新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
此外,在RAM中,还可存储有装置操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。在有RAM的情况下,ROM为可选模块。RAM存储可执行指令,或在运行时向ROM中写入可执行指令,可执行指令使处理器执行本发明上述任一方法对应的操作。输入/输出(I/O)接口也连接至总线。通信部可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
需要说明的,如图6所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图6的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU和CPU可分离设置或者可将GPU集成在CPU上,通信部可分离设置,也可集成设置在CPU或GPU上,等等。这些可替换的实施方式均落入本发明公开的保护范围。
另外,本发明实施例还提供了一种计算机程序,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现本发明上述任一实施例的数据处理方法中各步骤的指令。
另外,本发明实施例还提供了一种计算机可读存储介质,用于存储计算机可读取的指令,该指令被执行时实现本发明上述任一实施例的数据处理方法中各步骤的操作。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种数据存储方法,其特征在于,所述数据存储方法应用于数据存储系统,所述数据存储系统包括主分片管理器和至少一个从分片管理器,所述主分片管理器和所述至少一个从分片管理器之间相互通信连接,所述方法包括:
所述主分片管理器对特征队列中的特征进行分片;
对于任一分片,所述主分片管理器将所述任一分片存储到相应的分片特征库中,并在映射表中记录所述任一分片与所述相应的分片特征库之间的映射关系;
响应于所述主分片管理器发生故障,所述至少一个从分片管理器共同选择一个分片管理器作为新的主分片管理器;
所述新的主分片管理器从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述主分片管理器对特征队列中的特征进行分片,包括:
所述主分片管理器按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片。
3.根据权利要求2所述的方法,其特征在于,所述主分片管理器按照时间区间和空间区域对所述特征队列中的特征进行分片,将属于同一时间区域和空间区域的特征划分为一个分片,包括:
所述主分片管理器从所述特征队列中读取一个特征及该特征的元信息,所述元信息包括时间戳和摄像机信息,所述摄像机信息包括摄像机所属的区域标识和摄像机标识;
所述主分片管理器根据读取的特征及该特征的元信息,将时间戳在预设时间区间、摄像机信息在同一个空间区域的特征划分为一个分片。
4.根据权利要求1-3任一所述的方法,其特征在于,所述主分片管理器将所述任一分片存储到相应的分片特征库中,包括:
所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库,并将所述任一分片存储到选择的分片特征库中。
5.根据权利要求4所述的方法,其特征在于,所述主分片管理器基于启发式分配算法选择存储所述任一分片的分片特征库,包括:
所述主分片管理器从已有的至少一个分片特征库中选择一个被分配所述任一分片时,存储量的大小小于预设阈值的分片特征库,将所述任一分片分配到选择的分片特征库中;
若所述至少一个分片特征库中不存在被分配所述任一分片时、存储量的大小小于预设阈值的分片特征库,所述主分片管理器创建一个新的分片特征库,并将所述任一分片分配到所述新的分片特征库中。
6.一种数据存储系统,其特征在于,包括:第一存储单元、主分片管理器、至少一个从分片管理器和至少一个分片特征库;所述主分片管理器和所述至少一个从分片管理器之间相互通信连接;
第一存储单元,用于存储特征队列;
所述主分片管理器,用于对所述特征队列中的特征进行分片;对于任一分片,将所述任一分片存储到相应的分片特征库中,并在映射表中记录所述任一分片与所述相应的分片特征库之间的映射关系;以及响应于原主分片管理器发生故障被选择作为主分片管理器,从所有分片特征库获取目前正在写入分片的分片信息,并根据所有分片特征库目前正在写入分片的分片信息重新创建目前正在写入分片的映射关系;
各分片特征库,用于存储分片、以及各分片的分片信息。
7.一种电子设备,其特征在于,包括:
处理器和权利要求6所述的数据存储系统;
在处理器运行所述数据存储系统时,权利要求6所述的数据存储系统中的单元被运行。
8.一种电子设备,其特征在于,包括:一个或多个处理器、存储器、通信部件和通信总线,所述处理器、所述存储器和所述通信部件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5任一所述的数据处理方法对应的操作。
9.一种计算机程序,包括计算机可读代码,其特征在于,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现权利要求1-5任一所述的数据处理方法中各步骤的指令。
10.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时实现权利要求1-5任一所述的数据处理方法中各步骤的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711229930.4A CN108228709B (zh) | 2017-11-29 | 2017-11-29 | 数据存储方法和系统、电子设备、程序和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711229930.4A CN108228709B (zh) | 2017-11-29 | 2017-11-29 | 数据存储方法和系统、电子设备、程序和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228709A true CN108228709A (zh) | 2018-06-29 |
CN108228709B CN108228709B (zh) | 2020-10-09 |
Family
ID=62653070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711229930.4A Active CN108228709B (zh) | 2017-11-29 | 2017-11-29 | 数据存储方法和系统、电子设备、程序和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228709B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381391A (zh) * | 2019-07-11 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 视频快速切片方法、装置及电子设备 |
CN111274288A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯云计算(北京)有限责任公司 | 分布式检索方法、装置、系统、计算机设备及存储介质 |
CN112231501A (zh) * | 2020-10-20 | 2021-01-15 | 浙江大华技术股份有限公司 | 人像库的数据存储、检索方法及装置、存储介质 |
CN112286451A (zh) * | 2020-10-20 | 2021-01-29 | 深圳大学 | 一种适用于多级存储系统的分级调度方法及系统 |
CN114035982A (zh) * | 2021-11-08 | 2022-02-11 | 中电福富信息科技有限公司 | 一种基于事件驱动的apm指标切片计算方法及系统 |
CN116932655A (zh) * | 2023-09-18 | 2023-10-24 | 成都市杉岩科技有限公司 | 一种分布式键值数据库操作方法及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5520532A (en) * | 1978-07-28 | 1980-02-14 | Omron Tateisi Electronics Co | Control system for plural electronic cash registers |
CN103310460A (zh) * | 2013-06-24 | 2013-09-18 | 安科智慧城市技术(中国)有限公司 | 图像特征提取的方法及系统 |
CN104580432A (zh) * | 2014-12-23 | 2015-04-29 | 上海帝联信息科技股份有限公司 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
CN105117502A (zh) * | 2015-10-13 | 2015-12-02 | 四川中科腾信科技有限公司 | 一种基于大数据的检索方法 |
CN105160039A (zh) * | 2015-10-13 | 2015-12-16 | 四川携创信息技术服务有限公司 | 一种基于大数据的查询方法 |
-
2017
- 2017-11-29 CN CN201711229930.4A patent/CN108228709B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5520532A (en) * | 1978-07-28 | 1980-02-14 | Omron Tateisi Electronics Co | Control system for plural electronic cash registers |
CN103310460A (zh) * | 2013-06-24 | 2013-09-18 | 安科智慧城市技术(中国)有限公司 | 图像特征提取的方法及系统 |
CN104580432A (zh) * | 2014-12-23 | 2015-04-29 | 上海帝联信息科技股份有限公司 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
CN105117502A (zh) * | 2015-10-13 | 2015-12-02 | 四川中科腾信科技有限公司 | 一种基于大数据的检索方法 |
CN105160039A (zh) * | 2015-10-13 | 2015-12-16 | 四川携创信息技术服务有限公司 | 一种基于大数据的查询方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381391A (zh) * | 2019-07-11 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 视频快速切片方法、装置及电子设备 |
CN110381391B (zh) * | 2019-07-11 | 2021-11-09 | 北京字节跳动网络技术有限公司 | 视频快速切片方法、装置及电子设备 |
CN111274288A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯云计算(北京)有限责任公司 | 分布式检索方法、装置、系统、计算机设备及存储介质 |
CN111274288B (zh) * | 2020-01-17 | 2023-03-17 | 腾讯云计算(北京)有限责任公司 | 分布式检索方法、装置、系统、计算机设备及存储介质 |
CN112231501A (zh) * | 2020-10-20 | 2021-01-15 | 浙江大华技术股份有限公司 | 人像库的数据存储、检索方法及装置、存储介质 |
CN112286451A (zh) * | 2020-10-20 | 2021-01-29 | 深圳大学 | 一种适用于多级存储系统的分级调度方法及系统 |
CN112286451B (zh) * | 2020-10-20 | 2021-07-06 | 深圳大学 | 一种适用于多级存储系统的分级调度方法及系统 |
CN114035982A (zh) * | 2021-11-08 | 2022-02-11 | 中电福富信息科技有限公司 | 一种基于事件驱动的apm指标切片计算方法及系统 |
CN114035982B (zh) * | 2021-11-08 | 2024-07-02 | 中电福富信息科技有限公司 | 一种基于事件驱动的apm指标切片计算方法及系统 |
CN116932655A (zh) * | 2023-09-18 | 2023-10-24 | 成都市杉岩科技有限公司 | 一种分布式键值数据库操作方法及计算机可读存储介质 |
CN116932655B (zh) * | 2023-09-18 | 2023-11-24 | 成都市杉岩科技有限公司 | 一种分布式键值数据库操作方法及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108228709B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228709A (zh) | 数据存储方法和系统、电子设备、程序和介质 | |
CN105556482B (zh) | 监视移动应用性能 | |
CA2568049C (en) | Pipeline architecture for analyzing multiple video streams | |
US7934071B2 (en) | Method of managing storage capacity in a storage system, a storage device and a computer system | |
CN110334059A (zh) | 用于处理文件的方法和装置 | |
CN111538852B (zh) | 多媒体资源处理方法、装置、存储介质及设备 | |
CN113779381B (zh) | 资源推荐方法、装置、电子设备和存储介质 | |
CN112446395A (zh) | 网络摄像机、视频监控系统及方法 | |
CN109062697A (zh) | 一种提供空间分析服务的方法和装置 | |
CN111770002A (zh) | 测试数据转发控制方法、装置、可读存储介质和电子设备 | |
CN111652331A (zh) | 一种图像识别方法、装置和计算机可读存储介质 | |
CN113254320A (zh) | 记录用户网页操作行为的方法及装置 | |
CN114223189A (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
US20150206056A1 (en) | Inference of anomalous behavior of members of cohorts and associate actors related to the anomalous behavior based on divergent movement from the cohort context centroid | |
CN115018081A (zh) | 特征选择方法、应用程序预测方法及装置 | |
CN116545740B (zh) | 一种基于大数据的威胁行为分析方法及服务器 | |
CN109241140A (zh) | 数据统计方法、装置及电子设备 | |
CN110362767A (zh) | 埋点处理方法、装置、系统及计算机可读存储介质 | |
CN111683280A (zh) | 视频处理方法、装置及电子设备 | |
CN114300082B (zh) | 一种信息处理方法、装置和计算机可读存储介质 | |
CN111368128A (zh) | 目标图片的识别方法、装置和计算机可读存储介质 | |
WO2023138923A1 (en) | Failure prediction using informational logs and golden signals | |
CN110232026A (zh) | AssetBundle资源检测方法及系统 | |
CN116069618A (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 |