CN103226561A - 基于兄弟组的内容可寻址存储 - Google Patents

基于兄弟组的内容可寻址存储 Download PDF

Info

Publication number
CN103226561A
CN103226561A CN2013100325460A CN201310032546A CN103226561A CN 103226561 A CN103226561 A CN 103226561A CN 2013100325460 A CN2013100325460 A CN 2013100325460A CN 201310032546 A CN201310032546 A CN 201310032546A CN 103226561 A CN103226561 A CN 103226561A
Authority
CN
China
Prior art keywords
brother
group
request
sheet
hash
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
CN2013100325460A
Other languages
English (en)
Other versions
CN103226561B (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
Priority claimed from US13/358,742 external-priority patent/US8631209B2/en
Application filed by UP THERE Inc filed Critical UP THERE Inc
Publication of CN103226561A publication Critical patent/CN103226561A/zh
Application granted granted Critical
Publication of CN103226561B publication Critical patent/CN103226561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于兄弟组的内容可寻址存储。一种内容可寻址存储(CAS)系统,其中,各存储单元被分配至多个兄弟组中的一个。各兄弟组被分配整个哈希空间。在每个兄弟组中,哈希空间被分割为多个哈希段,该多个哈希段被分配至属于该兄弟组的各个存储单元。片检索请求被提交至所有兄弟组。片存储请求被提交至单个兄弟组。被提交存储请求的兄弟组取决于是否任何兄弟组已经存储了该片,以及哪些兄弟组被认为是满的。

Description

基于兄弟组的内容可寻址存储
相关申请的交叉参考;权益声明
本申请要求于2012年1月26日提交的美国继续临时专利申请第13/358,742号的权益,其全部内容引用于此。申请人据此取消母申请或其审查历史中对权利要求范围的任何放弃,并建议本申请的权利要求可比母申请中的权利要求的范围更宽。
技术领域
本发明涉及存储系统,更具体地,涉及用于在系统的存储容量增大时以不引起过度开销和数据的移动的方式存储片(chunk)的技术。
背景技术
用于访问存储的数据项的信息在本文中被称为存储项的“访问关键字”。在典型的文件系统中,基于(a)项所存储的位置以及(b)项的名称或标识符来检索存储项。例如,如果名称为“foo.txt”的文件位于名称为“c:\myfiles\text”的目录下,则应用程序(application,应用)可使用路径名“c:\myfiles\text\foo.txt”作为访问关键字来从文件系统检索文件。因为传统的访问关键字基于被检索的项的位置,当项被移动时访问关键字改变。另外,项的每个副本具有不同的访问关键字,因为每个副本被存储在不同的位置。
与传统的文件系统相比,内容可寻址存储(CAS:content addressablestorage)系统允许应用程序基于从项的内容生成的哈希值来从存储器检索项。因为CAS系统基于为项产生的哈希值而在项上执行存储器相关的操作,并且哈希值基于项的内容而不是该项所存储的位置,因此请求操作的应用程序可在不知道项的存储副本的数量或位置的情况下如此做。例如,CAS系统可在位置A、B和C存储项X的多个副本。通过向CAS系统发送基于项X的内容的哈希值,期望检索项X的应用程序将如此做。基于该哈希值,CAS系统将向应用程序提供从位置A、B和C中的一个检索到的项X的副本。这样,应用程序将获得项X,而不知道项X实际存储在什么地方、项X存在多少副本、或者实际获得检索到的副本的具体位置。
存储诸如文件或消息的数字项经常涉及对“片(chunk)存储系统”进行调用。片存储系统是在无需理解数字信息本身的格式或内容的情况下执行存储操作的存储系统。这样的存储系统之所以被称为片存储系统是因为该系统将所有形式的数字项视为这些项仅是数据的不透明片。例如,相同的片存储系统可被用于字符处理应用程序、图像管理应用程序、以及日历系统,以各自存储文件、图像和约会。然而,从片存储系统的观点来看,仅一种项被存储:数字信息的不透明片。
片存储系统可被实现为CAS系统。例如,片存储系统可通过对片应用加密哈希函数(例如,MD5、SHA-1或SHA2)来生成用于该片的哈希值。之后片存储可存储该片,并且保持将哈希值与该片所存位置相关联的索引。当应用程序随后请求检索该片时,应用程序向片存储系统提供哈希值。片存储系统使用该索引来定位于哈希值相关的片,并向请求的应用程序提供如此定位的片。
片存储系统可以以各种方式配置。美国申请第13/358,742描述了如何使用各种结构块片存储(building block chunk store)可构成更大的合成片存储。在确定使用何种结构块片存储、以及应如何布置这些片存储的过程中,片存储的有意使用是一个因素。
被配置为在不同的结构块片存储处存储不同的片的片存储系统是一种分布式哈希表,其中,通过对片应用哈希函数而产生的哈希值确定了最终将由哪个结构块片存储来存储该片。例如,考虑包括两个片存储CS1和CS2的简单情形。假设哈希函数产生0和1,000,000之间的哈希值,哈希至落入0和500,000之间的值的片可存储在CS1处,而哈希至落入500,001和1,000,000之间的值的片可存储在CS2处。
片可以哈希至的值的整个范围(例如,0至1,000,000)被称作“哈希空间”。哈希空间的一部分被称作“哈希段”。在具有多个结构块片存储的系统中,不同的哈希段可被分配给不同的结构块片存储。在以上给出的示例中,CS1被分配0至500,000的哈希段,CS2被分配500,001和1,000,000的哈希段。
因为不同的片存储被分配不同的哈希段,因此片存储系统必须能够基于由片生成的哈希值来确定对该片的操作中需要涉及哪个片存储。尽管以稳定状态保持哈希段至片存储的映射相对来说直截了当,但当向系统加入新的片存储和/或现有片存储失效时保持变得日益困难。在任一情况下,可能需要修改哈希段至片存储的映射。为了保持一致性,对映射的任何这种改变还会需要片在片存储间重新分配。这样的重新分配操作在时间和计算资源方面都是昂贵的。
这样,在使用CAS存储片并且检索片的传统的分布式哈希表(“DHT”:distributed hash table)中,难以在最小化宕机时间、最优化响应时间并且最大化存储器利用率的同时向DHT动态地添加存储器以提供更多的开销存储器。传统上,通过将存储介质(典型地,磁盘)与哈希范围相关联、并且当新磁盘上线时动态地重新布置哈希范围,来在这样的环境中添加存储器。各种技术已被提出并被用于在哈希范围到达某阈值时划分哈希范围,并且从一个磁盘向另一磁盘移动片以均衡化磁盘利用率。然而,这样的技术在片被重新分配并且映射被更新期间不可避免地引起宕机时间。
此部分中描述的方式是可被实行的方式,且不必然是已被想到或实行的方式。因此,除非另外指出,不应仅因为本部分中描述的任何方式被包括在本部分中就认为它们属于现有技术。
发明内容
一种方法,包括:接收在系统中存储片的请求,所述系统包括多个兄弟组;响应于所述请求的接收来存储所述片,执行以下步骤:生成所述片的访问关键字;以及发送确定所述片是否已被存储在所述系统中的多个第一请求;其中,发送所述多个第一请求包括发送第一请求至所述多个兄弟组中的每一个;基于对所述多个第一请求的响应,确定所述片还未被存储在所述系统中;响应于确定所述片还未被存储在所述系统中,执行以下步骤:从所述多个兄弟组中选择特定兄弟组,作为用于存储所述片的请求的目标组;以及发送将该片仅存储至所述特定兄弟组的第二请求,以使所述特定兄弟组存储所述片;其中,所述方法通过一个或多个计算装置来执行。
一种非瞬态计算机可读存储介质,存储用于执行根据任一种所述的方法的指令。
一种内容可寻址存储(CAS)系统,包括:多个存储单元;其中,各存储单元被分配至多个兄弟组中的一个;其中,各兄弟组被分配整个哈希空间;并且其中,在各兄弟组内,哈希空间被分成多个哈希段,所述多个哈希段被分配至属于所述兄弟组的各个存储单元。
附图说明
在附图中:
图1是根据本发明的实施方式的包括多个兄弟组的存储系统的框图;
图2是图1所示的存储系统的框图,其中,哈希段已被分配至各存储单元;以及
图3是本发明的实施方式可在其上实现的计算机系统的框图。
具体实施方式
在以下描述中,出于说明的目的,为了提供对本发明的彻底的理解,描述了多个具体细节。显而易见的是,没有这些具体的细节,本发明仍可被实现。在其他示例中,为了避免对本发明的不必要的混淆,公知的结构和装置以框图的形式被示出。
总述
以下描述用于减少向CAS系统增加新的存储器而带来的开销和性能的降低的技术。根据一种实施方式,CAS系统中的每个存储单元被分配至多个“兄弟组”中的一个。每个兄弟组被分配整个的哈希空间。在每个兄弟组中,哈希空间被分割为哈希段,该哈希段被分配至属于该兄弟组的各个存储单元。
片检索请求被提交至所有兄弟组。片存储请求被提交至单个的兄弟组。被提交存储请求的兄弟组取决于是否任何兄弟组已经存储了该片,哪些兄弟组被认为是“满”的。
可向这样的CAS系统一次增加一个兄弟组地增加存储器。当兄弟组被增加,没有哈希段需要重新分配,没有片需要被重新定位至新增加的兄弟组。可使新的兄弟组可以存储新的片,并与其他兄弟组一起接收并尝试处理向CAS系统提出的所有片检索请求。
在一种实施方式中,每个兄弟组可对应于存储服务器的一个机架,其中安装在机架上的刀片(blade)对应于存储器单元,该存储器单元是兄弟组的成员。每个机架被分配了整个哈希空间,哈希空间被分为哈希段,这些哈希段被分配至机架内的各个刀片。在这样的实施方式中,增加CAS系统的存储器可通过简单地向存储服务器添加一个新的机架来实现。
CAS接口
通过经由CAS系统所设置的接口提交命令,片被存储入CAS系统并从CAS系统中检索。根据一种实施方式,CAS接口支持下面的调用:
get(访问关键字)——请求对与具体的访问关键字相关的片的检索;
put(内容)——请求以片的形式对具体内容的存储;
touch(访问关键字)——如果这样的片存在,更新与具体访问关键字相关的片的元数据来指示该片已经被使用或访问,返回作为问题“该片存储器是否当前包含对应于该访问关键字的片?”的答案的布尔(Boolean)值。
这些仅仅是可经由CAS系统所具有的接口调用的函数类型的示例。本文所说明的技术并不限于任何具体的函数,或其具体的参数。
CAS系统示例
图1是被配置为实现本文所述数据存储技术的CAS系统100的框图。参照图1,系统100包括多个兄弟组110、120和130。兄弟组中的每一个包括多个存储单元。具体地,兄弟组110包括存储单元102、104和106。兄弟组120包括存储单元112、114、116和118。兄弟组130包括存储单元122、124和126。
虽然系统100中的每个兄弟组包括相对少的独立存储单元,但对一个兄弟组中的存储单元的实际数量没有限制。当被在其中兄弟组对应于存储服务器内的机架的系统中实现时,每个兄弟组内的存储单元的数目可以是每个机架内刀片的数目。应注意,在各个兄弟组中的存储单元的数目之间无需任何关系。例如,兄弟组120具有与兄弟组110和130不同数目的存储单元。
如上所述,每个兄弟组110、120和130被分配了整个哈希空间,在每个兄弟组内,哈希空间被分割为哈希段,在每个兄弟组的成员中分配这些哈希段。处于示例的目的,应认为哈希空间是0到1,000,000,在每个兄弟组中哈希空间被如下分割:
兄弟组110:存储单元102被分配0到333,333。存储单元104被分配333,334到666,666。存储单元106被分配666,667到1,000.000。
兄弟组120:存储单元112被分配0到250,000。存储单元114被分配250,001到700,000。存储单元116被分配700,001到800,000。存储单元118被分配800,001到1,000,000。
兄弟组130:存储单元122被分配0到300,000。存储单元124被分配300,001到600,000。存储单元126被分配600,001到1,000,000。
图2是示出示例中所规定的哈希段到存储单元的映射的系统100的框图。
如将在下文中详细说明的那样,兄弟组成员关系和哈希段分配影响着系统100如何处理块相关的请求。通过以本文所述方式处理块相关的请求,可向系统100一次添加一个兄弟组地、以最少的转换开销、宕机时间和数据移动来添加额外的存储器。
处理get(取)操作
“get”操作是基于片的访问关键字来检索片的操作。根据一种实施方式,系统100通过提交get请求至兄弟组110、120和130中的每一个来处理get请求。get请求可被并行提交或至所有的兄弟组、或被串行提交。
例如,假定系统100接收到访问关键字321,321。在并行提交请求的实施方式中,get(321,321)请求将被并行提交至兄弟组110、120和130。并行地,兄弟组中的每一个会将请求指向被分配至访问关键字所指定的哈希段的存储单元。在本示例中,兄弟组110将get(321,321)请求指向存储单元102,兄弟组120将get(321,321)请求指向存储单元114,兄弟组130将get(321,321)请求指向存储单元124。
如下面将更详细的描述的那样,当片被保存在系统100中时,该片仅被存储在一个兄弟组中。因此,即使兄弟组110、120和130均被要求执行get(321,321),如果从根本上来说,对应的片实际上仅被这些兄弟组中的一个返回。处于示例的目的,假定与索引321,321相关的片被存储在兄弟组120的存储单元114上。在这些情况下,存储单元114将通过返回对应的片来响应get(321,321)请求,之后该对应的片将被系统100作为对get(321,321)请求的响应返回。如果兄弟组中没有对应于该片的组,那么系统100将用所请求的片未找到的指示响应get(321,321)请求。
在向兄弟组串行提交片请求的实施方式中,系统100可首先向兄弟组110发送get(321,321)请求。当存储单元102无法找到该片时,那么系统100向兄弟组120发送get(321,321)请求。当存储单元114返回所要求的片时,所请求的片被系统100返回至请求者,而无需向兄弟组130查询该片。当请求以基于兄弟组将具有所请求片的可能性的顺序被发送至兄弟组时,串行地发送get请求可节省处理开销,其中,被认为最有可能具有该片的兄弟组被排在第一个。但是,get请求的串行处理减少了并行度,从而将导致当响应get请求时所引起的平均延迟的增加。
处理put(放)操作
Put操作使片被系统100存储。由于所有的兄弟组已经被分配了整个的哈希空间,那么任何片,不管其被哈希映射至哪个访问关键字,可被存储于兄弟组中的任意一个中。如上面所提到的,提出了确保任意给定的片仅被保存在兄弟组中的一个中的技术。根据一种实施方式,经由通过校验看该片是否已经保存在系统100中的某个位置来初始地响应put请求,避免了在多个兄弟组中存储相同的片。
例如,在一种实施方式中,系统100通过生成用于该片的哈希值并基于该哈希值进行“touch”操作来初始地响应put请求。touch请求如上所述地关于get请求被并行地或串行地发送至所有兄弟组。如果任意兄弟组确定地响应了该触摸请求,那么在put请求中所规定的片就已经被存储在系统100中。因此,无需响应put请求进行进一步的操作。
另一方面,如果没有兄弟组确定地响应该touch(接触)请求,那么该片并未被存储于系统100中。因此,从兄弟组中选出目标兄弟组,put请求被发送至目标兄弟组。将在下面更详细地描述用于选择目标兄弟组的技术。
如put请求是如何被处理的示例那样,根据一种实施方式,假定系统100接收到了put(片X)的请求。响应接收到该请求,系统100对片X应用哈希函数以生成用于片X的访问关键字。出于示例的目的,假定用于片X的访问关键字是699,888。
在生成了访问关键字之后,系统100向兄弟组110、120和130中的每一个均发送touch(699,888)命令。出于示例的目的,假定系统100并行地向兄弟组110、120和130发送touch命令。
响应该touch命令,兄弟组中的每一个确定被分配了699,888所指定的哈希段的存储单元是否存储了用于该访问关键字的片。在本示例中,兄弟组110校验存储单元106,兄弟组120校验存储单元114,兄弟组130校验存储单元126。假定系统100当前并未存储片X,则兄弟组110、120和130中的每一个将通过指示未找到片X来响应touch命令。
响应于来自全部的兄弟组的否定的回应,系统100选择目标兄弟组,并发送put(片X)请求至目标兄弟组。出于说明的目的,假定兄弟组120是目标兄弟组。在这些情况下,put(片X)命令被发送至兄弟组120,片X被存储在存储单元114上。
选择目标兄弟组
如上所述,一个兄弟组被选为用于put命令的目标兄弟组,且仅该兄弟组存储在put命令中指定的片。可使用各种技术来选择哪个兄弟组被选为目标兄弟组,且本发明不限于任何具体技术。
在一种实施方式中,向兄弟组分配某一顺序,且未“满”的最低顺序的兄弟组被选为目标。例如,假定兄弟组110、120和130分别被分配了顺序1、顺序2和顺序3。在这些情况下,兄弟组110将被选为对于所有put操作的目标,直至兄弟组110变满。一旦兄弟组110变满,兄弟组120被选为所有put操作的目标,直至兄弟组120变满。一旦兄弟组120变满,则兄弟组130被选为对于所有put操作的目标兄弟组。
可使用各种标准来确定兄弟组是否变“满”。例如,在一种实施方式中,若其存储容量的95%已被用于存储片,则可认为兄弟组已“满”。作为另一实例,若其单个存储单元中的任一个的存储容量的99%已被用于存储片,则可认为兄弟组已“满”。在又一实施方式中,只有其无足够空间来存储作为当前put请求的主体的片时才可认为兄弟组已满。
对于“满”的兄弟组,中心极限法则适用于若一个盘变满则兄弟组中的其他盘高度可能接近变满的情况。例如,若一个盘包括N个片,则所期望的变化为(N**0.5)的量级(即,power(N,1/2))。因此对于首先达到100%满的具有一百万个片的盘的实值,兄弟组中的其他盘最可能是99.9%的满。
通过基于哪一组是最低顺序的未满兄弟组来选择目标兄弟组,可根据需要通过将兄弟组添加到存储服务器来实现非常高的利用率。例如,公司可采用总是保持N+1个兄弟组的策略,其中,N为“满”的兄弟组的数量。在该策略下,存储服务器可初始仅具有一个兄弟组。由于该兄弟组变满,所以可添加一个新的兄弟组。当第二兄弟组变满时可添加第三兄弟组。由于系统中兄弟组除一个外所有都变满,所以可为大存储系统保持非常高的利用率。例如,若系统有20个满(例如,达到99%的容量)的兄弟组和一个达到50%容量的兄弟组,则系统存储的总利用率为约为97%。
根据由存储系统的使用的哈希函数,未满兄弟组内的存储单元将趋于均匀填充。此外,在存储新片的速率相对恒定的环境中,未满兄弟组将变满的时间可以相对较高的精度来预测。基于这些预测和对获取和安装兄弟组要占用多长时间的了解,管理员可调度以使新兄弟组被安装以及恰在预测的兄弟组变满时可使用。
存储单元失效
当存储单元失效时,已存储在存储单元上的片可能变为不可用。然而,使用本文所述技术,存储单元需求的失效不会导致停机,也不会导致存储单元之间的片的移动。例如,假定存储单元110和120变满,且存储单元130未满。再假定存储单元120失效。在这些条件下,当对于范围0-333,333中的访问关键字接收到get和touch请求时,兄弟组110将简单返回“未找到”响应。即使被操作作为目标的片已被存储在失效存储单元102上,这也会发生。若该请求是由put请求触发的touch请求,则来自兄弟组110的否定响应将仅使得在put请求中识别的片被目标兄弟组(例如,组130)存储。由于兄弟组110已被认为变满,所以兄弟组110将不被询问存储映射到失效存储单元102的哈希段的任何新片。
在前述实例中,失效的存储单元位于“满”兄弟组中。然而,对于存储单元而言,可以不位于满的兄弟组中而失效。该失效可以各种方式处理。例如,在一种实施方式中,存储单元的失效将自动限定兄弟组为已满,而不考虑在兄弟组中维持有多少未用存储。由于兄弟组被指定为已满,所以兄弟组将不被选为用于后续put操作的目标兄弟组。
在替代实施方式中,具有失效节点的未满兄弟组可被处理为仅对落在失效节点的哈希段内的操作已满。例如,若兄弟组120的存储单元116在兄弟组120满足已满标准之前失效,则兄弟组120可被处理为仅对于哈希段700,001-800,000已满。因此,兄弟组120仍可被选为对于落在该哈希段之外的put操作的目标兄弟组,而对于落在该段内的put操作,兄弟组130将被选为目标兄弟组。
哈希函数选择
尽管罕见,但对于哈希函数而言,可以在哈希空间内不均匀地分配片。例如,给定具体一组片,哈希函数HF1可恰好将不成比例的片数分配给向具体存储单元分配的哈希段。因此,相同兄弟组中,“过载(overloaded)”存储单元将比其他存储单元填充得更快。当过载存储单元变满时,该存储单元所属的兄弟组可被认为已满,即使该兄弟组内的许多存储单元可能具有大量未使用空间。在其许多存储单元具有大量未使用空间时将兄弟组处理为“满”是很浪费的。
由于哈希函数偏离引起的兄弟组内的浪费存储很糟,但由于哈希函数偏离引起的所有兄弟组中的浪费存储更糟。为避免存储系统中所有兄弟组表现出相同的哈希偏离的情况,不同兄弟组可采用不同哈希函数。例如,兄弟组110、120和130可分别使用三个不同的哈希函数HF1、HF2和HF3。由于不同兄弟组采用不同哈希函数,所以兄弟组的一个内预期的偏离将在其他兄弟组内重复的可能性被显著降低。
应注意,用于在盘上分配片的哈希函数通常与用于计算片的访问关键字的哈希函数不同。相反,用于在盘上分配片的哈希函数通常是采用访问关键字并产生对应于阵列中(即,兄弟组中)的盘数的小整数的函数。若有具有42个盘的兄弟组,例如,函数可以采用来自访问关键字的64个位(任何64个位,例如位10至位73),并按模42计算这些64个位,该模42给出其上存储片的盘数。
除使用不同哈希函数的不同兄弟组之外,也可基于每个存储单元而不是每个兄弟组来应用“满”测试。例如,假定兄弟组110中的存储单元102由于HF1使存储单元102过载而快速填充。在这些情况下,当兄弟组110内的其他存储单元104和106仍具有大量自由空间时,存储单元102在时间T1时可被认为已满。
在基于每个存储单元而应用满测试的系统中,存储单元104和106将在时间T1之后继续填充,因为兄弟组110将仅对于关于访问关键字落在分配给满存储单元102的范围(0-333,333)中的片的put请求而被处理为已满。对于落在该范围之外的put请求,兄弟组110将不被认为已满。因此,兄弟组110将被选为对于该范围之外的put操作的目标兄弟组,并且存储单元104和106将继续被填充新片直至变满。
只读模式
如上所述,当存储单元满足已满标准时(因为存储单元其本身已满,或因为该存储单元所属的兄弟组被认为已满),存储单元将不再是put操作的目标。因为存储单元将不再是put操作的目标,所以可以在存储单元在只读模式时执行将涉及存储单元的操作。取决于存储单元,将该单元设置为只读模式可以减少由存储单元消耗的能量的量。
因此,根据一个实施方式,响应于对存储单元已满的确定,可以执行以下操作:
存储目标元数据来指示兄弟组应当不再被选择作为对落入被分配给该存储单元的哈希段的片的put操作的目标,以及
存储单元从读/写模式转变至只读模式。
例如,假设在时间T1时,存储单元102、104和106都没有满。那么在时间T1时,目标元数据将表示兄弟组110是对于整个哈希空间的put操作的目标兄弟组。假设在时间T2时,存储单元102变为已满(即,满足已满标准)。那么因此,在时间T2时,更新目标元数据从而表示兄弟组120对于与存储单元102相关联的哈希段(0-333,333)是目标组,同时兄弟组110对于哈希段(333,334-1,000,000)维持目标兄弟组。此外,存储单元102从读/写模式转变至只读模式。
随后,在时间T3时,存储单元104可以变为已满。响应于存储单元104变得已满,更新目标元数据从而表示兄弟组110对于范围(666,667-1,000,000)维持目标兄弟组,同时兄弟组120现在对于范围0-666,666是目标兄弟组。此外,存储单元104从读/写模式转变至只读模式。
在时间T4时,当存储单元106变得已满时,更新目标元数据从而表示兄弟组120对于整个哈希空间是目标组,并且存储单元106从读/写模式转变至只读模式。
在按兄弟组来应用已满测试的实施方式中,存储系统目标元数据可以对于所有的put请求都简单地表示当前的目标兄弟组,并且在兄弟组内的所有的存储单元都可以同时被转换为只读。例如,响应于满足已满标准的兄弟组110,更新目标元数据从而表示兄弟组120成为对于所有put请求的目标。此外,兄弟组110内的所有存储单元102、104和106都可以从读/写模式转变至只读模式。
基于机架的实现方式
兄弟组可以由任何数量、尺寸和种类的存储单元组成。兄弟组内的存储单元除了管理归入同一哈希空间的不同段中的片的事实外,它们不需要具有任何的相同。然而,一个用于实现存储服务器的共同的结构是具有用户能够安装“机架(rack)”的接口的存储“机柜(cabinet)”,机架中的每一个都主控多个(例如,50)刀片。
在机柜被用作实现本文中描述的技术的环境中,各个兄弟组可以对应于机柜内的机架,其中机架上的刀片是属于对应于该机架的兄弟组的存储单元。在该实现方式中,在各个机架内,全部的哈希空间被划分为分配给机架内的刀片的哈希段。被发布至机柜的get请求被发送至各个机架。在各个机架内,确定被分配了哈希段(请求的片落入其中)的刀片是否实际上存储请求的片。如果任何机架具有请求的片,那么该机架返回请求的片,并且机柜将请求的片返回至请求者。
在机架的环境中,通过对所有的机架发送touch请求来处理put请求。各个机架通过表示是否其具有作为touch请求的目标的片来响应。如果没有机架具有该片,那么机柜确定哪个机架是当前对于put请求的目标机架。然后,只将put请求发送至这样选中的目标机架。
硬件综述
根据一个实施方式,本文中描述的技术通过一个以上的专用计算装置来实现。该专用计算装置可以是硬接线来执行本技术的,或可以包括诸如持久地编程为执行本技术的一个以上的专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子装置,或可以包括编程为依照在固件、内存、其他存储器或组合中的程序指令来执行本技术的一个以上的通用硬件处理器。该专用计算装置还可以将定制的硬接线逻辑、ASIC或FPGA与定制的编程结合从而完成本技术。
专用计算装置可以是结合了硬接线和/或逻辑以实现本技术的桌上计算机系统、便携式计算机系统、手持装置、网络装置或任何其他装置。任何具有计算能力的便携式装置都可以用于实现本文中描述的技术,包括但不限于诸如平板电脑、移动电话、PDA等的移动装置。
图3是示出了可以实现本发明的实施方式的计算机系统300的框图。计算机系统300包括用于通信信息的总线302或其他通信机制,以及用于处理信息的耦接于总线302的硬件处理器304。硬件处理器304可以是例如通用微处理器。
计算机系统300还包括耦接至总线302的用于存储将由处理器304执行的信息和指令的诸如随机存取存储器(RAM)或其他动态存储单元的主存储器306。主存储器306还可以用于存储在由处理器304执行的指令的执行期间的临时变量或其他中间信息。当这些指令存储在可由处理器304访问的非易失性存储介质中时,使计算机系统300成为定制为执行指令中规定的操作的专用机器。
计算机系统300还包括耦接至总线的用于存储用于处理304的信息和指令的只读存储器(ROM)308或其他静态存储单元。诸如磁盘或光盘的存储单元310被提供并且被耦接至总线302以用于存储信息和指令。
计算机系统300可以经由总线302而耦接至用于对计算机用户显示信息的诸如阴极射线管(CRT)的显示器312。包括字母数字和其他键的输入装置314耦接至总线302以用于对处理器304通信信息和命令选择。另一种用户输入装置是用于对处理器304通信方向信息和命令选择并且用于控制在显示器312上的光标移动的诸如鼠标、跟踪球或光标方向键的光标控制316。该输入装置通常具有在第一轴(例如,x)和第二轴(例如,y)的两个轴上的允许装置指定平面中的位置的两个自由度。
计算机系统300可以使用与计算机系统相结合从而使计算机系统300或将计算机系统300编程为专用机器的定制的硬接线逻辑、一个以上的ASIC或FPGA、固件和/或编程逻辑来实现本文中描述的技术。根据实施方式,本文中的技术响应于处理器304执行在主存储器306中包含的一个以上的指令的一个以上的序列而由计算机系统300执行。可以从另一存储介质中将这些指令读取到主存储器306中。包含在主存储器306中的指令序列的执行使处理器304执行本文中描述的处理步骤。在可选的实施方式中,硬接线电路可以代替软件指令来使用或结合软件指令来使用。
本文中所使用的术语“存储介质”指代存储使机器以特定形式操作的数据和/或指令的任何非易失性介质。该存储介质可以包括非易失性介质和/或易失性介质。例如,非易失性介质包括诸如存储单元310的光盘或磁盘。易失性介质包括诸如主存储器306的动态存储器。存储介质的共同形式包括例如软盘、软磁盘、硬盘、固态驱动、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔洞样式的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他的存储器芯片或磁带。
存储介质与传输介质不同但是何以结合传输介质来使用。传输介质参与在存储介质之间的信息的传输。例如,传输介质包括同轴线缆、铜线和光纤、包括包含总线302的配线。传输媒介还可以以诸如在无线电波和红外线数据通信期间产生的那些声波或光波为形式。
各种形式的媒介可以涉及将一个以上的指令的一个以上的序列携带至处理器304来执行。例如,指令可以最初携带在远程计算机的磁盘或固态驱动上远程计算机可以将指令读取到它的动态存储器中并且使用调制解调器通过电话线来发送指令。计算机系统300的本地的调制解调器可以接收在电话线上的数据并且使用红外发射器来将数据转换为红外信号。红外检测器可以接收在红外信号中携带的数据并且合适的电路可以将数据放置在总线302上。总线302将数据携带至主存储器306,处理器304从主存储器306检索并且执行指令。由主存储器306接收的指令可以可选地在由处理器304执行之前或之后存储在存储单元310上。
计算机系统300还包括耦接至总线302的通信接口318。通信接口318提供耦接至网络链路320的双路数据通信,该网络链路320连接至本地网络322。例如,通信接口318可以是集成服务数字网络(ISDN)卡、线缆调制解调器、卫星调制解调器或提供到相应种类的电话线的数据通信的调制解调器。如另一示例,通信接口318可以是提供到兼容的LAN的数据通信连接的局域网(LAN)卡。也可以实现无线链路。在任何这些实现中,通信接口318发送并且接收携带表示各种信息的数字数据流的电子的、电磁的或光学的信号。
网络链路320通常提供通过一个以上的网络的到其他装置的数据通信。例如,网络链路320可以提供通过本地网络322的到主机计算机324或对由因特网服务提供者(ISP)326操作的数据设备的连接。ISP326通过现在通常称作“因特网”328的广域分组数据通信网络来依次提供数据通信服务。通过各种网络的信号和在网络链路320上并且通过通信接口
318的信号(这些信号将数据携带至计算机系统300并且从计算机系统300携带数据)是传输介质的形式的示例。
计算机系统300可以通过网络、网络链路320和通信接口318来发送消息和接收数据(包括程序代码)。在因特网的示例中,服务器330可以通过因特网328、ISP326、本地网络322和通信接口318来发射对于应用程序的请求代码。
当接收到代码时,接收的代码可以由处理器304执行和/或存储在存储单元310中,或存储在其他非易失性存储器中以用于以后的执行。
在前述说明书中,参考了可以根据各种实现而不同的各种具体细节而描述了本发明的实施方式。因此,本说明书和附图应当被认为是示意性的而非限制性的意思。本发明的范围的唯一的和排他的指示物(并且是申请人希望其成为本发明的范围的)是从本申请中提出的以权利要求的具体形式提出的权利要求组的包括任何后续的改正的字面上的和其等同物的范围。

Claims (13)

1.一种方法,包括:
接收在系统中存储片的请求,所述系统包括多个兄弟组;
响应于所述请求的接收来存储所述片,执行以下步骤:
生成所述片的访问关键字;以及
发送确定所述片是否已被存储在所述系统中的多个第一请求;
其中,发送所述多个第一请求包括发送第一请求至所述多个兄弟组中的每一个;
基于对所述多个第一请求的响应,确定所述片还未被存储在所述系统中;
响应于确定所述片还未被存储在所述系统中,执行以下步骤:
从所述多个兄弟组中选择特定兄弟组,作为用于存储所述片的请求的目标组;以及
发送将该片仅存储至所述特定兄弟组的第二请求,以使所述特定兄弟组存储所述片;
其中,所述方法通过一个或多个计算装置来执行。
2.根据权利要求1所述的方法,其中,
所述访问关键字是落入哈希空间的值;
整个哈希空间被分配至所述多个兄弟组中的每一个;
在各兄弟组内,哈希空间的哈希段被分配至属于该兄弟组的存储单元;以及
在各兄弟组内,被分配特定哈希段的存储单元负责存储与落入所述特定哈希段内的访问关键字相关联的片。
3.根据权利要求1所述的方法,还包括:
接收从所述系统检索所述片的请求,其中,检索所述片的该请求指定所述片的访问关键字;
响应于接收检索所述片的请求,执行以下步骤:
发送检索所述片的多个第三请求,其中,发送所述多个第三请求包括发送第三请求至所述多个兄弟组中的每一个;
响应于发送至所述特定兄弟组的第三请求,从所述特定兄弟组接收所述片;以及
提供所述片作为对检索所述片的请求的响应。
4.根据权利要求1所述的方法,其中,选择所述特定兄弟组作为用于存储所述片的请求的目标兄弟组包括:
对所述多个兄弟组建立顺序;以及
以所述顺序选择不满足已满标准的第一个兄弟组作为所述目标兄弟组。
5.根据权利要求2所述的方法,其中,
选择所述特定兄弟组作为用于存储所述片的请求的目标兄弟组包括:
对所述多个兄弟组建立顺序;以及
以所述顺序选择不满足已满标准的第一个兄弟组作为所述目标兄弟组;以及
所述方法还包括:基于给定兄弟组内被分配了访问关键字落入其中的哈希段的特定存储单元是否满足所述已满标准,来确定所述给定兄弟组是否满足所述已满标准。
6.根据权利要求1所述的方法,其中,
所述多个兄弟组包括:
第一兄弟组,其使用第一哈希函数来确定片的访问关键字;以及
第二兄弟组,其使用第二哈希函数来确定片的访问关键字;并且
所述第一哈希函数不同于所述第二哈希函数。
7.根据权利要求2所述的方法,还包括:响应于确定所述多个兄弟组中的一个兄弟组内的特定存储单元是满的,将所述特定存储单元从读/写模式转换成只读模式。
8.根据权利要求2所述的方法,还包括:响应于确定特定存储单元是满的,更新目标元数据以至少针对具有落入被分配至所述特定存储单元的哈希段的访问关键字的片来指示所述特定存储单元所属的兄弟组不成为存储片的后续请求的目标。
9.根据权利要求1所述的方法,其中,
所述系统包括具有多个机架的机柜;并且
所述多个兄弟组中的各兄弟组是安装在所述机柜中的刀片的机架。
10.根据权利要求1所述的方法,还包括:通过在不从所述多个兄弟组中的任意个向新的兄弟组移动任何片的情况下向所述多个兄弟组添加所述新的兄弟组,来扩展所述系统的存储器,其中,在所述新的兄弟组被添加至所述多个兄弟组后,所述系统除了向所述多个兄弟组中的其他兄弟组之外还向所述新的兄弟组发送对片的请求。
11.一种非瞬态计算机可读存储介质,存储用于执行根据权利要求1至10中任一项所述的方法的指令。
12.一种内容可寻址存储(CAS)系统,包括:
多个存储单元;
其中,各存储单元被分配至多个兄弟组中的一个;
其中,各兄弟组被分配整个哈希空间;并且
其中,在各兄弟组内,哈希空间被分成多个哈希段,所述多个哈希段被分配至属于所述兄弟组的各个存储单元。
13.根据权利要求12所述的内容可寻址存储系统,其中,所述系统被配置为:
向所有兄弟组提交片检索请求;以及
向单个兄弟组提交片存储请求;
其中,存储请求被提交至的兄弟组取决于是否任意兄弟组已存储所述片以及哪些兄弟组被认为是满的。
CN201310032546.0A 2012-01-26 2013-01-28 基于兄弟组的内容可寻址存储 Active CN103226561B (zh)

Applications Claiming Priority (4)

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
US13/622,026 US9052824B2 (en) 2012-01-26 2012-09-18 Content addressable stores based on sibling groups
US13/622,026 2012-09-18

Publications (2)

Publication Number Publication Date
CN103226561A true CN103226561A (zh) 2013-07-31
CN103226561B CN103226561B (zh) 2016-08-17

Family

ID=48837009

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310032546.0A Active CN103226561B (zh) 2012-01-26 2013-01-28 基于兄弟组的内容可寻址存储
CN201410350664.0A Active CN104331408B (zh) 2012-01-26 2014-07-22 分级内容可寻址存储系统中的块级客户端侧加密

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201410350664.0A Active CN104331408B (zh) 2012-01-26 2014-07-22 分级内容可寻址存储系统中的块级客户端侧加密

Country Status (3)

Country Link
US (4) US9052824B2 (zh)
CN (2) CN103226561B (zh)
HK (1) HK1203665A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046162A (zh) * 2014-03-12 2015-11-11 阿普赛尔有限公司 在内容可寻址存储系统中维护并使用子对父映射的缓存
WO2017025039A1 (zh) * 2015-08-13 2017-02-16 北京忆恒创源科技有限公司 一种面向闪存存储的数据访问方法及其装置
CN110324395A (zh) * 2019-01-31 2019-10-11 林德(中国)叉车有限公司 一种基于双重链的iot设备数据处理方法

Families Citing this family (71)

* 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
US9052824B2 (en) 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups
US9183212B2 (en) 2012-01-26 2015-11-10 Upthere, Inc. Representing directory structure in content-addressable storage systems
US8631209B2 (en) 2012-01-26 2014-01-14 Upthere, Inc. Reusable content addressable stores as building blocks for creating large scale storage infrastructures
US10430608B2 (en) * 2013-06-14 2019-10-01 Salesforce.Com, Inc. Systems and methods of automated compliance with data privacy laws
US10275470B2 (en) * 2013-08-15 2019-04-30 Amazon Technologies, Inc. Network-backed file system
GB2514428B (en) * 2013-08-19 2016-01-13 Visa Europe Ltd Enabling access to data
US9659023B2 (en) 2013-11-21 2017-05-23 Upthere, Inc. Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system
US10615967B2 (en) * 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9967093B2 (en) * 2015-03-25 2018-05-08 Intel Corporation Techniques for securing and controlling access to data
US9916458B2 (en) * 2015-03-31 2018-03-13 EMC IP Holding Company LLC Secure cloud-based storage of data shared across file system objects and clients
US10191914B2 (en) 2015-03-31 2019-01-29 EMC IP Holding Company LLC De-duplicating distributed file system using cloud-based object store
US9824419B2 (en) * 2015-11-20 2017-11-21 International Business Machines Corporation Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11620336B1 (en) * 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
CN106682499A (zh) * 2016-11-16 2017-05-17 无锡港湾网络科技有限公司 防灾系统数据安全存储方法
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US10812590B2 (en) 2017-11-17 2020-10-20 Bank Of America Corporation System for generating distributed cloud data storage on disparate devices
CN108063756B (zh) * 2017-11-21 2020-07-03 阿里巴巴集团控股有限公司 一种密钥管理方法、装置及设备
US10997247B1 (en) * 2018-04-30 2021-05-04 Amazon Technologies, Inc. Snapshot tracking using a graph database
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11663085B2 (en) * 2018-06-25 2023-05-30 Rubrik, Inc. Application backup and management
US10503612B1 (en) 2018-06-25 2019-12-10 Rubrik, Inc. Application migration between environments
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US10860607B2 (en) * 2018-07-27 2020-12-08 EMC IP Holding Company LLC Synchronization of metadata-based system snapshots with a state of user data
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11334521B2 (en) 2018-12-21 2022-05-17 EMC IP Holding Company LLC System and method that determines a size of metadata-based system snapshots
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11392541B2 (en) 2019-03-22 2022-07-19 Hewlett Packard Enterprise Development Lp Data transfer using snapshot differencing from edge system to core system
US20200326892A1 (en) * 2019-04-10 2020-10-15 Microsoft Technology Licensing, Llc Methods for encrypting and updating virtual disks
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
KR20220140639A (ko) * 2019-05-22 2022-10-18 묘타, 인크. 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
WO2021091241A1 (ko) * 2019-11-07 2021-05-14 인텔렉추얼디스커버리 주식회사 무선 통신 시스템에서 암호화 키 설정 방법, 장치, 컴퓨터 프로그램 및 그 기록 매체
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
CN111404967A (zh) * 2020-04-03 2020-07-10 山西小苍蝇智能环保科技有限公司 厨余垃圾回收运营方法、系统、支付回收设备、用户终端及车辆终端
US11513953B2 (en) * 2020-09-08 2022-11-29 EMC IP Holding Company LLC Synchronizing garbage collection and incoming data traffic
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
US11550713B1 (en) * 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11755427B2 (en) 2021-06-01 2023-09-12 Alibaba Singapore Holding Private Limited Fast recovery and replication of key-value stores
US11741073B2 (en) 2021-06-01 2023-08-29 Alibaba Singapore Holding Private Limited Granularly timestamped concurrency control for key-value store
US11829291B2 (en) 2021-06-01 2023-11-28 Alibaba Singapore Holding Private Limited Garbage collection of tree structure with page mappings
CN117234427B (zh) * 2023-11-09 2024-02-09 苏州元脑智能科技有限公司 数据读写方法、装置、设备、系统、存储介质及存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307249A1 (en) * 2006-05-31 2009-12-10 Storwize Ltd. Method and system for transformation of logical data objects for storage
CN101771715A (zh) * 2008-12-26 2010-07-07 华为技术有限公司 分布式网络构建存储的方法、装置和系统
CN102214174A (zh) * 2010-04-08 2011-10-12 上海市浦东科技信息中心 一种海量数据信息检索系统及其方法

Family Cites Families (52)

* 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 情報記憶装置
US8255680B1 (en) * 1997-06-26 2012-08-28 Oracle America, Inc. Layer-independent security for communication channels
US6807632B1 (en) 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
AU6104800A (en) * 1999-07-16 2001-02-05 Intertrust Technologies Corp. Trusted storage systems and methods
US6594678B1 (en) * 2000-01-05 2003-07-15 Sun Microsystems, Inc. Methods and apparatus for improving locality of reference through memory management
US7535485B2 (en) 2000-08-15 2009-05-19 Polycom, Inc. Delay reduction for transmission and processing of video data
WO2002025410A2 (en) * 2000-09-15 2002-03-28 Koninklijke Philips Electronics N.V. Protect by data chunk address as encryption key
US6879991B2 (en) * 2000-12-11 2005-04-12 International Business Machines Corporation Synchronous collection of cyclic garbage in reference counting systems
AU2003207556A1 (en) 2002-01-15 2003-07-30 Avaya Technology Corp. Communication application server for converged communication services
US6728738B2 (en) 2002-04-03 2004-04-27 Sun Microsystems, Inc. Fast lifetime analysis of objects in a garbage-collected system
US6950838B2 (en) 2002-04-17 2005-09-27 Sun Microsystems, Inc. Locating references and roots for in-cache garbage collection
US7721340B2 (en) * 2004-06-12 2010-05-18 Microsoft Corporation Registry protection
US7891008B2 (en) * 2004-06-12 2011-02-15 Microsoft Corporation Profile protection
WO2006017362A2 (en) * 2004-07-13 2006-02-16 Freedom Software, Inc. Storing and distributing encrypted digital content
US8156429B2 (en) 2004-10-22 2012-04-10 Flash Networks. Ltd Method and system for accelerating downloading of web pages
US7548940B2 (en) 2005-06-10 2009-06-16 International Business Machines Corporation Generational real-time garbage collection
US20070022149A1 (en) 2005-07-22 2007-01-25 International Business Machines Corporation System and method for concurrent garbage collection
US7958101B1 (en) * 2006-01-03 2011-06-07 Emc Corporation Methods and apparatus for mounting a file system
US8095542B1 (en) * 2006-01-03 2012-01-10 Emc Corporation Methods and apparatus for allowing access to content
US7836267B1 (en) 2006-08-30 2010-11-16 Barracuda Networks Inc Open computer files snapshot
US7844632B2 (en) * 2006-10-18 2010-11-30 Oracle International Corporation Scalable DOM implementation
US8156494B2 (en) * 2006-10-18 2012-04-10 Oracle International Corporation Pluggable DOM implementation using an abstract API when receiving API calls for accessing different formats of XML data
CN103546372A (zh) * 2006-11-27 2014-01-29 艾利森电话股份有限公司 用于提供覆盖网络的路由选择体系结构的方法和系统
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
US8615635B2 (en) 2007-01-05 2013-12-24 Sony Corporation Database management methodology
DE602007010040D1 (de) 2007-02-22 2010-12-02 Ericsson Telefon Ab L M Overlay-Netzwerk mit einheitlicher und fehlertoleranter verteilter Hash-Tabelle (DHT)
JP4994103B2 (ja) 2007-05-08 2012-08-08 パナソニック株式会社 アドレス変換メモリアクセス機構を備える半導体装置
US7788220B1 (en) 2007-12-31 2010-08-31 Emc Corporation Storage of data with composite hashes in backup systems
WO2009095413A2 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method and system for encrypted file access
US7747663B2 (en) 2008-03-05 2010-06-29 Nec Laboratories America, Inc. System and method for content addressable storage
US7937419B2 (en) 2008-06-26 2011-05-03 Tatu Ylonen Oy Garbage collection via multiobjects
US8335889B2 (en) * 2008-09-11 2012-12-18 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US8612493B2 (en) 2008-10-30 2013-12-17 International Business Machines Corporation Allocation cache premarking for snap-shot-at-the-beginning concurrent mark-and-sweep collector
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
GB2486462B (en) * 2010-12-16 2019-04-24 Maidsafe Found Distributed file system
US20120159098A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
US8924739B2 (en) * 2011-01-05 2014-12-30 Apple Inc. System and method for in-place encryption
US8713056B1 (en) 2011-03-30 2014-04-29 Open Text S.A. System, method and computer program product for efficient caching of hierarchical items
EP2710510A4 (en) * 2011-05-14 2015-05-06 Bitcasa Inc CLOUD FILE SYSTEM WITH SERVER DEPLOYMENT OF USER UNKNOWN ENCRYPTED FILES
US8689279B2 (en) * 2011-08-30 2014-04-01 Microsoft Corporation Encrypted chunk-based rapid data encryption policy compliance
JP5500309B2 (ja) 2011-09-07 2014-05-21 日本電気株式会社 ストレージ装置
US8769310B2 (en) * 2011-10-21 2014-07-01 International Business Machines Corporation Encrypting data objects to back-up
CN102567688B (zh) * 2011-11-30 2015-05-20 中标软件有限公司 一种安卓操作系统上的文件保密系统及其保密方法
US9052824B2 (en) 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups
US9075834B2 (en) 2012-01-26 2015-07-07 Upthere, Inc. Detecting deviation between replicas using bloom filters
US8631209B2 (en) * 2012-01-26 2014-01-14 Upthere, Inc. Reusable content addressable stores as building blocks for creating large scale storage infrastructures
CN102821096B (zh) * 2012-07-17 2014-10-29 华中科技大学 一种分布式存储系统及其文件共享方法
US9037856B2 (en) * 2012-07-18 2015-05-19 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9020994B1 (en) * 2012-09-26 2015-04-28 Emc Corporation Client-based migrating of data from content-addressed storage to file-based storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307249A1 (en) * 2006-05-31 2009-12-10 Storwize Ltd. Method and system for transformation of logical data objects for storage
CN101771715A (zh) * 2008-12-26 2010-07-07 华为技术有限公司 分布式网络构建存储的方法、装置和系统
CN102214174A (zh) * 2010-04-08 2011-10-12 上海市浦东科技信息中心 一种海量数据信息检索系统及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SANJAY GHEMAWAT等: "《The Google File System》", 《ACM SIGOPS OPERATING SYSTEMS REVIEW》 *
SANJAY GHEMAWAT等: "《The Google File System》", 《ACM SIGOPS OPERATING SYSTEMS REVIEW》, 31 October 2003 (2003-10-31), pages 29 - 43 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046162A (zh) * 2014-03-12 2015-11-11 阿普赛尔有限公司 在内容可寻址存储系统中维护并使用子对父映射的缓存
CN105046162B (zh) * 2014-03-12 2018-07-27 西部数据技术公司 在内容可寻址存储系统中维护并使用子对父映射的缓存
WO2017025039A1 (zh) * 2015-08-13 2017-02-16 北京忆恒创源科技有限公司 一种面向闪存存储的数据访问方法及其装置
CN106445405A (zh) * 2015-08-13 2017-02-22 北京忆恒创源科技有限公司 一种面向闪存存储的数据访问方法及其装置
CN106445405B (zh) * 2015-08-13 2020-02-07 北京忆恒创源科技有限公司 一种面向闪存存储的数据访问方法及其装置
CN111007991A (zh) * 2015-08-13 2020-04-14 北京忆恒创源科技有限公司 基于nvdimm分离读写请求的方法及其计算机
CN111007991B (zh) * 2015-08-13 2024-01-26 北京忆恒创源科技股份有限公司 基于nvdimm分离读写请求的方法及其计算机
CN110324395A (zh) * 2019-01-31 2019-10-11 林德(中国)叉车有限公司 一种基于双重链的iot设备数据处理方法
CN110324395B (zh) * 2019-01-31 2022-04-19 林德(中国)叉车有限公司 一种基于双重链的iot设备数据处理方法

Also Published As

Publication number Publication date
US9411749B2 (en) 2016-08-09
CN103226561B (zh) 2016-08-17
US20160092374A1 (en) 2016-03-31
US9052824B2 (en) 2015-06-09
US9176871B1 (en) 2015-11-03
US20130198475A1 (en) 2013-08-01
CN104331408A (zh) 2015-02-04
US9207866B2 (en) 2015-12-08
US20150026454A1 (en) 2015-01-22
HK1203665A1 (zh) 2015-10-30
CN104331408B (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN103226561A (zh) 基于兄弟组的内容可寻址存储
US10296498B2 (en) Coordinated hash table indexes to facilitate reducing database reconfiguration time
EP2666111B1 (en) Storing data on storage nodes
CN1517885B (zh) 关于利用原子性更新的中央高速缓冲存储器的方法和系统
US9208189B2 (en) Distributed request processing
US8103628B2 (en) Directed placement of data in a redundant data storage system
US8832113B2 (en) Data management apparatus and system
JP6880131B2 (ja) データ処理用の方法、装置及びシステム
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
CN103294610B (zh) 可重复使用的内容可寻址存储
US11245774B2 (en) Cache storage for streaming data
KR20160022226A (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US6807615B1 (en) Apparatus and method for providing a cyclic buffer using logical blocks
CN104102693A (zh) 对象处理方法和装置
US20150281390A1 (en) Intelligent File Pre-Fetch Based on Access Patterns
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
CN1607508B (zh) 自适应重构缓冲区的系统和方法
US8868525B2 (en) Distributed information synchronization
CN110109868A (zh) 用于索引文件的方法、装置和计算机程序产品
CN106598724A (zh) 用于在计算系统中管理内存的方法
US9594782B2 (en) Hierarchical file block variant store apparatus and method of operation
US11429311B1 (en) Method and system for managing requests in a distributed system
CN110837499B (zh) 数据访问处理方法、装置、电子设备和存储介质
CN109376001A (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: 1187999

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: 1187999

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.