CN105740303B - 改进的对象存储的方法及装置 - Google Patents
改进的对象存储的方法及装置 Download PDFInfo
- Publication number
- CN105740303B CN105740303B CN201410772951.0A CN201410772951A CN105740303B CN 105740303 B CN105740303 B CN 105740303B CN 201410772951 A CN201410772951 A CN 201410772951A CN 105740303 B CN105740303 B CN 105740303B
- Authority
- CN
- China
- Prior art keywords
- metadata
- storage
- storage region
- index information
- location
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 251
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000008859 change Effects 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 238000000547 structure data Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 241000406668 Loxodonta cyclotis Species 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 102000057593 human F8 Human genes 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229940047431 recombinate Drugs 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/23—Updating
- G06F16/235—Update request 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/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
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)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种改进的对象存储的方法及装置。在该方法中,响应于对象存储区域中的对象仅仅被更新了元数据,在与所述对象存储区域分离的元数据改变存储区域中记录与所述对象相关联的元数据对象,所述元数据对象包括所述对象的更新的元数据和用于指向表示所述对象在所述对象存储区域中的存储位置的第一存储位置的指针信息。然后,修改与所述对象相关联的索引信息,以使得修改后的索引信息指示所述对象仅仅被更新了元数据和用于表示所述元数据对象在所述元数据改变存储区域中的存储位置的第二存储位置。此外,还公开了用于检索对象存储设备中的对象的方法及装置。
Description
技术领域
本发明涉及对象存储技术,更具体地,涉及一种改进的对象存储的方法和装置、以及检索对象存储设备中的对象的方法和装置。
背景技术
对象存储技术正日益成为私有云和公共云服务提供商所使用的关键存储技术,其可提供能够使用标准化服务器的集群来存储千万亿字节的数据的冗余可扩展数据存储。
对象存储系统以对象为存储的基本单元,而每个对象是数据和数据属性集的综合。在创建对象时,使用元数据表示数据的属性,例如名称、创建时间、所有者、创建者、大小和其它的用户自定义属性。通常,对象被存储在对象存储设备中。对象存储设备可管理在其上存储的对象以及与这些对象相关的元数据。
在对象存储设备中可使用文件系统作为底层架构。在这样的对象存储设备中,通常可使用两种方式以处理大量具有较小尺寸的对象,从而优化对象存储性能。
一种方式是利用日志结构型数据存储文件,这种文件本身具有较大尺寸,在其中可以存储多个较小尺寸的对象。每当创建了新的对象时,该新的对象将被附加到该文件中的最后一个对象之后,以实现对象访问的连续输入/输出(sequential I/O)操作,从而提高输入/输入效率。
另一种方式是使用优化的内存索引,其具有很小的内存占用(每个对象大约10字节),可以降低采用inode存储元数据而产生的相对大的内存占用(每个对象大约几百字节至1K字节)。
在日志结构型数据存储文件中,一般地,对象的数据(有时也可称为内容)与对象的元数据一起作为整体进行存储。由于新的对象只能被附加到日志结构型数据存储文件中,因此,文件中的对象发生更新时的更新操作通常包括两个步骤:首先,将新的对象附加到日志结构型数据存储文件中最后一个对象之后,然后,删除原对象。这种更新操作不会破坏连续输入/输出操作。然而,这种更新操作不区分元数据更新和内容更新。因此,即使是仅仅更新了对象的元数据而未更新内容的情形,也需要复制对象的原内容并设置新的元数据。通常,元数据的大小远远小于内容的大小,因此,在采用这种更新操作时,对未改变的对象的内容进行复制会造成输入/输出操作和磁盘空间的浪费。
发明内容
本发明的实施例提供了一种改进的对象存储的方法和装置以及一种用于检索对象存储设备中的对象的方法和装置。
根据本发明的一个方面,提供了一种改进的对象存储的方法,其包括:响应于对象存储区域中的对象仅仅被更新了元数据,在与所述对象存储区域分离的元数据改变存储区域中记录与所述对象相关联的元数据对象,所述元数据对象包括所述对象的更新的元数据和用于指向表示所述对象在所述对象存储区域中的存储位置的第一存储位置的指针信息;以及修改与所述对象相关联的索引信息,以使得修改后的索引信息指示所述对象仅仅被更新了元数据和表示所述元数据对象在所述元数据改变存储区域中的存储位置的第二存储位置。
根据本发明的另一个方面,提供了一种用于检索对象存储设备中的对象的方法,其中,所述对象存储设备使用上述的改进的对象存储的方法来存储对象,所述方法包括:响应于获取对象的请求,查找与所述对象相关联的索引信息;响应于所述索引信息指示所述对象仅仅被更新了元数据,从所述索引信息中获取与所述对象相关联的元数据对象的存储位置;基于所获取的所述元数据对象的存储位置,检索所述元数据对象;从所述元数据对象中获取所述对象的更新的元数据和用于指向所述对象的存储位置的指针信息;基于所述指针信息,检索所述对象。
根据本发明的再一个方面,提供了一种改进的对象存储的装置,其包括:记录模块,其被配置为响应于对象存储区域中的对象仅仅被更新了元数据,在与所述对象存储区域分离的元数据改变存储区域中记录与所述对象相关联的元数据对象,其包括所述对象的更新的元数据和用于指向表示所述对象在所述对象存储区域中的存储位置的第一存储位置的指针信息;以及修改模块,其被配置为修改与所述对象相关联的索引信息,以使得修改后的索引信息指示所述对象仅仅被更新了元数据和用于表示所述元数据对象在所述元数据改变存储区域中的存储位置的第二存储位置。
根据本发明的再一个方面,提供了一种用于检索对象存储设备中的对象的装置,其中,所述对象存储设备通过上述的改进的对象存储的装置来存储对象,所述装置包括:查找模块,其被配置为响应于获取对象的请求,查找与所述对象相关联的索引信息;获取模块,其被配置为响应于所述索引信息指示所述对象仅仅被更新了元数据,从所述索引信息中获取与所述对象相关联的元数据对象的存储位置;以及检索模块,其被配置为基于所获取的所述元数据对象的存储位置,检索所述元数据对象;其中,所述获取模块进一步被配置为从所述元数据对象中获取所述对象的更新的元数据和用于指向所述对象的存储位置的指针信息;所述检索模块进一步被配置为基于所述指针信息,检索所述对象。
根据本发明的实施例的改进的对象存储的方法和装置主要针对仅仅对象的元数据发生改变的情况,能够无需复制对象的未改变的内容,从而有效地提高更新操作的效率,并且保持对象访问的连续输入/输出操作。
根据本发明的实施例的用于检索对象存储设备中的对象的方法和装置能够有效地识别仅仅元数据发生改变的对象,并对其进行检索。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2是根据本发明的实施例的改进的对象存储的方法的示意性流程图;
图3是用于说明图2所示实施例的方法的示例的示意图;
图4是根据本发明的实施例的用于检索对象存储设备中的对象的方法的示意性流程图;
图5是根据本发明的实施例的改进的对象存储的装置的示意性框图;
图6是根据本发明的实施例的用于检索对象存储设备中的对象的装置的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图2示出了根据本发明的实施例的改进的对象存储的方法的示意性流程图。现在参看图2,对本实施例进行详细描述。
本实施例的方法主要针对在对象存储中仅仅对象的元数据发生改变(更新)的情形。
如前所述,在对象存储中,对象的数据以及表明对象的属性集的元数据可一起存储。在使用日志结构型数据存储实现数据存储的情况下,可创建日志结构型数据存储文件以在其中存储各个对象。日志结构型数据存储文件可被保存在对象存储设备的磁盘的某一具有较大尺寸的存储区域中,该存储区域在此可被称为“对象存储区域”。在日志结构型数据存储文件中,对象被顺序地存储,新创建的对象被附加在文件的最后。对象可包括三个部分:头部、数据部分和补白(padding)部分。头部可包括对象的元数据。通常对象的元数据可分为两类:系统元数据和用户定义的元数据。系统元数据例如可包括关键字长度、数据长度、关键字、校验和、时间戳、分区编号等。用户定义的元数据例如包括对象的名称、创建时间、所有者、创建者、大小等等。一般地,只有用户定义的元数据可以改变。
为了便于检索日志结构型数据存储文件中的对象,可以建立例如采用关键字的哈希值作为索引值的内存索引。在这种内存索引哈希表中,可以将关键字的哈希值作为索引值,并关联地记录对象在对象存储区域中的存储位置,从而方便对象的检索。
如图2所示,在步骤S210,响应于对象存储区域中的对象仅仅被更新了元数据,在与对象存储区域分离的另一存储区域中记录与对象相关联的元数据对象。在本实施例中,当对于对象存储区域中的某个对象,只有元数据被更新时,将在对象存储设备的磁盘的与对象存储区域不同的存储区域(以下称为“元数据改变存储区域”)中单独存储该对象的元数据更新相关信息。
在一个实施例中,可以创建一个新的日志结构型数据文件(可称为“元数据改变日志文件”)以存储元数据更新相关信息,并将其保存在对象存储设备的磁盘的元数据改变存储区域中。在元数据改变日志文件中,对象的元数据对象也将顺序地存储。
在本实施例中,元数据更新相关信息可用元数据对象表示。具体地,元数据对象可包括对象的更新的元数据和用于指向该对象在对象存储区域中的存储位置(以下称为“第一存储位置”)的指针信息。通过指针信息,可以将元数据对象指向相关的对象,从而在对象与元数据对象之间建立关联。
在本实施例中,只有更新的元数据被包括在元数据对象中。可选地,也可以将更新的元数据连同其它未更新的元数据一起包括在元数据对象中。
接着,在步骤S220,对与仅仅被更新了元数据的对象相关联的索引信息进行修改,以使得修改后的索引信息指示对象仅仅被更新了元数据和与对象相关联的元数据对象在元数据改变存储区域中的存储位置(以下称为“第二存储位置”)。
如前所述,在对象的索引信息中可记录对象在对象存储区域中的第一存储位置。但对于仅仅元数据被更新的对象,其索引信息中记录的对象的第一存储位置将被修改为该对象的元数据对象的第二存储位置,以便以后检索对象的更新的元数据。
因此,在本实施例中,在对象的元数据未被更新之前,对象的索引信息可包括对象的状态信息和用于指示与对象有关的第一存储位置的位置信息。状态信息可包括指示对象存在的第一状态、指示对象被删除的第二状态和指示对象仅仅被更新了元数据的第三状态。因此,在仅仅更新了对象的元数据时,对象的状态信息将从第一状态修改为第三状态,以指示对象仅仅被更新了元数据,并且位置信息将从对象的第一存储位置修改为元数据对象的第二存储位置。此外,当对象从对象存储区域中删除时,其状态信息将从第一状态修改为第二状态,位置信息可相应地删除或者维持。
在本实施例中,第一存储位置和第二存储位置可用起始地址和长度表示。起始地址可以是绝对地址,也可以是相对基准位置的偏移量。这样,第一存储位置可被表示为对象在对象存储区域中的原始起始地址和对象的原始长度,第二存储位置可被表示为元数据对象在元数据改变存储区域中的起始地址和元数据对象的长度。因此,指针信息可包括对象的起始地址和对象的长度,位置信息可包括元数据对象的起始地址和元数据对象的长度。
另外,可以使用表的形式存储对象的索引信息,例如内存索引表。在这种情况下,每个对象的索引信息构成索引表的一个条目,并且可使用例如对象的标识、关键词的哈希值等可识别对象的索引值进行索引。在本实施例中,索引表被存储在对象存储设备的内存中。
虽然以上主要针对日志结构型对象存储对本实施例的方法进行了描述,但本领域技术人员可以知道,本实施例的方法还可适用于其它能够处理小尺寸对象的对象存储方式,只要在该对象存储方式中,对象被顺序地存储即可。
通过以上描述可以看出,本实施例的改进的对象存储的方法通过将仅仅元数据改变的对象的元数据更新相关信息存储在磁盘中与对象存储区域分离的元数据改变存储区域中并修改对象的相应索引信息,与现有技术相比,可以单独存储更新的元数据,而无需删除原来的对象,从而能够有效地节省磁盘输入/输出操作和存储空间,从而导致对象存储的更好的性能。
此外,为了释放对象删除后造成的对象存储区域中的空闲空间,可以周期性地压缩对象存储区域,即,将对象存储区域中的对象进行重组。在一个实施例中,可以响应于压缩对象存储区域的请求,用在元数据改变存储区域中存储的元数据对象中的元数据替换在对象存储区域中存储的相应的对象的对应元数据,以使得这些对象具有更新的元数据。然后,对对象存储区域执行压缩操作,并修改对象的索引信息。由于执行压缩操作可能造成对象在对象存储区域中的存储位置的改变,因此,需要相应地修改对象的索引信息。
图3示出了用于说明图2所示的实施例的方法的例子,其中图3(a)示出了更新前的对象存储情形,图3(b)示出了更新后的对象存储情形。如图3所示,在该例子中,对象被存储在磁盘上的日志结构型数据文件中,对象的索引信息被存储在内存索引哈希表中,元数据对象被存储在磁盘上的元数据改变日志文件中。为便于说明,假定日志结构型数据文件中存储了三个对象1、2、3。在图3(a)中,在内存索引哈希表中,三个对象的状态信息的值(由“状态”指示)都为“0”,表明对象在日志结构型数据文件中存在。此时,内存索引哈希表中的“偏移量”和“长度”指示对象1、2、3在日志结构型数据文件中的存储位置。此时,在元数据改变日志文件中没有记录任何元数据对象。如果对象2被删除,并且对象3仅仅元数据被改变,则在日志结构型数据文件中,对象2被删除,对象1和3保持。此时,在元数据改变日志文件中,记录了新的元数据对象,其与对象3相关联,并包括对象3的更新的元数据以及指向对象3在日志结构型数据文件中的存储位置的指针信息。该存储位置用对象3的起始地址(在该例中是偏移量)和对象3的长度表示。此外,在内存索引哈希表中,对象2的状态信息的值被修改为“1”,表明对象2已在日志结构型数据文件中删除,对象3的状态信息的值被修改为“2”,表明对象3仅仅元数据被修改。另外,在内存索引哈希表中,对象3的位置信息也被修改成指向元数据改变日志文件中的元数据对象,即,元数据对象在元数据改变日志文件中的存储位置,其可用元数据对象的起始地址(在该例子中是偏移量)和元数据对象的长度表示。
图4是根据本发明的实施例的用于检索对象存储设备中的对象的方法的示意性流程图。以下结合附图,对本实施例进行详细描述,其中对于与前面么实施例相同的部分,适当省略其说明。
在本实施例的方法中,对象存储设备使用如图2所示的实施例的改进的对象存储的方法来存储对象。
如图4所示,在步骤S410,响应于检索对象的请求,查找与所请求的对象相关联的索引信息。一般地,在检索对象的请求中可包括用于识别对象的信息,例如对象的标识、关键字等。基于这样的识别信息,可获得相关的索引信息。
如前所述,对象的索引信息可包括状态信息和位置信息。如果索引信息中的状态信息指示对象仅仅被更新了元数据,则在步骤S420中,从索引信息中获取对象的位置信息。在这种情况下,位置信息指示与对象相关联的元数据对象在元数据改变存储区域中的存储位置。如果状态信息指示对象存在,则对象的位置信息指示对象在对象存储区域中的存储位置。如果状态信息指示对象删除,则忽略该对象。
然后,在步骤S430,基于所获取的元数据对象的存储位置,检索该元数据对象。如前所述,元数据对象的存储位置可用起始地址和长度表示。在起始地址指示绝对地址的情况下,可在从起始地址到(起始地址+长度)的地址范围内获取元数据对象。在起始地址指示相对基准位置的偏移量的情况下,可在从(基准位置+偏移量)到(基准位置+偏移量+长度)的地址范围内获取元数据对象。
如前所述,元数据对象可包括对象的更新的元数据和用于指向对象在对象存储区域中的存储位置的指针信息。因此,在步骤S440,从检索到的元数据对象中获取对象的更新的元数据和指针信息。然后,在步骤S450,基于该指针信息,检索相应的对象。如前所述,指针信息可包括对象的起始地址和对象的长度。在起始地址指示绝对地址的情况下,可在从起始地址到(起始地址+长度)的地址范围内获取对象。在起始地址指示相对基准位置的偏移量的情况下,可在从(基准位置+偏移量)到(基准位置+偏移量+长度)的地址范围内获取对象。
在获得了对象的更新的元数据和对象之后,可向请求检索对象的客户端返回检索到的对象及其更新的元数据。进一步地,也可以用更新的元数据替换对应的原来的元数据,然后提供具有更新的元数据的对象。
通过以上描述可以看出,本实施例的用于检索对象存储设备中的对象的方法能够有效地识别仅仅元数据被更新的对象,并实现对这种对象的检索。
在图3的例子中,在接收到针对对象3的检索请求后,在内存索引哈希表中查找到对应的索引条目。由于该索引条目中的状态信息的值为“2”,这表明对象3是仅仅元数据被更新的对象,因此,索引条目中的“偏移量”和“长度”指示对象3的元数据对象的存储位置。基于“偏移量”和“长度”,可在元数据改变日志文件中检索到对象3的元数据对象,并从中获取更新的元数据和指向对象3的存储位置的指针信息。然后,基于该指针信息,可在日志结构型数据文件中检索到对象3。
在相同的发明构思下,图5是根据本发明的实施例的改进的对象存储的装置500的示意性框图。以下结合附图,对本实施例进行详细描述,其中,对于与前面实施例相同的部分,适当省略其说明。
如图5所示,本实施例的改进的对象存储的装置500可包括:记录模块501,其被配置为响应于对象存储区域中的对象仅仅被更新了元数据,在与对象存储区域分离的元数据改变存储区域中记录与该对象相关联的元数据对象;以及修改模块502,其被配置为修改与对象相关联的索引信息,以使得修改后的索引信息指示该对象仅仅被更新了元数据和用于表示所记录的元数据对象在元数据改变存储区域中的存储位置的第二存储位置。
在本实施例的装置500中,当对象存储区域中的某个对象仅仅被更新了元数据时,记录模块501将在与对象存储区域不同的元数据改变存储区域中存储该对象的元数据对象,其表示元数据更新相关信息,可包括对象的更新的元数据和指针信息,其中指针信息用于指向表示对象在对象存储区域中的存储位置的第一存储位置。
在一个实施例中,对象存储区域使用日志结构型数据存储来进行对象存储。相应地,元数据改变存储区域也使用日志结构型数据存储。
在本实施例中,只有更新的元数据被包括在元数据对象中。可选地,也可以是更新的元数据连同未更新的元数据一起被包括在元数据对象中。
接着,修改模块502对仅仅元数据被更新的对象的索引信息进行修改。如前所述,在对象的元数据未被更新之前,索引信息可包括对象的状态信息和用于指示对象的第一存储位置的位置信息。在本实施例中,对象的状态信息可包括指示对象存在的第一状态、指示对象被删除的第二状态以及指示对象仅仅被更新了元数据的第三状态。对于仅仅元数据被更新的对象,修改模块502将索引信息中的状态信息从第一状态修改为第三状态,并将位置信息修改为指示第二存储位置。
在一个实施例中,第一存储位置和第二存储位置可用起始地址和长度表示。起始地址可以是绝对地址,也可以是相对基准位置的偏移量。
进一步地,本实施例的装置500还可包括:替换模块,其被配置为响应于压缩对象存储区域的请求,用在元数据改变存储区域中存储的元数据对象中的更新的元数据替换在对象存储区域中存储的相应的对象的对应元数据;以及压缩模块,其被配置为对对象存储区域进行压缩操作。在这种情况下,修改模块501还被配置为修改对象存储区域中的对象的索引信息。
应当注意,本实施例的装置500能够在操作上实现图2所示的实施例的改进的对象存储的方法。
在相同的发明构思下,图6示出了根据本发明的实施例的用于检索对象存储设备中的对象的装置600的示意性框图。以下结合附图,对本实施例进行详细说明,其中与前面实施例相同的部分,适当省略其说明。
本实施例的装置600可以适用于使用图5所示的改进的对象存储的装置500来存储对象的对象存储设备。
如图6所示,本实施例的装置600可包括:查找模块601,其被配置为响应于检索对象的请求,查找与所请求的对象相关联的索引信息;获取模块602,其被配置为响应于所查找到的索引信息指示对象仅仅被更新了元数据,从索引信息中获取与该对象相关联的元数据对象的存储位置;以及检索模块603,其被配置为基于所获取的元数据对象的存储位置,检索该元数据对象。此外,获取模块602进一步被配置为从检索到的元数据对象中获取对象的更新的元数据和用于指向对象的存储位置的指针信息,检索模块603进一步被配置为基于所获取的指针信息,检索对象。
进一步地,本实施例的装置600还可包括:替换模块,其被配置为用所获取的对象的更新的元数据替换所检索到的对象的对应元数据。
应当注意,本实施例的装置600能够在操作上实现图4所示的实施例的用于检索对象存储设备中的对象的方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种改进的对象存储的方法,包括:
响应于对象存储区域中的对象仅仅被更新了元数据,在与所述对象存储区域分离的元数据改变存储区域中记录与所述对象相关联的元数据对象,所述元数据对象包括所述对象的更新的元数据和用于指向表示所述对象在所述对象存储区域中的存储位置的第一存储位置的指针信息;以及
修改与所述对象相关联的索引信息,以使得修改后的索引信息指示所述对象仅仅被更新了元数据和用于表示所述元数据对象在所述元数据改变存储区域中的存储位置的第二存储位置,其中,所述索引信息包括所述对象的状态信息和用于指示所述第一存储位置的位置信息,其中,所述对象的状态信息包括指示所述对象存在的第一状态、指示所述对象被删除的第二状态以及指示所述对象仅仅被更新了元数据的第三状态;
响应于压缩所述对象存储区域的请求,用在所述元数据改变存储区域中存储的元数据对象中的更新的元数据替换在所述对象存储区域中存储的相应的对象的对应元数据;以及
对所述对象存储区域进行压缩操作,并修改所述对象存储区域中的对象的索引信息。
2.根据权利要求1所述的方法,其中,所述对象存储区域使用日志结构型数据存储来进行对象存储。
3.根据权利要求1所述的方法,其中,所述对象的更新的元数据连同所述对象的未更新的元数据一起被包括在所述元数据对象中。
4.根据权利要求1所述的方法,其中,所述第一存储位置和所述第二存储位置用起始地址和长度表示。
5.根据权利要求1所述的方法,其中,所述对象存储区域和所述元数据改变存储区域在对象存储设备的磁盘上,所述索引信息被存储在所述对象存储设备的内存中。
6.一种用于检索对象存储设备中的对象的方法,其中,所述对象存储设备使用权利要求1至5任意一项所述的改进的对象存储的方法来存储对象,所述方法包括:
响应于检索对象的请求,查找与所述对象相关联的索引信息;
响应于所述索引信息指示所述对象仅仅被更新了元数据,从所述索引信息中获取与所述对象相关联的元数据对象的存储位置;
基于所获取的所述元数据对象的存储位置,检索所述元数据对象;
从所述元数据对象中获取所述对象的更新的元数据和用于指向所述对象的存储位置的指针信息;
基于所述指针信息,检索所述对象。
7.根据权利要求6所述的方法,还包括:
用所述对象的更新的元数据替换所检索到的所述对象的对应元数据。
8.一种改进的对象存储的装置,包括:
记录模块,其被配置为响应于对象存储区域中的对象仅仅被更新了元数据,在与所述对象存储区域分离的元数据改变存储区域中记录与所述对象相关联的元数据对象,所述元数据对象包括所述对象的更新的元数据和用于指向表示所述对象在所述对象存储区域中的存储位置的第一存储位置的指针信息;以及
修改模块,其被配置为修改与所述对象相关联的索引信息,以使得修改后的索引信息指示所述对象仅仅被更新了元数据和用于表示所述元数据对象在所述元数据改变存储区域中的存储位置的第二存储位置,其中,所述索引信息包括所述对象的状态信息和用于指示所述第一存储位置的位置信息,其中,所述对象的状态信息包括指示所述对象存在的第一状态、指示所述对象被删除的第二状态以及指示所述对象仅仅被更新了元数据的第三状态;
替换模块,其被配置为响应于压缩所述对象存储区域的请求,用在所述元数据改变存储区域中存储的元数据对象中的更新的元数据替换在所述对象存储区域中存储的相应的对象的对应元数据;以及
压缩模块,其被配置为对所述对象存储区域进行压缩操作;
其中,所述修改模块还被配置为修改所述对象存储区域中的对象的索引信息。
9.根据权利要求8所述的装置,其中,所述对象存储区域使用日志结构型数据存储来进行对象存储。
10.根据权利要求8所述的装置,其中,所述对象的更新的元数据连同所述对象的未更新的元数据一起被包括在所述元数据对象中。
11.根据权利要求8所述的装置,其中,所述第一存储位置和所述第二存储位置用起始地址和长度表示。
12.根据权利要求8所述的装置,其中,所述对象存储区域和所述元数据改变存储区域在对象存储设备的磁盘上,所述索引信息被存储在所述对象存储设备的内存中。
13.一种用于检索对象存储设备中的对象的装置,其中,所述对象存储设备通过权利要求8至12任意一项所述的改进的对象存储的装置来存储对象,所述装置包括:
查找模块,其被配置为响应于检索对象的请求,查找与所述对象相关联的索引信息;
获取模块,其被配置为响应于所述索引信息指示所述对象仅仅被更新了元数据,从所述索引信息中获取与所述对象相关联的元数据对象的存储位置;以及
检索模块,其被配置为基于所获取的所述元数据对象的存储位置,检索所述元数据对象;
其中,所述获取模块进一步被配置为从所述元数据对象中获取所述对象的更新的元数据和用于指向所述对象的存储位置的指针信息;
所述检索模块进一步被配置为基于所述指针信息,检索所述对象。
14.根据权利要求13所述的装置,还包括:
替换模块,其被配置为用所述对象的更新的元数据替换所检索到的所述对象的对应元数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410772951.0A CN105740303B (zh) | 2014-12-12 | 2014-12-12 | 改进的对象存储的方法及装置 |
US14/941,932 US10089338B2 (en) | 2014-12-12 | 2015-11-16 | Method and apparatus for object storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410772951.0A CN105740303B (zh) | 2014-12-12 | 2014-12-12 | 改进的对象存储的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740303A CN105740303A (zh) | 2016-07-06 |
CN105740303B true CN105740303B (zh) | 2019-09-06 |
Family
ID=56111355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410772951.0A Active CN105740303B (zh) | 2014-12-12 | 2014-12-12 | 改进的对象存储的方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10089338B2 (zh) |
CN (1) | CN105740303B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170154050A1 (en) | 2015-11-30 | 2017-06-01 | International Business Machines Corporation | Optimized content object storage service for large scale content |
CN106294700A (zh) * | 2016-08-08 | 2017-01-04 | 无锡天脉聚源传媒科技有限公司 | 一种日志的存储与读取方法及装置 |
CN106503032A (zh) * | 2016-09-09 | 2017-03-15 | 深圳大学 | 一种数据压缩的方法及装置 |
CN106484840A (zh) * | 2016-09-30 | 2017-03-08 | 上海聚力传媒技术有限公司 | 自动更新垂直检索索引的方法和装置 |
EP3674846B1 (en) * | 2017-10-13 | 2023-12-06 | Huawei Technologies Co., Ltd. | Method and apparatus for compressing and decompressing memory occupied by processor |
CN110413200B (zh) * | 2018-04-28 | 2023-06-09 | 伊姆西Ip控股有限责任公司 | 数据同步的方法、设备和计算机程序产品 |
CN110674084A (zh) * | 2018-06-15 | 2020-01-10 | 伊姆西Ip控股有限责任公司 | 用于数据保护的方法、设备和计算机可读存储介质 |
US10931640B2 (en) | 2018-06-22 | 2021-02-23 | International Business Machines Corporation | Tunneling network traffic using object storage |
CN111241097B (zh) * | 2020-01-08 | 2024-03-12 | 北京小米松果电子有限公司 | 处理对象的方法、处理对象的装置及存储介质 |
US11514016B2 (en) | 2020-01-15 | 2022-11-29 | International Business Machines Corporation | Paging row-based data stored as objects |
US11200158B1 (en) * | 2020-06-02 | 2021-12-14 | The Governing Council Of The University Of Toronto | Methods, devices, and media for hardware-supported object metadata retrieval |
US11934378B2 (en) * | 2021-03-11 | 2024-03-19 | International Business Machines Corporation | Recording changes to records whilst preserving record immutability |
CN113449155B (zh) * | 2021-07-16 | 2024-02-27 | 百度在线网络技术(北京)有限公司 | 用于特征表示处理的方法、装置、设备和介质 |
CN113688139B (zh) * | 2021-08-30 | 2024-03-12 | 重庆紫光华山智安科技有限公司 | 对象存储方法、网关、设备及介质 |
CN113918584A (zh) * | 2021-09-30 | 2022-01-11 | 北京鲸鹳科技有限公司 | 元数据更新方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706805A (zh) * | 2009-10-30 | 2010-05-12 | 中国科学院计算技术研究所 | 对象存储方法及其系统 |
US8131691B1 (en) * | 2002-12-30 | 2012-03-06 | Symantec Operating Corporation | System and method for updating a search engine index based on which files are identified in a file change log |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873097A (en) | 1993-05-12 | 1999-02-16 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
JP3585800B2 (ja) * | 1999-01-13 | 2004-11-04 | 株式会社東芝 | 情報処理装置 |
JP3763992B2 (ja) | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6779202B1 (en) * | 2003-02-20 | 2004-08-24 | Andrew L. Alldredge | Plunger appliance for toilets |
EP1640679A1 (en) * | 2003-06-27 | 2006-03-29 | Gac Corporation | Duct system and receiving device |
US8223653B2 (en) * | 2004-04-05 | 2012-07-17 | Ixia | Broadcast capable file system |
FR2892274B1 (fr) * | 2005-10-26 | 2008-02-01 | Promiles Sa | Objet utilitaire repliable sur lui-meme |
US7801864B2 (en) | 2005-11-28 | 2010-09-21 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data identification operations |
DE102008002228A1 (de) * | 2008-06-05 | 2009-12-10 | Biotronik Crm Patent Ag | Langgestrecktes Implantat mit externer Energieeinkopplung |
US8605976B2 (en) * | 2009-12-10 | 2013-12-10 | General Electric Corporation | System and method of detection of optimal angiography frames for quantitative coronary analysis using wavelet-based motion analysis |
US8244700B2 (en) | 2010-02-12 | 2012-08-14 | Microsoft Corporation | Rapid update of index metadata |
US8595237B1 (en) | 2010-02-17 | 2013-11-26 | Netapp, Inc. | Method and system for managing metadata in a storage environment |
US8489656B2 (en) * | 2010-05-28 | 2013-07-16 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US20120143824A1 (en) | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Protecting files that include editable metadata |
CN103516549B (zh) | 2013-09-27 | 2018-03-27 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件系统元数据日志机制 |
US10083082B2 (en) * | 2015-09-07 | 2018-09-25 | International Business Machines Corporation | Efficient index checkpointing in log-structured object stores |
-
2014
- 2014-12-12 CN CN201410772951.0A patent/CN105740303B/zh active Active
-
2015
- 2015-11-16 US US14/941,932 patent/US10089338B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131691B1 (en) * | 2002-12-30 | 2012-03-06 | Symantec Operating Corporation | System and method for updating a search engine index based on which files are identified in a file change log |
CN101706805A (zh) * | 2009-10-30 | 2010-05-12 | 中国科学院计算技术研究所 | 对象存储方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105740303A (zh) | 2016-07-06 |
US10089338B2 (en) | 2018-10-02 |
US20160171025A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740303B (zh) | 改进的对象存储的方法及装置 | |
TWI702506B (zh) | 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法 | |
TWI682274B (zh) | 鍵值儲存樹 | |
TWI702503B (zh) | 實施用於維護操作之合併樹修改之系統、方法及電腦可讀媒體 | |
TWI682285B (zh) | 用於索引鍵值結構樹資料庫的產品、方法及機器可讀媒體 | |
TWI719281B (zh) | 用於串流選擇之系統、機器可讀媒體、及機器實施之方法 | |
CN105701098B (zh) | 针对数据库中的表生成索引的方法和装置 | |
US8706710B2 (en) | Methods for storing data streams in a distributed environment | |
US8738572B2 (en) | System and method for storing data streams in a distributed environment | |
CN113986873B (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
US9043540B2 (en) | Systems and methods for tracking block ownership | |
WO2018064962A1 (zh) | 数据存储方法、电子设备和计算机非易失性存储介质 | |
US20160314178A1 (en) | Method and apparatus for processing database data in distributed database system | |
US20180144061A1 (en) | Edge store designs for graph databases | |
CN107766374B (zh) | 一种海量小文件存储读取的优化方法和系统 | |
KR20160003682A (ko) | 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN104598550B (zh) | 一种网络视频索引的更新方法和装置 | |
US10515055B2 (en) | Mapping logical identifiers using multiple identifier spaces | |
KR20200103542A (ko) | 지식-구동 연합 빅 데이터 쿼리 및 분석 플랫폼 | |
CN107526746A (zh) | 管理文档索引的方法和设备 | |
CN112912870A (zh) | 租户标识符的转换 | |
US10936640B2 (en) | Intelligent visualization of unstructured data in column-oriented data tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |