CN106909317A - 在存储节点上存储数据 - Google Patents

在存储节点上存储数据 Download PDF

Info

Publication number
CN106909317A
CN106909317A CN201710008369.0A CN201710008369A CN106909317A CN 106909317 A CN106909317 A CN 106909317A CN 201710008369 A CN201710008369 A CN 201710008369A CN 106909317 A CN106909317 A CN 106909317A
Authority
CN
China
Prior art keywords
memory node
cache
file
memory
data
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
CN201710008369.0A
Other languages
English (en)
Other versions
CN106909317B (zh
Inventor
A·卡达奇
L·E·格林菲尔德
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN106909317A publication Critical patent/CN106909317A/zh
Application granted granted Critical
Publication of CN106909317B publication Critical patent/CN106909317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请的各实施例涉及在存储节点上存储数据。用于在存储节点上存储数据的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。在一个方面中,一种方法包括接收将跨越各自包括高速缓存的多个存储节点存储的文件。通过各自在不同存储节点上存储文件的部分存储文件。向第一存储节点的高速缓存写入第一部分,直至确定第一存储节点的高速缓存为满。响应于确定第一存储节点的高速缓存为满,选择不同的第二存储节点。为文件的每个部分记录该部分的位置,该位置至少指示存储该部分的存储节点。

Description

在存储节点上存储数据
分案申请说明
本申请是国际申请日为2012年1月19日、于2013年9月10日进入中国国家阶段、国家申请号为201280012751.4、名称为“在存储节点上存储数据”的中国发明专利申请的分案申请。
有关申请的交叉引用
本申请要求对通过引用将其公开内容结合于此、名称为STORING DATA ONSTORAGE NODES、于2011年1月20日提交的第13/010,548号美国专利申请的优先权。
技术领域
本说明书涉及在物理存储设备上存储数字数据。
背景技术
数据分条(striping)包括跨越存储设备阵列存储数据。取代向单个设备写入所有数据,向多个设备并行写入数据,从而使得写入数据的总速率大于仅用单个设备而可能的速率。数据分条可以与其他数据存储技术(例如,存储冗余数据、随着数据的检错或者纠错码)组合以创建快速、可靠的存储。
发明内容
计算机存储系统在存储节点阵列上存储文件。每个存储节点包括一个或者多个存储设备,并且每个存储节点包括高速缓存(例如,随机存取存储器(RAM))和更慢存储装置(例如,硬盘)。高速缓存可以比更慢存储装置存储数据更快。例如,存储节点可以是具有高速缓存能力的硬盘。计算机存储系统从文件向第一存储节点写入数据直至第一存储节点的高速缓存为满,并且然后从文件向第二存储节点写入数据。第一存储节点从第一存储节点的高速缓存向第一存储节点的更慢存储装置复制数据。计算机存储系统继续向各种存储设备写入数据,从而使得完全存储文件。无论存储节点是否被附着到例如个别计算机或者多个数据处理装置,都可以用相同方式写入向存储节点写入的数据。
一般而言,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的一个创新方面:接收将跨越各自包括高速缓存的多个存储节点存储的文件;通过各自在不同存储节点上存储文件的多个部分存储文件,包括向第一存储节点的高速缓存写入第一部分直至确定第一存储节点的高速缓存为满并且响应于确定第一存储节点的高速缓存为满选择不同的第二存储节点;以及为文件的每个部分记录该部分的位置,该位置至少指示存储该部分的存储节点。这一方面的其他实施例包括对应系统、装置和在计算机存储设备上编码的被配置用于执行方法的动作的计算机程序。
这些和其他实施例可以可选地包括以下特征中的一个或者多个特征。确定第一存储节点的高速缓存为满包括确定用于写入第一部分的数据存储速率已经下降。确定第一存储节点的高速缓存为满包括比较第一部分的数量与第一存储节点的高速缓存的已知大小并且确定数量等于或者超过已知大小。选择第二存储节点包括从存储节点随机选择第二存储节点。选择第二存储节点包括选择具有以往最远写入时间的存储节点。动作还包括向多个存储节点中的每个存储节点分配权值,并且其中选择第二存储节点包括使用权值。每个存储节点的权值基于存储节点的性能特性。选择第二存储节点基于以下各项中的一项或者多项:第二存储节点的性能特性、第二存储节点的使用历史和用于第二存储节点的以往性能记录。选择第二存储节点基于以下各项中的一项或者多项:由第二存储节点存储的绝对数据数量和由第二存储节点存储的相对于第二存储节点的容量的数据数量。第一存储节点响应于向第一存储节点的高速缓存写入第一部分从第一存储节点的高速缓存向更慢存储装置复制第一部分。存储文件包括向第二存储节点写入第二部分。向第二存储节点写入第二部分包括向第二存储节点的高速缓存写入第二部分直至确定第二存储节点的高速缓存为满。存储文件包括继续向各种存储节点写入文件的部分直至在存储节点中完全存储文件。动作还包括:接收对于文件的请求;从第一存储节点读取第一部分;以及从第二存储节点读取第二部分。
可以实施在本说明书中描述的主题内容的特定实施例以便实现以下优点中的一个或者多个优点。计算机存储系统可以通过向具有高速缓存的存储节点写入来增加它的存储速度。在高速缓存模式中更频繁地保持存储节点以减少延时并且增加吞吐量。计算机存储系统可以使用存储日志来恢复存储的数据。
在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其他特征、方面和优点将从描述、附图和权利要求变得清楚。
附图说明
图1是示例存储系统的框图。
图2是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术的流程图。
图3是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术的流程图。
图4是用于从各自具有高速缓存的存储节点的阵列读取数据的示例技术的流程图。
图5是用于存储数据的示例计算系统的示意图。
在各种附图中的相似标号和标示指示相似要素。
具体实施方式
图1是示例存储系统102的框图。存储系统102包括可以在地理上分布的一个或者多个数据处理装置。存储系统102在存储节点110a-110d的阵列上存储数字数据文件。存储系统102可以通过计算机网络106从客户端设备104或者从另一来源接收电子文件(或者“文件”)。文件可以是任何数据,例如,文本、图像、音频内容、视频内容或者其组合。文件可以如例如通过网络文件系统协议由存储系统102接收。其他协议是可能的。存储系统102可以例如通过在正常操作期间产生服务日志来创建数据以用于存储。存储系统102可以基于其他数据(例如,通过从高分辨率源图像产生小缩略图图像)创建数据以用于存储。存储引擎108确定如何分布文件的内容以用于在存储节点110a-110d上存储。
每个存储节点110包括高速缓存112和一个或者多个更慢存储装置114设备。高速缓存112可以例如是RAM、闪存、硬盘等。更慢存储装置114也可以是RAM或者硬盘,但是更慢存储装置114比高速缓存112花费更长时间来存储数据。更慢存储装置114通常具有比高速缓存112更大的存储容量。首先向高速缓存112写入向存储节点110写入的数据,因为可以在高速缓存112中比更慢存储装置114更快地存储数据。存储节点110然后从高速缓存112向更慢存储装置114复制数据。
例如,存储节点110可以是具有RAM高速缓存的硬盘。首先向RAM高速缓存写入并且然后向盘复制向存储节点110写入的数据。在另一示例中,存储节点110是具有共享RAM高速缓存的硬盘阵列,例如,廉价盘冗余阵列(RAID)设备。虽然存储节点110包括多个盘,但是存储引擎108可以将存储节点在逻辑上作为单个设备来寻址。
存储引擎108通过从文件向存储节点写入数据的一部分来存储文件。存储引擎108向该存储节点写入数据直至确定存储节点的高速缓存为满。高速缓存在它存储达到或者接近它的容量的数据数量以使得它不再可以接受新数据以用于存储时为满。以下描述用于确定高速缓存为满的技术。存储引擎108然后从文件向不同存储节点写入数据的另一部分直至确定不同存储节点的高速缓存为满。由存储引擎108写入的部分未必在文件中相邻,并且无需有序写入文件的内容。
存储引擎108继续从文件在各种存储节点上写入数据直至完全写入文件的内容。备选地,写入少于整个文件的内容。如果所有存储节点具有为满的高速缓存,则存储引擎108可以等待直至高速缓存具有自由空间(在向更慢存储装置复制它的内容之后)或者向更慢存储装置直接写入。在一些实现方式中,无论是否所有存储节点具有为满的高速缓存,存储引擎108继续选择用于写入到的新存储节点直至它发现可用的存储节点。通过向具有可用高速缓存存储的存储节点写入,无论高速缓存是否为满,与向单个设备写入单个文件比较,存储引擎108增加它的数据存储速率。
存储引擎108跟踪来自文件的写入的数据在存储日志116中的位置。存储日志116包括为了从存储节点恢复文件而必需的信息。例如,存储日志116可以包括数据在第一存储节点上的位置。存储日志116也包括在位置与文件之间的关联(例如,通过在表的相同记录或者行中包括位置和文件名称)。以下在表1中举例说明示例存储日志。
文件名 存储节点 地址 时间戳
文件1 A 1-50 1
B 200-300 2
C 50-125 3
文件2 A 150-250 4
C 200-300 5
表1
例如,考虑用于存储如由表1所示的“文件1”的示例场景。第一列将前三行与文件1关联。第一行指示在由时间戳1给定的时间,存储引擎108从文件1向存储节点A的地址1-50写入数据。第二行指示在由时间戳2给定的时间,存储引擎108从文件1向存储节点B的地址200-300写入数据。存储引擎108例如比存储节点A更多使用在存储节点B的地址,因为存储节点B具有比存储节点A更大的高速缓存或者因为存储节点A的高速缓存在存储引擎108开始写入数据时部分地为满。第三行指示在由时间戳3给定的时间,存储引擎108从文件1向存储节点C的地址50-125写入数据。
表1所示的地址是示例地址。一般而言,地址引用数据在存储节点的更慢存储装置上的位置。即使通常初始地向高速缓存写入数据,地址也引用更慢存储装置上的位置,因为存储节点从高速缓存向更慢存储装置复制数据。例如,存储节点可以将向它的高速缓存写入的数据的位置映射到更慢存储装置上的目的地位置。
存储引擎108可以使用各种技术来确定存储节点的高速缓存为满。例如,存储引擎108可以监视存储节点接受数据的速率。在速率下降时,存储引擎108确定存储节点的高速缓存为满。在另一示例中,存储引擎108可以比较它已经向存储节点写入的数据数量与存储节点的高速缓存的指定的大小。在写入的数据数量超过指定的大小时,存储引擎108确定存储节点的高速缓存为满。存储引擎108可以存储用于存储节点的指定的大小,或者存储引擎108可以在它开始向存储节点写入数据之前向存储节点查询指定的大小。在一些实现方式中,无需确定,因为存储引擎108向存储节点仅写入指定的大小的数量并且然后选择不同存储节点。那些实现方式例如在存在足够高速缓存存储装置以假设每个高速缓存将在再次被选择时为空时有用。
在存储引擎108确定存储节点的高速缓存为满时,它可以使用各种技术来选择不同存储节点。考虑以下四种示例技术。
在第一示例中,存储引擎108可以随机选择另一存储节点。这例如在多个存储引擎向各种存储节点写入并且难以确定是否任何给定的存储节点将具有可用高速缓存存储装置时有用。
在第二示例中,存储引擎108可以使用存储日志116以选择不同存储节点。存储引擎108通常选择任何存储节点中的具有过去最远写入时间的存储节点。例如,考虑表1中所示的示例存储日志。在存储节点A、B和C之中,存储节点B具有过去最远写入时间(在时间戳2)。
在第三示例中,存储引擎108可以使用加权随机化。加权随机化涉及向存储节点分配权值并且基于权值选择存储节点。例如,假设所有存储节点属于A和B这两类之一。属于B类的节点平均比属于A类的节点快两倍(例如,因为属于B类的节点使用更加新的硬件)。存储引擎108可以比来自A类的节点更频繁地选择来自B类的节点以提高系统性能。在一些实现方式中,向个别存储节点分配权值W[k],并且存储引擎108选择存储节点以使得选择节点#k的可能性与成比例。
在第四示例中,存储引擎108可以用伪随机方式选择节点。选择节点的可能性基于与节点有关的各种因素,例如,性能特性(例如,高速缓存速度)、使用历史(例如,使用存储日志116)、以往性能记录(例如,避免持续地或者暂时地比其他节点更慢的节点)。
存储引擎108可以在选择不同存储节点时使用其他信息。存储引擎108可以根据用于存储的计划或者方案选择存储节点。例如,存储引擎108可以使用存储节点已经存储的绝对数据数量、由存储节点存储的相对于它的容量的数据数量(例如,防止写入或者尝试写入到为满的节点)、数据年龄(例如,其中比旧数据更频繁地访问新数据)等等。存储引擎108可以例如使用存储节点的负荷和容量以有助于跨越所有可用存储装置的均匀存储利用并且避免让所有数据存储于很少节点上。
在另一示例中,存储引擎108可以例如通过监视当前或者计划的数据访问模式来平衡写入数据的速度和延时与数据处理容量。这例如对避免在单个存储节点或者仅少数存储节点上存储大量高需求数据有用。存储引擎108可以例如使用具体数据的以往数据访问模式或者使用关于数据的其他信息(例如,是否新近生成它)来标识高需求数据。图2是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术200的流程图。技术200可以由计算机系统(例如,图1的计算机系统102)执行。出于例示的目的,将关于执行技术200的系统描述该技术。
系统标识文件以用于在存储节点上存储(步骤202)。例如,系统可以从客户端设备(例如,图1的客户端设备104)接收文件。
系统选择存储节点(步骤204)。例如,系统可以随机选择存储节点,或者系统可以使用存储日志(例如,图1的存储日志116)来选择存储节点。
系统从文件在选择的存储节点存储数据(步骤206)。例如,系统可以向选择的存储节点发送固定数量的数据,或者系统可以用流发送数据持续固定数量的时间。
系统记录存储的数据在选择的存储节点的位置(步骤208)。例如,系统可以在存储日志(例如,图1的存储日志116)中记录位置。系统关联存储的数据的位置与文件(例如,使用文件名或者文件描述符)。
系统确定是否完全存储文件(步骤210)。如果存储了文件,则系统标识另一文件(返回到步骤202)。如果未存储文件,则系统确定选择的存储节点的高速缓存是否为满(步骤212)。例如,系统可以监视向存储节点的写入的数据速率,或者比较存储节点的指定的大小与写入的数据数量。
如果选择的存储节点的高速缓存为满,则系统选择另一存储节点(返回到步骤204)。如果选择的存储节点的高速缓存未满,则系统继续从文件向选择的存储节点写入数据(返回到步骤206)。
图3是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术300的流程图。技术300可以由计算机系统(例如,图1的计算机系统102)执行。出于例示的目的,将关于执行技术300的系统描述该技术。
系统接收文件(步骤302)。系统从文件向存储节点的高速缓存写入数据的一部分直至确定存储节点的高速缓存为满(步骤304)。在一些实现方式中,存储节点响应于向存储节点的高速缓存写入数据的该部分从存储节点的高速缓存向更慢存储装置复制数据的该部分。在向更慢存储装置复制数据之后,存储该数据的高速缓存位置可以例如被擦拭干净(例如,清零)或者被标记为可用于写入。
在一些实现方式中,确定存储节点的高速缓存为满包括确定数据存储速率已经下降。在一些实现方式中,确定存储节点的高速缓存为满包括比较数据数量与存储节点的高速缓存的已知大小并且确定该数量超过已知大小。系统记录数据的该部分在存储节点上的位置并且关联该位置与文件(步骤306)。
系统响应于确定存储节点的高速缓存为满选择不同存储节点(步骤308)。在一些实现方式中,选择不同存储节点包括从存储节点随机选择不同存储节点。在一些实现方式中,选择不同存储节点包括访问写入时间和存储节点的日志并且选择具有以往最远写入时间的存储节点。系统从文件向不同存储节点写入数据的另一部分(步骤310)。在一些实现方式中,从文件向不同存储节点写入数据的另一部分包括向不同存储节点的高速缓存写入数据直至确定不同存储节点的高速缓存为满。系统记录数据在不同存储节点上的位置并且关联位置与文件(步骤312)。
图4是用于从各自具有高速缓存的存储节点的阵列读取数据的示例技术400的流程图。技术400可以由计算机系统(例如,图1的计算机系统102)执行。出于例示的目的,将关于执行技术400的系统描述该技术。
系统接收对于文件的请求(步骤402)。例如,请求者可以是客户端设备,例如,图1的客户端设备104。系统标识具有来自文件的数据的存储节点(步骤404)。例如,系统可以访问如下存储日志,该存储日志具有用于各种文件的数据的位置,例如,图1的存储日志116。系统从标识的存储节点读取数据(步骤406)。通常,系统从存储节点的更慢存储装置读取数据,因为存储节点已经从它的高速缓存向它的更慢存储装置复制了数据;然而,在一些情况下,系统可以从高速缓存读取数据以提高性能(例如,其中数据近来被写入到高速缓存并且尚未被重写或者清零)。
系统确定是否已经读取文件中的所有数据(步骤408)。例如,系统可以确定在存储日志中是否存在用于文件的附加条目,或者比较读取的数据数量与文件(例如,随着请求而接收的或者存储于存储日志中的)的大小。如果已经读取了用于文件的所有数据,则系统从文件向请求者提供数据(步骤410)。如果尚未读取用于文件的所有数据,则系统标识具有来自文件的数据的另一存储节点(返回到步骤404)。
图5是用于存储数据的示例计算系统502的示意图。在操作中,系统502直接地或者通过网络580与一个或者多个存储节点590通信。
系统502包括一个或者多个数据处理装置。尽管在图5中示出仅一个数据处理装置,但是可以使用多个数据处理装置。可以在地理上分布系统502。例如,系统502可以包括在各种地理位置的多个数据处理装置。
系统502包括各种模块,例如,计算机程序指令的模块,这些模块包括用于向存储节点写入数据(例如,使用图2的技术200)的写入引擎504;用于从存储节点读取数据(例如,使用图4的技术400)的读取引擎506;以及用于管理存储日志(例如,图1的存储日志116)的日志引擎。
每个模块被配置用于在系统502上运行。例如,模块可以作为系统502上的操作系统的一部分、作为系统502上的应用或者作为系统502上的操作系统的一部分和应用的一部分来运行。虽然图示了若干软件模块,但是可以在更少或者更多软件模块中实施服务器的功能。另外,可以在由一个或者多个网络或者其他适当通信介质连接的一个或者多个数据处理装置上分布软件模块。
系统502也包括硬件或者固件设备,这些设备包括一个或者多个处理器512、一个或者多个附加设备514、计算机可读介质516、通信接口518和一个或者多个用户接口设备520。每个处理器512能够执行用于在系统502内执行的指令。每个处理器512能够执行在计算机可读介质516上或者在存储设备(比如附加设备514之一)上存储的指令。系统502使用它的通信接口518以例如通过网络580与一个或者多个计算机590通信。用户接口设备520的示例包括显示器、相机、扬声器、麦克风、触觉反馈设备、键盘和鼠标。系统502可以例如在计算机可读介质516或者一个或者多个附加设备514(例如,软盘设备、硬盘设备、光盘设备或者磁带设备中的一个或者多个设备)上存储实施与以上描述的模块关联的操作的指令。
可以在数字电子电路装置中或者在计算机软件、固件或者硬件(包括在本说明书中公开的结构及其结构等效物)中或者在它们中的一项或者多项的组合中实施在本说明书中描述的主题内容和操作的实施例。可以将在本说明书中描述的主题内容的实施例实施为在计算机存储介质上编码的用于由数据处理装置执行或者控制数据处理装置的操作的一个或者多个计算机程序,即,一个或者多个计算机程序指令模块。备选地或者附加地,可以在人为生成的传播的信号(例如,机器生成的电、光或者电磁信号)上对程序指令编码,该信号被生成用于对信息编码以用于向适当接收器装置传输以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合或者被包含于机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合中。另外,尽管计算机存储介质不是传播的信号,但是计算机存储介质可以是在人为生成的传播的信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独物理部件或者介质(例如,多个CD、盘或者其他存储设备)或者被包含于一个或者多个单独物理部件或者介质中。
可以将在本说明书中描述的操作实施为数据处理装置对在一个或者多个计算机可读存储设备上存储的或者从其他来源接收的数据执行的操作。
术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器、举例而言包括可编程处理器、计算机、芯片上的系统或者前述各项中的多项或者组合。该装置可以包括专用逻辑电路装置,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外也可以包括为讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者它们中的一项或者多项的组合的代码。该装置和执行环境可以实现各种不同计算模型基础结构,比如web服务、分布式计算和网格计算基础结构。
可以用包括编译或者解译语言、说明或者过程语言的任何形式的编程语言编写计算机程序(也被称为程序、软件、软件应用、脚本或者代码),并且可以用任何形式部署它、包括部署为独立程序或者部署为适合于在计算环境中使用的模块、部件、子例程、对象或者其他单元。计算机程序可以、但是无需对应于文件系统中的文件。程序可以被存储于保持其他程序或者数据的文件(例如,存储于标记语言文档中的一个或者多个脚本)的一部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如,存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路装置(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))执行并且也可以将装置实施为专用逻辑电路装置。
举例而言,适合于执行计算机程序的处理器包括通用和专用微处理器二者以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机也将包括用于存储数据的一个或者多个海量存储设备(例如,磁盘、磁光盘或者光盘)或者被操作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者二者。然而,计算机无需具有这样的设备。另外,计算机可以被嵌入于另一设备中,聊举数例,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携存储设备(例如,通用串行总线(USB)快闪驱动)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或者可去除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路装置补充或者被并入于专用逻辑电路装置中。
为了提供与用户的交互,可以在计算机上实施在本说明书中描述的主题内容的实施例,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备,例如,鼠标或者跟踪球。其他种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向由用户使用的设备发送文档和从该设备接收文档(例如,通过响应于从用户的客户端设备上的web浏览器接收的请求向该web浏览器发送网页)来与用户交互。
可以在计算系统中实施在本说明书中描述的主题内容的实施例,该计算系统包括例如作为数据服务器的后端部件或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有图形用户界面或者Web浏览器(用户可以通过该图形用户界面或者Web浏览器与在本说明书中描述的主题内容的实现方式交互)的客户端计算机)或者一个或者多个这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向客户端设备传输数据(例如,HTML页面)(例如,用于向与客户端设备交互的用户显示数据和从该用户接收用户输入)。可以在服务器从客户端设备接收在客户端设备生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的或者可以要求保护的内容的范围,而是对具体发明的具体实施例特有的特征的描述。在本说明书中在不同的实施例的背景中描述的某些特征也可以在单个实施例中被组合实施。反言之,在单个实施例的背景中描述的各种特征也可以在多个实施例中单独地或者在任何适当子组合中被实施。另外,虽然上文可以将特征描述为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变型。
类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次顺序执行这样的操作或者执行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在上文描述的实施例中的各种系统部件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解描述的程序部件和系统一般可以被一起集成于单个软件产品中或者封装到多个软件产品中。
已经这样描述了主题内容的具体实施例。其他实施例在所附权利要求的范围内。在一些情况下,在权利要求中记载的动作可以按不同顺序被执行而仍然实现希望的结果。此外,在附图中描绘的过程未必需要所示特定顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

