CN116244475A - 在对象存储中存储和检索媒体记录 - Google Patents
在对象存储中存储和检索媒体记录 Download PDFInfo
- Publication number
- CN116244475A CN116244475A CN202211541170.1A CN202211541170A CN116244475A CN 116244475 A CN116244475 A CN 116244475A CN 202211541170 A CN202211541170 A CN 202211541170A CN 116244475 A CN116244475 A CN 116244475A
- Authority
- CN
- China
- Prior art keywords
- record
- media
- metadata
- index
- object store
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000012423 maintenance Methods 0.000 claims abstract description 36
- 230000037406 food intake Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—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/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—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/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/732—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—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)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (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
本发明涉及在对象存储中存储和检索媒体记录。存储媒体记录的第一方法包括在系统的摄取部件处执行的以下步骤:将记录ID分配给媒体记录;将媒体数据存储在对象存储中的一个或多个数据对象中,每个数据对象携带记录ID;将媒体元数据存储在携带记录ID的属性对象中;计算元数据的散列;以及将散列、记录ID、记录间隔和记录源存储在索引对象中。第一方法进一步包括使用维护部件将索引对象与现有索引对象进行串接。第二方法适用于使用第一方法来检索存储在对象存储中的媒体记录。第三方法适用于通过串接特定的索引对象组来对对象存储执行维护。
Description
技术领域
本公开涉及数字数据存储技术。具体地,本公开提出了用于在对象存储中存储和检索媒体记录以及用于对已经存储有媒体记录的对象存储执行维护的方法和装置。
背景技术
除了经典的文件系统(文件以目录结构(文件夹树)组织)外,非分层数据存储架构正在吸引各个行业分支的兴趣,并且在大量数据存储在网络(云)存储器中的应用中得到越来越多的使用。非常适合通过网络连接存储和访问大量非结构化数据的架构是对象存储,其中数据作为对象进行管理,而没有文件层次结构或者块层次结构。如果在存储驱动器上实现对象存储,则存储驱动器的较低协议层从对象存储的用户(例如,人类用户、软件应用和连接客户端计算机)中抽象出来。
在视频监控和类似的用例中,不仅希望存储是安全可靠的存档,还需要能够有效检索存储数据项的搜索工具。有用的搜索工具应当结合良好的精确度和召回率以及可接受的执行时间。许多可用的存储解决方案通过在搜索之前对数据进行索引或标记来实现这一点。索引和标记是计算成本很高的预处理步骤,其可能增加大量的开销数据,并且它们通常难以并行化。
US10210191B2公开了用于访问使用对象存储技术存储的数据的方法。存储操作包括:利用文件系统在对象存储中创建对象;获取与对象相关联的索引节点(I节点)的I节点标识符(ID);创建对象的对象ID,其中对象ID与对象存储中的任何其他对象ID是唯一的;将I节点ID合并到对象ID中,以创建包括完整I节点ID的合并对象ID,I节点ID可以从合并对象ID中提取;以及修改I节点以至少包括合并对象ID。访问操作包括:利用文件系统从与存储在对象存储中的对象相关联的对象ID中提取完整的I节点ID;访问与I节点ID相关联的I节点并确定存储在其中的对象ID;确定来自I节点的对象ID是否与从中提取I节点ID的对象相关联的对象ID相匹配;以及对该对象执行操作。在US10210191B2中建议,基于I节点的访问可以比直接使用对象ID的直接选项更方便地升级。根据现有技术,本公开提出了这种存储/访问设置和类似技术的替代方案。
更侧重于认知方面,US20210112154A1提出了用于分析由移动电话的相机观看的场景的软件应用。应用于场景并可以由诸如语音命令的附加信息辅助的图像处理任务可以在电话中本地执行,而相关的索引任务可以委托给联网的处理资源。具体地,本地处理的目的可以是辨别潜在地描绘相机视场中可识别的视觉对象或者特征的像素组(“块(clump)”)。每个像素块携带“符号”,并且如果该块可以在视觉上被识别为对象,则该“块ID”也可以用作“对象ID”。进一步,可以以“本地装置已知的每个数据对象经由云中的数据来实例化”的方式用“关键向量”来注释识别到的视觉对象,该“关键向量”构成以“基于基础云的形式”存储在基于云的注册表中的属性组。属性可以包括记录时间和记录源。像素数据存储在手机自带的存储器中。
发明内容
本公开的一个目的是使方法和装置可用于在对象存储中存储媒体记录。在这种方法和装置中,如果媒体记录一旦被存储即可检索或者只需要有限量的附加处理,则这是期望的。另一目的是使方法和装置可用于从存储在对象存储中的媒体记录当中检索相关的媒体记录。如果可以定位相关的媒体记录而无需对对象存储进行不必要的调用并且进出对象存储的通信量有限,则可以提高这种方法和装置的效率和性能。另一目的是使方法和装置可用于对包含所存储的媒体记录的对象存储执行维护。维护应当便于以后搜索相关的媒体记录和/或便于清理过时的媒体记录。总体目标是尽最大可能来使用通用的非定制技术(例如,对象存储解决方案)并利用该技术中已经可用的功能来实现这一点。
由独立权利要求限定的本发明实现了这些目的中的至少一些目的。从属权利要求涉及本发明的有利实施例。
在本发明的第一方面中,提供了存储媒体记录的方法,该媒体记录包含与元数据相关联的媒体数据。该方法包括:将记录标识符ID分配给媒体记录;将媒体数据存储在对象存储中的一个或多个数据对象中,其中每个数据对象携带记录ID;将元数据存储在对象存储中的属性对象中,其中属性对象携带记录ID;计算元数据的散列;将媒体记录的散列、记录ID、记录间隔和记录源存储在对象存储中的索引对象中;以及将索引对象与现有的索引对象进行串接。
索引对象与现有索引对象的串接将趋于减少对象存储中索引对象的总数。相应地,这限制了在执行对媒体记录的穷举搜索时需要检查的索引对象的数量。如下文将详细解释的,在索引对象中包含元数据的散列使得可以在本地缓存的支持下执行搜索,这有助于减少进出对象存储的通信量。优选地,串接步骤在与执行前述步骤的一个或多个部件分离的部件上执行。例如,串接步骤可以委托给维护部件,而前述步骤可以委托给相同或者不同位置处的摄取部件。所建议的责任分离意味着摄取部件可以进行优化,以方便、快速地存储新的媒体记录,同时维护部件可以独立运行。此外,因为维护部件不受任何强制的执行时间约束,所以它可以被调度以在低计算负载期间在共享的处理资源上执行。
在本发明的第二方面中,提供了检索媒体记录的方法,该媒体记录包含与元数据相关联的媒体数据,其中该方法在搜索部件中实施,该搜索部件访问对象存储并且本地访问缓存。可以理解,本地访问在容量和/或速度方面实际上是无限的,因此不会显著增加总的执行时间。从与对象存储交换数据意味着成本、延迟或者某种程度的拥塞的意义上来说,对对象存储的访问可能更受限制,远程访问或者联网访问有时会出现这种情况。
根据该第二方面的方法包括:接收搜索查询;基于对象存储中的一个或多个索引对象,识别与搜索查询匹配的匹配媒体记录,其中索引对象中的至少一个引用多个媒体记录,并且为每个媒体记录存储记录标识符ID和媒体记录的元数据的散列;确定匹配媒体记录的散列是否与缓存中的任何元数据(即与一个媒体记录的元数据相对应的任何元数据项)的散列一致。下一步骤取决于确定的结果。在一致的情况下,从缓存中获取匹配媒体记录的元数据。在不一致的情况下,从对象存储中检索匹配媒体记录的属性对象,并且从检索的属性对象中获取匹配媒体记录的元数据。无论发现散列一致还是不一致,从对象存储中检索匹配媒体记录的一个或多个数据对象。
因为索引对象中的至少一些各自引用多个媒体记录(例如,作为串接的结果),所以可以通过检查有限数量的索引对象来执行识别步骤。由于索引对象保存媒体记录的元数据的散列,因此方便地避免为了检索属性对象而对对象存储进行不必要调用。
在本发明的第三方面中,提供了对存储多个媒体记录的对象存储执行维护的方法,每个媒体记录包含与元数据相关联的媒体数据,对象存储包含一个或多个索引对象,其中每个索引对象引用至少一个媒体记录,并且为媒体记录存储记录标识符ID和媒体记录的元数据的散列。该方法包括:在对象存储中定位引用具有被包含在共同的时间段中的相应记录间隔的媒体记录的两个或更多个索引对象;以及串接索引对象。
两个或更多个索引对象的串接将趋于减少对象存储中索引对象的总数。相应地,这限制了在执行对媒体记录的穷举搜索时需要检查的索引对象的数量。可以理解,权利要求意义上的“时间段”比“记录间隔”更长;虽然“记录间隔”可以表示用于管理记录的合适的粒度(例如,分钟、小时),但是“时间段”可以与适用于管理清理过时媒体记录的批次的粒度(例如,小时、天、周)相对应。因此,要串接的索引对象应当属于共同的时间段(例如,相同的记录日期)的条件将确保没有索引对象引用来自两个不同时间段(例如,不同的日期)的记录,使得可以在没有复杂度的情况下,实现从特定日期开始的所有媒体记录的期望清除。
本发明的第四方面涉及包括被配置成执行存储方法的摄取部件和维护部件的系统。
本发明的第五方面涉及包括被配置成执行检索方法的搜索部件的系统。
本发明的第六方面涉及包括被配置成执行维护方法的维护部件的系统。
本发明的第七方面涉及包括被配置成执行除了串接步骤之外的存储方法的摄取部件的系统。
本发明进一步涉及包含指令的计算机程序,该指令用于使计算机或者具体是上述摄取、维护和/或搜索部件来执行上述方法或者方法步骤。计算机程序可以存储或者分布在数据载体上。如本文所使用的“数据载体”可以是诸如调制电磁波或者光波的暂时性的数据载体,或者是非暂时性的数据载体。非暂时性数据载体包括易失性和非易失性存储器,诸如磁性、光学或者固态类型的永久和非永久存储介质。这种存储器可以是固定安装的或者便携式的,仍然在“数据载体”的范围内。
根据本发明的系统和计算机程序通常共享以上概述的第一方面、第二方面和第三方面的效果和优点,并且它们可以用相应程度的技术变型来实施。
通常,权利要求中使用的所有术语将根据它们在技术领域中的普通含义来解释,除非本文中另有明确定义。所有对“一/一个/该元件、装置、部件、手段、步骤等”的引用应当被开放式地解释为指代元件、装置、部件、手段、步骤等的至少一个实例,除非另有明确说明。本文中公开的任何方法的步骤不必按照所描述的确切顺序来执行,除非明确说明。
附图说明
现在参考附图,通过示例的方式来描述各方面和实施例,在附图中:
图1示出了根据本发明的实施例的具有用于在对象存储中存储和检索媒体记录的部件以及用于对对象存储执行维护的另一部件的系统;
图2至图4是根据本发明的实施例的方法的流程图;以及
图5和图6示出了用于在对象存储中存储和检索媒体记录的示例索引对象。
具体实施方式
现在将在下文中参考附图更全面地描述本公开的方面,在附图中示出了本发明的某些实施例。然而,这些方面可以以多种不同的形式体现,并且不应当被解释为限制性的;相反,这些实施例是以示例的方式提供的,使得本公开将是彻底和完整的,并且将本发明的所有方面的范围完全传达给本领域技术人员。在整个描述中,相同的标记指代相同的元件。
图1示出了具有用于在对象存储123中存储和检索媒体记录150的部件100、110、120、130、190以及用于对对象存储123执行维护的另一部件的系统。媒体记录150由媒体数据151和元数据152组成,其中元数据152包括技术或管理性质的信息,其不一定在媒体记录150的回放期间被呈现给用户但可以在数量上和质量上影响该呈现如何执行。元数据152也可以用于媒体数据151的指定编码格式无法吸收的附加内容相关数据。媒体记录150可以进一步利用记录间隔153和记录源154来注释。参考参考时钟(例如,网络时间GMT),记录间隔153指示媒体记录150的获取何时开始和结束。记录间隔153例如可以表示为{开始,结束}、{开始,持续时间}或{持续时间,结束},其中条目开始和结束指代所述参考时钟。在理解记录源154在给定时间点生成至多一个媒体记录150的情况下,记录间隔153和记录源154的组合可以用作搜索查询以识别相关的媒体记录150。
在图1所示的示例中,媒体记录150是视频记录,其中媒体数据151和元数据152包括与视频元数据相关联的视频数据。图1中图示出适用于获取这种视频记录的摄像机130。摄像机130可以是数字摄像机、数字监控摄像机或数字监视相机。元数据152可以涉及视频记录的技术属性,诸如分辨率、每秒帧数、编码格式等。可以依靠元数据来正确并有效地呈现(回放)视频记录。
摄取部件190被配置成将媒体记录作为数据对象160、属性对象170和索引对象180存储在对象存储123中。在一些实施例中,数据对象160、属性对象170和索引对象180可以是为其配置对象存储123的同一对象类型的实例。在其他实施例中,数据对象160、属性对象170和索引对象180与两个或更多个不同的对象类型(例如,在它们指定的有效载荷大小或关联操作方面不同)相对应。
搜索部件110被配置成处理搜索查询并基于此来检索相关媒体记录150。为此,搜索部件110包括处理电路112和作为缓存111的存储器。处理电路112可以是具有一个或多个处理器核的本地电路或分布式电路。对缓存111的访问是本地的,因为不应用可感知的速度、成本或容量约束。
系统进一步包括存储部件120(或者服务器),该存储部件包括存储器121和处理电路122并且实现对象存储123。对象存储123可操作以从摄取部件190接受数据。对象存储123进一步可操作以接受并处理来自搜索部件110的搜索请求,并且作为响应而传输搜索结果。搜索部件110还可以从对象存储123中检索对象,即,将它们从存储部件120传输到搜索部件110。如图1中的中间通信网络140所建议的,当搜索部件110远程访问对象存储123时,这些部件之间的调用数量和通信量可能导致在延迟、对网络拥塞的边际贡献和/或处理工作方面的成本。在本公开中,对象存储123是根据对象存储架构的存储技术的实例(仓库)。可选地,对象存储123可以符合诸如由信息技术标准国际委员会发布的INCITS 458-2011(信息技术-基于SCSI对象的存储装置命令-2;OSD-2)和INCITS 400-2004(信息技术-基于SCSI对象的存储装置命令;OSD)等标准。亚马逊简单存储服务TM(亚马逊S3)和微软Azure Blob存储TM是基于云的对象存储服务的示例。
进一步提供了用于对对象存储123执行维护(包括索引对象串接)的维护部件124。维护部件124可以与存储部件120内部或外部的专用硬件(未示出)相对应,或者它可以被实现为在存储部件120的处理电路122上或者存储部件120外部的处理电路122上执行的软件代码。维护部件124可以可选地进一步具有与检查当前存储在对象存储123中的数据结构以及与这些数据结构中的故障的预防、发现和纠正有关的进一步职责。应当理解,实现有对象存储123的存储器驱动器的低层方面可以受到单独的维护。
所描述的系统部件可以在运行时在它们之间交换数据、消息和/或指令。部件不需要处于共同的控制或者所有关系之下;例如,对象存储123可以由与提供媒体记录150的组织(例如,安全公司)不同的组织(例如,云服务提供商)托管,而提供媒体记录的组织又与通常搜索和观看媒体记录150的一方(例如,安全公司的客户)不同。因此,也没有必要将部件放置在彼此物理接近的位置。为了说明实施者在本地和分布式部署之间的灵活选择,图1示出了一些成对部件经由通信网络140(或者多个通信网络140)连接,其中每种网络可以是局域网或广域网,而其他部件具有直接连接。
在一些实施例中,媒体记录150的源(例如,摄像机130,可选地配备有后处理部件)与存储部件120和维护部件124位于同一位置。摄取部件190可以与存储部件120位于同一位置或者在存储部件120中实施,或者摄取部件190可以是独立的部件。搜索部件110(例如,API)可以与存储部件120位于同一位置,或者搜索部件120可以是独立的部件。在一些实施例中,用户(例如,人类用户、软件应用、连接客户端计算机)直接访问搜索部件110;在其他实施例中,如图1中所示,用户经由在用户侧部件100上执行的用户界面101(例如,web界面)与搜索部件110交互。这是有利的,因为一方面,存储部件120和搜索部件110之间的通信量通常将大于搜索部件110和用户侧部件100之间的通信量,另一方面,搜索部件110可以被布置成更接近存储部件120。
图2是用于存储媒体记录150的方法200的流程图,现在将继续参考图1来描述该方法。方法200的步骤可以以不同的方式分配。在一个实施例中,所有步骤由同一部件执行。在另一实施例中,分配210、存储212、214、218和计算216步骤在第一部件(例如,图1中的摄取部件190)处执行,而串接步骤220在独立的第二部件(例如,维护部件124)处执行。该另一实施例可以加速存储操作和/或可以有助于更经济的实现,其中处理的主要部分被推迟到总处理负载较低的时段。在又一实施例中,初始步骤210、212、214、216、218如图2中所示,但是串接步骤220被替换为发起串接的步骤,并且方法200完全由同一部件执行。发起串接可以包括向维护部件124发出命令或者将存储在对象存储124中的数据留在向维护部件124指示应当执行串接的条件下。指示可以是隐式的,例如,维护部件124可以被配置成在对象存储123中寻找低于阈值大小的索引对象180,或者周期性地对低于阈值大小的索引对象180的总数进行计数。无论哪种方式,摄取部件190对新索引对象180的创建将被维护部件124注意到,并且因此,可以被理解为发起串接。该指示也可以是明确的,例如,索引对象携带表示“还没有被串接”的标志。
在方法200的第一步骤210中,记录标识符(ID)被分配给媒体记录150。如图1、图5和图6中的示例ID9874、ID9875、ID9876所建议的,记录ID可以是诸如具有合适长度的序列号的任意数字或字母数字串。优选地,只要媒体记录150存储在对象存储124中,记录ID对于媒体记录150就是唯一的。被删除的过时媒体记录150的记录ID可以被重新分配给新媒体记录150。注意,记录ID独立于对象存储123可能分配给每个存储对象的任何对象标识符。
在第二步骤212中,媒体记录150的媒体数据151被存储在对象存储123中的一个或多个数据对象160中,其中每个数据对象160携带记录ID。记录ID可以被包括在数据对象160的对象标识符中或者对象元数据项中。在功能上,记录ID由数据对象160以对象存储123允许有效检索(例如,通过专用请求)具有指定记录ID的所有数据对象160的方式携带。数据对象160可以用于仅存储媒体数据151,或者它可以包含除媒体数据151之外的数据。在一些实施例中,数据对象160可以例如在以预定义时间间隔产生媒体记录150时或当媒体数据缓存超过预定义水平时逐渐地存储在对象存储123中。在其他实施例中,直到媒体记录150完成才执行方法200。在这种情况下,要使用的数据对象160的数量可以由对象存储123中对象的最大允许大小来确定。
在方法200的第三步骤214中,媒体记录150的元数据152被存储在属性对象170中。一个媒体记录150的元数据152在本公开中有时被称为“元数据项”。如在第二步骤212下所解释的,属性对象170以对象存储123允许有效检索具有指定记录ID的属性对象170的方式携带记录ID。步骤214可以包括形成214.1新的属性对象170并将元数据152存储在其中。可替换地,元数据152可以存储在现有的元数据对象152中,其被修改(编辑)214.2。进一步可替换地,包含一个或多个先前存储的媒体记录的元数据的现有属性对象170被替换为新的属性对象170,新的属性对象170包含先前存储的媒体记录的元数据以及正在执行方法200的媒体记录150的元数据。特别是如果元数据152在步骤214之后不期望改变,优选的选项是将元数据152存储在新形成214.1的属性对象170中,由此对象存储123中的每个属性对象170仅包含单个媒体记录150的元数据152。
在第四步骤216中,计算元数据152的散列171。这包括通过散列函数h映射元数据152。散列函数或者单向函数应当是预定义的(例如,它应当是可再现的),使得散列可以在搜索部件110处被重新生成。散列函数可以是加密或者非加密散列函数,诸如SHA-256、SHA3-512和RSA-1024。因为散列函数在方法200内不用于与安全相关的目的,所以可以采用相对简单的散列函数,只要冲突概率小到可以接受的程度。散列冲突可能导致搜索部件110错误地依赖于缓存的元数据项,但是不会将元数据暴露给未授权方。
在不同的实施例中,步骤216可以包括对整个元数据152进行散列或者对根据预定义确定性规则提取的元数据152的子集进行散列。散列171可以基于元数据152和密码盐(cryptographic salt)的组合。无论这些选择如何,元数据152的散列171独立于记录ID是有利的,即记录ID优选地不应当形成散列函数h的输入数据的一部分。这样,当散列指示该元数据与较早媒体记录150的元数据一致时,搜索部件110将能够放弃从对象存储123检索较晚媒体记录的元数据。
在方法200的第五步骤218中,散列171、记录ID以及媒体记录150的记录间隔153和记录源154的指示被存储在对象存储123中的索引对象180中。在第五步骤218之后,方法200的执行将生成如图1所示的数据对象160、属性对象170和索引对象180。更准确地,散列171、记录ID以及记录间隔153和记录源154的指示可以被存储在:
-新形成218.1的索引对象180-2中(参见图6B,其中ID9876是待存储的媒体记录150的记录ID),
-修改218.2的索引对象180-1中(参见图5B,其示出了将媒体记录ID9876的信息附加到图5A中所示的索引对象180-1的可能结果),或者
-替代索引对象中,信息被附加到该替代索引对象,并且该替代索引对象替换218.3对象存储123中现有的先前存储的索引对象。
为了说明的目的,在该示例中假设散列171、记录ID以及记录间隔153和记录源154的指示存储在新形成的索引对象180-2中。在这种情况下,新形成的索引对象180-2可以可选地携带记录ID(即,除了包含记录ID之外)。如果索引对象180携带记录ID,则通过向对象存储123发出单个列表操作,将有可能方便地列出多个索引对象。否则,如果索引对象180不携带记录ID,则可能需要与索引对象相同数量的检索操作(例如,get)以读取相应的记录ID。
然后,在方法220的第六步骤220中,新形成的索引对象180-2与现有的索引对象180-1串接。为了说明,图6A、图6B和图6C示出了在三个连续时间点处对象存储123的内容的子集。该内容包括现有的索引对象180-1,其保存媒体记录ID9874和ID9875的信息;新形成的索引对象180-2,其保存要通过执行存储方法200来存储的媒体记录ID9876的信息;以及由现有的和新形成的索引对象180-1、180-2的串接得到的索引对象180-3。因为串接得到的索引对象180-3包含所有三个媒体记录ID9874、ID9875、ID9876的信息,所以搜索部件110将能够通过少检查一个索引对象来穷举地评估搜索查询。作为存储较早媒体记录150的结果,现有索引对象180-1可能已经被存储在对象存储123中。在方法200的具体实施例中,第六步骤220以预定义间隔(例如,每n分钟、每n小时、在每个工作日结束时)和/或当可承担的处理资源可用时执行。第六步骤220可以被配置成使得两个索引对象只要引用媒体记录150就会被串接,该媒体记录150的记录间隔153被包含在共同的时间段中。这样,在第六步骤220已经被执行足够多次之后,单个索引对象180将引用来自该时间段的所有媒体记录150,这简化了后续搜索。回顾“时间段”(例如,小时、天、周)优选地被配置成比典型的“记录间隔”(例如,分钟、小时)更长。两个索引对象IO1、IO2的串接可以包括
-将IO1的内容附加到IO2,并从对象存储123中删除IO1,
-将IO2的内容附加到IO1,并从对象存储123中删除IO2,或者
-形成新的索引对象IO3,其保存IO1和IO2的组合内容并替换对象存储123中的IO1和IO2。
如最初所声明的,并且如本领域技术人员在研究本公开之后可以认识到的,方法200可以利用不同的步骤顺序来执行。例如,步骤218可以在步骤214之前执行,并且步骤216可以在步骤214之前执行。
参见图3,现在将描述用于检索媒体记录150的方法300。方法300适用于由搜索部件110执行,搜索部件110可以访问对象存储123并且可以本地访问缓存111。方法300可以在缓存111包含多个媒体记录150的元数据152的时间点执行。缓存中的元数据152可以是对象存储123中的属性对象170的元数据项的副本,例如,作为较早搜索的副产物或者作为对象存储123中所有元数据152的快照的专用存储的结果。在不同的实施例中,缓存111可以保存自由元数据项或者包含这种元数据项的属性对象170。
在方法300的第一步骤310中,接收搜索查询。搜索部件110可以从用户(例如,人类用户、软件应用或者连接客户端计算机)接收搜索查询。搜索查询的允许格式可以在不同的实施例之间变化,特别是作为对象存储123支持的搜索请求的结果。例如,搜索查询可以引用记录间隔、记录源的标识符或其他属性和/或记录ID。因为媒体记录150的元数据152存储在对象存储123中的索引对象180之外,所以在该示例中不可能处理根据元数据152制定的搜索查询。
如果对象存储123能够处理搜索请求以(例如,通过它们的对象ID)识别所有索引对象180(索引对象180引用由记录源154获取的具有搜索请求指定的属性和/或在与搜索请求指定的间隔重叠的记录间隔153中获取的媒体记录150),则可以评估搜索查询,而无需检索对象存储123中的属性对象180(即,无需将属性对象180传送给搜索部件110)。这表示执行流程直接前进到识别匹配媒体记录150的步骤314,其中识别314是基于由对象存储123保存的索引对象来执行的。在适用于缺乏这种搜索能力的对象存储123的可替换实施例中,方法300包括检索312索引对象180(例如,将索引对象180传输到搜索部件110可以本地访问的存储器),在此之后基于检索到的索引对象180执行匹配媒体记录150的识别314。无论哪种方式,在步骤314中要识别的匹配媒体记录150使得它匹配搜索查询。
鉴于存储方法200的前述讨论,可以理解,索引对象180中的至少一个引用多个媒体记录150,这可能是串接220的结果。索引对象180为每个媒体记录150存储媒体记录150的元数据152的记录ID和散列171。可选地,索引对象180进一步为每个媒体记录150存储记录间隔153和记录源154的指示。
在检索方法300的下一步骤316中,确定匹配媒体记录150的散列171(即匹配媒体记录150的元数据152的散列)是否与缓存111中的任何元数据152(任何元数据项)的散列171一致。当元数据项被存储到缓存111中时,缓存111中的元数据项的散列171可能已经被计算,并且使用与存储方法200中使用的散列函数相同的散列函数h。如果散列一致(例如,它们的值相同;从框316的“是”分支),则元数据152可以通过本地访问缓存的属性对象170来方便地获取320.1。如果散列不一致(从框316的“否”分支),则从对象存储123中检索318对应的属性对象170,并且从检索的属性对象170中获取320.2元数据152。在搜索部件110具有对对象存储123的非本地访问的系统中,这种检索318可能导致在延迟、对网络拥塞的边际贡献和/或处理工作方面的成本。
无论通过哪个选项获取320元数据152,元数据152可以与从其接收搜索查询的用户共享310。可选地,方法300的后续步骤322、324可以是有条件的,因为它们仅在用户有机会检查元数据152之后批准时才执行。
在方法300的下一步骤322中,从对象存储123中检索匹配媒体记录150的数据对象160。此时,可以组合媒体数据151和元数据152,使得恢复媒体记录150。这样,媒体记录150变得可用于诸如回放324的各种目的。可以使用回放应用或者回放装置(未示出)并根据元数据152来执行回放324。
在一些实施例中,属性对象170的检索318和/或一个或多个数据对象160的检索322包括使用匹配媒体记录150的记录ID向对象存储123发出请求。如上所解释,由于属性对象170和数据对象160携带记录ID,因此这种请求可以以相对低的成本执行。
在方法300的进一步开发中,检索匹配媒体记录150的属性对象170的步骤318包括将检索到的属性对象170存储在缓存111中。以这种方式,属性对象170的相对昂贵的检索318不仅有益于当前的搜索,而且有益于匹配媒体记录150相同或者具有相同元数据152的任何潜在的后续搜索。
注意,元数据散列216是存储方法200的非必要步骤。在存储方法200不包括步骤216的实施例中,随后的步骤218将包括在索引对象180中仅存储记录ID、记录间隔153和记录源154。相应地,检索方法300可以被修改,使得确定316被省略,并且执行流程直接从步骤314进行到步骤318和320.2,即始终从对象存储123中检索属性对象170。
参考图4,进一步提供了对用于存储多个所描述类型的媒体记录150的对象存储123执行维护的方法400。因此,维护方法400适用于在对象存储123保存一个或多个索引对象180时执行,其中每个索引对象180引用至少一个媒体记录150,并且为媒体记录150存储媒体记录150的元数据152的记录ID和散列171。
维护方法400开始于定位引用媒体记录150的两个或更多个索引对象180的步骤410,对于媒体记录150,相应的记录间隔153被包含在共同的时间段中。回顾“时间段”(例如,小时、天、周)优选地被配置成比典型的“记录间隔”(例如,分钟、小时)更长。
如果在对象存储123中找到这种索引对象180,则方法400将包括将索引对象180串接成较小数量的索引对象180,优选地是单个索引对象。图6B和图6C图示出对象存储123的内容如何由于串接而改变。参考可以类似地执行的存储方法200的步骤220的上述讨论。
如上所提及,维护方法400可以以低优先级执行,例如,作为后台进程执行,除非存在加速串接进程的特定原因。方法400的实施例可以包括对其上实施有对象存储123的存储器驱动器的低层方面执行维护,或者注意当前存储在对象存储123中的数据结构的检查以及这些数据结构中的故障的预防、发现和纠正。
上文已经参考几个实施例主要描述了本公开的各方面。然而,如本领域技术人员容易理解的,在由所附专利权利要求限定的本发明的范围内,除了上文公开的实施例之外的其他实施例同样是可能的。
Claims (16)
1.一种存储媒体记录的方法,所述媒体记录包含与元数据相关联的媒体数据,所述方法包括:
在摄取部件处:
将记录标识符ID分配给所述媒体记录;
根据对象存储架构将所述媒体数据存储在对象存储中的一个或多个数据对象中,其中,每个数据对象携带所述记录ID;
将所述元数据存储在所述对象存储的属性对象中,其中,所述属性对象携带所述记录ID;
使用预定义散列函数计算所述元数据的散列;
将所述媒体记录的所述散列、所述记录ID、记录间隔和记录源存储在所述对象存储的索引对象中;以及
在维护部件处:
将所述索引对象与现有索引对象进行串接。
2.根据权利要求1所述的方法,其中,所述现有索引对象引用具有被包含在与待存储的所述媒体记录相同的时间段中的记录间隔的至少一个媒体记录。
3.根据权利要求1所述的方法,进一步包括形成新的索引对象,在所述新的索引对象中存储所述散列(171)、记录ID、记录间隔和记录源。
4.根据权利要求1所述的方法,其中,所述元数据的所述散列独立于所述记录ID。
5.根据权利要求1所述的方法,其中,所述元数据的所述存储包括形成新的属性对象。
6.一种在检索媒体记录的搜索部件中的方法,所述媒体记录包含与元数据相关联的媒体数据,其中,所述方法在搜索部件中实现,所述搜索部件本地访问缓存并且根据对象存储架构访问对象存储,所述方法包括:
接收搜索查询;
基于所述对象存储中的一个或多个索引对象,识别与所述搜索查询相匹配的匹配媒体记录,其中,所述索引对象中的至少一个引用多个媒体记录并且为每个媒体记录存储记录标识符ID和所述媒体记录的所述元数据的散列;
确定所述匹配媒体记录的散列是否与所述缓存中的任何元数据的散列一致,所述散列中的每一个由预定义散列函数计算;
在一致的情况下,从所述缓存中获取所述匹配媒体记录的元数据;
在不一致的情况下,从所述对象存储中检索所述匹配媒体记录的属性对象,并且从所检索的属性对象中获取所述匹配媒体记录的元数据;以及
从所述对象存储中检索所述匹配媒体记录的一个或多个数据对象。
7.根据权利要求6所述的方法,进一步包括:将所检索的属性对象存储在所述缓存中。
8.根据权利要求6所述的方法,其中:
对于每个媒体记录,所述索引对象进一步包含记录间隔和记录源;并且
所述搜索查询指定记录时间和/或记录源。
9.根据权利要求6所述的方法,其中,引用多个媒体记录的所述至少一个索引对象由一个或多个索引对象的串接形成。
10.根据权利要求6所述的方法,进一步包括:从所述对象存储中检索所述一个或多个索引对象。
11.根据权利要求6所述的方法,其中,所述媒体记录是包含与视频元数据相关联的视频数据的视频记录。
12.一种根据用于存储多个媒体记录的对象存储架构对对象存储执行维护的方法,每个媒体记录包含与元数据相关联的媒体数据,
所述对象存储包含一个或多个索引对象,其中,每个索引对象引用至少一个媒体记录并且为所述媒体记录存储记录标识符ID和所述媒体记录的所述元数据的散列,所述散列由预定义散列函数计算,
所述方法包括:
在所述对象存储中定位引用具有被包含在共同的时间段中的相应记录间隔的媒体记录的两个或更多个索引对象;以及
串接所述索引对象。
13.根据权利要求8或者11所述的方法,其中,所述媒体记录是包含与视频元数据相关联的视频数据的视频记录。
14.一种被配置成存储媒体记录的系统,所述系统包括被配置成执行根据权利要求1所述的方法的摄取部件和维护部件。
15.一种被配置成检索媒体记录的系统,所述系统包括搜索部件,所述搜索部件本地访问缓存并且根据对象存储架构访问对象存储,所述部件被配置成执行根据权利要求6所述的方法。
16.一种被配置成根据对象存储架构实现对象存储的系统,所述系统包括被配置成对对象存储执行维护的维护部件,所述部件被配置成执行根据权利要求11所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21213211.2A EP4195068B1 (en) | 2021-12-08 | 2021-12-08 | Storing and retrieving media recordings in an object store |
EP21213211.2 | 2021-12-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116244475A true CN116244475A (zh) | 2023-06-09 |
Family
ID=78827830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211541170.1A Pending CN116244475A (zh) | 2021-12-08 | 2022-12-02 | 在对象存储中存储和检索媒体记录 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12019677B2 (zh) |
EP (1) | EP4195068B1 (zh) |
JP (1) | JP2023085225A (zh) |
KR (1) | KR20230086580A (zh) |
CN (1) | CN116244475A (zh) |
TW (1) | TW202340973A (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457676B1 (en) * | 2000-06-14 | 2008-11-25 | Marvell International Ltd. | Vehicle for recording and reproducing digital data |
JP2004192071A (ja) | 2002-12-06 | 2004-07-08 | Fujitsu Ltd | コンテンツデータベース、検索方法、検索プログラムおよび検索装置 |
US20050147247A1 (en) * | 2003-11-14 | 2005-07-07 | Westberg Thomas E. | Interactive television systems having POD modules and methods for use in the same |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
US9197736B2 (en) * | 2009-12-31 | 2015-11-24 | Digimarc Corporation | Intuitive computing methods and systems |
US10210191B2 (en) | 2014-03-20 | 2019-02-19 | International Business Machines Corporation | Accelerated access to objects in an object store implemented utilizing a file storage system |
WO2017040392A1 (en) * | 2015-08-31 | 2017-03-09 | David Sharp | Crowd sourced indexing and/or searching of content |
US10599613B2 (en) | 2017-10-19 | 2020-03-24 | International Business Machines Corporation | Index management in storage system |
US11468059B2 (en) | 2018-10-06 | 2022-10-11 | Teradata Us, Inc. | Point in time consistent materialization for object storage environments |
US20210064259A1 (en) | 2019-08-27 | 2021-03-04 | Hewlett Packard Enterprise Development Lp | Managing data objects |
-
2021
- 2021-12-08 EP EP21213211.2A patent/EP4195068B1/en active Active
-
2022
- 2022-11-11 KR KR1020220150311A patent/KR20230086580A/ko not_active Application Discontinuation
- 2022-11-24 TW TW111144985A patent/TW202340973A/zh unknown
- 2022-12-01 JP JP2022192711A patent/JP2023085225A/ja active Pending
- 2022-12-02 US US18/074,064 patent/US12019677B2/en active Active
- 2022-12-02 CN CN202211541170.1A patent/CN116244475A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US12019677B2 (en) | 2024-06-25 |
TW202340973A (zh) | 2023-10-16 |
EP4195068A1 (en) | 2023-06-14 |
EP4195068B1 (en) | 2023-11-15 |
EP4195068C0 (en) | 2023-11-15 |
US20230177081A1 (en) | 2023-06-08 |
KR20230086580A (ko) | 2023-06-15 |
JP2023085225A (ja) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792340B2 (en) | Identifying data items | |
US8176061B2 (en) | Tracking digital assets on a distributed network | |
US9055063B2 (en) | Managing shared content with a content management system | |
US20140143446A1 (en) | Data transport by named content synchronization | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
CN107092686B (zh) | 一种基于云存储平台的文件管理方法及装置 | |
US20200117543A1 (en) | Method, electronic device and computer readable storage medium for data backup and recovery | |
JP2000003321A (ja) | 高性能なメッセ―ジ格納構造 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
WO2021237467A1 (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
US20140358868A1 (en) | Life cycle management of metadata | |
US11847204B2 (en) | Systems and methods for cloud-based management of digital forensic evidence | |
US9870422B2 (en) | Natural language search | |
CN112748866B (zh) | 一种增量索引数据的处理方法和装置 | |
US8316008B1 (en) | Fast file attribute search | |
CN115757280A (zh) | 一种基于分布式文档存储的云文档管理系统 | |
CN116244475A (zh) | 在对象存储中存储和检索媒体记录 | |
US9286305B2 (en) | Virtual storage gate system | |
CN111966533B (zh) | 电子文件管理方法、装置、计算机设备和存储介质 | |
CN111061888B (zh) | 图像获取的方法及系统 | |
CN111104787B (zh) | 用于比较文件的方法、设备和计算机程序产品 | |
CN113609076B (zh) | 一种文件存储方法和文件读取方法 | |
CN113190507B (zh) | 一种索引信息同步方法、装置及电子设备 | |
US12039066B1 (en) | Storage agnostic large scale permissions and access analytics |
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 |