CN103294610A - 可重复使用的内容可寻址存储 - Google Patents

可重复使用的内容可寻址存储 Download PDF

Info

Publication number
CN103294610A
CN103294610A CN2013100325456A CN201310032545A CN103294610A CN 103294610 A CN103294610 A CN 103294610A CN 2013100325456 A CN2013100325456 A CN 2013100325456A CN 201310032545 A CN201310032545 A CN 201310032545A CN 103294610 A CN103294610 A CN 103294610A
Authority
CN
China
Prior art keywords
storage
sheet
sheet storage
block structure
composite sheet
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
Application number
CN2013100325456A
Other languages
English (en)
Other versions
CN103294610B (zh
Inventor
伯特兰·塞尔勒特
罗杰·博达梅尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
UP THERE Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by UP THERE Inc filed Critical UP THERE Inc
Publication of CN103294610A publication Critical patent/CN103294610A/zh
Application granted granted Critical
Publication of CN103294610B publication Critical patent/CN103294610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明描述了使用片存储作为结构块以构成更大片存储的技术。由其他片存储构成的片存储(复合片存储)可具有任何数量和类型的结构块片存储。而且,复合片存储中的结构块片存储能够以任何方式布置,在所述复合片存储中形成任何数量的层级。结构块片存储露出共用接口,并将相同的哈希函数应用于片的内容以产生用于所述片的访问关键字。由于所述访问关键字是基于内容的,因此相同片的所有副本将具有相同的访问关键字,与正在管理所述副本的片存储无关。另外,没有其他的片将具有所述相同的访问关键字。

Description

可重复使用的内容可寻址存储
技术领域
本发明涉及存储系统,更具体而言,本发明涉及用多个结构块片存储(building block chunk store,结构块片存储器)构造复合(composite)片存储的技术。
背景技术
在本文中,用于访问存储的数字项的信息称作所存储项的访问关键字(access key)。在典型的文件系统中,基于(a)所述项的存储位置和(b)所述项的名字或识别符来检索所存储的项。例如,如果命名为“foo.txt”的文件位于命名为“c:\myfiles\text”的目录中的话,则应用程序可使用路径名“c:\myfiles\text\foo.txt”作为访问关键字从文件系统中检索文件。由于传统的访问关键字基于待检索的项的位置,因此当所述项移动时访问关键字改变。另外,项的每个副本均具有不同的访问关键字,因为每个副本被存储在不同的位置处。
与传统文件系统相反,内容可寻址存储(CAS)系统允许应用程序基于从项的内容中产生的哈希值从存储器中检索项。由于CAS系统基于从项的内容中产生的哈希值在所述项上执行与存储相关的操作,并且哈希值是基于所述项的内容而不是基于所述项存储在哪里,因此请求所述操作的应用程序可在无需知道所述项的已存储副本的数量或位置的情况下执行操作。例如,CAS系统可将项X的多个副本存储在位置A、B和C中。期望检索项X的应用程序可通过将基于所述项X的内容的哈希值发送至CAS系统而执行操作。基于所述哈希值,CAS系统会将从位置A、B和C中之一检索到的项X的副本提供给应用程序。因此,应用程序能在无需知道项X实际存储在哪里、存在多少个项X的副本、或实际获得所检索的副本的特定位置的情况下获得项X。
存储一数字项(诸如文件或消息)通常涉及对“片存储系统”进行调用。片存储系统是无需理解数字信息本身的格式或内容的情况下执行存储操作的存储系统。这样的存储系统被称作片存储系统,因为该系统处理所有形式的数字项,好像那些项仅是数据的不透明片(opaque chunk)。例如,相同的片存储系统可由文字处理应用程序、图像管理应用程序、以及日历系统使用以分别存储文档、图像和预约(appointment)。然而,从片存储系统的观点来看,仅存储了一种类型的项:数字信息的不透明片。
片存储系统可实施为CAS系统。例如,片存储系统可通过将加密哈希功能(例如,MD5,SHA-1或SHA2)应用于片而产生用于所述片的哈希值。片存储系统然后存储该片,并保留一索引,所述索引使得所述哈希值与所述片存储的位置相关。当随后应用程序请求该片的检索时,该应用程序将该哈希值提供给片存储系统。所述片存储系统使用所述索引来定位于所述哈希值相关的片,并将如此定位的片提供给提出请求的应用程序。
本部分中描述的方法是可推行的方法,但不必是先前已构思或推行的方法。因此,除非另外指明,否则不能仅根据所述方法包含在该部分中而假定该部分中描述的任何方法符合现有技术的要求。
发明内容
根据本发明的一个方面,提供了一种复合片存储,所述复合片存储包括多个结构块片存储;其中所述多个结构块片存储中的每个结构块片存储被构造成:露出共用接口以接收片操作要求;以及使用哈希值作为存储在所述复合片存储中的片的访问关键字,所述哈希值通过对所述片的内容应用特定哈希函数而产生;其中,所述多个结构块片存储包括第一片存储和第二片存储;其中,所述第一片存储是与所述第二片存储不同类型的片存储;其中,用来产生用于存储在所述复合片存储中的所述片的访问关键字的所述特定哈希函数对于所述多个结构块片存储的所有结构块片存储而言是同一哈希函数。
根据本发明的另一个方面,提供了一种方法,包括:在第一片存储的共用接口处接收第一片操作请求,所述第一片操作请求以特定片为目标并且指示用于所述特定片的访问关键字;其中,所述第一片存储是布置为复合片存储的一部分的多个结构块片存储之一;其中,所述第一片存储是超高速缓存片存储;其中,所述超高速缓存片存储具有超高速缓冲存储器,用于临时存储用于所述结构块片存储的片的副本;其中,所述超高速缓存片存储未被构造成永久性地存储用于所述结构块片存储的任何片;响应于接收到所述第一片操作请求,所述第一片存储使用所述访问关键字来确定在所述超高速缓冲存储器中是否存储有所述特定片;以及响应于确定在所述超高速缓冲存储器中未存储所述特定片,所述第一片存储向作为所述复合片存储的一部分的第二片存储发送第二片操作要求;其中,所述第二片操作要求以所述特定片为目标并且指示用于所述特定片的所述访问关键字;响应于接收到所述第二片操作要求,所述第二片存储使用所述访问关键字从持久性存储中检索所述特定片;其中,对片的内容应用相同的哈希函数,以产生用于所述片的访问关键字,而与所述复合片存储中哪一个结构块片存储存储所述片无关;其中,所述方法由一个或多个计算装置执行。
根据本发明的再一个方面,提供了一个或多个非瞬态计算机可读介质,所述非瞬态计算机可读介质存储指令,当所述指令被执行时,引起执行上述的方法。
附图说明
在附图中:
图1是根据本发明实施例的复合片存储的框图;
图2是图1复合片存储的框图,示出了可被组合以形成复合片存储的不同类型结构块片存储的实例;
图3是示出了本发明的实施例可在其上实施的计算机系统的框图;以及
图4是复合片存储的框图,示出了根据一实施例的可能的现实世界使用示例场景。
具体实施方式
在以下描述中,为了解释的目的,提供了多个具体细节以提供对本发明的全面理解。然而应该明白的是,本发明能够在没有这些具体细节的情况下实践。在其他实例中,为了避免对本发明造成不必要的误解,公知的结构和装置以框图形式示出。
总体概述
本发明提供了使用片存储作为结构块以构建更大片存储的技术。由其他片存储构成的片存储在本文中称作“复合片存储”。在本文中组成复合片存储的片存储被称作结构块片存储。
复合片存储可具有任何数量和类型的结构块片存储。而且,复合片存储中的结构块片存储能够以任何方式布置,由此在所述复合片存储中形成任何数量的层级(level)。在复合片存储中,对其他结构块片存储进行调用的结构块片存储在本文中被称作中间片存储。
属于复合片存储的结构块片存储可以相对于彼此在本地和/或远程定位。例如,单个复合片存储可以具有结构块片存储A、B、C和D,其中片存储A和B通过相同的计算装置管理,片存储C在与片存储A和B相同的网络内的不同的装置上,并且片存储D在与片存储A、B和C完全不同的网络上。由于允许结构块片存储在多个网络上分布,属于复合片存储的片存储可以以非常具有柔性的方式进行地理(geographically)部署,以实现性能目标,比如减少网络延迟。
根据一个实施方式,结构块片存储中的每一个均露出相同的接口以便接收对片操作的请求。此外,中间片存储设计为通过该相同的共用接口来调用其他结构块片存储。因此,可以将片存储添加至复合片存储、从复合片存储移除片存储、或者在复合片存储内重新布置片存储,而无需基础性地改变发生片存储相互作用所采用的协议。
根据一个实施方式,在复合片存储内,所有的结构块片存储都是用相同的哈希函数以生成用于这些结构块片存储所管理的片的访问关键字。另外,每个片存储均将该哈希函数(hashfunction)应用至片的内容以产生用于片的访问关键字。通过在所有结构块片上使用共用哈希函数,以及通过将所述哈希函数应用至片的内容来生成访问关键字,确保了对于给定的任何访问关键字,复合片存储内的每个片存储将或者提供正确的片或者将不会提供任何片。
复合片存储实例
参考图1,该图是使出了根据本发明实施方式的复合片存储100的框图。复合片存储100包括若干个结构块片存储104、106、108、110、114以及116。所有结构块片存储104、106、108、110、112、114和116都露出相同的接口(共用接口102)。
通过调用复合片存储100内的其中一个结构块片存储的共用接口102来形成来自实体外部的对复合片存储100的片操作请求。图1示出了外部片操作请求150被直接发送至片存储104、106、108、110和116中的任一个的共用接口102的情况。在接收到片操作请求150后,片存储可以将该请求转送(forward)至另一片存储的共用接口102。例如,在通过其共用接口102接收到外部片操作请求150后,片存储140可将片操作请求发送至片存储108的共用接口102。随之,片存储108可将片操作请求发送至片存储116。因此,单个外部片操作请求150可以经过复合片存储100内的多个层级。
根据一个实施方式,外部片操作请求150也可以被直接提交给复合片存储100内的任何层级的片存储。例如,外部片操作请求150可以被直接发送至片存储116,或者直接发送至片存储108。结构块片存储通过相同共用接口102彼此调用的能力,以及外部片操作请求150通过相同共用接口102被直接发送至复合片存储100的任何层级的片存储的能力,允许针对用户的特定需要来容易地定制复合片存储的内部组合和布置。此外,在用户的需要改变时,可以容易地修改定制组合和布置。
生成访问关键字
根据一个实施方式,复合片存储内的所有结构块片存储都使用相同的哈希函数以生成访问关键字,并且通过将该哈希函数应用至片的内容而生成用于每个片的访问关键字。根据一个实施方式,所述哈希函数是不变的(immutable)哈希函数,其中将所述哈希函数应用至给定的片总是生成相同的访问关键字。可以用于生成访问关键字的哈希函数的实例包括(但不限于)MD5、SHA-1以及SHA-2。
在许多情况下,复合片存储的结构块片存储将在若干个计算机上分布,这些计算机中的一些可以与其他计算机距离很远。然而,由于所有的结构块片存储都使用相同的哈希函数,并且所述哈希函数基于片的内容生成哈希值,因此复合片存储不需要采用复杂的高速缓存一致性协议来确保所有结构块片在相同访问关键字-片映射下操作。
特别地,复合片存储内的通过访问关键字的片存储中的任一个将能够基于所述访问关键字检索正确的片,或者将不会基于所述访问关键字检索任何片。将不会有片存储将访问关键字映射到错误片。另外,由于访问关键字不考虑片的位置,因此访问关键字不会由于对应片的重新定位而变成“无效”,并且相同片的全部副本将具有相同的访问关键字,而不管是哪个结构块片管理所述副本。
片存储的类型
复合片存储(比如复合片存储100)可以包括多种不同类型的结构块片存储。复合片存储100所包括的片存储的类型,以及这些片存储在复合片存储100内如何布置,可以根据用户的特定需要来调整。复合片存储可能包括的片存储的类型可以包括(但不限于)本地片存储、远程片存储、超高速缓(caching)存片存储、复制片存储、分割器(splitter)、故意错误片存储(intentionally faulty chunk store)以及度量发生(metric-generating)片存储。图2为示出了图1的包括多种不同类型的片存储的复合片存储100的框图。这些类型的片存储中的每一个将在下文中更详细地描述。
本地片存储
本地片存储是这样的片存储,其在发出外部片操作请求150的机器的本地储存器中存储片。在图2中,片存储110为本地片存储。一般地,在本地片存储110内的片上执行片操作将比在远程片存储上执行片操作消耗更少的资源。然而,在本地存储器上可用的空间量可能比存储复合片存储100需要管理的所有片所需的空间量少。因此,复合片存储100包括若干个额外类型的片存储,这些片存储不占用片操作请求器的本地储存器。
超高速缓存片存储
超高速缓存片存储用作一个或多个其他片存储的代理服务器。特别地,超高速缓存片存储临时地存储永久地存储在一个或多个其他片存储中的片子集(subset)的副本。例如,在图2中,片存储106示出为用作片存储112的代理服务器的超高速缓存片存储。因此,片存储106包括临时存储存在于远程储存器(片存储112在该远程储存器上存储片)上的片子集的超高速缓存。当超高速缓存片存储106接收请求以检索片时,超高速缓存片存储106首先检查其用于所请求片的超高速缓存。通过判断是否任何超高速缓存片与片请求中接收到的哈希值相关联,超高速缓存片检查其超高速缓存。例如,可以使用指示出具有与超高速缓存片相关联的哈希值的那些超高速片的位置的索引来执行这种检查。
如果所请求的片的副本在超高速缓存中,则超高速缓存片存储106提供片而无需将请求转送至片存储112。如果在超高速缓存中没有所请求的片的副本,则超高速缓存片存储106调用片存储112的共用接口102以检索所请求的片。在从片存储112检索片时,超高速缓存片存储106将片提供给请求器,并且可以在其超高速缓存中存储片的副本。在超高速缓存片存储106的超高速缓存内的被更换以便为新的片提供空间的片基于通过超高速缓存片存储106实施的更换策略来选择。超高速缓存片存储106所使用的特定更换策略可以根据实施方式而变化,并且可以考虑比如每个超高速缓存片最近被存取的情况、以及每个超高速缓存片被存取的频繁程度的因素。
在接收请求以存储片时,超高速缓存片存储106调用片存储112的共用接口102以使得片存储112存储片。根据超高速缓存片存储106所实施的超高速缓存策略,超高速缓存片存储106还可以在其超高速缓存中存储待存储片的副本。
不同的超高速缓存片存储可以采用不同的策略以处理片操作请求。例如,采用“直写(write-through)”超高速缓存的超高速缓存片存储可以通过直接调用另外的片存储以存储片来响应片存储请求。另一方面,日志超高速缓存片存储可以通过在超高速缓存中存储片而不直接访问另外的片存储来响应片存储请求。这种日志超高速缓存片存储在其超高速缓存内保留尚未被发送至另外的片存储以便存储的片的轨迹日志。在一段时间后,日志超高速缓存片存储可以调用以执行批处理片写入操作,从而使得所有尚未被写入的超高速缓存片被另外的片存储存储。
例如,在超高速缓存大到足以保持所有或大多数频繁请求的片的情况下,日志超高速缓存片存储可能是有益的。例如,假设超高速缓存片存储106是这样的日志超高速缓存片存储,其超高速缓存大到足以存储持久地存储在片存储112中的所有或几乎所有被频繁请求的片。在这些情况下,超高速缓存片存储106接收的片检索请求将几乎不需要使用片存储112的储存器装置。另外,由于片存储106将片写入操作推迟,超高速缓存片存储106接收的片写入操作将也几乎不需要使用片存储112的储存器装置。因此,片存储112的储存器装置可以在较长的时间内断电,从而减少所述装置的能量消耗并增加其寿命。
远程片存储
远程片存储用作另外的片存储的代理服务器,比如但不限于本地片存储或超高速缓存片存储。远程片存储的接口与其他片存储的接口相同。远程片存储使得其他片存储的网络和物理位置是透明的。在图2中,片存储112和116示出为远程片存储。
复制片存储
复制片存储是设计为确保两个或更多个其他片存储保持同步的片存储。在图2所示的实施方式中,片存储108为用于保持片存储与片存储116同步的复制片存储108。因此,复制片存储108通过调用两个片存储114和116以存储片来响应任何片存储请求。通过确保当其中一个同步的片存储故障时复制的片不丢失,复制片存储增加了复合片存储114的可靠性。
例如,如果复制片存储108保持片存储114和116同步,则在片存储114故障的情况下,存储在片存储114中的片可以从片存储116检索,以及在片存储116故障的情况下,存储在片存储116中的片可以从片存储114检索。
分割器
分割器是这样的片存储,其基于与片操作请求相关联的哈希值所属的范围来将所述请求转送至其他片存储。在图2中,片存储114示出为根据与片操作请求相关的哈希值来将片操作请求转送至片存储112或片存储108的分割器。例如,分割器片存储104可以设计为将具有小于或等于X的哈希值的全部片操作请求转送至片存储112,并且将具有大于X的哈希值的全部片操作请求转送至片存储108。在该实例中,分割器片存储104将所述请求在两个另外的片存储之间进行分裂。然而,分割器可以将其接收的请求分裂到任何数量的片存储中,其中将与不同范围的哈希值相关的请求转送给片存储中的每一个片存储。
故意错误片存储
故意错误片存储是设计成至少在某些时候故意产生错误结果的片存储。例如,故意错误片存储可以设计为不对其接收的一些请求执行动作(action)。可替换地,故意错误可以返回错误信息,或者不确认(acknowledge)其动作。例如,在判断出其他的片存储、或者作为整体的复合片存储将如何对特定错误情况作出反应是非常重要的测试环境下,故意错误片存储可能是有益的。
度量-发生片存储
度量-发生片存储是配置成产生与其他的片存储的操作相关的度量的片存储。例如,度量-发生片存储可以设计为将所有片操作请求转送至其他片存储,并且追踪转送请求与接收响应之间流逝的时间。这仅仅是度量-发生片存储可以产生的度量类型的一个实例。事实上,对度量-发生片存储可以产生的度量类型没有限制。
空片存储
空片存储是指除了接受和接收请求之外什么也不做片存储。空片存储在各种环境中是有用的。例如,空片存储对于测试网络的拓扑结构是有用的,其中空片存储用作尚待开发的片存储的临时替代,类似于方法存根(method stub)。
现实世界使用场景的实例
参照图4,该图是示出了一个复合片存储400如何根据一个现实世界使用场景进行配置的块图。如所示出的,客户402与缓存片存储404的共用接口102相互作用。该缓存片存储404进而请求来自远程片存储406的片。远程片存储406通过网络420发送片请求至另一缓存片存储408的共用接口102。片存储408与复制片存储410的共用接口102进行通信。复制片存储410与两个本地片存储412和414进行通信,由客户402所使用的片的复制品可以被存储在那里。
共用接口的实例
如上所述,所有结构块片存储器共享一个共用接口102。因此,结构块片存储器所调用的协议不基于该结构块片存储器的性质而发生改变。由复合片存储器的结构块片存储器所支持的特定接口可能从一种实施方案到另一实施方案发生改变。例如,在一个实施方式中,共用接口支持以下调用:
●获取(访问关键字)-请求与特定访问关键字相关联的片的检索;
●放入(内容)-请求特定内容的存储器作为片;
●触摸(访问关键字)-更新与特定访问关键字相关联的片的元数据以表示该片已经被使用或访问;
●列举(访问关键字范围)-将所有其访问关键字落入特定范围的片进行列表。
这些仅仅是能够通过共用接口102来调用的功能类型的一些实例。这里描述的技术不限于任何特定的功能,或者其特定的参数。
元数据
根据一个实施方式,关于落入复合片存储的片的元数据被保留在该复合片存储内,尽管每个结构块片存储不需要具有用于每个片的元数据。
用于每个片的保留在复合片存储内的元数据可以包括,例如,片的尺寸,以及片的最后访问日期。片的访问关键字也是与片相关联的元数据。然而,由于可以从片的内容中复制访问关键字,因此访问关键字不需要与片内容本身明确地分离存储。
根据一个实施方式,用于给定片的元数据至少由片存储所保留,该片存储持久地存储片的主副本(primarycopy)。对于存储片的副本的片存储(例如,本地或超高速缓存片存储),这些片存储还存储访问关键字至储存位置映射,以便基于它们的访问关键字来访问片。
定制选项
使用本文中描述的结构块片存储,实际上存在无数种方式:在这些方式中能够定制结构复合片存储来解决特殊用户的需求。这些需求可能考虑各种因素,诸如性能、分布、地点、成本等。
例如,随着系统的成长,附加的超高速缓存片存储可能被增加至现有片存储器与经历缓慢片检索时间的用户之间。作为另外一个实例,不同的片存储器可能专注于特定类型的片,以满足用户的目的。例如,复合片存储器可能包括一个具有相对小但是快的储存器(其专注于存储频繁地访问(“热”)片)的片存储,以及另外一个具有相对大但是较慢的储存器(其专注于存储不频繁地访问(“冷”)片)的片存储。随着给定片被访问频率变化,片可以从一个片储存转移至另一个片储存。
复合片存储还可以包括一个用于存储相对小的片的结构块片存储,以及另一个用于存储相对大的片的结构块片存储。与片相关联的元数据,诸如尺寸、访问频率、访问新旧程度等可以被用作用于在复合片存储内划分结构块片存储之间的储存责任的基础。
能够定制复合片存储的能力使得更易于从能够实施复合片存储的硬件中获得最大的利益。例如,一个复合片存储可以被定制有多级超高速缓存(例如,处于各个层级的不同超高速缓存片存储),以考虑每个类型的储存(例如RAM、NAND、SSD和光盘)有多少是可用的。
进一步,随着新的技术的发展(例如,新的存储器类型),结构块片存储可以旨在与这些技术一起使用。由于这些结构块片存储露出同一共用接口并且使用同一不改变的哈希函数,现有的复合片存储器可以容易地重新配置为与这些新的结构块片结合。
类似地,如果一个特殊的片存储被改进或更新,则旧版本的片存储器可能通过小开销或重新配置而由新版本的片存储所替代。例如,如果开发一种改进的复制片存储,则现有的复制片存储在不显著修改复合片存储的情况下即可由改进的复制片存储器所替代。
硬件概述
根据一个实施方式,可以通过一个或多个特定目的的计算装置来实施本文中所描述的技术。上述特定目的的计算装置可以是硬连线(hard-wired)来执行该技术,或者可以包括数字电子装置,诸如一个或多个持续编程以执行技术的特定用途集成电路(ASIC)或者现场可编程门阵列(FRGA),或者可以包括根据在固件、存储器、其他储存器或结合中的程序指令进行编程以实施技术的一个或多个通用硬件处理器。这些特定目的的计算装置还可以与具有自定义编程以完成技术的自定义硬连线的逻辑、ASIC或FPGA结合。
这些特定目的的计算装置可以是与硬连线和/或程序逻辑结合以实施技术的台式计算机系统、便携式计算机系统、手持设备、网络装置或任何其他的装置。任何具有计算能力的便携式装置可以被用于实施本文中所描述的技术,包括但不限于移动设备,诸如平板、手机、PDA等。
图3示出了计算机系统300的块图,在该计算机系统上实施本发明的实施方式。计算机系统300包括总线302或者用于进行信息通信的其他通信机构,以及与总线302耦接以用于处理信息的硬件处理器304。硬件处理器304可以例如是通用微处理器。
计算机系统300还包括主存储器306,诸如一个随机存储器(RAM)或其他的动态储存装置,其耦接至总线302以便存储信息或者存储将由处理器304所执行的指令。主存储器306也可在处理器304执行指令期间用于储存临时变量或其他中间信息。这些指令,当存储在处理器304可访问的非瞬态存储介质中时,致使计算机系统300成为特定目的的机器,其被定制以执行在指令中特定的操作。
计算机系统300进一步地包括只读存储器(ROM)308或其他的静态储存装置,其耦接至总线302以便存储静态信息和用于处理器304的指令。储存装置310,诸如磁盘或光盘,被设置并耦接至总线302,以便于存储信息和指令。
计算机系统300可以经由总线302而耦接至显示器312,诸如阴极射线管(CRT),用于将信息显示给计算机用户。输出装置314,诸如字母数字式或其他键,被耦接至总线302,用于向处理器304进行信息通信或者命令选择。另外一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、或者光标方向键,其用于向处理器304进行方向信息的通信和命令选择并且用于控制显示器312上的光标运动。此输入装置典型地具有在两个轴(第一轴,例如x,和第二轴,例如y)上的两个自由度,这允许装置指定在平面中的位置。
计算机系统300可以利用定制的硬连线逻辑、一个或者多个ASIC或FPGA、固件和/或编程逻辑与计算机系统相结合使得或者编程计算机系统300成为特定目的的机器,从而来实施本文中所描述的技术。根据一个实施方式,本文中描述的技术通过计算机系统300响应于处理器304执行存储于主存储器306中的一个或者多个指令的一个或多个序列而实施。这些指令可以从另一个储存介质(诸如储存装置310)而被读入主存储器306中。存储于主存储器306中的指令序列的执行使得处理器304执行本文中描述的处理步骤。在一个可替换实施方式中,硬连线电路可以使用在适当的位置中或者结合于软件指令中。
在本文中使用的术语“储存介质”是指存储使得机器以特定方式运行的数据和/或指令的非瞬态介质。这样的储存介质可以包括非挥发介质和/或挥发介质。非挥发介质包括例如光盘和磁盘,诸如储存装置310。挥发介质包括动态存储器,诸如主存储器306。储存介质的共同形式包括例如:软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他的磁性数据储存媒介、CD-ROM、任何其他光数据储存媒介、具有孔的模式的任何物理媒介、RAM、PROM、以及EPROM、闪存(FLASH-EPROM)、NVRAM、任何其他的存储器芯片或盒式存储器。
储存介质不同于传输介质但是可以与传输介质结合。传输介质参与储存介质之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线302的线。传输介质还能够采取声音波或光波的形式,诸如在无线电波和红外线通信期间产生的那些波。
可以包含携带一个或多个指令的一个或多个序列至处理器304以便执行的各种形式的介质。例如,最初这些指令可以携带于远程计算机的磁盘或者固态驱动器上。该远程计算机能够将这些指令加载至其动态存储器并且将这些指令通过电话线利用调制解调器进行发送。调制解调器的本地计算机系统300能够在电话线上接受数据并且利用红外发送器将该数据转变为红外信号。红外检测器能够接收在红外信号中携带的数据并且适当的电路能够将数据放置到总线302上。总线302携带数据至主存储器306,处理器从主存储器检索并且执行指令。由主存储器306所接收的指令可以可选地在处理器304执行之前或者执行之后存储在储存装置310上。
计算机系统300还包括耦接至总线302的通信接口318。通信接口318提供耦接至网络链接320的两路数据通信,上述网路链接连接至本地网路322。例如,通信接口318可以是综合服务数字网(ISDN)卡片、电缆调制解调器、卫星调制解调器、或者提供到达对应类型的电话线的数据通信连接的调制解调器。最为另外一个实例,通信接口318可以是局部区域网络(LAN)卡片,以提供到达兼容LAN的数据通信。也可以实施无线链接。在任何这样的实施方案中,通信接口318发送并且接收携带有表示各种信息的数字数据流的电信号、电磁信号和光信号。
网络链接320典型地通过一个或多个网络向另一个数据装置提供数据通信。例如,网络链接320可以通过本地网络322向主机324或向由因特网服务供应商(ISP)326操作的数据设备提供连接。ISP326进而通过世界范围的小包数据通信网络(现在通常称为“因特网(Internet)”)328提供数据通信服务。本地网路322和因特网328两者均是携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网路链接320上且通过通信接口318的信号(它们携带数字数据至计算机系统300或者从该计算机系统带走数字数据)是传输介质的形式的实例。
计算机系统300能够通过网络、网络链接320和通信接口318发送消息并且接收数据(包括编程代码)。在因特网的实例中,服务器330可能通过因特网328、ISP326、本地网路322和通信接口318发送用于应用程序的请求代码。
所接收的代码可以由处理器304在其被接收时来执行,和/或存储在储存装置310中、或者其他用于之后执行的非挥发储存器中。
在以上的说明书中,已经参照各种特定细节描述了本发明的一些实施方式,这些细节从一种实施方案到另一实施方案是可能改变的。本说明书和附图相应地视为是示例性的而非限制性的。本发明的范围的唯一且独有的代表者,以及申请人想要的本发明的范围,是这组权利要求的文字和等同物的范围,源于本申请的问题,在这些权利要求限定的具体形式中,包括任何随后的修正。

Claims (16)

1.一种复合片存储,所述复合片存储包括多个结构块片存储;其中所述多个结构块片存储中的每个结构块片存储被构造成:
露出共用接口以接收片操作要求;以及
使用哈希值作为存储在所述复合片存储中的片的访问关键字,所述哈希值通过对所述片的内容应用特定哈希函数而产生;
其中,所述多个结构块片存储包括第一片存储和第二片存储;
其中,所述第一片存储是与所述第二片存储不同类型的片存储;
其中,用来产生用于存储在所述复合片存储中的所述片的访问关键字的所述特定哈希函数对于所述多个结构块片存储的所有结构块片存储而言是同一哈希函数。
2.根据权利要求1所述的复合片存储,其中,所述第一片存储被构造成,响应于对所述第一片存储的共用接口进行的调用,调用所述多个结构块片存储中的一个或多个其他结构块片存储的共用接口。
3.根据权利要求2所述的复合片存储,其中,所述第一片存储是超高速缓存片存储。
4.根据权利要求3所述的复合片存储,其中,所述第一片存储使用直写超高速缓存策略。
5.根据权利要求3所述的复合片存储,其中,所述第一片存储使用日志超高速缓存策略。
6.根据权利要求2所述的复合片存储,其中,所述第一片存储是复制片存储,所述复制片存储被构造成使得至少两个其他结构块片存储保持同步。
7.根据权利要求2所述的复合片存储,其中,所述第一片存储是分割器片存储,所述分割器片存储被构造成基于访问关键字范围将片操作请求转发到其他结构块片存储,由所述片操作请求确定的所述访问关键字落在所述访问关键字范围中。
8.根据权利要求1所述的复合片存储,其中,所述第一片存储是本地片存储。
9.根据权利要求1所述的复合片存储,其中,所述第一片存储是远程片存储。
10.根据权利要求1所述的复合片存储,其中:
所述第一片存储是构造成用于存储超出特定尺寸的片的片存储;并且
所述复合片存储包括另一结构块片存储,所述另一结构块片存储构造成用于存储小于所述特定尺寸的片。
11.根据权利要求1所述的复合片存储,其中:
所述第一片存储是构造成用于存储访问频率超出特定阈值的片的片存储;并且
所述复合片存储包括另一结构块片存储,所述另一结构块片存储构造成用于存储访问频率低于所述特定阈值的片的片存储。
12.一种方法,包括:
在第一片存储的共用接口处接收第一片操作请求,所述第一片操作请求以特定片为目标并且指示用于所述特定片的访问关键字;
其中,所述第一片存储是布置为复合片存储的一部分的多个结构块片存储之一;
其中,所述第一片存储是超高速缓存片存储;
其中,所述超高速缓存片存储具有超高速缓冲存储器,用于临时存储用于所述结构块片存储的片的副本;
其中,所述超高速缓存片存储未被构造成永久性地存储用于所述结构块片存储的任何片;
响应于接收到所述第一片操作请求,所述第一片存储使用所述访问关键字来确定在所述超高速缓冲存储器中是否存储有所述特定片;以及
响应于确定在所述超高速缓冲存储器中未存储所述特定片,所述第一片存储向作为所述复合片存储的一部分的第二片存储发送第二片操作要求;
其中,所述第二片操作要求以所述特定片为目标并且指示用于所述特定片的所述访问关键字;
响应于接收到所述第二片操作要求,所述第二片存储使用所述访问关键字从持久性存储中检索所述特定片;
其中,对片的内容应用相同的哈希函数,以产生用于所述片的访问关键字,而与所述复合片存储中哪一个结构块片存储存储所述片无关;
其中,所述方法由一个或多个计算装置执行。
13.根据权利要求12所述的方法,其中:
在所述复合片存储中,多种类型的结构块片存储实现所述共用接口;并且
所述复合片存储包括至少一个分割器片存储。
14.根据权利要求12所述的方法,其中:
在所述复合片存储中,多种类型的结构块片存储实现所述共用接口;并且
所述复合片存储包括至少一个复制片存储。
15.根据权利要求12所述的方法,其中:
在所述复合片存储中,多种类型的结构块片存储实现所述共用接口;并且
所述复合片存储包括至少一个远程片存储。
16.一种或多种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储指令,当所述指令被执行时,引起执行权利要求1-15中任一项所述方法。
CN201310032545.6A 2012-01-26 2013-01-28 可重复使用的内容可寻址存储 Active CN103294610B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/358,742 2012-01-26
US13/358,742 US8631209B2 (en) 2012-01-26 2012-01-26 Reusable content addressable stores as building blocks for creating large scale storage infrastructures

Publications (2)

Publication Number Publication Date
CN103294610A true CN103294610A (zh) 2013-09-11
CN103294610B CN103294610B (zh) 2016-08-10

Family

ID=48871335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310032545.6A Active CN103294610B (zh) 2012-01-26 2013-01-28 可重复使用的内容可寻址存储

Country Status (2)

Country Link
US (1) US8631209B2 (zh)
CN (1) CN103294610B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075834B2 (en) 2012-01-26 2015-07-07 Upthere, Inc. Detecting deviation between replicas using bloom filters
US9176871B1 (en) 2012-01-26 2015-11-03 Upthere, Inc. Garbage collection of chunks
CN105046162A (zh) * 2014-03-12 2015-11-11 阿普赛尔有限公司 在内容可寻址存储系统中维护并使用子对父映射的缓存

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183212B2 (en) 2012-01-26 2015-11-10 Upthere, Inc. Representing directory structure in content-addressable storage systems
US8880786B2 (en) * 2012-09-28 2014-11-04 Apple Inc. Flash translation layer (FTL) database journaling schemes
US20150039823A1 (en) * 2013-07-30 2015-02-05 Mediatek Inc. Table lookup apparatus using content-addressable memory based device and related table lookup method thereof
WO2015178944A1 (en) * 2014-05-23 2015-11-26 Hewlett-Packard Development Company, L.P. Using location addressed storage as content addressed storage
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US10108503B2 (en) 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
US10241856B2 (en) 2016-09-09 2019-03-26 Oracle International Corporation Memory quarantine
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US10394485B1 (en) * 2018-03-29 2019-08-27 EMC IP Holding Company LLC Storage system with efficient re-synchronization mode for use in replication of data from source to target

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934791A (ja) * 1995-07-21 1997-02-07 Ricoh Co Ltd 情報記憶装置
US20040107323A1 (en) * 2002-11-28 2004-06-03 Hirokazu Matsuura Multiprocessor system
CN101303669A (zh) * 2007-05-08 2008-11-12 松下电器产业株式会社 具备地址转换存储器访问机构的半导体装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1323308B1 (en) * 2000-08-15 2014-08-20 Polycom Israel Ltd. Delay reduction for transmission and processing of video data
WO2006043274A2 (en) * 2004-10-22 2006-04-27 Flash Networks Ltd Method and system for accelerating downloading of web pages.
GB2446169A (en) * 2006-12-01 2008-08-06 David Irvine Granular accessibility to data in a distributed and/or corporate network
GB2446199A (en) * 2006-12-01 2008-08-06 David Irvine Secure, decentralised and anonymous peer-to-peer network
WO2008102195A1 (en) 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
US7788220B1 (en) * 2007-12-31 2010-08-31 Emc Corporation Storage of data with composite hashes in backup systems
US8335889B2 (en) 2008-09-11 2012-12-18 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8396905B2 (en) 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US20120159098A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
US9052824B2 (en) 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934791A (ja) * 1995-07-21 1997-02-07 Ricoh Co Ltd 情報記憶装置
US20040107323A1 (en) * 2002-11-28 2004-06-03 Hirokazu Matsuura Multiprocessor system
CN101303669A (zh) * 2007-05-08 2008-11-12 松下电器产业株式会社 具备地址转换存储器访问机构的半导体装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075834B2 (en) 2012-01-26 2015-07-07 Upthere, Inc. Detecting deviation between replicas using bloom filters
US9176871B1 (en) 2012-01-26 2015-11-03 Upthere, Inc. Garbage collection of chunks
US9207866B2 (en) 2012-01-26 2015-12-08 Upthere, Inc. Chunk-level client side encryption in hierarchical content addressable storage systems
US9411749B2 (en) 2012-01-26 2016-08-09 Upthere, Inc. Chunk-level client side encryption in hierarchical content addressable storage systems
CN105046162A (zh) * 2014-03-12 2015-11-11 阿普赛尔有限公司 在内容可寻址存储系统中维护并使用子对父映射的缓存
CN105046162B (zh) * 2014-03-12 2018-07-27 西部数据技术公司 在内容可寻址存储系统中维护并使用子对父映射的缓存

Also Published As

Publication number Publication date
CN103294610B (zh) 2016-08-10
US20130198462A1 (en) 2013-08-01
US8631209B2 (en) 2014-01-14

Similar Documents

Publication Publication Date Title
CN103294610A (zh) 可重复使用的内容可寻址存储
US8788760B2 (en) Adaptive caching of data
AU2014346369B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
CN105324770B (zh) 有效读出副本
CN103150394B (zh) 面向高性能计算的分布式文件系统元数据管理方法
CN100437519C (zh) 用于管理被存储在高速缓存中的对象的系统和方法
US9052824B2 (en) Content addressable stores based on sibling groups
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
US8396938B2 (en) Providing direct access to distributed managed content
CN103620549B (zh) 用于统一数据存储的存储介质抽象
CN106909317B (zh) 在存储节点上存储数据
JP6880131B2 (ja) データ処理用の方法、装置及びシステム
US9462056B1 (en) Policy-based meta-data driven co-location of computation and datasets in the cloud
US9940042B2 (en) Distributed storage system, and data-access method therefor
US20160212203A1 (en) Multi-site heat map management
US20100325199A1 (en) Client, brokerage server and method for providing cloud storage
CN102567224A (zh) 高效高速缓存管理
US20100180208A1 (en) Server side data cache system
KR20200122086A (ko) 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
US8010648B2 (en) Replica placement in a distributed storage system
WO2007035580A2 (en) Providing local access to managed content
CN103747072A (zh) 一种读写数据的方法和应用服务器
US20150106440A1 (en) Autonomous network streaming
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
CN105704218A (zh) 云计算平台中数据存储与管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1188858

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1188858

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171106

Address after: American California

Patentee after: Western Digital Technologies, Inc.

Address before: American California

Patentee before: Up There Inc.