Claims (18)

1.一种由数据处理装置执行的方法,所述方法包括:
接收将跨越各自包括高速缓存的多个存储节点存储的文件;
通过各自在不同的存储节点上存储所述文件的多个部分存储所述文件,包括向第一存储节点的高速缓存写入第一部分;
从所述第一存储节点的高速缓存向所述第一存储节点的更慢存储装置复制所述第一部分,所述第一存储节点的所述更慢存储装置比所述第一存储节点的高速缓存慢;
在日志内记录指定所述第一存储节点的所述更慢存储装置的数据,所述日志还指定多个存储节点的多个附加的、对应的更慢存储装置;
确定所述第一存储节点的高速缓存为满并且作为响应选择不同的第二存储节点,其中选择所述第二存储节点包括:
检查所述日志,以及
将所述第二存储节点选择为在所述日志中具有如下对应的写入时间的所述存储节点:所述对应的写入时间在所述日志中的以往写入时间中最远。
2.根据权利要求1所述的方法,其中确定所述第一存储节点的高速缓存为满包括确定用于写入所述第一部分的数据存储速率已经下降。
3.根据权利要求1所述的方法,其中确定所述第一存储节点的高速缓存为满包括比较所述第一部分的数量与所述第一存储节点的高速缓存的已知大小并且确定所述数量等于或者超过所述已知大小。
4.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,以及向所述多个存储节点中的每个存储节点分配权值,并且其中选择所述第三存储节点包括使用所述权值。
5.根据权利要求4所述的方法,其中每个存储节点的权值基于所述存储节点的性能特性。
6.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,并且其中选择所述第三存储节点基于以下各项中的一项或者多项:所述第三存储节点的性能特性、所述第三存储节点的使用历史和用于所述第三存储节点的以往性能记录。
7.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,并且其中选择所述第三存储节点基于由所述第三存储节点存储的相对于所述第三存储节点的容量的数据数量。
8.根据权利要求1所述的方法,其中存储所述文件包括向所述第二存储节点写入第二部分。
9.根据权利要求8所述的方法,其中向所述第二存储节点写入所述第二部分包括向所述第二存储节点的高速缓存写入所述第二部分直至确定所述第二存储节点的高速缓存为满。
10.根据权利要求1所述的方法,其中存储所述文件包括继续向各种存储节点写入所述文件的部分直至在所述多个存储节点中完全存储所述文件。
11.根据权利要求1所述的方法,还包括:
接收对于所述文件的请求;
从所述第一存储节点读取所述第一部分;以及
从所述第二存储节点读取所述第二部分。
12.一种包括被配置用于执行操作的一个或者多个数据处理装置的系统,所述操作包括:
接收将跨越各自包括高速缓存的多个存储节点存储的文件;
通过各自在不同的存储节点上存储所述文件的多个部分存储所述文件,包括向第一存储节点的高速缓存写入第一部分;
从所述第一存储节点的高速缓存向所述第一存储节点的更慢存储装置复制所述第一部分,所述第一存储节点的所述更慢存储装置比所述第一存储节点的高速缓存慢;
在日志内记录指定所述第一存储节点的所述更慢存储装置的数据,所述日志还指定多个存储节点的多个附加的、对应的更慢存储装置;
确定所述第一存储节点的高速缓存为满并且作为响应选择不同的第二存储节点,其中选择所述第二存储节点包括:
检查所述日志,以及
将所述第二存储节点选择为在所述日志中具有如下对应的写入时间的所述存储节点:所述对应的写入时间在所述日志中的以往写入时间中最远。
13.根据权利要求12所述的系统,其中确定所述第一存储节点的高速缓存为满包括确定用于写入所述第一部分的数据存储速率已经下降。
14.根据权利要求12所述的系统,其中确定所述第一存储节点的高速缓存为满包括比较所述第一部分的数量与所述第一存储节点的高速缓存的已知大小并且确定所述数量等于或者超过所述已知大小。
15.根据权利要求12所述的系统,其中存储所述文件包括向所述第二存储节点写入第二部分。
16.根据权利要求15所述的系统,其中向所述第二存储节点写入所述第二部分包括向所述第二存储节点的高速缓存写入所述第二部分直至确定所述第二存储节点的高速缓存为满。
17.根据权利要求12所述的系统,其中存储所述文件包括继续向各种存储节点写入所述文件的部分直至在所述多个存储节点中完全存储所述文件。
18.根据权利要求12所述的系统,所述操作还包括:
接收对于所述文件的请求;
从所述第一存储节点读取所述第一部分;以及
从所述第二存储节点读取所述第二部分。
CN201710008369.0A 2011-01-20 2012-01-19 在存储节点上存储数据 Active CN106909317B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/010,548 US8745329B2 (en) 2011-01-20 2011-01-20 Storing data across a plurality of storage nodes
US13/010,548 2011-01-20
CN201280012751.4A CN103597482B (zh) 2011-01-20 2012-01-19 在存储节点上存储数据

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280012751.4A Division CN103597482B (zh) 2011-01-20 2012-01-19 在存储节点上存储数据

