CN104981802A - 针对对象存储器索引系统的内容类别 - Google Patents
针对对象存储器索引系统的内容类别 Download PDFInfo
- Publication number
- CN104981802A CN104981802A CN201380072463.2A CN201380072463A CN104981802A CN 104981802 A CN104981802 A CN 104981802A CN 201380072463 A CN201380072463 A CN 201380072463A CN 104981802 A CN104981802 A CN 104981802A
- Authority
- CN
- China
- Prior art keywords
- contents attribute
- content
- metadata
- index
- contents
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
-
- 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/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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/289—Object oriented 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; 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/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储系统包括控制器;存储器;以及一个或多个对象,每一对象包括内容数据和元数据。元数据用于构造用户定义的内容属性,每一内容属性提供用以通过参考内容属性的用户定义的内容属性名称从对象提取特定的元数据字段的能力。内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性分组成在用户定义的内容类别名称下的被命名的类别中。控制器可操作成索引内容类别的内容属性以创建索引。通过内容属性名称识别被索引的内容属性。在一些实施例中,控制器可操作成通过将被不同表达的值指向在相同的内容属性名称之下的相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复的索引。
Description
背景技术
本发明总体上涉及存储系统,尤其涉及针对诸如复制对象存储系统之类的存储系统中的对象使用内容类别来向非结构化内容及其元数据提供结构。
对象存储系统可以包含各种各样的非结构化内容。该非结构化内容还可以包含有助于进一步描述内容的关联的元数据。利用上述各种各样的内容和关联的元数据,提供允许对上述内容进行索引且针对该索引不占用较大百分比的存储器资源的通用机制变得困难。
发明内容
本发明的示例性实施例提供了一种机制,该机制用于定义将向一对象及其元数据的非结构化内容构造结构的蓝图。该机制被称为“内容类别”。这些类别由一组用户定义的“内容属性”组成。每一属性提供了用于从目标(例如,任何定制的元数据XML标签)提取特定元数据字段的能力,利用强类型使用用户定义的名称对其高效地索引,并通过用户接口和程序化的查询接口使得该字段多维度可查询。
根据本发明的一方面,一种存储系统包括控制器;存储器;以及一个或多个对象,每一对象包括内容数据和元数据。元数据用于构造多个用户定义的内容属性,每一内容属性提供了通过参考用户定义的内容属性的内容属性名称来从一个或多个对象提取特定元数据字段的能力。内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性分组成在用户定义的内容类别名称下的被命名的类别。控制器可操作成对内容类别的内容属性进行索引以创建索引。通过内容属性名称来识别被索引的内容属性。
在一些实施例中,控制器可操作成通过将被不同表达的值指向相同内容属性名称下相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复索引。除了用于指定内容属性名称的名称字段之外,每一内容属性包括如下中的至少一个:用于识别内容属性的值如何从元数据的内容提取的表达字段;用于指定内容属性的值的数据类型的数据类型字段;用于指定针对数字和日期数据类型的格式的格式字段;或用于指定内容属性中指定的表达是否能够评估相同元数据内容中的多个值的多值字段。控制器可操作成使用内容属性的索引来搜索一个或多个对象的内容。内容数据和元数据用于构造多个用户定义的内容属性。
本发明的另一方面针对用于在具有多个节点的存储系统中索引对象的内容的装置。上述节点组成多个群组系统,每一群组系统具有多个节点。每一对象包括内容数据和元数据。元数据用于构造多个用户定义的内容属性,每一内属性提供了通过参考用户定义的内容属性的内容属性名称从对象提取特定元数据字段的能力。内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性组成在用户定义的内容类别名称下的被命名的类别。该装置包括控制器和存储器。该控制器可操作成对内容类别的内容属性索引以创建索引。通过内容属性名称来识别被索引的内容属性。
在一些实施例中,控制器可操作成通过将被不同表达的值指向在相同内容属性名称下的相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复索引。控制器可操作成使用内容属性的索引来搜索对象的内容。每一群组系统在逻辑上被划分成多个名称空间,每一名称空间包括对象集合且相对于该群组系统中的其他名称空间具有关联的私有文件系统。租户是一组名称空间。内容类别提供了从单个位置观看分组到跨租户中的名称空间的内容类别下的内容属性的内容属性配置,而不是在每一个单个名称空间处观看每一个内容属性配置的方法。
本发明的另一方面针对具有多个节点的存储系统。将上述节点分组成多个群组系统,每一个群组系统具有多个节点。每一对象包括内容数据和元数据。元数据用于构造多个用户定义的内容属性,每一内容属性提供通过参考用户定义的内容属性的内容属性名称从对象提取特定元数据字段的能力。内容属性被组织成用户定义的内容类别,每一内容类型将一组内容属性组成在用户定义的内容类别名称下的被命名的类别中。用于将对象的内容索引的方法包括将内容类别的内容属性进行索引以创建索引。通过内容属性名称识别被索引的内容属性。
由于特定实施例的具体实施方式,本发明的这些和其他特征和优势对于本领域技术人员来说将变得更加清楚。
附图说明
图1是应用本发明的方法和装置的固定内容存储器存档的简化方框图。
图2是独立节点的冗余阵列的简化表示,其中每个节点都是对称的并且支持存档群组应用(archive cluster application)。
图3是在给定节点上运行的存档群组应用的不同组件的高层表示。
图4描绘了在群组的给定节点上元数据管理系统的组件示例。
图5示出了对象的核心结构的示例。
图6示出了具有元数据和在本申请中称为注解的用户定义的元数据的多个命名的集合的系统的对象示例。
图7示出了具有多个注解和访问控制列表(ACL)的对象示例。
图8示出了用于针对对象实现对多个注解的使用的装置示例。
图9示出了内容类别定义的示例。
图10示出了在索引系统中利用内容类别的系统示例。
具体实施方式
以下将参照形成了本公开文本一部分的附图详细描述本发明,并且在其中通过例证而非限制的方法显示了可以实现本发明的示例性实施例。在附图中,贯穿多个视图,相似的数字描述基本相似的组件。另外,应当注意的是,在如以下所描述的和如在附图中所示出的,具体实施方式提供了各种示例性实施例的同时,本发明不限于本文中所描述和显示的实施例,而是可以扩展到其他实施例,如同本领域技术人员所知或将会知道的那样。在说明书中提及的“一个实施例”、“这个实施例”、或“这些实施例”意为本发明的至少一个实施例中包括结合实施例所描述的特定特征、结构或特点,并且在说明书中的不同位置出现的这些短语不必全部指代相同的实施例。此外,在以下具体实施方式中,为了提供对本发明透彻的理解,阐明了数个特定细节。然而,对于本领域普通技术人员来说,实现本发明并不完全需要这些特定细节。在其他环境下,众所周知的结构、材料、电路、过程和接口没有被详细描述,和/或可以以方框图的形式示出,以便不会不必要的模糊本发明。
此外,以下具体实施方式的一些部分被呈现为计算机内运行的算法和符号表达的形式。这些算法描述和符号表达是数据处理领域技术人员使用的手段,来最有效地将他们的创新实质传达给本领域其他技术人员。算法是导致所期望的结束状态或结果的一系列所定义的步骤。在本发明中,为了实现有形结果,所执行的步骤需要有形量的物理操纵。虽然不是必要地,但通常来说,这些量表现为能够被存储、传送、组合、比较、和其他形式操纵的电信号或磁信号。主要因为通用的原因,已经证明将这些信号指代为比特(bits)、值(values)、元素(elements)、符号(symbols)、字符(characters)、术语(terms)、数(numbers)、指令(instructions)等有时是方便的。然而,应当记住,全部这些和相似术语应当与适当的物理量相关联并且只不过是用在这些量上的方便的标签。除非特别做出与以下讨论明显相反的阐述,否则应当理解为在整篇说明书中,使用诸如“处理”、“计算”、“算出”、“确定”、“显示”等术语的讨论可以包括计算机系统或其他信息处理设备的动作和过程,他们将在计算机系统的注册表和存储器中表现为物理(电子)量的数据操纵和变换为在计算机系统存储器或注册表或其他这种信息存储器、传输或显示设备中相似地表现为物理量的其他数据。
本发明还涉及用以执行本文中操作的装置。该装置可以是为所需目的而特定构造的,或者可以包含由一个或多个计算机程序选择性触发或重新配置的一个或多个通用计算机。这种计算机程序可以被存储在计算机可读存储器介质中,例如但不限制于光盘、磁盘、只读存储器、随机存取存储器、固态设备和驱动器、或适于存储电子信息的任何其他类型的介质。本文中所呈现的算法和显示不是固有地与任何特定计算机或其他装置相关联的。根据本文中的教导,各种通用系统都可以与程序一起使用,或者可以证实构造更专业的装置来执行所期望的方法步骤是方便的。此外,本发明不参照任何特定编程语言进行描述。将会理解的是,如本文中所描述的,多种编程语言可以被用来实现发明的教导。编程语言的指令可以由一个或多个处理设备运行,例如,中央处理单元(CPU)、处理器或控制器。
如同以下将更详细描述的,本发明的示例性实施例提供了用以定义将向对象及其元数据的非结构化内容构造结构的蓝图以及以便于实现有效索引和搜索的被称为内容类别的机制的装置、方法和计算机程序。
I.固定内容分布式数据存储器
已经发展了这种需要:对于“固定内容”的高度可用、可靠和持久方式的存档存储代替或补充传统的磁带或光学存储方案。术语“固定内容”典型的是指为了参考或其他目的,希望不进行修改而保存的任何类型的数字信息。这种固定内容的示例包括电子邮件、文档、诊断图像、检测图像、声音记录、影片和视频等等,还有许多其他示例。已经出现了传统的独立节点冗余阵列(RAIN)存储手段,作为为了存储这种固定内容信息资产而产生大型在线存档的选择架构。通过允许节点按需接入或退出群组,RAIN架构将存储器群组隔离于一个或多个节点的故障。通过在多个节点上复制数据,RAIN型存档能够自动补偿节点故障或移除。典型地,RAIN系统主要被创建为从封闭系统中的相同组件设计的硬件器件。
图1显示了一个这种可扩展的基于磁盘的存档存储器管理系统。节点可以包括不同硬件,并且因此可以被认为是“异构的”(heterogeneous)。节点典型地具有至存储区域网络(SAN)中的一个或多个存储磁盘的通路,该存储磁盘可以是实际物理存储器磁盘或者虚拟存储器磁盘。在每个节点上支持的存档群组应用(并且,可选地,运行应用的下层操作系统),可以是相同的或基本上相同的。每个节点上的软件栈(可以包括操作系统)是对称的,而硬件可以是异构的。如图1所示,企业能够使用系统,产生对于许多不同类型的固定内容信息的永久存储,所述固定内容信息诸如文档、电子邮件、卫星图像、诊断图像、检测图像、声音记录、视频等等,以及其他信息。这些类型当然仅仅是示例。通过在独立服务器或者称为存储节点上复制数据,实现了高度可靠性。优选地,每个节点与其对等点(peer)对称。这样,因为优选地任何给定节点能够执行所有功能,因此任何一个节点的故障在存档的可用性上产生很少的影响。
如同在共同拥有的美国专利No.7,155,466中所描述的,已知在基于RAIN的存档系统中,并入在每个节点上运行的捕捉、保存、管理和检索数字资产的分布式软件应用。图2显示了一个这种系统。将单独存档的物理范围指代为群组(或系统)。典型地,群组不是单个设备,而是设备集。设备可以是同类的或异构的。典型的设备是运行诸如Linux操作系统的计算机或机器。托管在日常硬件上的基于Linux系统的群组提供了能够被扩展的存档,从几个存储器节点服务器扩展至存储数以千计的太字节(terabyte)数据的许多节点。这种构架保证了存储能力能够与组织结构增长的存档需求一直并驾齐驱。
在诸如以上描述的存储系统中,典型地将数据随机分布在群组上,以使得一直保护存档不发生设备故障。如果磁盘或节点故障,则群组自动在维持相同数据副本的群组中的其他节点上停止作用。该手段在数据保护的角度上运作良好的同时,为群组计算的数据丢失平均时间(MTDL)可能没有所期望的高。具体来说,MTDL典型地代表计算出的在存档将丢失数据之前的时间量。在数字存档中,不希望任何数据丢失,但是由于硬件和软件组件的特性,一直都存在这种事件发生的可能性(无论多遥远)。由于对象和它们的拷贝在存档群组中随机分布,因而MTDL可能低于需求而结束,例如,如果由于在给定节点中的给定磁盘(镜像拷贝被存储在其上)意外地发生故障,则所需的对象拷贝不可用。
如图2所示的,实现本发明的示意性群组优选地包括以下通常类型的元件:节点202、一对网络交换机204、配电单元(PDU)206、以及不中断电源(UPS)208。节点202典型地包括一个或多个日常服务器并包含CPU(例如,CPU、适当的随机存取存储器(RAM)、一个或多个硬盘驱动器(例如,标准IDE/SATA、SCSI等)、以及两个或多个网络接口(NIC)卡。典型的节点是具有2.4GHz芯片、512MB RAM以及六(6)个200GB硬盘驱动器的2U机架式单元。然而,这并不是限制。网络交换机204典型地包括能够在节点之间点对点通信的内部交换机205和允许额外的群组访问每个节点的外部交换机207。每个交换机需要足够的端口来操作群组中所有潜在的节点。以太网或GigE交换机可以被用于这个目的。使用PDU 206为所有节点和交换机供电,并且使用UPS 208保护所有节点和交换机。尽管不意为限制,但是典型的群组可以被连接到网络,诸如公共互联网、企业内部互联网、或其他广域或局域网。在示例性实施例中,在企业环境内实现群组。例如,通过在站点的集体域名系统(DNS)命名服务器中导航可以实现。例如,群组域因此可以是现有域的新的子域。在代表性的实现中,在集体DNS服务器中将子域委托给在群组自身中的命名服务器。终端用户使用任何传统的接口或访问工具访问群组。例如,这样可以在任何基于IP的协议(HTTP、FTP、NFS、AFS、SMB、网页服务等)上经由API(应用编程接口),或通过任何其他已知或以后将研发的访问方法、服务、程序或工具来实现对群组的访问。
客户端应用通过诸如标准UNIX文件协议,或HTTP API的一个或多个类型的外部网关访问群组。优选地通过虚拟文件系统来公开存档,该虚拟文件系统能够随意符合任何标准的面向UNIX文件协议的设施。这些包括NFS、FTP、SMB/CIFS等。
在一个实施例中,联网在一起(例如,经由以太网)成为群组的独立节点的冗余阵列(H-RAIN)上运行存档群组应用。给定节点的硬件可以是异构的。然而,为了得到最大可靠性,每个节点优选地运行分布式应用的实例300(可以是相同实例,或基本上相同的实例),其包括多个运行时间组件,如现在在图3中所示。这样,虽然硬件可以是异构的,但是节点上的软件栈(至少当它涉及本发明时)是相同的。这些软件组件包括网关协议层302、访问层304、文件处理和管理层306以及内核组件层308。为了说明的目的而提出“层”的名称,如同普通技术人员将领会的,可以用其他有意义的方法来体现功能的特征。可以集成或不集成一个或多个层(或其中的组件)。一些组件可以在层之间共享。
网关协议层302中的网关协议提供现有应用的透明。具体来说,网关提供诸如NFS 310和SMB/CIFS 312的本地文件服务,以及网页服务API来建立定制应用。还提供了HTTP支持314。访问层304提供对存档的访问。具体来说,根据本发明,固定内容文件系统(FCFS)316模拟本地文件系统来提供对存档对象的完全访问。FCFS给予了应用对存档内容的直接访问,如同他们是普通文件一样。优选地,存档的内容表现为其原始格式,而将元数据公开为文件。FCFS 316提供了传统观点的目录和访问权限和流程的文件级(file-level)调用,使得管理员能够以他们所熟悉的方式来规定固定内容数据。文件访问调用优选地被用户空间后台程序中断,并被路由给适当的内核元件(在层308中),其对调用应用动态地产生适当的视图。FCFS调用优选地被存档策略约束,以辅助自主的存档管理。因此,在一个示例中,管理员或应用不能删除保存期限(给定策略)仍然有效的存档对象。
访问层304优选地还包括网页用户界面(UI)318和SNMP网关320。网页用户界面318优选地实现为管理员控制台,提供对文件处理和管理层306中的管理引擎322的交互访问。管理控制台318优选地是密码保护的、提供存档的动态视图的基于网页的GUI,包括存档对象和单独节点。SNMP网关320向存储管理应用提供了对管理引擎322的轻易访问,这使得他们安全地监视和控制群组动作。管理引擎监视群组动作,包括系统和策略事件。文件处理和管理层306还包括请求管理器处理324。请求管理器324协调来自外部世界(经过访问层304)的全部请求,以及来自内核组件层308中的策略管理器326的内部请求。
除策略管理器326以外,内核组件还包括元数据管理器328和存储管理器330的一个或多个实例。元数据管理器328优选地被安装在每个节点上。共同地,元数据管理器在群组中作为分布式数据库,用于管理所有存档对象。在给定的节点上,元数据管理器328管理存档对象的子集,其中优选地,每个对象在外部文件(“EF”,为了存储而进入存档的数据)和存档数据物理所在的内部文件(每个都是“IF”)组之间映射。相同的元数据管理器328还管理从其他节点上复制的存档对象组。这样,每个外部文件的当前状态对于数个节点上的多个元数据管理器一直都是可用的。如果发生节点故障,则其他节点上的元数据管理器继续提供对先前由故障节点管理的数据的访问。存储管理器330提供了文件系统层,对于分布式应用中的所有其他组件都可用。优选地,它将数据对象存储在节点的本地文件系统中。在给定节点中的每个驱动器优选地具有其自己的存储管理器。这使得节点可以移除单个驱动器并且优化吞吐量。存储管理器330还提供系统信息、数据的完整性检查,以及能够直接遍历本地结构的能力。
如图3中还示出了,通过通信中间件层332和DNS管理器334,群组管理内部和外部通信。设施332是高效和可靠的基于消息的中间件层,其使能存档组件间的通信。在所示实施例中,层支持多点传送和点对点通信。DNS管理器334运行将所有节点连接至企业服务器的分布式命名服务。优选地,DNS管理器(单独或者与DNS服务相结合)在所有节点上加载平衡请求,以确保最大的群组吞吐量和可用性。
在所示实施例中,应用实例在基本操作系统336上运行,诸如Linux等。通信中间件是任何方便的分布式通信机制。其他组件可以包括FUSE(USErspace中的文件系统),其可以被用于固定内容文件系统(FCFS)316。NFS网关310可以由标准nfsd Linux Kernel NFS驱动来实现。每个节点中的数据库可以被实现,其是对象关系型数据库管理系统(ORDBMS)。节点可以包括网页服务器,诸如Jetty,其是Java HTTP服务器和小服务程序容器。当然,以上机制仅仅是说明性的。
给定节点上的存储管理器330负责管理物理存储设备。优选地,每个存储管理器实例负责单个根目录,在单个根目录中所有文件根据其放置算法被放置。可以在节点上同时运行多个存储管理器实例,并且每个存储管理器实例通常代表系统中不同的物理磁盘。存储管理器提取在系统的其余部分中使用的驱动器和接口技术。当存储管理器实例被请求以写入文件时,它生成其负责的用以表达的完全路径和文件名。在代表性的实施例中,存储在存储管理器上的每个对象被接收为原始数据而被存储,存储管理器随后在存储数据时将其自己的元数据添加到文件,以寻迹不同类型信息。例如,元数据包括:EF长度(外部文件长度字节)、IF段尺寸(该片内部文件的尺寸)、EF保护表达(EF保护模式)、IF保护作用(该内部文件的表达)、EF创建时间戳(外部文件时间戳)、签名(写入(PUT)时内部文件的签名,其包括签名类型)、以及EF文件名(外部文件的文件名)。与内部文件数据一起存储该附加元数据提供了额外程度的保护。具体来说,清除(scavenging)能够通过内部文件存储的元数据在数据库中创建外部文件记录。其他策略可以验证内部文件哈希相对于内部文件以确认内部文件保持完好。
内部文件可以是数据“组块(chunk)”,代表在存档对象中的原始“文件”的一部分,并且他们可以被放置在不同节点上以存档条带(stripe)并保护块(block)。然而,并不必须将外部文件分割为更小的组块单元;在替选实施例中,内部文件可以是外部文件的完整拷贝。典型地,在元数据管理器中,对于每个存档对象提供一个外部文件条目,而对于每个外部文件条目可以存在许多内部文件条目。典型地,内部文件布局取决于系统。在给定实现中,磁盘上的该数据的真实物理格式被存储为一系列可变长度记录。
请求管理器324负责运行通过与系统中的其他组件交互而执行存档动作所需的操作组。请求管理器支持不同类型的许多同时动作,能够重新执行任何失败的处理,并支持可能花费长时间来运行的处理。请求管理器还确保在存档中的读/写操作被适当操作并且确保所有请求在所有时间上处于已知状态。其还提供处理控制,用以配合节点上的多个读/写操作以满足给定的客户端请求。此外,请求管理器为最近使用过的文件高速缓存元数据管理器条目,并为会话和数据块提供缓冲。
群组的主要职责是在磁盘上可靠地存储无限数量的文件。可以将给定节点想成是“不可靠的”,感觉像它是因为任何原因而不可到达或者其他方式不可用的。收集这种潜在的不可用节点有助于创建可靠的和高度可用的存储。通常,存在两种类型的信息需要被存储:文件本身和关于文件的元数据。固定内容分布式数据存储额外的细节可以在美国专利公开No.2007/0189153和美国专利No.7,657,581中找到,通过引用的方式将他们合并入本文中。
名称空间是群组的逻辑分区。名称空间实质上用作至少一个所定义的应用特定的对象集合。如将描述的,每个名称空间具有相对于其他名称空间的私有文件系统。此外,访问一个名称空间不许可用户访问其他名称空间。存档可能对单个群组上允许的名称空间的数目具有上限(例如,多达10000)。认证的名称空间(ANS)是需要认证的数据访问的名称空间(优选地,仅HTTP)。缺省的名称空间(dNS)是用于与被摄取到与REST(代表性状态转移)不同的群组中的数据一起使用的名称空间,其中REST是通常用于在网络上交换结构化数据和类型信息的轻型协议。此外,即使应用使用REST界面,如果在对群组的认证期间不指定名称空间,则所有的数据都被存储在缺省的名称空间中。租户(tenant)是名称空间和和可能的其他子租户的编组。最高级租户(TLT)是不具有父母租户的租户,例如企业。子租户是其父母是另一租户的租户,例如企业的财务部。缺省的租户是仅包含缺省的名称空间的最高级租户。群组(或系统)是物理存档实例,如上文所描述的。参见US2011/0106802,在此将其整体一并引入作为参考。
在宏级别,所有的名称空间可以被认为是相同的或具有相同的品质和能力的基本相同的实体。通常,如将看见的,名称空间具有如由适当证书的管理员所确定的可以被启用或禁用的一组关联的能力。单个名称空间可以承载一个或多个应用,虽然优选地,名称空间仅与一个定义的应用相关联(虽然这不是限制)。名称空间典型地具有以下名称空间管理员可以针对给定的数据账户选择启用或禁用的关联的能力组中的一个或多个:读取(r)-包括读取文件、目录列表、以及存在/HEAD操作;写(w);删除(d);清除(p)-允许一个人清除文件的所有版本;有特权的(P)-允许有特权的删除和有特权的清除;以及搜索。
使用名称空间,管理员可以针对群组创建多个域,上述域基于用户/参与者的观点而不同。这些域包括,例如,以下内容:访问应用、群组管理、TLT管理、子租户管理、以及复制。访问应用的域是给定的名称空间。租户优选地具有一组属性:名称空间、管理帐号、数据访问帐号、权限掩码、状态的积累、名称、以及限制。租户可以包括零个或更多个名称空间。
当从应用的角度观看时,名称空间是逻辑存档。根据本申请中的主题,特定的名称空间与不同的名称空间不同,且访问一个名称空间不准许用户访问另一个名称空间。优选地,在拥有租户级别处执行名称空间的管理。此外,优选地,仅当与名称空间关联的对象的计数为零的情况下,才可以删除名称空间。名称空间优选地还具有以下的属性:权限掩码、初始设置、其他设置、显示名称、限制、日志以及统计。如上文所记载的,权限掩码(r/w/d/p/P/s)是对名称空间全局的且其将帐号的权限掩码的一组设置。初始设置识别了数据保护级别(DPL)、哈希方案等,其优选地保持持久。其他的设置是指可以在名称空间上设置并且然后在后来被改变的设置(例如,保留、撕碎、版本化、索引等)。显示名称是针对该名称空间的名称或其他标识符。限制可以是硬的(以GB)或软的(以百分比)。日志属性标识与将被记录日志的名称空间相关的系统事件。统计属性标识了从名称相关的数据产生的统计,例如能力、对象数目等。
II.元数据管理
元数据管理系统负责组织并向给定的元数据提供访问,例如系统元数据。该系统元数据包括在存档中放置的文件的信息、以及配置信息、在管理UI上显示的信息、度量、关于不可挽回的策略违反的信息等。虽然未详细说明,简单说其他类型的元数据(例如,与存档文件关联的用户元数据)也可以使用现在描述的元数据管理系统来管理。
在群组的代表性实施例中,元数据管理系统为一组元数据对象提供了持久性,其可以包括以下对象类型中的一个或多个(其仅是说明性的):
外部文件(ExternalFile):如由存档的用户所感知的文件;
内部文件(InternalFile):由存储器管理器存储的文件;典型地,在外部文件和内部文件之间可能存在一对多的关系。
配置对象(ConfigObject):用于配置群组的名称/值对;
管理日志条目(AdminLogEntry):要在管理员UI上显示的消息;
度量对象(MetricsObject):加时间戳的密钥/值对,表示在一时间点的存档的一些测量(例如,文件数目);以及
策略状态(PolicyState):违反一些策略。
每一元数据对象可以具有优选地从不改变的唯一名称。元数据对象被组织成区域。区域包括权威性的区域拷贝以及“可容忍的失败点”(TPOF)数目(一组零或更多)备份区域的拷贝。利用零拷贝,元数据管理系统可扩展,但是可能不高度可用。通过对一个或多个对象属性(例如,对象的名称,诸如全部符合标准的路径名、或其部分)进行哈希以及提取哈希值的给定数目比特来选择区域。这些比特包括区域数目。所选择的比特可以是低阶比特、高阶比特、中阶比特、或单个比特的任何组合。在代表性的实施例中,给定的比特是哈希值的低阶比特。可以使用任何方便的哈希函数来对于对象的属性进行哈希。这些包括但不限于诸如java.lang.string.hashCode等的基于Java的哈希函数。优选地,比特数目包括由配置参数控制的区域数目,在本申请中称为regionMapLevel。如果该配置参数被设置成6,例如,这导致26=64个区域。当然,允许更大数目的区域,且可以使用名称空间划分方案来主动地调整区域的数目。
可以冗余地存储每一区域。如上文记载的,存在区域的一个权威性的拷贝,以及零个或更多个备份拷贝。备份拷贝的数目由元数据TPOF配置参数控制,如已经描述的。优选地,区域拷贝在群组的所有节点之间分布,以便平衡每节点的权威性区域拷贝的数目,以及平衡每节点的总区域拷贝的数目。
元数据管理系统存储在每一节点上运行的数据库中的元数据对象。该数据库用于支持区域映射。优选地,针对每一区域拷贝存在一种模式(schema),且针对每一种类型的元数据对象在每一模式中存在表。模式仅是可以拥有表、索引、过程、以及其他数据库对象的名称空间。每一区域优选地具有其自身的模式。每一模式具有一组完整的表,每一元数据对象对应一个表。这些表中的一个表中的一行对应于单个元数据对象。
如在图4中所说明的,每一节点400具有一组过程或组件:一个或多个区域管理器(RGM)402a-n、元数据管理器(MM)404、至少一个元数据管理器客户端(MMC)406、以及具有一个或多个模式410a-n的数据库408。RGM、MM和MMC组件利用虚拟机412运行,诸如Java虚拟机。针对每一区域拷贝存在一个RGM。从而,存在针对权威性的区域拷贝的RGM、针对每一备份区域拷贝的RGM、以及针对每一不完整的区域拷贝的RGM。针对每一RGM402还存在数据库模式410,其管理该模式。数据库还存储区域映射405。每一节点优选地具有区域映射的相同的全局视图,其需求由同步方案实现。区域管理器RGM 402负责在区域备份(根据可能的情况,其为权威性的、备份的或不完整的)上运行,且负责运行由元数据管理器客户端406以及由其他区域管理器402提交的请求。通过任何方便的方式向给定的RGM提供请求,诸如图3中所描绘的通信中间件或其他的消息传送层。区域管理器通过向数据库提供连接来提供这些请求运行的运行环境,其配置成在正由RGM管理的模式上操作。每一区域管理器在数据库408中存储其数据。元数据管理器404是负责节点上元数据管理的最高级组件。其负责创建并摧毁区域管理器(RGM)并组织RGM所需要的资源,例如群组配置信息和数据库连接池。优选地,给定的元数据管理器(在给定的节点中)充当领导者且其负责确定哪些元数据管理器(跨一组节点或节点的子集)负责哪些区域拷贝。领导者选择算法,例如欺负算法(bully algorithm)、或其变形可以用于选择元数据管理器领导者。优选地,每一节点具有单个元数据管理器,虽然每个节点运行多个MM是可能的。一旦已经通过名称空间划分方案建立了区域所有权(如下文将描述的),每一元数据管理器就负责相应地调整其一个或多个区域管理器组。系统组件(例如,管理引擎、策略管理器等)通过元数据管理器客户端与元数据管理器MM交互。MMC(使用区域映射)负责定位用于执行给定请求的RGM,以向所选择的RGM发出请求,以及如果所选择的RGM不可用(例如,因为该节点已经出现故障),则其负责重试该请求。在后面的情况下,当在节点处接收到新的区域映射时,重试请求将成功。
如上文所提及的,区域映射标识负责每一区域的每一拷贝的节点。虚拟机412(以及其内的每一RGM、MM、以及MMC组件)具有到区域映射405的通路;在将其拷贝到JVM中之后,也在图4中示出了区域映射的拷贝420。从而,区域映射对于给定节点中的数据库以及JVM都可用。在该说明性的实施例中,每一元数据对象具有一属性(例如,名称),其被哈希以产生在0x0与0x3fffffff首尾之间即30比特值的整数。这些值可以在不遇上溢出问题(例如,当向该范围的高端加1时)的情况下,方便地以有符号的32比特整数来表示。30比特允许多达大约10亿个区域,即使对于大型的群组其也足够。一区域表示一组哈希值,且该组所有的区域覆盖所有可能的哈希值。针对每一区域存在不同的比特位置,且不同的比特位置优选地具有固定的顺序。从而,利用数字来标识每一区域,其优选地通过提取哈希值的区域级别映射(RegionLevelMap)比特来获得。当配置参数被设置为6时,允许64个区域,所产生的哈希值是0x0到0x3f的数字。
如先前所记载的,区域拷贝是三(3)个状态中的一个:“权威性的”、“备份的”、以及“不完整的”。如果区域备份是权威性的,则到该区域的所有请求都到该备份去,且针对每一区域存在一个权威性的拷贝。如果区域拷贝是备份的,则该拷贝接收备份请求(从权威性的区域管理器过程)。如果元数据正被装载但是拷贝尚未同步(典型地,相对于其他备份拷贝),则区域拷贝是不完整的。不完整的区域拷贝没有资格升级到另一状态,直到同步完成,在该点处拷贝变成备份拷贝。每一区域具有一个权威性的拷贝和给定数目的(如由元数据TPOF配置参数所设置)备份或不完整的拷贝。
通过在权威性的区域拷贝与其TPOF备份拷贝之间实施给定的协议(或“合约”)保持备份区域拷贝与权威性的区域拷贝的同步。现在描述该协议。
通过简要的背景,当在MMC接收到更新请求时,MMC在本地区域映射上查询以找到权威性区域拷贝的位置。MMC向与权威性的区域拷贝关联的RGM发送更新请求,然后其提交它。更新也被发送(由与权威性区域拷贝关联的RGM)至TPOF备份拷贝中的每一个的RGM。但是,为了指示成功,权威性的RGM不需要等待与备份区域拷贝关联的每一RGM提交该更新;而是,当与备份区域拷贝关联的RGM接收到更新时,其立即(向权威性的RGM)返回或尝试返回确认。该确认在备份请求被接收且在其被执行之前发出。在没有发生故障的情况下,一旦权威性的RGM接收到所有的确认,其就通知MMC,然后MMC向调用方返回成功。但是,如果给定的故障事件发生,则协议确保受影响的RGM(备份还是权威性的)将其自身(以及潜在受影响的节点)从服务移除,且新的区域映射由MM领导者发出。优选地,RGM通过降低JVM来将其自身从服务移除,但是可以使用任何方便的技术。新的映射针对丢失的区域拷贝指定替换。以此方式,每一备份区域拷贝是针对权威性区域拷贝的“热备份”且从而在如果且当需要时(或者因为权威性RGM故障,为了平衡负载的目的等)具有被提升至权威性的资格。
存在更新过程可能失败的若干方式。从而,例如,权威性区域管理器(虽然等待确认)可能遭遇指示该备份管理器过程已经终止的例外或备份管理器过程可能无法在本地处理更新请求,即使其已经发出确认或在发出确认的同时备份区域管理器过程可能遭遇指示权威性区域管理器过程已经终止的例外等。如上文所记载的,如果给定的备份RGM无法处理该更新,则其将其自身从服务移除。此外,当备份RGM或权威性RGM终止时,发出新的区域映射。
元数据管理系统保持区域拷贝的同步。在备份区域拷贝上复制对权威性区域拷贝中的对象完成的更新。一旦权威性RGM提交更新,则相同的更新应用于所有备份区域拷贝。元数据管理系统确保任何这样的故障(无论在节点级别,区域管理器级别等)导致区域拷贝在故障节点上的重新安排;从而,保证了剩余区域拷贝的完整性。如果包含权威性RGM的节点故障,则备份RGM同步(与或不与当前执行的更新同步),或其仅由于更新被中断而失去同步。在后面的情况下,重新同步是简单的。因为备份区域被保持与权威性区域同步,(从备份到权威性)是即时的。
节点故障还可能失去备份区域。备份区域通过在某一其他的节点上创建新的、不完整的区域来恢复。一旦创建不完整的区域,其开始从权威性区域记录更新并开始拷贝数据。当拷贝完成时,应用了所累积的更新,这导致了最新的备份。然后,新的备份区域通知MM领导者其是最新的,这将导致MM领导者发出包括区域提升的映射(从不完整到备份)。
应该注意的是,不需要区域的数目与节点的数目对应。更一般地,区域的数目与独立节点阵列中的节点的数目不相关。可以在美国专利No.7,657,581中找到元数据管理的另外的细节。
III.针对自我描述对象的多个用户定义的元数据
大多数对象存储系统具有将元数据(关于数据的数据)关联到在系统中摄取的对象的能力。该元数据用于通过提供关于对象的更多描述性信息对于对象进行注解。另外的元数据将提供所需的信息来帮助消费者针对诸如分析和发现之类的活动利用类似的标准来识别对象,从而创建自我描述的对象。当对象变成更自我描述时,这允许为了许多不同的目的以及可能想要提供另外的元数据的消费者使用对象。
当前的用于将元数据与对象关联的方法包括将信息形成为意义明确的格式,诸如XML或JSON并将其关联到作为单个实体的对象。为了多个消费者利用和增大元数据,关于元数据的格式,必须存在与所有生产者与消费者的协调;这确保了不产生不兼容或其他的元数据被毁坏。由于消费者/生产者的数目增加,由于这些消费者/生产者可能来自单独的和竞争的公司/产品,所以可能难以完成在多个消费者/生产者之间的变化的协调。
在没有针对分离的标准或能力的情况下,不同的应用仍然必须意识到具有相同名称但由另一软件实体产生的标签/头部可能存在。
本发明的示例性实施例利用该能力将多个元数据的集合关联到对象。每一元数据的集合可以提供称为注解的有目的的含义。与这些注解关联的名称允许每个对象具有多个注解。这些注解被命名为针对自我描述的对象的用户定义的或定制的元数据的集合。
与其注解一起的对象提供了在对象存储系统中创建自我描述的对象。每一自我描述的对象包含关于自身的足够的信息以允许利用该对象而无需从诸如关系数据库之类的其他源收集关于对象的信息。这将使得该能力能够构造可以仅通过与对象存储系统交互在容量日益增加的对象上运行的系统和方法。
给定的消费者/生产者可以创建其自身命名的注解并将注解的内容格式化成适合其需要的形式(例如,XML、JSON、逗号分隔的等),而无需考虑其他消费者/生产者的存在或不存在。也无需针对全部的元数据定义标准布局/模式。这允许相同数据的多种使用。例如,可以通过不同的软件利用各种各样的信息来注解数字图像,而无需知道使用该图像的其他软件。不同的注解可以包括诸如脸部识别、云覆盖、天气模式、对象识别、与其他图像的关系、以及许多其他主题之类的信息。利用命名的注解,该结果将提供对单个注解的简单修改,而无需覆写所有的注解,提供针对每一注解实现安全性的能力,以及识别包含使用名称作为搜索标准的某一种类的信息的所有对象。此外,可以将访问安全性应用到整个对象以及每一单个注解。利用该级别的安全性,提供不同的访问控制以基于进行请求的消费者的证书来构造相同对象的不同视图是可能的。
通常,对象存储系统具有将元数据附接到对象的概念。每一个对象存储系统具有不同方式的命名或结构化单个元素以提供隐含的组织。本发明的实施例提供单个集合的元数据或注解集,其允许针对元数据的不同的布局/格式,连同通过访问控制列表(ACL)构造来限制对这些集合的访问。
使用对象存储系统中的内容围绕利用网络协议来创建、读取、更新和删除对象。虽然可以使用许多协议,但是上述描述将围绕超文本传输协议(HTTP),且更具体地,针对被称为代表性状态转移(REST)分布式系统的架构性风格常见为许多基于网络的客户端/服务器实现以及典型地具有基于云的存储器。每一对象系统包括处理器、存储器以及至少一个对象,每一对象与多个用户定义的元数据的命名集合关联。
对互联网的搜索将提出许多对HTTP/REST包括什么进行描述的高级别和具体的描述,但是下文的描述将聚焦在与本发明相关的具体实现上。根本地,请求包括通用资源定位符(URL)、操作类型、以及操作有效载荷。在对象存储系统的上下文中,URL标识了针对其应该执行所请求的操作的对象。在对象上执行的操作包括GET、PUT、HEAD(获得系统元数据)、POST(更新)、以及DELETE(删除)。
图5示出了对象的核心构造的示例。对象系统中的对象可以具有三个主要的部分:固定内容数据、系统元数据、以及注解(即,用户定义或定制的元数据)。固定内容数据可以是数据的精确的数字复制,如其在存储之前存在的。一旦其在对象系统中,则数据就典型地无法被修改但是可能是可附加的。系统元数据包括描述数据的系统管理的属性,例如其大小和创建日期。系统元数据典型地包括策略设置,例如保留或DPL(数据保护级别),其影响内部过程如何与对象交互。该描述的焦点将在注解上,注解包含用户或应用提供以进一步描述对象的元数据。如上文所提及的,注解可以被指定为XML且其典型地用于进行对象自我描述。
图6示出了一对象示例,该对象具有元数据和在本申请中被称为注解的用户定义的元数据的多个命名集合的系统。图7示出了具有多个注解和访问控制列表(ACL)的对象示例。先前,对象包括一个未命名的定制元数据部分。本发明提供了被称为注解的用户定义或定制的元数据的多个命名的集合或元素。与对象关联的多个命名的集合中的每一个命名的集合分别可由单个请求寻址,单个请求包括对象的可寻址单元且使指定特定的命名集合的语言合格。虽然每一命名的集合单独可寻址,但是也可能具有其中可以通过一请求同时访问多个命名的集合的实现。为了说明的目的,描述中的示例将使用自由可获得的开源命令行工具来执行称为curl(命令行通用资源定位符)的HTTP/REST请求。该工具在不利用完整的网页浏览的情况下提供了非常简单的机制来执行HTTP请求。图7中的注解示例包括土地使用分析、水位变化、人口密度分布、政府机关列表、以及高程偏差数据。如所示出的,每一注解可以通过分析对象图像的单独的程序产生。对象注解的另一示例是将对象链接或关联到另一对象的注解。
对象可以包括对象级别的访问控制列表(ACL)。此外,每一注解可以包括其自身的注解级别ACL,以便不同的注解具有可能与对象级别的ACL不同的不同ACL。注解的注解级别ACL指定了哪一个请求方可以访问该注解。
一旦对象存在,就可以利用HTTP REST请求添加、更新、或删除注解。这通过经由对象系统的控制器或处理器等指定到现有对象的URL、请求PUT操作、以及提供注解的内容来执行。请求URL不仅提供对象,而且还指导对象存储网页服务器对哪一个命名的注解执行指定的操作。然后,与curl命令一起提供要用于针对对象的操作的注解内容。注解的格式(XML、JSON、二进制等)不由对象存储系统指示;但是,为了说明的目的,注解内容将以XML格式表示。操作是否被允许可以取决于针对对象存储系统应用的配置或策略。例如,对象存储器可以是只读模式,可以基于用户证书具有访问限制,可以具有不允许更新现有内容的策略等。但是,为了说明本发明,将假定配置和策略将允许针对对象及其注解的自由访问。
注解HTTP REST操作
如先前所提及的,存在可以针对对象和注解执行的若干操作:GET(获取)、PUT(放下)、DELETE(删除)、POST(张贴)、以及HEAD(前进)。下文将描述如何使用这些操作。
第一个操作创建/替换对象的注解。这可以通过发出针对现有对象的HTTPPUT操作并提供新的注解内容来执行。以下的内容是用于利用annotation.xml文件中的内容添加/替换名称为foobar的注解到现有的对象object.xxx的示例:
curl-T annotation.xml
“http://ns1.ten1.hcp.example.com/rest/object.xxx?type=custom-metadata&annotation=foobar”
下一个操作检索注解。这通过发出针对现有对象的HTTP GET操作来执行。注解内容将被返回到HTTP GET请求响应的主体中。以下内容是用于检索与object.xxx对象关联的名称为foobar的注解并将其向用户的控制台显示的命令行示例:
curl“https://ns1.ten1.hcp.example.com/rest/object.xxx?type=custom-metadata&annotation=foobar”
为了检索具体注解的细节(即属性)而不检索注解,可以针对对URL规范提供另外指示的对象执行以下的HTTP HEAD请求。以下的是用于针对object.xxx对象执行关于foobar注解的显示细节:
curl-I“http://ns1.ten1.hcp.example.com/rest/object.xxx?type=custom-metadata&annotation=<foobar>”
以下的是来自该命令的示例性输出:
HTTP/1.1200 OK
Expires:Thu,01Jan 1970 00:00:00 GMT
X-HCP-ServicedBySystem:hcp.example.com
X-HCP-Time:1348516584
X-HCP-SoftwareVersion:5.1
X-RequestId:BE4012AB68AF46B
Content-Type:tex/xml
Content-Length:136
X-HCP-TYPE:annotation
X-HCP-Size:136
X-HCP-ChangeTimeMilliseconds:1348511536000.00
X-HCP-ChangeTimeString:2012-09-24T14:32:16-0400
X-HCP-Hash:MD5 7701F57B64ADD508FB986868790CA4FE
X-HCP-Acls:Public:READ
为了检索针对给定对象的所有注解的列表,执行另一形式的HTTP请求。存在可以利用的两种机制。第一种机制是针对对象执行HTTP HEAD或GET请求;响应将包括简单的名称/大小列表。对于关于注解的完整信息,HTTP GET请求可以针对在URL请求中提供备选指示以及如何呈现该列表的规范的对象来执行。以下的是用于检索与object.xxx对象关联的所有注解的列表并以XML格式向用户的控制台显示该列表的示例性命令行:
curl“https://ns1.ten1.hcp.example.com/rest/object.xxx?type=custom-metadata-info”-H“Accept:application/xml”
注解列表的示例性输出将包括关于注解的名称和相关对象存储元数据,其为如下所述:
最后,为了删除与对象关联的注解,执行HTTP DELETE请求。以下内容是用于将foobar注解从object.xxx对象移除的示例性命令行:
curl-X DELETE
“http://ns1.ten1.hcp.example.com/rest/object.xxx?type=custom-metadata&annotation=fooar”
存在用于发送并从对象存储系统接收内容的另外的/高级的机制,其也可以应用于上文示出的核心API机制。以下内容是另外的机制的部分列表:
1)在系统中包含的是未命名的注解且其等于先前的产品的单个定制的元数据容器。未命名的注解被包含以便后向兼容且其可以使用先前提及的通过省略请求的“注解”URL规范的相同的机制来访问。
2)可以使用在通过网络连接发送的同时进行注解压缩。
3)提供了对单个HTTP PUT(写)和HTTP GET操作的使用,其允许使用单个HTTP操作来写/读对象固定的内容以及注解。在现有的产品中其被称为整个I/O且其被扩展以允许注解。这些请求可以被称为整个I/O PUT请求和整个I/O GET请求。
4)扩展到现有查询界面用于提供搜索/索引报告以包括注解信息。
5)上文提及的特征不限于上文描述的HTTP/REST API,还可以在针对产品的基于网页的GUI界面中使用。
图8示出了用于实现针对一对象使用多个注解的装置示例。该装置800可以是对象系统的一部分(810,以虚线示出),其中对象(812,以虚线示出)被存储,或与用于存储对象822的系统820分开的管理计算机的一部分,或在如上文所描述的独立节点的冗余阵列(参见图1-4)中的系统的一部分等。装置800包括处理器或控制器802和存储器804,且其可操作以便对注解(例如,PUT、GET、HEAD、POST、DELETE、整个I/O PUT、整个I/O GET)执行操作,包括创建或更新注解的访问控制列表(ACL)。
IV.内容类别
图9示出了内容类别定义的示例。本发明的实施例利用“内容类别”作为用于定义将对于对象及其元数据的非结构化内容构造结构的蓝图的机制。这些级别包括一组用户定义的“内容属性”。每一内容属性提供了用于将具体元数据字段从对象(例如,任何定制的元数据XML标签)提取的能力,利用强类型将其有效地索引在用户定义的名称之下,并通过用户界面和程序化的查询界面使得该字段多维度可查询。内容类别将一组内容属性组合并组织成命名的类别。因为每一内容类别都被命名,所以内容界面和程序化界面可以参考这些内容类别以使得其更简单地对非结构化的内容构造查询。
图9中的示例具有针对名称、多值、表达、数据类型和格式的内容属性字段。名称字段是用于针对内容属性的用户指定的唯一名称,其优选的是可以用于查询的对人有意义的名称。多值字段用于指定所指定的表达是否可以在注解中具有多个实例(即,指示该属性是否可以评估成在相同的定制元数据内容中的多个值)。表达字段用于标识内容属性的值应该如何从定制的元数据内容提取。当定制的元数据是XML格式时,该表达将是XPath语法。该表达是针对注解值/属性的修改的X-路径类型的规范。数据类型字段是针对由用于索引的表达所指定的所允许的意义明确的数据类型项,即所期望的针对定制属性的数据类型(例如,字符串、标记化的文本、布尔型、整型、浮点型和日期)。格式字段用于针对数字和日期数据类型进行特殊的格式化。该选项允许用户针对类型DATE(日期)、INTEGER(整型)、和FLOAT(浮点型)的属性选择期望的格式。当被定义成内容类别定义的一部分时,这些字段是内容属性的属性。
图10示出了在索引系统中利用内容类别的系统示例。因为特定的应用典型地产生具有相同模式的元数据,因此内容类别有助于跨对象存储系统定义、封装以及管理这些定义,从而消除了跨应用所使用的每一租户(例如,虚拟对象商店)及其名称空间(即,对象容器)定义重复的内容属性组的需求。每一租户可以利用这些内容类别来针对其命名空间中的每一个获得所期望的索引行为。此外,搜索索引系统仅对在内容类别和系统元数据中指定的内容属性进行索引,且其可以通过内容属性名称来识别被索引的内容。
应用开发商可以使得内容类别定义用于承载具体应用的任何租户,这是因为该定义可能将不改变,除非应用改变。优选地,内容类别的消费者可以使用内容类别来选择参加或不参加以最大化索引性能和资源消耗。
对象存储系统中的查询引擎索引对整个系统是全局的,且其消耗资源。为了辅助管理员最小化这些索引资源的成本,内容类别提供了用于跨租户中的所有名称空间从单个位置观看内容属性配置(而不是在每一个单个的名称空间观看每一配置)的方式。这允许简化的跨各个模式删除重复(去复制)的索引字段。例如,如果两个不同的内容类别都定义了“医生名称”字段,则其可能对共享相同的索引字段名称的两个属性都有益,使得上述值在索引中有效地进行了重复内容的删除(去复制)。
以下内容使用存储了大量医疗图像的对象存储系统描述了本发明的特征。这些图像中的每一个具有定制的元数据(例如,基于XML),其向已经检查了图像的医生和与该图像关联的病人提供了基本的联系信息。考虑以下定制元数据的片段:
典型的索引/搜索方法将允许用户查询其定制的元数据中的单个关键词和短语。在索引时该典型的索引/搜索方法将不考虑定制的元数据的结构。在该示例中,对于用户而言,准确地执行对医生名称的查询是不可能。对“John Smith”的查询将返回由医生John Smith检查的所有图像以及与病人John Smith关联的所有图像,包括由其他医生检查的图像。此外,通过使用值范围找到对象是不可能的(例如,基于其生日找到具体年龄的所有病人)。此外,典型的索引/搜索系统使用全有或全无方法来索引定制的元数据内容,这给予了用户对其索引大小的非常少的控制。当启用时,所有的定制元数据内容被索引,包括用户可能没兴趣搜索的信息。这可能导致膨胀的索引大小,这对跨系统的磁盘和RAM利用都具有不利影响。
内容类别通过让用户指定当索引和搜索定制元数据内容时要使用的内容属性解决了所有的这些问题。内容属性描述了可以包含在关于对象的定制元数据中的特定属性以及具有表达形式(使用Xpath语法)的关于该元数据的结构的信息。在先前的示例中,熟悉定制的元数据的结构的管理员可以定义以下的内容属性:
然后,这些内容属性将用于从定制元数据的内容提取具体值以进行索引以及进行搜索。例如,具有内容属性名称“Doctor(医生)”的内容属性提供了用于从对象提取/record/doctor/name下的具体元数据字段。这将允许针对定义的对象属性进行查询。例如,Doctor:“John Smith”将仅返回由医生John Smith检查的图像。通过该查询,与名字为John Smith的病人关联的图像将不会被返回。这允许用户对其定制的元数据执行聚焦的、结构化的查询。在另一示例中,DOB:[1/1/1940 TO 1/1/1980]将仅返回针对在1940年与1980年之间出生的病人的图像。
这还意味着仅用户认为搜索有用的值将被索引。如果用户对索引来自对象的定制的元数据的任何其他值不感兴趣,则索引大小将被限制成每对象仅这三个字段,而不管整个定制元数据有多大,从而提供了重要的磁盘和RAM空间的节省并提高了性能。
此外,在以定制元数据格式不同地表达相同的值的情况下,在名称空间中或甚至跨名称空间可以有效地“删除重复”的索引。例如,考虑到相同的定制元数据在不同的名称空间被格式化的情形。一个名称空间可以如下所述的对其定制元数据进行格式化:
<doctor>
<name>John Smith</name>
</doctor>
另一名称空间可以如下所述将其定制元数据格式化:
<physician>
<fullname>John Smith</fullname>
</physician>
管理员可以将这两个值都指向相同的索引字段:
这允许统一的搜索。针对医生的查询:“John Smith”将找到具有两个定制元数据格式的对象,且再次实现显著的磁盘和RAM节省,从而提高性能。
索引和搜索
当对象存储系统对定制元数据内容进行索引时,其查找适用于正被索引的对象的内容类别,找到在这些内容类别中定义的内容属性,并向上述内容应用这些内容属性。当这样做时,其针对正被索引的内容评估所有内容属性的表达并且使用其适当的格式和数据类型仅对表达匹配的值进行索引。
当搜索对象存储系统中的对象时,用户可以使用所定义的内容属性中的任何一个,使用属性的用户友好名称(例如,在上文的示例中的Doctor)搜索内容。系统将属性名称匹配到内部索引字段以找到适当的结果(例如,Doctor:“John Smith”)。为了辅助用户搜索,系统优选地向用户提供适当的内容类别的列表和要从直观的图形用户界面选择的内容属性(例如,使用下拉列表/菜单)。
类似于在图8中示出的装置可以用于实现利用被分组成内容类别的内容属性的索引/搜索特征。例如,上文描述的搜索索引系统可以被实现为在存储器804中存储的模块,以便由处理器或控制器802运行以执行上文描述的索引和搜索。
如果进行注解(即,与对象关联的用户定义的元数据集合),则内容类别允许对索引/搜索能力有兴趣的注解元素的规范。内容类别也包括具体被命名的注解的规范。这对基于应用/客户提供的注解的索引内容提供了非常有力的工具。
利用该高级的搜索/索引能力,构造可以遍历所有内容及其由多个应用产生的注解以找到可以潜在地识别感兴趣的事件的分析引擎是可能的。然后,添加另外的注解以帮助在看上去无关的数据集合之间形成关系是可能的。例如,对象存储系统填充有许多地理空间图像。为了有用,这些图像需要可以通过不同的软件提取的信息。这样的有用的信息可以是云覆盖的。虽然一个软件可能能够就云覆盖的百分比分析图像,但是另一件软件可以分析这些结果以确定这些图像是否可以被校正或需要重新捕捉以提供云自由图像集。在云覆盖低于阈值的图像可能是候选者的情况下,这还可以用于进一步分析基于地理特征或人的活动/对象的变化。可以添加注解以识别诸如恐怖分子活动的项目。
该相同的双重目的数据可以在卫生保健产业中使用。基于测试和结果针对个人的健康状况收集许多数据。利用不同的信息类别扩增的数据有助于链接各种诊断、地理位置、以及决策程序以构成基于可能已经由不同的软件/程序收集的所有不同属性的研究。继而这些研究可以向对象添加另外的注解以便于实现另外的使用,例如,某一程序总体上是否已经产生了最有利的结果。
另一示例将具有遍历由其他的应用提供的注解数据的过程并确定内容生命周期事件。例如,其可以用于决定根据法律什么信息不再需要被保持且不服务于数据集的预期用途的目的。这将针对专门用途或再卖给客户产生更专门的数据集。
当然,图1、图4和图8所示的系统配置完全是示例性的可以实现本发明的内容平台或复制对象存储系统,并且本发明不限于特定硬件配置。实现本发明的计算机和存储系统还可以具有已知的I/O设备(例如,CD和DVD驱动器、软盘驱动器、硬盘驱动器等),其可以存储并读取用以实现以上描述的本发明的模块、程序和数据结构。这些模块、程序和数据结构可以被编码在这种计算机可读介质上。例如,本发明的数据结构能够被存储在独立于用在本发明中的程序所在的一个或多个计算机可读介质的计算机可读介质上。系统的组件可以通过数字数据通信的任何形式或介质互相连接,例如,通信网络。通信网络的示例包括局域网、广域网,例如互联网、无线网、存储区域网等。
在说明书中,为了解释的目的呈现了数个细节,以便于提供对本发明的透彻理解。然而,对本领域技术人员将清楚的是,为了实现本发明,并不需要所有这些特定细节。还会注意到,本发明可以描述为通常以流程图、流向图、结构图或框图描述的过程。尽管流程图可以将操作描述为有序的过程,但是许多操作可以并行或同时执行。此外,还可以重新安排操作的顺序。
如本领域所公知的,以上描述的操作可以由硬件、软件或软件和硬件的某些组合执行。本发明实施例的不同方面可以使用电路和逻辑设备(硬件)来完成,同时其他方面可以使用存储在机器可读介质(软件)上的指令来完成,如果使用处理器运行会导致处理器执行实现本发明实施例的方法。此外,本发明的一些实施例可以在硬件中单独执行,而其他实施例可以以软件单独执行。此外,所描述的不同功能可以在单个单元中执行,或者可以以任何方法散布在多个组件上。当通过软件执行时,基于存储在计算机可读介质上的指令,方法可以由诸如通用计算机的处理器运行。如果需要,指令可以存储在压缩和/或加密格式的介质上。
从前述将清楚的是,本发明提供了用以存储在计算机可读介质上的、用于提供用以定义将向对象及其元数据的非结构化内容构造结构的蓝图以及以便于实现高效索引和搜索的被称为内容类别的机制的方法、装置和程序。此外,在本文中已经描述和说明特定实施例的同时,本领域普通技术人员将会领会,通过计算以实现相同目的的任何布置都可以取代公开文本的特定实施例。该公开文本意欲覆盖本发明的任何和所有改变或变形,并且其还被理解为在所附权利要求中使用的术语不应当被解释为将本发明限制为说明书中公开的特定实施例。相反的,本发明的范围将完全由所附权利要求确定,其将根据要求阐释所建立的规则而被解释,以及这种要求所授权的等同物的全部范围。
Claims (15)
1.一种存储系统,包括:
控制器;
存储器;以及
一个或多个对象,每一对象包括内容数据和元数据;
其中元数据用于构造多个用户定义的内容属性,每一内容属性提供用以通过参考内容属性的用户定义的内容属性名称从一个或多个对象提取特定的元数据字段的能力;
其中内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性分组成在用户定义的内容类别名称下的被命名的类别中;
其中控制器可操作成索引内容类别的内容属性以创建索引;以及
其中通过内容属性名称识别被索引的内容属性。
2.根据权利要求1所述的存储系统,
其中控制器可操作成通过将被不同表达的值指向在相同的内容属性名称下的相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复的索引。
3.根据权利要求1所述的存储系统,其中除了用于指定内容属性名称的名称字段之外,每一内容属性还包括如下各项中的至少一项:
表达字段,用于识别内容属性的值如何从元数据的内容提取;
数据类型字段,用于指定内容属性的值的数据类型;
格式字段,用于指定针对数字和日期数据类型的格式;或
多值字段,用于指定内容属性中指定的表达是否能够评估相同元数据内容中的多个值。
4.根据权利要求1所述的存储系统,
其中控制器可操作成使用内容属性的索引来搜索一个或多个对象的内容。
5.根据权利要求1所述的存储系统,
其中内容数据和元数据用于构造多个用户定义的内容属性。
6.一种用于在具有多个节点的存储系统中索引对象的内容的装置;其中所述节点被分组成多个群组系统,每一群组系统具有多个节点;其中每一对象包括内容数据和元数据;其中元数据用于构造多个用户定义的内容属性,每一内容属性提供了通过参考内容属性的用户定义的内容属性名称从对象提取特定的元数据字段的能力;其中内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性分组成在用户定义的内容类别名称下的被命名的类别中;该装置包括控制器和存储器,所述控制器可操作成:
索引内容类别的内容属性以创建索引;
其中通过内容属性名称来识别被索引的内容属性。
7.根据权利要求6所述的装置,
其中控制器可操作成通过将被不同表达的值指向在相同的内容属性名称下的相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复的索引。
8.根据权利要求6所述的装置,其中除了用于指定内容属性名称的名称字段之外,每一内容属性还包括如下各项中的至少一项:
表达字段,用于识别内容属性的值如何从元数据的内容提取;
数据类型字段,用于指定内容属性的值的数据类型;
格式字段,用于指定针对数字和日期数据类型的格式;或
多值字段,用于指定内容属性中指定的表达是否能够评估相同元数据内容中的多个值。
9.根据权利要求6所述的装置,
其中控制器可操作成使用内容属性的索引来搜索对象的内容。
10.根据权利要求6所述的装置,
其中每一群组系统在逻辑上被划分成多个名称空间,每一名称空间包括对象集合且相对于群组系统中的其他名称空间具有关联的私有文件系统;
其中租户是一组名称空间;以及
其中内容类别提供了从单个位置观看分组到跨租户中的名称空间的内容类别下的内容属性的内容属性配置,而不是在每一单个名称空间处观看每一内容属性配置的方法。
11.一种用于在具有多个节点的存储系统中索引对象的内容的方法,其中所述节点被分组成多个群组系统,每一群组系统具有多个节点;其中每一对象包括内容数据和元数据;其中元数据用于构造多个用户定义的内容属性,每一内容属性提供了通过参考内容属性的用户定义的内容属性名称从对象提取特定的元数据字段的能力;其中内容属性被组织成用户定义的内容类别,每一内容类别将一组内容属性分组成在用户定义的内容类别名称下的被命名的类别中;所述方法包括:
索引内容类别的内容属性以创建索引;
其中通过内容属性名称来识别被索引的内容属性。
12.根据权利要求11所述的方法,还包括:
通过将被不同表达的值指向在相同的内容属性名称下的相同的索引字段,来针对以不同的元数据格式不同方式表达的具有相同值的内容属性删除重复的索引。
13.根据权利要求11所述的方法,其中除了用于指定内容属性名称的名称字段之外,每一内容属性还包括如下各项中的至少一项:
表达字段,用于识别内容属性的值如何从元数据的内容提取;
数据类型字段,用于指定内容属性的值的数据类型;
格式字段,用于指定针对数字和日期数据类型的格式;或
多值字段,用于指定内容属性中指定的表达是否能够评估相同元数据内容中的多个值。
14.根据权利要求11所述的方法,还包括:
使用内容属性的索引来搜索对象的内容。
15.根据权利要求11所述的方法,
其中每一群组系统在逻辑上被划分成多个名称空间,每一名称空间包括对象集合且相对于群组系统中的其他名称空间具有关联的私有文件系统;
其中租户是一组名称空间;以及
其中所述方法还包括使用内容类别从单个位置观看分组到跨租户中的名称空间的内容类别之下的内容属性的内容属性配置,而不是在每一单个名称空间处观看每一内容属性配置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/027866 WO2014133495A1 (en) | 2013-02-27 | 2013-02-27 | Content class for object storage indexing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104981802A true CN104981802A (zh) | 2015-10-14 |
CN104981802B CN104981802B (zh) | 2018-06-19 |
Family
ID=51428620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380072463.2A Active CN104981802B (zh) | 2013-02-27 | 2013-02-27 | 针对对象存储器索引系统的内容类别 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9965502B2 (zh) |
EP (2) | EP4224324A3 (zh) |
JP (1) | JP6448555B2 (zh) |
CN (1) | CN104981802B (zh) |
WO (1) | WO2014133495A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021607A (zh) * | 2016-06-23 | 2016-10-12 | 乐视控股(北京)有限公司 | 静态托管网站的管理方法和管理系统 |
CN107203557A (zh) * | 2016-03-17 | 2017-09-26 | 伊姆西公司 | 用于处理待搜索的对象的方法及装置 |
CN107229713A (zh) * | 2017-05-27 | 2017-10-03 | 灵犀智数(北京)科技发展有限公司 | 一种对象存储方法及装置 |
CN109088911A (zh) * | 2018-06-26 | 2018-12-25 | 四川驹马科技有限公司 | 一种基于SaaS服务的定制分发方法及其系统 |
CN109145062A (zh) * | 2018-08-23 | 2019-01-04 | 杭州路享科技有限公司 | 一种自学习的信息分类处理装置 |
CN109299154A (zh) * | 2018-11-30 | 2019-02-01 | 长城计算机软件与系统有限公司 | 一种大数据的数据存储系统及方法 |
CN110457504A (zh) * | 2018-05-07 | 2019-11-15 | 苹果公司 | 数字资产搜索技术 |
CN110506267A (zh) * | 2018-02-01 | 2019-11-26 | 谷歌有限责任公司 | 数字组件背景渲染 |
CN113032829A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 多通道并发的文件权限管理方法、装置、服务器和介质 |
CN117908862A (zh) * | 2024-01-31 | 2024-04-19 | 和创(北京)科技股份有限公司 | 对象转化配置下字段防误删体系建立的方法及装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10574721B2 (en) * | 2013-12-06 | 2020-02-25 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for an automatic fresh browser instance for accessing internet content |
US9514123B2 (en) | 2014-08-21 | 2016-12-06 | Dropbox, Inc. | Multi-user search system with methodology for instant indexing |
US10489213B2 (en) * | 2014-10-01 | 2019-11-26 | Red Hat, Inc. | Execution of a method at a cluster of nodes |
CN105653528B (zh) * | 2014-11-11 | 2020-04-07 | 金蝶软件(中国)有限公司 | 一种业务字段多态展示的方法及装置 |
US9575750B2 (en) * | 2014-12-11 | 2017-02-21 | Successfactors, Inc. | Generic annotation seeker |
US10305985B1 (en) * | 2014-12-29 | 2019-05-28 | EMC IP Holding Company LLC | Defining new properties using expressions in API calls |
US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
US9384226B1 (en) | 2015-01-30 | 2016-07-05 | Dropbox, Inc. | Personal content item searching system and method |
US10224028B2 (en) * | 2015-06-01 | 2019-03-05 | Sinclair Broadcast Group, Inc. | Break state detection for reduced capability devices |
US10235176B2 (en) | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10936713B2 (en) | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10079693B2 (en) * | 2015-12-28 | 2018-09-18 | Netapp, Inc. | Storage cluster management proxy |
US20170228409A1 (en) * | 2016-02-08 | 2017-08-10 | Red Hat, Inc. | In-memory journaling |
US20170228402A1 (en) * | 2016-02-08 | 2017-08-10 | Microsoft Technology Licensing, Llc | Inconsistency Detection And Correction System |
WO2017142519A1 (en) | 2016-02-17 | 2017-08-24 | Hitachi Data Systems Corporation | Content classes for object storage indexing systems |
WO2017200529A1 (en) * | 2016-05-17 | 2017-11-23 | Hitachi Data Systems Corporation | Digital evidence management |
US10341420B1 (en) * | 2016-10-14 | 2019-07-02 | Amazon Technologies, Inc. | Approaches for preparing and delivering bulk data to clients |
US20180364937A1 (en) | 2017-06-20 | 2018-12-20 | Samsung Electronics Co., Ltd. | System and method for managing memory device |
GB201716170D0 (en) * | 2017-10-04 | 2017-11-15 | Palantir Technologies Inc | Controlling user creation of data resources on a data processing platform |
US10079832B1 (en) * | 2017-10-18 | 2018-09-18 | Palantir Technologies Inc. | Controlling user creation of data resources on a data processing platform |
WO2019152792A1 (en) * | 2018-02-02 | 2019-08-08 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
WO2019152772A1 (en) | 2018-02-02 | 2019-08-08 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for policy execution processing |
TW201945971A (zh) | 2018-04-30 | 2019-12-01 | 美商多佛微系統公司 | 用於檢查安全性能的系統和方法 |
US11748418B2 (en) | 2018-07-31 | 2023-09-05 | Marvell Asia Pte, Ltd. | Storage aggregator controller with metadata computation control |
US11366805B2 (en) * | 2018-09-24 | 2022-06-21 | Salesforce.Com, Inc. | Integrated entity view across distributed systems |
US11803555B2 (en) | 2018-09-24 | 2023-10-31 | Salesforce, Inc. | Integrated entity view across distributed systems |
EP3877874A1 (en) | 2018-11-06 | 2021-09-15 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
US10324763B1 (en) | 2018-12-11 | 2019-06-18 | Palantir Technologies Inc. | Systems and methods for terminating instances and autoscaling instance groups of computing platforms |
WO2020132012A1 (en) | 2018-12-18 | 2020-06-25 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US10868887B2 (en) | 2019-02-08 | 2020-12-15 | Palantir Technologies Inc. | Systems and methods for isolating applications associated with multiple tenants within a computing platform |
US11080233B2 (en) * | 2019-07-19 | 2021-08-03 | JFrog Ltd. | Data archive release in context of data object |
US10761889B1 (en) | 2019-09-18 | 2020-09-01 | Palantir Technologies Inc. | Systems and methods for autoscaling instance groups of computing platforms |
US11907905B2 (en) * | 2020-04-01 | 2024-02-20 | VMware LLC | Namespace management techniques for facilitating multi-cluster application development |
US11182219B2 (en) | 2020-04-14 | 2021-11-23 | Vmware, Inc. | SaaS infrastructure for flexible multi-tenancy |
WO2023235619A1 (en) * | 2022-06-03 | 2023-12-07 | Bluevoyant Llc | Devices, methods, and systems for generating a highly-scalable, efficient composite record index |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319757A (ja) * | 1996-05-29 | 1997-12-12 | N T T Data Tsushin Kk | 情報検索システム |
JP2002269123A (ja) * | 2001-03-12 | 2002-09-20 | Dainippon Printing Co Ltd | 電子カタログの検索システム |
JP2003296355A (ja) * | 2002-04-02 | 2003-10-17 | Murata Mach Ltd | 構造化文書の処理装置と処理プログラム |
CN101258483A (zh) * | 2005-09-09 | 2008-09-03 | 易享信息技术(上海)有限公司 | 用于在多租户数据库环境中导出、发布、浏览和安装随需应用的系统及其方法 |
JP2009075678A (ja) * | 2007-09-18 | 2009-04-09 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 |
US7689602B1 (en) * | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
JP2010272141A (ja) * | 2004-03-15 | 2010-12-02 | Yahoo Inc | 信頼性ネットワークからのユーザ注釈を一体化したサーチシステム及び方法 |
US20120166403A1 (en) * | 2010-12-24 | 2012-06-28 | Kim Mi-Jeom | Distributed storage system having content-based deduplication function and object storing method |
CN102640133A (zh) * | 2009-10-30 | 2012-08-15 | 日立数据系统有限公司 | 使用名称空间在分区的内容平台上的固定内容存储 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3301455B2 (ja) | 1993-11-26 | 2002-07-15 | 出光興産株式会社 | 芳香族ビニル化合物重合体の製造触媒及びそれを用いた芳香族ビニル化合物重合体の製造方法 |
US6510434B1 (en) | 1999-12-29 | 2003-01-21 | Bellsouth Intellectual Property Corporation | System and method for retrieving information from a database using an index of XML tags and metafiles |
US6842761B2 (en) * | 2000-11-21 | 2005-01-11 | America Online, Inc. | Full-text relevancy ranking |
US20040267798A1 (en) * | 2003-06-20 | 2004-12-30 | International Business Machines Corporation | Federated annotation browser |
JP2005018118A (ja) * | 2003-06-23 | 2005-01-20 | Mitsubishi Electric Corp | データベース検索システム |
JP2007511820A (ja) | 2003-10-27 | 2007-05-10 | アーカイヴァス インコーポレイテッド | 独立ノード冗長アレイに対するポリシーに基づく管理 |
US8788492B2 (en) | 2004-03-15 | 2014-07-22 | Yahoo!, Inc. | Search system and methods with integration of user annotations from a trust network |
US8229893B2 (en) * | 2010-02-01 | 2012-07-24 | Hitachi Data Systems Corporation | Metadata management for fixed content distributed data storage |
US7657581B2 (en) | 2004-07-29 | 2010-02-02 | Archivas, Inc. | Metadata management for fixed content distributed data storage |
US20060277209A1 (en) * | 2005-06-06 | 2006-12-07 | Javaground Usa, Inc. | Efficient and automatic software application development system for wireless devices |
US9305011B2 (en) | 2005-07-27 | 2016-04-05 | Hitachi Data Systems Corporation | Method for improving mean time to data loss (MTDL) in a fixed content distributed data storage |
US9436779B2 (en) * | 2006-11-17 | 2016-09-06 | Oracle International Corporation | Techniques of efficient XML query using combination of XML table index and path/value index |
US7840590B2 (en) | 2006-12-18 | 2010-11-23 | Oracle International Corporation | Querying and fragment extraction within resources in a hierarchical repository |
JP2007226843A (ja) * | 2007-06-14 | 2007-09-06 | Hitachi Ltd | 文書管理システム及び文書管理方法 |
US8972377B2 (en) | 2007-10-25 | 2015-03-03 | International Business Machines Corporation | Efficient method of using XML value indexes without exact path information to filter XML documents for more specific XPath queries |
US8738621B2 (en) * | 2009-01-27 | 2014-05-27 | EchoStar Technologies, L.L.C. | Systems and methods for managing files on a storage device |
US8533161B2 (en) * | 2009-10-30 | 2013-09-10 | Hitachi Data Systems Corporation | Fixed content storage within a partitioned content platform, with disposition service |
US20110153582A1 (en) * | 2009-12-22 | 2011-06-23 | Daniel Buchmann | Handling of classification data by a search engine |
US8527496B2 (en) * | 2010-02-11 | 2013-09-03 | Facebook, Inc. | Real time content searching in social network |
JP5345963B2 (ja) * | 2010-02-16 | 2013-11-20 | レノボ・シンガポール・プライベート・リミテッド | 画像イメージを検索するタグデータの生成方法 |
US8544028B2 (en) * | 2011-04-11 | 2013-09-24 | International Business Machines Corporation | Extracting and processing data from heterogeneous computer applications |
-
2013
- 2013-02-27 US US14/438,907 patent/US9965502B2/en active Active
- 2013-02-27 JP JP2015559219A patent/JP6448555B2/ja active Active
- 2013-02-27 EP EP23164687.8A patent/EP4224324A3/en active Pending
- 2013-02-27 EP EP13876507.8A patent/EP2962217A4/en not_active Ceased
- 2013-02-27 WO PCT/US2013/027866 patent/WO2014133495A1/en active Application Filing
- 2013-02-27 CN CN201380072463.2A patent/CN104981802B/zh active Active
-
2016
- 2016-02-04 US US15/015,529 patent/US9639564B2/en active Active
-
2017
- 2017-03-17 US US15/461,611 patent/US10817489B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319757A (ja) * | 1996-05-29 | 1997-12-12 | N T T Data Tsushin Kk | 情報検索システム |
JP2002269123A (ja) * | 2001-03-12 | 2002-09-20 | Dainippon Printing Co Ltd | 電子カタログの検索システム |
JP2003296355A (ja) * | 2002-04-02 | 2003-10-17 | Murata Mach Ltd | 構造化文書の処理装置と処理プログラム |
JP2010272141A (ja) * | 2004-03-15 | 2010-12-02 | Yahoo Inc | 信頼性ネットワークからのユーザ注釈を一体化したサーチシステム及び方法 |
US7689602B1 (en) * | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
CN101258483A (zh) * | 2005-09-09 | 2008-09-03 | 易享信息技术(上海)有限公司 | 用于在多租户数据库环境中导出、发布、浏览和安装随需应用的系统及其方法 |
JP2009075678A (ja) * | 2007-09-18 | 2009-04-09 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 |
CN102640133A (zh) * | 2009-10-30 | 2012-08-15 | 日立数据系统有限公司 | 使用名称空间在分区的内容平台上的固定内容存储 |
US20120166403A1 (en) * | 2010-12-24 | 2012-06-28 | Kim Mi-Jeom | Distributed storage system having content-based deduplication function and object storing method |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203557A (zh) * | 2016-03-17 | 2017-09-26 | 伊姆西公司 | 用于处理待搜索的对象的方法及装置 |
CN106021607A (zh) * | 2016-06-23 | 2016-10-12 | 乐视控股(北京)有限公司 | 静态托管网站的管理方法和管理系统 |
CN107229713A (zh) * | 2017-05-27 | 2017-10-03 | 灵犀智数(北京)科技发展有限公司 | 一种对象存储方法及装置 |
CN110506267B (zh) * | 2018-02-01 | 2023-06-23 | 谷歌有限责任公司 | 数字组件背景渲染 |
CN110506267A (zh) * | 2018-02-01 | 2019-11-26 | 谷歌有限责任公司 | 数字组件背景渲染 |
CN110457504A (zh) * | 2018-05-07 | 2019-11-15 | 苹果公司 | 数字资产搜索技术 |
CN110457504B (zh) * | 2018-05-07 | 2022-12-20 | 苹果公司 | 数字资产搜索技术 |
CN109088911B (zh) * | 2018-06-26 | 2021-01-22 | 四川驹马科技有限公司 | 一种基于SaaS服务的定制分发方法及其系统 |
CN109088911A (zh) * | 2018-06-26 | 2018-12-25 | 四川驹马科技有限公司 | 一种基于SaaS服务的定制分发方法及其系统 |
CN109145062A (zh) * | 2018-08-23 | 2019-01-04 | 杭州路享科技有限公司 | 一种自学习的信息分类处理装置 |
CN109145062B (zh) * | 2018-08-23 | 2020-06-23 | 浙江福祉有助电子商务有限公司 | 一种自学习的信息分类处理装置 |
CN109299154A (zh) * | 2018-11-30 | 2019-02-01 | 长城计算机软件与系统有限公司 | 一种大数据的数据存储系统及方法 |
CN113032829A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 多通道并发的文件权限管理方法、装置、服务器和介质 |
CN113032829B (zh) * | 2021-03-26 | 2022-06-10 | 山东英信计算机技术有限公司 | 多通道并发的文件权限管理方法、装置、服务器和介质 |
CN117908862A (zh) * | 2024-01-31 | 2024-04-19 | 和创(北京)科技股份有限公司 | 对象转化配置下字段防误删体系建立的方法及装置 |
CN117908862B (zh) * | 2024-01-31 | 2024-07-12 | 和创(北京)科技股份有限公司 | 对象转化配置下字段防误删体系建立的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6448555B2 (ja) | 2019-01-09 |
US20150278311A1 (en) | 2015-10-01 |
US10817489B2 (en) | 2020-10-27 |
EP2962217A4 (en) | 2016-12-21 |
US20160154833A1 (en) | 2016-06-02 |
US9965502B2 (en) | 2018-05-08 |
WO2014133495A1 (en) | 2014-09-04 |
EP4224324A3 (en) | 2023-09-27 |
US9639564B2 (en) | 2017-05-02 |
EP2962217A1 (en) | 2016-01-06 |
JP2016512634A (ja) | 2016-04-28 |
CN104981802B (zh) | 2018-06-19 |
EP4224324A2 (en) | 2023-08-09 |
US20170192986A1 (en) | 2017-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104981802A (zh) | 针对对象存储器索引系统的内容类别 | |
CN104813321B (zh) | 在分布式对象存储生态系统中的去耦合的内容以及元数据 | |
US10831380B2 (en) | System and method of collision management in a namespace of a storage system | |
JP5918244B2 (ja) | フォールトトレラントデータベース管理システムにおいてクエリ結果を統合するシステム及び方法 | |
JP5918243B2 (ja) | 分散型データベースにおいてインテグリティを管理するためのシステム及び方法 | |
CN102667748B (zh) | 使用复制在具有名称空间的分区的内容平台上的固定内容存储 | |
CN104715038B (zh) | 使用名称空间在分区的内容平台上的固定内容存储 | |
US10572466B2 (en) | Multiple collections of user-defined metadata for self-describing objects | |
US9575975B2 (en) | Cluster-wide unique ID for object access control lists | |
JP2013545162A5 (zh) | ||
JP2013544386A5 (zh) | ||
CN104025058A (zh) | 针对存储分层的内容选择 | |
Curtis | Pro Oracle GoldenGate for the DBA | |
Musatoiu | An approach to choosing the right distributed file system: Microsoft DFS vs. Hadoop DFS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Hitachi Data Management Co. Ltd. Address before: American California Applicant before: Hitachi Data Systems Corp. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |