CN102939740A - 分布式数据存储 - Google Patents

分布式数据存储 Download PDF

Info

Publication number
CN102939740A
CN102939740A CN2011800286709A CN201180028670A CN102939740A CN 102939740 A CN102939740 A CN 102939740A CN 2011800286709 A CN2011800286709 A CN 2011800286709A CN 201180028670 A CN201180028670 A CN 201180028670A CN 102939740 A CN102939740 A CN 102939740A
Authority
CN
China
Prior art keywords
data
memory node
memory
nodes
node
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
CN2011800286709A
Other languages
English (en)
Other versions
CN102939740B (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.)
ILT PRODUCTIONS AB
Original Assignee
ILT PRODUCTIONS AB
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 ILT PRODUCTIONS AB filed Critical ILT PRODUCTIONS AB
Publication of CN102939740A publication Critical patent/CN102939740A/zh
Application granted granted Critical
Publication of CN102939740B publication Critical patent/CN102939740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1845Arrangements for providing special services to substations for broadcast or conference, e.g. multicast broadcast or multicast in a specific location, e.g. geocast
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本发明涉及一种包括多个存储节点的分布式数据存储系统。一个服务器应用程序可以使用单播和组播传输将数据写入到该存储系统中。当写入数据时,至少部分地基于一种随机函数来选择至少两个存储节点,这确保了数据被充分传播,以便在一个存储节点发生故障的情况下提供高效且可靠的数据复制。

Description

分布式数据存储
技术领域
本披露涉及一种用于将数据写入到包括多个数据存储节点的数据存储系统中的方法,这种方法被用于该数据存储系统中的服务器中。该披露进一步涉及一种能够执行这种方法的服务器。
背景技术
例如在US,2005/0246393,A1中披露了这种方法。这种方法被披露成用于一种在不同的地理位置使用多个存储中心的系统。包括分布式对象存储管理器,以便维护关于所存储的数据的信息。
与这种系统相关的一个问题在于如何实现简单但稳健且可靠的数据写入以及维护。
发明内容
因此,本披露的一个目的在于在分布式存储系统中实现稳健的数据写入。
该目的也通过一种用于将数据写入到最初提到的那种数据存储系统中的方法来达成,这种方法是在运行访问该数据存储系统中的数据的应用程序的服务器中实现的。该方法包括:将一个组播存储查询发送给多个存储节点,从所述存储节点的一个子集接收多个响应,这些响应包括对应地与每个存储节点有关的存储节点信息,基于所述响应在该子集中选择至少两个存储节点。该选择包括基于一种算法为该子集中的每个存储节点确定一个概率因数,该概率因数是基于其存储节点信息的,并且随机地选择所述至少两个存储节点,其中一个存储节点被选中的概率取决于其概率因数。该方法进一步包含将数据和与该数据相对应的一个数据标识符发送给这些选中的存储节点。
这种方法实现了稳健的数据写入,因为虽然存储节点是取决于其暂时能力来进行选择的,但是即使是在短时间帧期间,信息也仍将会在一定程度上在系统上传播。这意味着将会减少对存储系统的维护需求,因为哪些存储节点携带相同信息的相关性能够在某种程度上得到降低。这意味着,在一个存储节点发生故障时可能执行的一个复制过程可能由更大数量的其他存储节点来执行,且因此这个复制过程变得更快。此外,降低了在密集的写入操作期间使具有高级别的存储节点过载的风险,因为有更多的存储节点被用来写入,并且较少的存储节点处于空闲状态。
存储节点信息可以包括与每个存储节点的地理位置相关的地理数据,如这个位置的纬度、经度和高度。这允许该服务器在一个房间、一栋建筑物、一个国家、甚至是在世界范围内地理地传播这些信息。
有可能的是基于地理分离来为该子集中满足一个主要标准的多个存储节点执行存储节点的随机选择,因为这对于冗余来说是一个重要的特征。
该存储节点信息可以包括关于所考虑的存储节点的系统年龄和/或系统负载。
该组播存储查询可以包括标识有待存储的数据的一个数据标识符。
可以选择至少三个节点,并且可以将成功存储该数据的存储节点列表发送给这些选中的存储节点。
可以对该子集中的一部分节点执行存储节点的这种随机选择,该部分包括概率因数最高的存储节点。因此,排除掉了最不适合的存储节点,这样提供了对更可靠的存储节点的选择同时维持了有待写入的信息的随机分布。
本披露进一步涉及一种与这种方法相对应的用于执行数据写入的服务器。该服务器则总体上包括用于执行这种方法的多个动作的装置。
附图说明
图1示出一个分布式数据存储系统。
图2A至图2C以及图3示出一个数据读取过程。
图4A至图4C以及图5示出一个数据写入过程。
图6示意性地示出多个文件存储在多个数据存储节点之中的情况。
图7示出多个心跳信号的传输。
图8是一个数据维护过程的综述。
具体实施方式
本披露涉及一种包括多个存储节点的分布式数据存储系统。在图1中概述了该系统的结构以及其被使用的上下文。
用户计算机1通过互联网3访问在服务器7上运行的一个应用程序5。因此,用户上下文(如在此所述)是本身众所周知的一个正规的客户端-服务器配置。然而,应当指出的是,有待披露的数据存储系统可能在其他配置中也是有用的。
在所示的情况下,两个应用程序5、9在服务器7上运行。然而,当然,应用程序的这个数量可以是不同的。每个应用程序都具有一个API(应用程序接口)11,该API提供与分布式数据存储系统13有关的一个接口并支持来自在服务器上运行的应用程序的请求,通常是写入请求和读取请求。从应用程序的观点来看,从数据存储系统13读取信息或向其写入信息不必与使用任何其他类型的存储解决方案(例如,一个文件服务器或仅一个硬盘驱动器)呈现出不同。
每个API 11与数据存储系统13中的存储节点15通信,并且这些存储节点相互通信。这些通信是基于TCP(传输控制协议)和UDP(用户数据报协议)的。这些概念对于本领域的技术人员来说是众所周知的,并且不进行进一步解释。
应当指出的是,相同的服务器7上多个不同的API 11可以访问存储节点15的不同组。应当进一步指出的是,可以存在超过一个服务器7访问每个存储节点15。然而,这在任何更大的程度上都不会影响存储节点操作的方式,如随后将进行描述。
分布式数据存储系统的组件是存储节点15以及在访问存储节点15的服务器7中的API 11。因此,本披露涉及在服务器7和存储节点15中执行的方法。这些方法将主要实施为软件实现方式,这些软件实现方式分别在该服务器和这些存储节点上运行并且一起确定整个分布式数据存储系统的操作和特性。
存储节点15可以典型地通过配备有多个功能块的一个文件服务器来实施。因此,该存储节点可以包括一个存储介质17,该存储介质典型地包括多个硬盘驱动器,这些硬盘驱动器任选地被配置为一个RAID(独立磁盘冗余阵列)系统。然而,其他类型的存储介质也是可能的。
存储节点15可以进一步包含一个目录19,该目录包括作为一个主机列表的多个数据实体/存储节点关系列表,如随后将论述。
除了该主机列表外,每个存储节点进一步含有一个节点列表,该节点列表将所有存储节点的IP地址包含在其存储节点集合或群组中。一个群组中的存储节点的数目可能从几个到几百个存储节点不等。这个节点列表可进一步具有一个版本号。
此外,存储节点15可以包含一个复制块21和一个集群监控块23。复制块21包含一个存储节点API 25,并且被配置成执行用于识别对一个复制过程的需求并进行该复制过程的功能,如随后将详细描述。由于该复制过程包括在很大程度上与由服务器7在将描述的读取和写入操作期间进行的动作相对应的动作,所以复制块21的存储节点API 25可以含有在很大程度上与服务器7的存储节点API 11的代码相对应的代码。例如,在复制期间进行的写入操作在很大程度上与由服务器7进行的写入操作相对应。集群监控块23被配置成监控数据存储系统13中的其他存储节点,如随后将更详细描述。
该分布式数据存储系统的存储节点15可以被认为存在于相同的层次等级下。无需指定任何负责维护所存储的数据实体目录并监控数据一致性等等的主存储节点。相反,所有的存储节点15都可以被认为是相等的,并且有时可以与系统中的其他存储节点相比进行数据管理操作。这种相等确保了系统是稳健的。在一个存储节点发生故障的情况下,系统中的多个其他节点将覆盖该故障节点并确保可靠的数据存储。
将按以下顺序描述系统的操作:数据读取、数据写入以及数据维护。即使这些方法一起很好地工作,但应当指出的是,它们原则上也可以彼此独立地进行。也就是说,例如,即使不使用本披露的数据写入方法,该数据读取方法也可以提供优异的性能,反之亦然。
现参见图2A至图2C以及图3描述该读取方法,图3是展示本方法的一个流程图。
读取(以及系统中的其他功能)使用组播通信来与多个存储节点同步通信。通过组播或IP组播在此是指一种点到多点通信,这种点到多点通信是通过向为组播应用程序保留的一个IP地址发送一个消息而实现的。
例如,一个消息(典型地是一个请求)被发送到这样一个IP地址(例如,244.0.0.1),并且多个收件人服务器被注册为该IP地址的用户。这些收件人服务器各自具有它们自己的IP地址。当网络中的一个交换机接收到指向244.0.0.1的消息时,该交换机将该消息转发到注册为用户的每个服务器的IP地址。
原则上,仅有一个服务器可以被注册为一个组播地址的用户,在这种情况下实现了一种点对点的通信。然而,在本披露的上下文中,由于采用了组播方案,因此这种通信仍被认为是一种组播通信。
也参照一种与单个接收人进行通信来采用单播通信。
参见图2A和图3,用于从一个数据存储系统检索数据的方法包括将一个组播查询发送(31)到多个存储节点15。在所示的情况下,存在五个存储节点,每个节点都具有一个IP(互联网协议)地址192.168.1.1、192.168.1.2,等等。毫无疑问,存储节点的数量只是一个例子。该查询含有一个数据标识符“2B9B4A97-76E5-499E-A21 A6D7932DD7927”,该数据标识符可以(例如)是本身众所周知的一个通用唯一标识符(UUID)。
这些存储节点对其自身进行扫描从而获得与该标识符相对应的数据。如果找到了这种数据,则一个存储节点发送由服务器7接收(33)的一个响应,参看图2B。如图所示,除了存储节点具有相关数据的一个副本这一指示外,该响应还可以任选地含有另外的信息。确切地讲,该响应可以含有来自与含有该数据的其他存储节点有关的存储节点目录的信息、有关该存储节点中含有哪种版本的数据的信息以及有关该存储节点目前暴露于哪种负载的信息。
基于这些响应,服务器选择(35)一个或多个存储节点(有待从这些节点中检索数据),并且向该/这些存储节点发送(37)对数据的一个单播请求,参照图2C。
响应于对数据的该请求,这个/这些存储节点向接收(39)该数据的服务器发送相关数据。在所示的情况下,仅选中一个存储节点。虽然这是足够的,但有可能的是选择超过一个存储节点,以便接收两组数据,这样使得一致性检查成为可能。如果数据传递失败,则服务器可以选择另一个存储节点来进行检索。
存储节点的这种选择可以基于一种综合考虑多种因素的算法,以便实现良好的整体系统性能。典型地,将选择数据版本最新和负载最低的存储节点,尽管其他概念也是完全有可能的。
任选地,操作可以通过服务器向所有涉及的存储节点发送一个列表来结束,这个列表指示哪些节点含有数据并且具有哪种版本。基于此信息,这些存储节点本身可以通过将有待描述的复制过程恰当地维护数据。
图4A至图4C以及图5示出了用于分布式数据存储系统的一个数据写入过程。
参见图4A和图5,该方法包括服务器向多个存储节点发送(41)一个组播存储查询。该存储查询包括一个数据标识符,并且基本上由接收存储节点是否可以存储此文件这一问题组成。任选地,这些存储节点可以通过它们的内部目录来检查它们是否已经使一个文件具有这个名称,并且可以在不可能事件的情况下通知服务器7情况就是这样,这样使得该服务器可以重新命名该文件。
在任何情况下,这些存储节点的至少一个子集都将通过向服务器7的单播传输来提供响应。典型地,预定可用磁盘空间最小的存储节点将回答该查询。服务器7接收(43)多个响应,这些响应包括与每个存储节点的特性相关的存储节点信息,例如与每个服务器的地理位置相关的地理数据。例如,如图4B中所示,此类地理数据可以包含每个服务器的纬度、经度以及高度。然而,其他类型的地理数据也可以是可能的,例如,一个邮政编码、一个定位字符串(即,建筑物、房间、机架行、机架列)或类似物。
可替代地,或除地理数据外,还可以提供与存储节点特性相关的另外的信息,用作到一个存储节点选择过程的输入。在所示的实例中,每个存储节点中的可用空间量与该存储节点的系统年龄指示以及存储节点当前经历的负载的指示一起被提供。
基于接收到的响应,服务器选择(45)该子集中的至少两个(在一个典型的实施方案中是三个)存储节点以用于存储数据。存储节点的这种选择是通过一种考虑到不同数据的算法来进行。可以进行这种选择以便实现某种地理多样性。至少可以优选避免的是仅同一个机架中的文件服务器被选择作为存储节点。典型地,可以实现丰富的地理多样性,甚至是在不同的大陆上选择多个存储节点。除了地理多样性外,其他的参数也可以包含在这种选择算法中。在该选择过程中具有一个随机特征是有利的,如下文将披露。
典型地,该选择可以通过选择在地理上充分分离的多个存储节点开始进行。这可以用多种方式进行。例如,可以存在一种识别多个存储节点群组的算法,或存储节点可以具有群组编号,这样使得可以在每个群组中很容易地挑选出一个存储节点。
然后,该选择可以包含基于每个节点的存储节点信息(系统年龄、系统负载等)计算与一个存储节点能力得分相对应的概率因数。一个较年轻的系统(例如,不太可能发生故障的系统)获得一个较高的得分。因此,该概率因数可以被计算为两个向量的标积,其中一个向量含有存储节点信息参数(或它们的倒数,如果适用的话)并且另一个向量含有相应的加权参数。
然后,该选择包括随机地选择多个存储节点,其中一个特定存储节点被选中的概率取决于其概率因数。典型地,如果第一服务器具有高达第二服务器两倍的概率因数,则该第一服务器具有高达两倍的被选中概率。
在进行这种随机选择前去除概率因数最低的一定比例的存储节点是有可能的,这样使得这种选择是针对子集中的一部分节点进行,该部分包含概率因数最高的存储节点。如果存在很多可能致使这种选择算法计算耗时的可用存储节点,那么这是尤其有用的。
毫无疑问,这种选择过程可以用不同的方式进行。例如,有可能的是首先计算用于响应子集中的所有存储节点的概率因数并进行随机选择。当这完成之后,可以检查所产生的地理多样性是否是充分的,并且如果它不够充分,则利用从该子集中排除掉的两个最靠近的选中存储节点之一来重复该选择。在存在很多可用存储节点的情况下,再次基于地理多样性来进行第一选择,例如,基于多个其他参数在用于随后的选择的每个群组中挑选出一个存储节点,是尤其有用的。在那些情况下,在不利用所有可用存储节点的参数执行计算的情况下,仍将会进行一个良好的选择。
当已经选中这些存储节点时,待存储的数据和一个相应的数据标识符被发送到每个所选中的节点,典型地使用单播传输。
任选地,该操作可以通过已成功地进行了写入操作的每个存储节点向服务器发送一个确认来结束。然后,该服务器向所有涉及的存储节点发送一个列表,这个列表指示哪些节点已成功地写入数据以及哪些还没有写入数据。基于此信息,这些存储节点本身可以通过有待描述的复制过程恰当地维护数据。例如,如果一个存储节点的写入失败,则有必要将文件复制到又一个存储节点上,以便实现将所希望数量的存储节点用于该文件。
当可以提供优异的地理多样性时,这种数据写入方法本身允许服务器7中的一个API以非常稳健的方式存储数据。
除写入和读取操作外,服务器7中的该API也可以进行删除文件和更新文件的操作。这些过程将连同数据维护过程在下文进行描述。
数据维护过程的目的在于确保合理数量的非故障存储节点各自存储每个文件的最新版本。此外,该数据维护过程可以提供在任何存储节点都不存储任何已删除的文件这一功能。该维护是通过存储节点本身来进行。因此,不需要负责数据存储维护的专用“主节点(master)”。这确保了可靠性的提高,否则“主节点”将会成为系统中的一个弱点。
图6示意性地示出多个文件被存储在多个数据存储节点之中的情况。在所示的情况下,出于图示目的,描绘了具有从192.168.1.1到192.168.1.12连续编号的多个IP地址的十二个节点。然而,毫无疑问,IP地址编号根本不需要在同一个范围内。这些节点以圆形的顺序放置是仅用以简化描述,即,这些节点不需要具有任何特定的顺序。为了简单起见,每个节点存储通过字母A到F标识的一个或两个文件。
参见图8,用于维护数据的方法包括检测(51)数据存储系统中的条件,这些条件暗示了数据存储系统中这些节点之间的数据是否需要复制,以及一个复制过程53。检测过程51的结果是一个文件表55,已经为该列表标识了是否需要复制。该列表可以进一步包含有关不同复制需要的优先级的数据。基于此列表进行复制过程53。
分布式存储的稳健性依赖于将每个文件的合理数量的副本(正确的版本)存储在系统中。在所示的情况下,存储每个文件的三个副本。然而,例如,假如地址为192.168.1.5的存储节点失效,则将达不到用于文件“B”和“C”的所希望数量的存储副本。
因此,导致需要进行复制的一个事件是系统中的一个存储节点发生了故障。
系统中的每个存储节点都可以监控系统中其他存储节点的状态。这可以通过让每个存储节点每隔一定时间发出一个所谓的心跳信号来进行,如图7中所示。在所示的情况下,地址为192.168.1.7的存储节点向系统中的其他存储节点发出一个组播信号57,以指示它正在正确地工作。这个信号可以由进行心跳监控59(参见图8)的系统中的所有其他起作用的存储节点或其子集接收。然而,在地址为192.168.1.5的存储节点的情况下,这个节点发生故障并且不发出任何心跳信号。因此,其他存储节点会注意到这个节点在很长时间内没有发出任何心跳信号,这说明所考虑的存储节点是停机的。
除了该存储节点的地址外,该心跳信号还可以包含其节点列表版本号。然后,侦听心跳信号并发现正在发射的存储节点具有一个旧版本的节点列表的另一个存储节点可以请求那个正在发射的存储节点传递其节点列表这意味着仅通过添加或去除一个存储节点并向一个单一存储节点发送一个新的节点列表版本就可以获得存储节点的添加和去除。然后,这个节点列表将传播到系统中所有其他的存储节点。
再次参见图8,每个存储节点搜索(61)其内部目录以获得由发生故障的存储节点存储的文件。自身存储文件“B”和“C”的存储节点将发现发生故障的存储节点并且因此可以将相应的文件添加到其列表55上。
然而,检测过程也可以显示其他条件,这些条件暗示是否需要复制一个文件。典型地,此类条件可以是不一致的,即,一个或多个存储节点具有该文件的一个过时版本。删除操作也暗示一个复制过程,因为这个过程可以对该文件进行实际物理删除。然后,服务器的删除操作只需要确保这些存储节点为所考虑的文件设置一个删除标志。因此,每个节点都可以监控在数据存储系统中进行的读取和写入操作。在读取和写入操作完结时由服务器7提供的信息可能分别指示一个存储节点含有一个过时版本的文件(在读取操作的情况下),或一个存储节点没有成功地进行写入操作。在这两种情况下,存在通过复制来维护数据的需要,这样使得满足了维护过程的总体目的。
除了基本的读取操作63和写入操作65外,至少两个另外的过程可以提供以下指示:是否存在进行复制的需要,即,现在给出了对删除67和更新69过程的简要说明。
由服务器7启动这个删除过程(参看图1)。与读取过程相类似,服务器通过向所有的存储节点组播来发送一个查询,以便找出哪些存储节点数据具有的数据带一个特定的数据标识符。这些存储节点扫描自身以获得带有相关标识符的数据,并且如果它们具有所考虑的数据,则通过单播传输来响应。从存储节点目录,该响应可以包含具有该数据的其他存储节点的一个列表。然后,服务器7向这些存储节点发送一个删除该文件的单播请求,这些存储节点被认为存储该文件。每个存储节点都设置一个标志,这个标志与该文件相关并指示它应当被删除。然后,将该文件添加到复制列表并向服务器发送一个确认。然后,该复制过程物理地删除该文件,如将进行描述。
更新过程具有与删除过程中的一个功能相类似的一个搜索功能,以及与写入过程中所进行的一个功能相类似的一个写入功能。服务器通过组播向所有的存储节点发送一个查询,以便找出哪些存储节点数据具有的数据带有一个特定的数据标识符。这些存储节点扫描自身以获得带有相关标识符的数据,并且如果它们具有所考虑的数据,则通过单播传输来响应。从存储节点目录,该响应可以包含具有该数据的其他存储节点的一个列表。然后,服务器7发送一个单播请求,以告知这些存储节点更新数据。当然,该请求包含已更新的数据。更新该数据的这些存储节点向服务器发送一个确认,这通过发送含有一个列表的单播传输来响应,该列表具有成功更新了该数据的存储节点以及尚未更新该数据的存储节点。同样,可以通过维护过程使用这个列表。
再次参见图8,读取63、写入65、删除67以及更新69操作可能都指示是否存在进行复制的需要。这同样适用于心跳监控59。因此,整个检测过程51产生与需要被复制的文件相关的数据。例如,读取或更新操作可以显示一个特定的存储节点含有一个过时版本的文件。删除过程可以为一个特定的文件设置一个删除标志。心跳监控可以显示存储在发生故障的存储节点上的多个文件需要被复制到一个新的存储节点上。
每个存储节点监控是否需要复制其存储的所有文件并维护一个复制列表55。因此,该复制列表55含有需要被复制的多个文件。这些文件可以按照与每个复制的优先级一致的方式排序。典型地,可能存在三种不同的优先等级。最高等级是为存储节点拥有其最新在线副本的文件保留的。这种文件需要被快速复制到其他存储节点上,这样使得可以实现合理水平的冗余。中等等级的优先级可以与其中版本在这些存储节点之间是不一致的多个文件相关。较低等级的优先级可以与存储在发生故障的一个存储节点上的多个文件相关。
存储节点根据复制列表55上的文件的优先级来处理这些文件。复制过程现被描述成用于在此称为操作存储节点的一个存储节点,尽管所有的存储节点都可以这种方式操作。
维护过程的复制部分53以操作存储节点开始,该操作存储节点试图(71)成为旨在复制文件的主节点。这些操作存储节点向已知存储所考虑文件的其他存储节点发送一个单播请求以成为主节点。目录19(参看图1)提供了一个主机列表,这个列表包括与要询问哪些存储节点相关的信息。例如,在碰撞请求的情况下,如果这些存储节点之一不肯定地响应,则将该文件暂时移回该列表,而利用该列表上的下一个文件进行尝试。否则,该操作存储节点会被认为是这个文件的主节点,并且其他存储节点设置一个标志,这个标志指示该操作存储节点是用于所考虑的文件的主节点。
下一个步骤是在分布式存储系统中找到(73)所考虑的文件的所有副本。这可以通过该操作存储节点向所有的存储节点发送一个组播查询,以询问这些存储节点中的某些存储节点是否具有该文件来进行。具有该文件的存储节点提交对该查询的响应,这些响应含有这些存储节点所保存的文件的版本以及它们的主机列表,即,含有被保存在每个存储节点的目录中的相关文件的存储节点列表。然后,通过该操作存储节点合并(75)这些主机列表,这样使得与所有检索到的主机列表的联合相对应地形成了一个主节点主机列表。如果找到了另外的存储节点,这些另外的存储节点在该操作存储节点试图成为主节点时不被询问,那么现在可以对这些另外的存储节点重复该步骤。该主节点主机列表含有与不同的存储节点保存该文件的哪些版本并说明整个存储系统内文件的状态相关的信息。
假如该操作存储节点不具有所考虑的文件的最新版本,则随后从确实具有最新版本的存储节点之一检索(77)这个文件。
然后,该操作存储节点决定(79)是否需要更改主机列表,典型地是否需要添加另外的存储节点。如果需要,则该操作存储节点可以进行与由服务器进行并且结合图4A至图4C以及图5描述的写入过程非常类似的一个过程。这个过程的结果是该文件被写入到一个新的存储节点上。
在版本不一致的情况下,该操作存储节点可以更新(81)存储在其他存储节点上的文件的副本,这样使得所存储的所有文件都具有正确的版本。
可以删除(83)所存储文件的多余的副本。如果复制过程是由一个删除操作启动的,则该过程可以直接跳到这个步骤。然后,一旦所有的存储节点已接受了文件的删除,该操作存储节点就只使用单播来请求所有的存储节点物理地删除所考虑的文件。这些存储节点确认该文件已被删除。
进一步更新状态,即,该文件的主节点主机列表。然后,任选地,有可能的是重复步骤73至83,以便确保不再存在进行复制的需要。这个重复应当导致不需要在步骤85中更新一个一致的主节点主机列表。
此后,用于该文件的复制过程结束,并且该操作存储节点可以作为该文件的主节点,通过向主机列表上所有其他的存储节点发送一个相应的消息来释放(87)该状态。
每个存储节点都负责贯穿该存储节点集合来维护它存储的所有文件的这个系统提供具有优异可靠性的一个自修复(在一个存储节点发生故障的情况下)自清除(在文件不一致或文件待删除的情况下)系统。这个自修复自清除系统是可以很容易地伸缩的并且可以同时存储用于大量不同的应用程序的文件。
本发明不限于具体披露的实例,并且能够以不同的方式在不脱离所附权利要求书的范围的情况下进行改变并修改。