Publications (2)

Publication Number Publication Date
CN106909317A true CN106909317A (zh) 2017-06-30
CN106909317B CN106909317B (zh) 2020-05-19

Family

ID=46516075

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710008369.0A Active CN106909317B (zh) 2011-01-20 2012-01-19 在存储节点上存储数据
CN201280012751.4A Active CN103597482B (zh) 2011-01-20 2012-01-19 在存储节点上存储数据

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280012751.4A Active CN103597482B (zh) 2011-01-20 2012-01-19 在存储节点上存储数据

Country Status (6)

Country Link
US (3) US8745329B2 (zh)
EP (1) EP2666111B1 (zh)
CN (2) CN106909317B (zh)
AU (3) AU2012207328B2 (zh)
DE (1) DE202012013432U1 (zh)
WO (1) WO2012100037A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989934A (zh) * 2019-12-05 2020-04-10 达闼科技成都有限公司 区块链节点数据存储方法、区块链系统及区块链节点

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8533343B1 (en) 2011-01-13 2013-09-10 Google Inc. Virtual network pairs
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US9069616B2 (en) 2011-09-23 2015-06-30 Google Inc. Bandwidth throttling of virtual disks
CN105897859B (zh) * 2016-03-25 2021-07-30 北京书生云科技有限公司 一种存储系统
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US9178698B1 (en) 2011-12-21 2015-11-03 Google Inc. Dynamic key management
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8996887B2 (en) 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US9529772B1 (en) * 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
US9847907B2 (en) 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
US9262323B1 (en) 2012-11-26 2016-02-16 Amazon Technologies, Inc. Replication in distributed caching cluster
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9430255B1 (en) 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
CN107037984B (zh) * 2013-12-27 2019-10-18 威盛电子股份有限公司 数据储存装置及其数据写入方法
US20150271096A1 (en) 2014-03-24 2015-09-24 Google Technology Holdings LLC Allocation of Client Device Memory for Content from Content Sources
CN106796491A (zh) * 2014-10-03 2017-05-31 新加坡科技研究局 优化混合对象存储装置的数据重建的方法
US10031679B2 (en) * 2014-11-21 2018-07-24 Security First Corp. Gateway for cloud-based secure storage
US10572443B2 (en) 2015-02-11 2020-02-25 Spectra Logic Corporation Automated backup of network attached storage
US20160349993A1 (en) * 2015-05-29 2016-12-01 Cisco Technology, Inc. Data-driven ceph performance optimizations
US11586647B2 (en) 2016-10-03 2023-02-21 Ocient, Inc. Randomized data distribution in highly parallel database management system
US11314648B2 (en) * 2017-02-08 2022-04-26 Arm Limited Data processing
CN110069210B (zh) * 2018-01-23 2021-09-28 杭州海康威视系统技术有限公司 一种存储系统、存储资源的分配方法及装置
JP7082373B2 (ja) * 2019-03-27 2022-06-08 日本電信電話株式会社 データ管理装置およびデータ管理方法
US11847333B2 (en) * 2019-07-31 2023-12-19 EMC IP Holding Company, LLC System and method for sub-block deduplication with search for identical sectors inside a candidate block
US20210200717A1 (en) * 2019-12-26 2021-07-01 Oath Inc. Generating full metadata from partial distributed metadata
CN111427854B (zh) * 2020-03-23 2024-01-30 深圳震有科技股份有限公司 支持存储批量数据的栈结构实现方法及装置、设备、介质
JP7102460B2 (ja) * 2020-05-27 2022-07-19 株式会社日立製作所 分散ストレージ装置および分散ストレージ装置におけるデータ管理方法
US20220276800A1 (en) * 2021-02-26 2022-09-01 EMC IP Holding Company LLC Mapping Storage Volumes to Storage Processing Nodes Using Input/Output Operation Constraints and Cost Function

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
CN1302404A (zh) * 1999-03-03 2001-07-04 索尼公司 数据处理设备、数据处理方法、终端单元、和数据处理设备的发送方法
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US20070011361A1 (en) * 2005-07-07 2007-01-11 Wataru Okada Storage management system
US20080071983A1 (en) * 2006-09-20 2008-03-20 Hitachi, Ltd. Information processing apparatus, information processing method and storage system
CN101408855A (zh) * 2008-11-07 2009-04-15 北京威视数据系统有限公司 连续数据保护系统在远程备份设备临时异常时的保护方法
CN101470683A (zh) * 2007-12-26 2009-07-01 闪联信息技术工程中心有限公司 向多个存储介质复制数据的装置、系统及复制方法
CN101639848A (zh) * 2009-06-01 2010-02-03 北京四维图新科技股份有限公司 一种空间数据引擎及应用其管理空间数据的方法
CN101681311A (zh) * 2008-02-28 2010-03-24 株式会社东芝 存储器系统
US20100088335A1 (en) * 2008-10-07 2010-04-08 Yasuyuki Mimatsu Method and apparatus for improving file access performance of distributed storage system
CN101743546A (zh) * 2007-08-06 2010-06-16 国际商业机器公司 用于提供快照的文件系统的分层存储管理

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463768A (en) 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
US5778444A (en) 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6282607B1 (en) * 1997-09-18 2001-08-28 Lucent Technologies, Inc. Efficient scheduling of reading data from multiple storage mediums to satisfy multiple requests
US6178482B1 (en) 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US6449671B1 (en) * 1999-06-09 2002-09-10 Ati International Srl Method and apparatus for busing data elements
US6598179B1 (en) 2000-03-31 2003-07-22 International Business Machines Corporation Table-based error log analysis
JP2002207620A (ja) 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
US7685126B2 (en) * 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7627860B2 (en) 2001-08-14 2009-12-01 National Instruments Corporation Graphically deployment of a program with automatic conversion of program type
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7509645B2 (en) * 2002-10-17 2009-03-24 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
US7660790B1 (en) * 2005-02-24 2010-02-09 Symantec Operating Corporation Method and apparatus for utilizing a file change log
AU2003300350A1 (en) * 2003-01-02 2004-07-29 Attune Systems, Inc. Metadata based file switch and switched file system
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
US7127568B2 (en) * 2003-01-23 2006-10-24 Hitachi, Ltd. Throttling in storage systems
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US20050125456A1 (en) * 2003-12-09 2005-06-09 Junichi Hara File migration method based on access history
US7103740B1 (en) * 2003-12-31 2006-09-05 Veritas Operating Corporation Backup mechanism for a multi-class file system
US20050166011A1 (en) 2004-01-23 2005-07-28 Burnett Robert J. System for consolidating disk storage space of grid computers into a single virtual disk drive
US7610319B1 (en) * 2004-03-01 2009-10-27 Symantec Operating Corporation Efficient operations using assistance from secondary site
US20070271604A1 (en) 2004-03-17 2007-11-22 Fidelitygenetic Ltd. Secure Transaction of Dna Data
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
JP4402997B2 (ja) * 2004-03-26 2010-01-20 株式会社日立製作所 ストレージ装置
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7908302B1 (en) * 2004-09-17 2011-03-15 Symantec Operating Corporation In-place splitting and merging of files
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
GB2419697A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures each having an infrastructure controller
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
US20060161753A1 (en) 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US7346734B2 (en) * 2005-05-25 2008-03-18 Microsoft Corporation Cluster storage collection based data management
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
EP1818844B1 (de) 2006-02-10 2013-03-13 Secunet Security Networks Aktiengesellschaft Verfahren zur Benutzung von Sicherheitstoken
US7814279B2 (en) * 2006-03-23 2010-10-12 International Business Machines Corporation Low-cost cache coherency for accelerators
US20070288921A1 (en) 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
US8103870B2 (en) * 2006-09-12 2012-01-24 Foleeo, Inc. Hive-based peer-to-peer network
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network
US20080086515A1 (en) 2006-10-06 2008-04-10 International Business Machines Corporation Method and System for a Soft Error Collection of Trace Files
US7653833B1 (en) 2006-10-31 2010-01-26 Hewlett-Packard Development Company, L.P. Terminating a non-clustered workload in response to a failure of a system with a clustered workload
US7953925B2 (en) * 2006-12-29 2011-05-31 Teradata Us, Inc. Transparent data temperature sensitive cluster duplication
US20080205415A1 (en) 2007-02-28 2008-08-28 Morales Henry N Jerez Access, Connectivity and Interoperability for Devices and Services
US7865575B2 (en) * 2007-03-30 2011-01-04 Sterling Commerce, Inc. Methods and apparatus to perform file transfers in distributed file systems
US20080270704A1 (en) 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8051362B2 (en) * 2007-06-15 2011-11-01 Microsoft Corporation Distributed data storage using erasure resilient coding
US20090097657A1 (en) 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
JP4480756B2 (ja) 2007-12-05 2010-06-16 富士通株式会社 ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US20090222509A1 (en) * 2008-02-29 2009-09-03 Chao King System and Method for Sharing Storage Devices over a Network
US8156491B2 (en) 2008-02-29 2012-04-10 Red Hat, Inc. Fault tolerant virtual machine
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US8418238B2 (en) 2008-03-30 2013-04-09 Symplified, Inc. System, method, and apparatus for managing access to resources across a network
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8315995B1 (en) * 2008-09-09 2012-11-20 Peer Fusion, Inc. Hybrid storage system
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
JP5478107B2 (ja) * 2009-04-22 2014-04-23 株式会社日立製作所 仮想ストレージ装置を管理する管理サーバ装置及び仮想ストレージ装置の管理方法
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8463885B2 (en) 2009-08-31 2013-06-11 Red Hat, Inc. Systems and methods for generating management agent installations
US8693485B2 (en) 2009-10-14 2014-04-08 Dell Products, Lp Virtualization aware network switch
US8537860B2 (en) 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US8429346B1 (en) * 2009-12-28 2013-04-23 Emc Corporation Automated data relocation among storage tiers based on storage load
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
WO2011116248A1 (en) 2010-03-17 2011-09-22 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US20120185688A1 (en) 2011-01-13 2012-07-19 Google Inc. Processor mode locking
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9069616B2 (en) 2011-09-23 2015-06-30 Google Inc. Bandwidth throttling of virtual disks
US8276140B1 (en) 2011-11-14 2012-09-25 Google Inc. Adjustable virtual network performance
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US8909939B1 (en) 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
US8813240B1 (en) 2012-05-30 2014-08-19 Google Inc. Defensive techniques to increase computer security

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
CN1302404A (zh) * 1999-03-03 2001-07-04 索尼公司 数据处理设备、数据处理方法、终端单元、和数据处理设备的发送方法
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US20070011361A1 (en) * 2005-07-07 2007-01-11 Wataru Okada Storage management system
US20080071983A1 (en) * 2006-09-20 2008-03-20 Hitachi, Ltd. Information processing apparatus, information processing method and storage system
CN101743546A (zh) * 2007-08-06 2010-06-16 国际商业机器公司 用于提供快照的文件系统的分层存储管理
CN101470683A (zh) * 2007-12-26 2009-07-01 闪联信息技术工程中心有限公司 向多个存储介质复制数据的装置、系统及复制方法
CN101681311A (zh) * 2008-02-28 2010-03-24 株式会社东芝 存储器系统
US20100088335A1 (en) * 2008-10-07 2010-04-08 Yasuyuki Mimatsu Method and apparatus for improving file access performance of distributed storage system
CN101408855A (zh) * 2008-11-07 2009-04-15 北京威视数据系统有限公司 连续数据保护系统在远程备份设备临时异常时的保护方法
CN101639848A (zh) * 2009-06-01 2010-02-03 北京四维图新科技股份有限公司 一种空间数据引擎及应用其管理空间数据的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989934A (zh) * 2019-12-05 2020-04-10 达闼科技成都有限公司 区块链节点数据存储方法、区块链系统及区块链节点
CN110989934B (zh) * 2019-12-05 2023-08-25 达闼机器人股份有限公司 区块链节点数据存储方法、区块链系统及区块链节点