Claims (11)

1.一种用于将数据写入数据存储系统中的方法,该数据存储系统包括多个数据存储节点,该方法用于服务器中,该服务器运行访问该数据存储系统中的数据的应用程序,并且该方法包括:
-向多个所述存储节点发送(41)一个组播存储查询;
-从所述存储节点的一个子集接收(43)多个响应,这些响应包括对应地与每个存储节点有关的存储节点信息;
-基于所述响应在该子集中选择(45)至少两个存储节点,其中该选择包括:
--基于一种算法为在该子集中的每个存储节点确定一个概率因数,该概率因数是基于其存储节点信息的;并且
--随机地选择所述至少两个存储节点,其中一个存储节点被选中的概率取决于其概率因数;并且
-将数据和与该数据相对应的一个数据标识符发送(47)给这些选中的存储节点。
2.根据权利要求1所述的方法,其中存储节点信息包括与每个存储节点的地理位置相关的地理数据。
3.根据权利要求2所述的方法,其中该地理位置包括所考虑的存储节点的纬度和经度。
4.根据权利要求2或3所述的方法,其中基于地理分离来为该子集中满足一个主要标准的多个存储节点执行存储节点的这种随机选择。
5.根据权利要求1所述的方法,其中该存储节点信息包括关于所考虑的存储节点的系统年龄。
6.根据以上权利要求中任一项所述的方法,其中该存储节点信息包括关于所考虑的存储节点的系统负载。
7.根据以上权利要求中任一项所述的方法,其中该组播存储查询包括标识有待存储的数据的一个数据标识符。
8.根据以上权利要求中任一项所述的方法,其中选中至少三个节点。
9.根据以上权利要求中任一项所述的方法,其中将成功存储该数据的一个存储节点列表发送给这些选中的存储节点。
10.根据以上权利要求中任一项所述的方法,其中为该子集中的一部分节点执行这种随机选择,该部分包括具有最高概率因数的存储节点。
11.一种适配成用于将数据写入数据存储系统中的服务器,该数据存储系统包括多个数据存储节点,该服务器包括:
-用于向多个所述存储节点发送一个组播存储查询的装置;
-用于从所述存储节点的一个子集接收多个响应的装置,这些响应包括对应地与每个存储节点有关的存储节点信息;
-用于基于所述响应在该子集中选择至少两个存储节点的装置,其中该选择包括
--基于一种算法为在该子集中的每个存储节点确定一个概率因数,该概率因数是基于其存储节点信息的;并且
--随机地选择所述至少两个存储节点,其中一个存储节点被选中的概率取决于其概率因数;以及
-用于将数据和与该数据相对应的一个数据标识符发送给这些选中的存储节点的装置。
CN201180028670.9A 2010-04-23 2011-04-20 分布式数据存储 Active CN102939740B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10160910.5A EP2387200B1 (en) 2010-04-23 2010-04-23 Distributed data storage
EP10160910.5 2010-04-23
PCT/EP2011/056317 WO2011131717A1 (en) 2010-04-23 2011-04-20 Distributed data storage

Publications (2)

Publication Number Publication Date
CN102939740A true CN102939740A (zh) 2013-02-20
CN102939740B CN102939740B (zh) 2016-08-03

Family

ID=42342003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180028670.9A Active CN102939740B (zh) 2010-04-23 2011-04-20 分布式数据存储

Country Status (13)

Country Link
US (3) US8850019B2 (zh)
EP (2) EP2712149B1 (zh)
JP (1) JP5612195B2 (zh)
KR (1) KR101905198B1 (zh)
CN (1) CN102939740B (zh)
AU (1) AU2011244345B2 (zh)
BR (1) BR112012027012A2 (zh)
CA (1) CA2797053C (zh)
EA (1) EA026842B1 (zh)
IL (1) IL222630A (zh)
MX (1) MX2012012198A (zh)
WO (1) WO2011131717A1 (zh)
ZA (1) ZA201208755B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636327A (zh) * 2013-11-06 2015-05-20 上海语镜汽车信息技术有限公司 一种基于增量计算的分布式流式数据系统
CN108429813A (zh) * 2018-03-22 2018-08-21 深圳市网心科技有限公司 云存储服务的容灾方法、系统及终端
CN108681485A (zh) * 2018-04-27 2018-10-19 佛山市日日圣科技有限公司 一种接收信息的处理方法及处理装置
CN110162270A (zh) * 2019-04-29 2019-08-23 平安国际智慧城市科技股份有限公司 基于分布式存储系统的数据存储方法、存储节点及介质
CN110321067A (zh) * 2018-03-30 2019-10-11 卡巴斯基实验室股份制公司 估计和管理存储设备退化的系统和方法
CN110515916A (zh) * 2019-07-26 2019-11-29 济南浪潮数据技术有限公司 一种主从分布式文件处理方法、主节点、从节点及系统

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
US9137331B2 (en) * 2011-07-15 2015-09-15 Metalogix International Gmbh Adaptive replication
US9385874B2 (en) 2013-01-23 2016-07-05 Nexenta Systems, Inc. Scalable transport with client-consensus rendezvous
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
CN103019614B (zh) 2011-09-23 2015-11-25 阿里巴巴集团控股有限公司 分布式存储系统管理装置及方法
US9203625B2 (en) * 2011-11-28 2015-12-01 Cleversafe, Inc. Transferring encoded data slices in a distributed storage network
US10558592B2 (en) 2011-11-28 2020-02-11 Pure Storage, Inc. Priority level adaptation in a dispersed storage network
US11474958B1 (en) 2011-11-28 2022-10-18 Pure Storage, Inc. Generating and queuing system messages with priorities in a storage network
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
CN102646127A (zh) * 2012-02-29 2012-08-22 浪潮(北京)电子信息产业有限公司 分布式文件系统副本选择方法和装置
CN102638567B (zh) * 2012-03-02 2015-05-20 深圳市朗科科技股份有限公司 多应用云存储平台和云存储终端
US20180336097A1 (en) * 2012-06-25 2018-11-22 International Business Machines Corporation Namespace affinity and failover for processing units in a dispersed storage network
CN103514212B (zh) * 2012-06-27 2016-04-27 腾讯科技(深圳)有限公司 数据写入方法及系统
US10547693B2 (en) * 2012-09-07 2020-01-28 Avigilon Corporation Security device capability discovery and device selection
CN103064635B (zh) * 2012-12-19 2016-08-24 华为技术有限公司 分布式存储方法和分布式存储装置
CN103902568B (zh) * 2012-12-27 2017-05-31 中国银联股份有限公司 一种基于数据划分的多节点数据库同步方法和多节点数据库系统
US9479587B2 (en) 2013-01-23 2016-10-25 Nexenta Systems, Inc. Scalable object storage using multicast transport
CN103207897B (zh) * 2013-03-15 2016-08-17 北京京东世纪贸易有限公司 一种分布式存储查询系统及其运行方法和运行装置
US20150169609A1 (en) * 2013-12-06 2015-06-18 Zaius, Inc. System and method for load balancing in a data storage system
US10185730B2 (en) * 2014-12-31 2019-01-22 Nexenta Systems, Inc. Methods and systems for key-value-tuple-encoded storage
US10523241B2 (en) * 2015-05-29 2019-12-31 Pure Storage, Inc. Object fan out write operation
US10601683B1 (en) * 2016-12-19 2020-03-24 Amazon Technologies, Inc. Availability of a distributed application using diversity scores
US10209901B2 (en) 2017-01-04 2019-02-19 Walmart Apollo, Llc Systems and methods for distributive data storage
JP6990055B2 (ja) * 2017-07-12 2022-01-12 株式会社日立製作所 分散コンピューティングシステムにおけるデータをリカバリする方法およびシステム
CN110865987A (zh) * 2019-11-18 2020-03-06 杭州安恒信息技术股份有限公司 一种文件同步方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1856786A (zh) * 2003-07-16 2006-11-01 乔蒂德有限公司 分布式数据库系统
US20070088703A1 (en) * 2005-10-17 2007-04-19 Microsoft Corporation Peer-to-peer auction based data distribution
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network

Family Cites Families (216)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707707A (en) 1970-11-12 1972-12-26 Cipher Data Prod Digital cassette magnetic tape recorder and reproducer
JP3139884B2 (ja) 1993-06-14 2001-03-05 株式会社東芝 多重要素処理システム
US5713017A (en) 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
JPH103421A (ja) 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
US5787247A (en) 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US5924094A (en) 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US6021118A (en) 1997-02-10 2000-02-01 Lucent Techologies Inc. Synchronization methods for distributed processing systems having replicated data
US6003065A (en) 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US6259701B1 (en) 1997-09-11 2001-07-10 At&T Corp. Method and system for a unicast endpoint client to access a multicast internet protocol (IP) session
US6055543A (en) 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
ATE223595T1 (de) 1998-01-23 2002-09-15 Emc Corp Einkapselung, datendarstellung und übertragung von inhaltsaddressierbaren daten
JPH11249874A (ja) 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US6510162B1 (en) 1998-05-27 2003-01-21 3Com Corporation System and method for managing channel usage in a data over cable system
JP4146983B2 (ja) 1999-02-26 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
WO2000052889A1 (en) 1999-03-05 2000-09-08 Allayer Technologies Corporation Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6389432B1 (en) 1999-04-05 2002-05-14 Auspex Systems, Inc. Intelligent virtual volume access
JP2000322292A (ja) * 1999-05-10 2000-11-24 Nec Corp クラスタ型データサーバシステム及びデータ格納方法
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US7634453B1 (en) 1999-08-13 2009-12-15 Storage Technology Corporation Distributed file data location
US6976165B1 (en) 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6499090B1 (en) 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6546388B1 (en) 2000-01-14 2003-04-08 International Business Machines Corporation Metadata search results ranking system
US6542972B2 (en) 2000-01-31 2003-04-01 Commvault Systems, Inc. Logical view and access to physical storage in modular data and storage management system
US6738766B2 (en) 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US6470420B1 (en) 2000-03-31 2002-10-22 Western Digital Ventures, Inc. Method for designating one of a plurality of addressable storage devices to process a data transfer request
US7039694B2 (en) 2000-05-02 2006-05-02 Sun Microsystems, Inc. Cluster membership monitor
US6826564B2 (en) 2000-07-10 2004-11-30 Fastforward Networks Scalable and programmable query distribution and collection in a network of queryable devices
US6732237B1 (en) 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US7406484B1 (en) 2000-09-12 2008-07-29 Tbrix, Inc. Storage allocation in a distributed segmented file system
US20040236798A1 (en) 2001-09-11 2004-11-25 Sudhir Srinivasan Migration of control in a distributed segmented file system
US6782389B1 (en) 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
SE520129C2 (sv) 2000-10-27 2003-05-27 Terraplay Systems Ab Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
US6985956B2 (en) 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
WO2002044835A2 (en) 2000-11-28 2002-06-06 Gingerich Gregory L A method and system for software and hardware multiplicity
US7165096B2 (en) 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
WO2002052097A1 (de) 2000-12-27 2002-07-04 BSH Bosch und Siemens Hausgeräte GmbH Verfahren und vorrichtung zum glätten von kleidungsstücken
US7266556B1 (en) * 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US6768871B2 (en) 2001-01-30 2004-07-27 The Regents Of The University Of California Optical layer multicasting using a multicast switch to effect survivability and security
US6865603B2 (en) 2001-01-31 2005-03-08 Hewlett-Packard Development Company, L.P. Correcting for network address changes
WO2002065329A1 (en) 2001-02-14 2002-08-22 The Escher Group, Ltd. Peer-to peer enterprise storage
US20020156912A1 (en) 2001-02-15 2002-10-24 Hurst John T. Programming content distribution
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6839815B2 (en) 2001-05-07 2005-01-04 Hitachi, Ltd. System and method for storage on demand service in a global SAN environment
US6918013B2 (en) 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US7039622B2 (en) 2001-09-12 2006-05-02 Sas Institute Inc. Computer-implemented knowledge repository interface system and method
US7054867B2 (en) 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
GB2381427A (en) 2001-10-27 2003-04-30 Hewlett Packard Co Spanning tree in peer to peer networks
US7975016B2 (en) 2001-10-29 2011-07-05 Oracle America, Inc. Method to manage high availability equipments
US7054910B1 (en) 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US6917941B2 (en) 2001-12-28 2005-07-12 Channel Intelligence, Inc. Method and apparatus for creation and maintenance of database structure
JP4202026B2 (ja) 2002-01-31 2008-12-24 株式会社アンソナ ストレージシステムおよびストレージ装置
US7243103B2 (en) 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
JP4198920B2 (ja) 2002-02-26 2008-12-17 エイディシーテクノロジー株式会社 バックアップシステム、バックアップ用プログラムおよびバックアップ方法
US7020665B2 (en) * 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
JP2003271316A (ja) 2002-03-14 2003-09-26 Hitachi Ltd ストレージシステム、その動作プログラム及びその運用方法、情報処理端末及びその動作プログラム、データ管理システム
US7257645B2 (en) 2002-05-01 2007-08-14 Bea Systems, Inc. System and method for storing large messages
US7305585B2 (en) 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
US6732171B2 (en) 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7574488B2 (en) 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7631313B2 (en) 2002-06-17 2009-12-08 David Mayhew System and method for transferring data
US8060598B1 (en) 2002-07-01 2011-11-15 Sprint Communications Company L.P. Computer network multicasting traffic monitoring and compensation
JP4240930B2 (ja) 2002-07-15 2009-03-18 株式会社日立製作所 複数ネットワークストレージの仮送想一元化方法及び装置
DE10237875A1 (de) 2002-08-19 2004-03-04 Siemens Ag Vorrichtung, insbesondere Automatisierungsgerät, mit in Datei gespeicherter Dateiverzeichnisstruktur
CA2497825A1 (en) 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for server share migration and server recovery using hierarchical storage management
US7206836B2 (en) 2002-09-23 2007-04-17 Sun Microsystems, Inc. System and method for reforming a distributed data system cluster after temporary node failures or restarts
US7146499B2 (en) 2002-09-30 2006-12-05 International Business Machines Corporation Security system for replicated storage devices on computer networks
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
WO2004040846A2 (en) 2002-10-29 2004-05-13 British Telecommunications Public Limited Company Method and apparatus for network management
US7945669B2 (en) * 2002-10-30 2011-05-17 Emc Corporation Method and apparatus for provisioning storage resources
US7328243B2 (en) 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040139167A1 (en) 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
US7624158B2 (en) 2003-01-14 2009-11-24 Eycast Inc. Method and apparatus for transmission and storage of digital medical data
US7320009B1 (en) 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US7328256B2 (en) 2003-06-02 2008-02-05 Apple Inc. Method and apparatus for distributing computer files across a network to multiple clients
US20040260775A1 (en) 2003-06-20 2004-12-23 Xerox Corporation System and method for sending messages
US7694086B1 (en) 2003-06-30 2010-04-06 Symantec Operating Corporation Method and system for incremental backup of data volumes
US7523217B2 (en) 2003-07-15 2009-04-21 Hewlett-Packard Development Company, L.P. System and method having improved efficiency and reliability for distributing a file among a plurality of recipients
US20050015461A1 (en) 2003-07-17 2005-01-20 Bruno Richard Distributed file system
JP2005044003A (ja) 2003-07-23 2005-02-17 Fujitsu Ltd 認証装置、方法、及びプログラム
US6983429B2 (en) 2003-09-30 2006-01-03 Bull Hn Information Systems Inc. Formal proof methods for analyzing circuit loading problems under operating conditions
US7340510B1 (en) 2003-11-18 2008-03-04 Cisco Technology, Inc. Content delivery network (CDN) replication status reporter
US7039661B1 (en) 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US7822711B1 (en) 2003-12-31 2010-10-26 Symantec Operating Corporation Conflict resolution for a distributed file sharing system
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
US7385978B1 (en) 2004-02-19 2008-06-10 Cisco Technology, Inc. Method and apparatus for reliable multicast distribution
US9160571B2 (en) 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
JP4448719B2 (ja) 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US7503052B2 (en) 2004-04-14 2009-03-10 Microsoft Corporation Asynchronous database API
US20060023969A1 (en) 2004-04-30 2006-02-02 Lara Eyal D Collaboration and multimedia authoring
WO2005114959A1 (en) * 2004-05-18 2005-12-01 British Telecommunications Public Limited Company Peer-to-peer networks
US7490089B1 (en) 2004-06-01 2009-02-10 Sanbolic, Inc. Methods and apparatus facilitating access to shared storage among multiple computers
US7634566B2 (en) 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US7873650B1 (en) 2004-06-11 2011-01-18 Seisint, Inc. System and method for distributing data in a parallel processing system
US20050278552A1 (en) 2004-06-14 2005-12-15 Vincent Delisle Secure virtual account
US20060031230A1 (en) 2004-07-21 2006-02-09 Kumar Sinha M Data storage systems
US20060047776A1 (en) 2004-08-31 2006-03-02 Chieng Stephen S Automated failover in a cluster of geographically dispersed server nodes using data replication over a long distance communication link
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
JP4222295B2 (ja) 2004-11-19 2009-02-12 パナソニック株式会社 ビデオサーバおよびこれを用いた映像配信システム
US7631023B1 (en) 2004-11-24 2009-12-08 Symantec Operating Corporation Performance-adjusted data allocation in a multi-device file system
JP4451293B2 (ja) 2004-12-10 2010-04-14 株式会社日立製作所 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US7320088B1 (en) 2004-12-28 2008-01-15 Veritas Operating Corporation System and method to automate replication in a clustered environment
JP4843976B2 (ja) 2005-03-25 2011-12-21 日本電気株式会社 レプリケーションシステムと方法
US7454426B2 (en) 2005-04-12 2008-11-18 International Business Machines Corporation Referential integrity across a distributed directory
US7631016B2 (en) 2005-05-04 2009-12-08 Oracle International Corporation Providing the latest version of a data item from an N-replica set
WO2006124911A2 (en) 2005-05-18 2006-11-23 Ibrix, Inc. Balanced computer architecture
CN101305350A (zh) 2005-06-09 2008-11-12 惠而浦公司 与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8401997B1 (en) 2005-06-30 2013-03-19 Symantec Operating Corporation System and method for replication using consistency interval markers in a distributed storage environment
US7631045B2 (en) 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
WO2007014296A2 (en) 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
US9305011B2 (en) 2005-07-27 2016-04-05 Hitachi Data Systems Corporation Method for improving mean time to data loss (MTDL) in a fixed content distributed data storage
US7568069B2 (en) 2005-07-29 2009-07-28 Lsi Corporation Method for creating a large-scale storage array system out of multiple mid-range storage arrays
US20070028291A1 (en) 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
JP4747733B2 (ja) 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US20070055703A1 (en) 2005-09-07 2007-03-08 Eyal Zimran Namespace server using referral protocols
US9996413B2 (en) 2007-10-09 2018-06-12 International Business Machines Corporation Ensuring data integrity on a dispersed storage grid
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US20090043922A1 (en) 2005-11-04 2009-02-12 David Aaron Crowther Method and Apparatus for Managing Media Storage Devices
EP1961158B1 (en) 2005-11-23 2013-05-15 EnvisionIT LLC Message broadcasting admission control system and method
EP1798934A1 (en) * 2005-12-13 2007-06-20 Deutsche Thomson-Brandt Gmbh Method and apparatus for organizing nodes in a network
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8589574B1 (en) 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
US7546484B2 (en) 2006-02-08 2009-06-09 Microsoft Corporation Managing backup solutions with light-weight storage nodes
US7623474B2 (en) 2006-02-14 2009-11-24 Cisco Technology, Inc. Techniques for distributing information using multicast subsets
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7480817B2 (en) * 2006-03-31 2009-01-20 International Business Machines Corporation Method for replicating data based on probability of concurrent failure
US7778183B2 (en) * 2006-03-31 2010-08-17 International Business Machines Corporation Data replica selector
US20070288638A1 (en) * 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery
US7979771B2 (en) 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
US20080126357A1 (en) * 2006-05-04 2008-05-29 Wambo, Inc. Distributed file storage and transmission system
US8255420B2 (en) 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
KR101366220B1 (ko) 2006-05-23 2014-02-21 노리안 홀딩 코포레이션 분산형 저장소
US8117155B2 (en) 2006-06-30 2012-02-14 Microsoft Corporation Collection-based object replication
US7546486B2 (en) 2006-08-28 2009-06-09 Bycast Inc. Scalable distributed object management in a distributed fixed content storage system
US7840992B1 (en) 2006-09-28 2010-11-23 Emc Corporation System and method for environmentally aware data protection
US7680048B2 (en) 2006-10-06 2010-03-16 International Business Machiens Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamically adjusting local routing strategies
US8176265B2 (en) 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US8094585B2 (en) 2006-10-31 2012-01-10 International Business Machines Corporation Membership management of network nodes
US8555335B2 (en) 2006-11-01 2013-10-08 Microsoft Corporation Securing distributed application information delivery
US8190561B1 (en) 2006-12-06 2012-05-29 At&T Mobility Ii Llc LDAP replication priority queuing mechanism
US7590672B2 (en) 2006-12-11 2009-09-15 Bycast Inc. Identification of fixed content objects in a distributed fixed content storage system
GB2445986A (en) 2007-01-17 2008-07-30 Connect Spot Ltd Database Update Systems for Wireless communications Systems
DE602007010040D1 (de) 2007-02-22 2010-12-02 Ericsson Telefon Ab L M Overlay-Netzwerk mit einheitlicher und fehlertoleranter verteilter Hash-Tabelle (DHT)
US8635691B2 (en) 2007-03-02 2014-01-21 403 Labs, Llc Sensitive data scanner
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
JP2008234445A (ja) 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム
US8150800B2 (en) 2007-03-28 2012-04-03 Netapp, Inc. Advanced clock synchronization technique
JP4696089B2 (ja) 2007-03-30 2011-06-08 三菱電機インフォメーションシステムズ株式会社 分散ストレージシステム
JP2008250773A (ja) 2007-03-30 2008-10-16 Brother Ind Ltd 情報配信システム、管理装置用プログラム及び情報処理装置用プログラム
TWI483584B (zh) 2007-06-04 2015-05-01 Graco Minnesota Inc 分配式監視及控制流體處理系統
US7676704B2 (en) 2007-06-29 2010-03-09 Symantec Corporation Resource management for scalable file system recovery
WO2009032712A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8156117B2 (en) 2007-09-03 2012-04-10 Obschestvo S Ogranichennoi Otvetstvennostiyu “Meralabs” Method and system for storing, searching and retrieving information based on semistructured and de-centralized data sets
US8185614B2 (en) 2007-10-09 2012-05-22 Cleversafe, Inc. Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US8533256B2 (en) 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
US7979662B2 (en) 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
US7913030B2 (en) 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
US20090228669A1 (en) 2008-03-10 2009-09-10 Microsoft Corporation Storage Device Optimization Using File Characteristics
WO2009120301A2 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8577957B2 (en) 2008-04-01 2013-11-05 Litl Llc System and method for streamlining user interaction with electronic content
JP2009259007A (ja) * 2008-04-17 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> 分散格納方法、分散格納システム及び分散格納装置
TWI476610B (zh) 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8458128B2 (en) 2008-08-26 2013-06-04 Microsoft Corporation Minimal extensions required for multi-master offline and collaboration for devices and web services
US8255430B2 (en) 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
US9390102B2 (en) 2008-09-29 2016-07-12 Oracle International Corporation Client application program interface for network-attached storage system
JP5557840B2 (ja) * 2008-10-03 2014-07-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 分散データベースの監視メカニズム
WO2010045109A1 (en) 2008-10-17 2010-04-22 Azuki Systems, Inc. Method and apparatus for efficient http data streaming
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8443062B2 (en) 2008-10-23 2013-05-14 Microsoft Corporation Quorum based transactionally consistent membership management in distributed storage systems
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8898236B2 (en) 2008-10-31 2014-11-25 Netapp, Inc. Automated conversion of versioned data collections
US8561052B2 (en) 2008-12-08 2013-10-15 Harris Corporation Communications device with a plurality of processors and compatibility synchronization module for processor upgrades and related method
EP2377294B1 (en) 2008-12-18 2017-05-17 Scality, SA Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US20100185693A1 (en) 2009-01-20 2010-07-22 Murty Venkataesh V Methods and apparatus for creating an audit trail
US8832023B2 (en) 2009-01-30 2014-09-09 Apple Inc. System for managing distributed assets and metadata
US8533151B2 (en) 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US8165122B2 (en) 2009-05-26 2012-04-24 Alcatel Lucent System and method for converting unicast client requests into multicast client requests
US20130254314A1 (en) 2009-06-09 2013-09-26 Edmond K. Chow Digital content delivery
US10108492B2 (en) 2009-07-30 2018-10-23 International Business Machines Corporation Rebuilding data stored in a dispersed storage network
US20110047413A1 (en) 2009-08-20 2011-02-24 Mcgill Robert E Methods and devices for detecting service failures and maintaining computing services using a resilient intelligent client computer
US8745170B2 (en) 2009-08-27 2014-06-03 Apple Inc. Dynamic file streaming
CN102640125B (zh) * 2009-09-21 2015-07-08 高通股份有限公司 分布式内容存储和取回
US8745342B2 (en) * 2009-09-24 2014-06-03 Hitachi Ltd. Computer system for controlling backups using wide area network
US8620879B2 (en) 2009-10-13 2013-12-31 Google Inc. Cloud based file storage service
CN101710339B (zh) 2009-11-20 2012-02-01 中国科学院计算技术研究所 控制机群文件系统中数据存储方法和系统及创建文件方法
US8190578B2 (en) 2009-12-17 2012-05-29 International Business Machines Corporation Migration of versioned data between configuration management systems
US8683119B2 (en) 2010-03-15 2014-03-25 Cleversafe, Inc. Access control in a dispersed storage network
WO2011116087A2 (en) 2010-03-16 2011-09-22 Copiun, Inc. Highly scalable and distributed data de-duplication
US20110238909A1 (en) 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
US9357328B1 (en) 2010-06-15 2016-05-31 Thales Avionics, Inc. Systems and methods for distributing content using attributes
WO2011161849A1 (ja) 2010-06-22 2011-12-29 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
CN101909058B (zh) 2010-07-30 2013-01-16 天维讯达无线电设备检测(北京)有限责任公司 一种适合可信连接架构的平台鉴别策略管理方法及系统
GB2544888A (en) 2010-09-08 2017-05-31 Saffron Digital Ltd Delivering a file from a content provider to a client
US9253199B2 (en) 2010-09-09 2016-02-02 Red Hat, Inc. Verifying authenticity of a sender of an electronic message sent to a recipient using message salt
US8660986B2 (en) 2010-10-27 2014-02-25 Microsoft Corporation Preserving user intent in merging ordered objects
CN106055930A (zh) 2010-11-05 2016-10-26 交互数字专利控股公司 设备检验和遇险指示
US8949828B2 (en) 2011-01-11 2015-02-03 International Business Machines Corporation Single point, scalable data synchronization for management of a virtual input/output server cluster
US9020996B2 (en) 2011-06-24 2015-04-28 Stephen P. LORD Synthetic view
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US9225780B2 (en) 2012-02-24 2015-12-29 Xyratex Technology Limited Data integrity in a networked storage system
US20130268632A1 (en) 2012-04-05 2013-10-10 Canon Kabushiki Kaisha Server assisted authenticated device
US9256765B2 (en) 2012-06-29 2016-02-09 Kip Sign P1 Lp System and method for identifying software changes
US9344521B2 (en) * 2012-12-13 2016-05-17 Red Hat, Inc. Pluggable infrastructure for cloud provider selection
US9367448B1 (en) 2013-06-04 2016-06-14 Emc Corporation Method and system for determining data integrity for garbage collection of data storage systems
US20150288659A1 (en) 2014-04-03 2015-10-08 Bitdefender IPR Management Ltd. Systems and Methods for Mutual Integrity Attestation Between A Network Endpoint And A Network Appliance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1856786A (zh) * 2003-07-16 2006-11-01 乔蒂德有限公司 分布式数据库系统
US20070088703A1 (en) * 2005-10-17 2007-04-19 Microsoft Corporation Peer-to-peer auction based data distribution
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636327A (zh) * 2013-11-06 2015-05-20 上海语镜汽车信息技术有限公司 一种基于增量计算的分布式流式数据系统
CN108429813A (zh) * 2018-03-22 2018-08-21 深圳市网心科技有限公司 云存储服务的容灾方法、系统及终端
CN108429813B (zh) * 2018-03-22 2021-04-06 深圳市网心科技有限公司 云存储服务的容灾方法、系统及终端
CN110321067A (zh) * 2018-03-30 2019-10-11 卡巴斯基实验室股份制公司 估计和管理存储设备退化的系统和方法
CN110321067B (zh) * 2018-03-30 2023-04-14 卡巴斯基实验室股份制公司 估计和管理存储设备退化的系统和方法
CN108681485A (zh) * 2018-04-27 2018-10-19 佛山市日日圣科技有限公司 一种接收信息的处理方法及处理装置
CN110162270A (zh) * 2019-04-29 2019-08-23 平安国际智慧城市科技股份有限公司 基于分布式存储系统的数据存储方法、存储节点及介质
CN110515916A (zh) * 2019-07-26 2019-11-29 济南浪潮数据技术有限公司 一种主从分布式文件处理方法、主节点、从节点及系统

Also Published As

Publication number Publication date
US20170048321A1 (en) 2017-02-16
EP2712149A3 (en) 2014-05-14
EP2387200A1 (en) 2011-11-16
CN102939740B (zh) 2016-08-03
US9503524B2 (en) 2016-11-22
EA201291023A1 (ru) 2013-05-30
EA026842B1 (ru) 2017-05-31
US8850019B2 (en) 2014-09-30
KR20130115983A (ko) 2013-10-22
US20120084383A1 (en) 2012-04-05
EP2712149A2 (en) 2014-03-26
WO2011131717A1 (en) 2011-10-27
US9948716B2 (en) 2018-04-17
AU2011244345A1 (en) 2012-11-08
KR101905198B1 (ko) 2018-10-05
EP2712149B1 (en) 2019-10-30
IL222630A (en) 2017-05-29
CA2797053C (en) 2016-05-31
US20140379845A1 (en) 2014-12-25
CA2797053A1 (en) 2011-10-27
AU2011244345B2 (en) 2015-01-15
JP2013525895A (ja) 2013-06-20
JP5612195B2 (ja) 2014-10-22
ZA201208755B (en) 2014-01-29
EP2387200B1 (en) 2014-02-12
IL222630A0 (en) 2012-12-31
BR112012027012A2 (pt) 2016-09-13
MX2012012198A (es) 2013-03-12

Similar Documents

Publication Publication Date Title
CN102939740B (zh) 分布式数据存储
KR101635238B1 (ko) 분산형 데이터 스토리지
EP2751713A1 (en) A method and device for writing data to a data storage system comprising a plurality of data storage nodes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: The Swedish city of Karlskrona

Applicant after: COMPUVERDE AB

Address before: The Swedish city of Karlskrona

Applicant before: Ilt Productions AB

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: ILT PRODUCTIONS AB TO: KEMPEWARD CORPORATION

C14 Grant of patent or utility model
GR01 Patent grant