Also Published As

Publication number Publication date
DE202012013432U1 (de) 2017-01-13
AU2016202362B2 (en) 2017-09-21
WO2012100037A1 (en) 2012-07-26
EP2666111A4 (en) 2017-12-06
CN103597482B (zh) 2017-02-15
EP2666111A1 (en) 2013-11-27
AU2015268620B1 (en) 2016-01-14
AU2012207328B2 (en) 2015-09-10
EP2666111B1 (en) 2019-07-31
US20120191912A1 (en) 2012-07-26
US9250830B2 (en) 2016-02-02
US8745329B2 (en) 2014-06-03
US20160132263A1 (en) 2016-05-12
US20140281233A1 (en) 2014-09-18
AU2016202362A1 (en) 2016-05-05
CN103597482A (zh) 2014-02-19
CN106909317B (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN103597482B (zh) 在存储节点上存储数据
US11620187B2 (en) Distributing data on distributed storage systems
US8103628B2 (en) Directed placement of data in a redundant data storage system
CN1327330C (zh) 逻辑磁盘管理方法和装置
AU2012207328A1 (en) Storing data on storage nodes
CN107408070A (zh) 分布式存储系统中的多事务日志
CN102929786A (zh) 非易失性存储设备集合的易失性存储器表示
CN103294610B (zh) 可重复使用的内容可寻址存储
CN104519103A (zh) 网络数据的同步处理方法、服务器及相关系统
CN108733326A (zh) 一种磁盘处理方法及装置
CN106844491A (zh) 一种临时数据的写入、读取方法及写入、读取装置
Zhong et al. A novel method to manage very large raster data on distributed key-value storage system
Catania et al. Design and performance analysis of a disk array system
CN109766313A (zh) 地质项目数据处理方法、装置及计算机设备
Moise et al. Improving the Hadoop map/reduce framework to support concurrent appends through the BlobSeer BLOB management system
ELomari et al. New data placement strategy in the HADOOP framework
CN109918355A (zh) 实现基于对象存储服务的nas的虚拟元数据映射系统和方法
Habiballah et al. Parallel Reservoir Simulation Utilizing PC-Clusters in Massive Reservoir Simulation Models
Vakali et al. Hierarchical data placement for navigational multimedia applications
Hon et al. Tight competitive ratios for parallel disk prefetching and caching
Lam Cache Optimization for the Modern Web
Marchal et al. Comparing archival policies for BLUE WATERS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant