CN110447021A - 用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统 - Google Patents
用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统 Download PDFInfo
- Publication number
- CN110447021A CN110447021A CN201880016079.3A CN201880016079A CN110447021A CN 110447021 A CN110447021 A CN 110447021A CN 201880016079 A CN201880016079 A CN 201880016079A CN 110447021 A CN110447021 A CN 110447021A
- Authority
- CN
- China
- Prior art keywords
- data
- data center
- metadata
- cache
- file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 claims abstract description 33
- 230000008859 change Effects 0.000 claims abstract description 30
- 230000001360 synchronised effect Effects 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000010076 replication Effects 0.000 claims description 90
- 238000013507 mapping Methods 0.000 claims description 54
- 230000015654 memory Effects 0.000 claims description 45
- 238000007689 inspection Methods 0.000 claims description 6
- 108700026836 CAPABLE protocol Proteins 0.000 claims description 5
- 238000000605 extraction Methods 0.000 description 18
- 239000000284 extract Substances 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000007170 pathology Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Abstract
一种计算机实现的方法可以包括:在第一数据中心提供第一执行的协议高速缓存,并在第二数据中心提供第二执行的协议高速缓存;接收关于在第一数据中心和第二数据中心中创建或更改存储在第一数据中心和第二数据中心中的文件的提议的协议;在第一执行的协议高速缓存和/或第二执行的协议高速缓存中存储由所接收的协议引用的文件的元数据;在创建或更改被所接收的协议所引用的文件之前,使第一执行的协议高速缓存和第二执行的协议高速缓存保持彼此同步;仅在第一执行的协议高速缓存和第二执行的协议高速缓存已同步之后,才创建或更改被所接收的协议所引用的文件;以及每当在第一数据中心或第二数据中心中接收到针对存储在第一数据中心或第二数据中心中的文件的数据的请求时,搜索第一执行的协议高速缓存和/或第二执行的协议高速缓存以获得更新的元数据,并且响应于所接收的请求,在找到更新的元数据时提供与更新的元数据对应的数据。
Description
背景技术
本文公开的实施例的领域包括分布式文件系统。具体地,实施例涉及用于通过可以包括例如因特网的广域网(WAN)维持分布式文件系统中复制的文件夹的一致性的方法、装置和系统。
附图说明
图1是适合于实现根据实施例的方法、装置和系统的分布式文件系统实现的图。
图2是连接到计算机网络的本地数据中心和远程数据中心的图。
图3是示出根据实施例的连接到计算机网络的数据中心以及计算机实现的系统和方法的各方面的图。
图4是示出根据实施例的连接到计算机网络的数据中心以及计算机实现的系统和方法的各方面的图。
图5是示出根据实施例的连接到计算机网络的数据中心以及计算机实现的系统和方法的各方面的图。
图6是根据一个实施例的计算机实现的方法的流程图。
图7是根据一个实施例的计算机实现的方法的流程图。
图8是根据一个实施例的计算机实现的方法的流程图。
图9是可以实践实施例的各方面的硬件计算装置的框图。
具体实施方式
Hadoop兼容文件系统(HCFS)命名空间是文件和目录的层次结构。Hadoop是开源的、基于Java的编程框架,其支持在分布式计算环境中处理和存储极大数据集。它是阿帕奇软件基金会(Apache Software Foundation)赞助的Apache项目的一部分。文件和目录由Inode表示在NameNode上。Inode记录属性,诸如权限、修改和访问时间、命名空间和磁盘空间配额。文件内容被分成大数据块(通常为128MB),文件的每个数据块独立复制在多个(通常为三个)DataNode上。HCFS的一个实现方式是Hadoop分布式文件系统(HDFS)。NameNode是HDFS的元数据服务,它负责命名空间操作。NameNode维护命名空间树以及块到DataNode的映射。也就是说,NameNode跟踪Hadoop集群内的数据位置并协调客户端对其的访问。传统上,每个群集都有单个NameNode。群集可以在每个群集中拥有数千个DataNode和数万个HDFS客户端,这是因为每个DataNode可以同时执行多个应用程序任务。Inode和定义命名系统的元数据的数据块列表称为映像。NameNode将整个命名空间映像保存在随机存取存储器(RAM)中。
为了维持分布式文件系统节点之间的系统一致性,可能需要协调节点之间的各种分布式事件。最简单的用来协调必须由所有节点一致地学习的特定事件的方法是选择指定的单个主机并在主机上记录该事件,以便其他节点可以从主机获知该事件。虽然这种方法比较简单,但缺乏可靠性,这是因为单个主机的故障会使整个系统的进程停滞。认识到这一点,传统的HDFS实现使用在正常操作期间访问的Active NameNode和称为StandbyNameNode的备份,该Standby NameNode在Active NameNode故障的情况下用作故障转移。
然而,这被认为是次优的解决方案。例如,在这一方案中,事务日志本身成为单点故障。实际上,在事务日志损坏时,Standby NameNode不再具有与Active NameNode相同的状态,并且从Active到Standby NameNode的故障转移不再是可能的。
此外,在每个群集仅支持一个Active NameNode的Hadoop解决方案中,如上所述的备用服务器通常经由网络连接存储(NAS)装置保持同步。如果Active NameNode故障并且备用必须接管,则如果写入Active NameNode的更改尚未写入NAS,则可能会丢失数据。故障转移期间的管理员错误可能导致进一步的数据丢失。此外,如果发生网络故障(其中活动服务器无法与备用服务器通信,但可以与群集中的其他计算机通信,并且备用服务器错误地认为活动服务器已死并接管活动角色),则会发生称为“裂脑”的病理网络状况(其中两个节点认为它们是Active NameNode),而这种状况可能导致数据损坏。
提议者(向成员提出改变命名空间状态的提议的进程)、接受者(投票决定该成员是否应该同意改变命名空间状态的提议的进程)和学习者(成员中了解已经达成的协议的进程)的角色被定义在,例如Lamport,L.:The Part-Time Parliament,ACM Transactionson Computer Systems(兼职议会,计算机系统的ACM交易)16,2(1998年5月),133-169中描述的Paxos算法的实现中,其全部内容并入本文。根据一个实施例,可以被配置多个节点来执行每个角色。协调引擎(Coordination Engine)可以允许多个学习者在多个接受者的帮助下,就多个提议者提交给引擎的事件的顺序达成一致,以实现高可用性。为了实现可靠性、可用性和可伸缩性,可以通过在多个节点上复制命名空间的状态来同时提供多个Active NameNode(通常可以将其视为元数据服务器),其中要求在其上复制命名空间的节点的状态与这些节点之间保持一致。
可以配置为接受更新命名空间的提议的协调引擎可以保证NameNode之间的这种一致性,将提议简化为全局更新序列,然后只允许NameNodes学习并以商定的顺序将更新应用于其各个状态。本文中,“一致性”表示单一拷贝等价(One-Copy Equivalence),如在Bernstein等人的、Addison Wesley出版社于1987年出版的“Concurrency Control&Recovery in Database Systems(数据库系统中的并发控制与恢复)”第6、7和8章所详细描述的,其整体并入本文。由于NameNode从相同的状态开始并以相同的确定性顺序应用相同的确定性更新,因此它们各自的状态是一致的并且保持一致。
因此,根据一个实施例,可以在多个NameNode(或更一般地,元数据服务器)上复制命名空间,条件是:
a)允许每个节点修改其命名空间副本,和
b)必须将一个命名空间副本的更新传播到其他节点上的命名空间副本,以使命名空间副本在节点之间保持彼此一致。
图1是根据一个实施例的分布式文件系统的图,该分布式文件系统在WAN环境中具有特定用途。图1还示出了基于复制状态机模型对于分布式HCFS(诸如例如,HDFS)在WAN上适用的复制方法的方面。根据一个实施例,NameNode位于不同地理分布的数据中心。这些数据中心可以位于例如不同的大陆上。本文描述的是适用于分布式文件系统的实施例,该分布式文件系统通过,包括例如因特网和/或私人或专有WAN的WAN跨越,例如HCFS集群。
架构概述
图1是根据一个实施例的集群和跨越WAN的分布式文件系统的组件的框图。如其中所示,根据一个实施例,运行分布式文件系统102的(例如,单个)集群可以包括两个或更多个数据中心;即,数据中心A(DCA)104和数据中心B(DCB)106。DCA 104和DCB 106可以在地理上彼此远离。例如,DCA 104和DCB 106可以位于单个国家的不同部分,可以分布在不同的大陆、不同的时区,并且可以从完全独立的电网中抽取。DCA 104和DCB 106可以经由WAN 108彼此松散地连接,WAN 108可以包括例如因特网和/或其他私有和/或专有网络。DCA 104和DCB 106还可以经由其他专用的高速连接进行连接。尽管图1中仅示出了两个数据中心104、106,但是应该理解,实施例可以包括更多数量的数据中心,并且分布式文件系统102可以延伸跨越所有这样的数据中心。
如图所示,DCA 104可以包括附图中表示为“MDS”的多个活动(而不是,例如备用或故障转移)元数据服务器(其中Hadoop NameNode只是一种可能的实现)。以这一方式,DCA104可以包括由附图标记110、112和114表示的MDS,并且DCB106可以包括由附图标记116、118和120表示的MDS。MDS 110、112、114、116、118和120中的每个可以配置为存储分布式文件系统的命名空间的状态,并在MDS和数据中心之间以一致的方式维持该单个命名空间。MDS之间的协调和跨MDS的单个命名空间的维持的方面可以由分布式协调引擎(CE)进程122提供。在图1中,CE进程122以表明它是跨越DCA 104、DCB 106和WAN 108的单独逻辑实体的方式示出。然而,根据一个实施例,上面和下文描述的CE 122的功能可以由MDS 110、112、114、116、118和120中的每个履行。也就是说,MDS 110、112、114、116、118和120中的每个可以针对其他功能被配置为执行CE 122的一些或全部职责。
DCA 102可以包括多个DataNode 124、126、128、130,在图1中标记为“DN”。类似地,DCB 104也可以包括多个DataNode 132、134、136、138,在图1中也标记为“DN”。如图所示,DataNode 124、126、128、130中的每个可以连接到DCA 102的MDS 110、112和114中的每一个,并配置成与其每一个进行通信。如图所示,DataNode 132、134、136、138可以连接到DCB106的MDS 116、118和120中的每一个,并配置成与其每一个进行通信。根据一个实施例,MDS可以不直接与DataNode通信。实际上,根据一个实施例,DataNode可以被配置为向MDS发送请求,随之MDS响应于所接收的请求向DataNode发出命令。因此,尽管可以说MDS控制DataNode,但是根据一个实施例,DataNode可以配置为向MDS发送请求以便从其接收命令。在DCA 104中示出了四个DataNode 124、126、128、130。类似地,在DCB 106中示出了四个DataNode 132、134、136和138。然而,应该理解,数据中心104和106可以各自包括比图1中所示的DataNode多得多(例如,数千个)的DataNode。
虽然示出为在DCA 102内提供三个MDS 110、112、114,但是可以在DCA 102内设置更多数量的MDS。类似地,尽管示出为在DCB 106内设置三个MDS 116、118、120,但是可以在DCB 106内设置更多数量的MDS。根据一个实施例,数据中心内的MDS的数量可以选择奇数。
根据一个实施例,图1示出了运行跨越地理上分离的不同数据中心的单个分布式文件系统的集群。例如,分布式文件系统可以,例如包含HDFS的各方面。每个DataNode可以被配置为仅与其自己的数据中心内的MDS通信(通过DataNode到NameNode远程过程调用(RPC)协议)。相反,数据中心的MDS可以配置为仅控制其自己的数据中心内的DataNode。也就是说,根据一个实施例,数据中心104的DataNode可以仅与它们自己的数据中心104的MDS通信,而数据中心106的DataNode可以仅与它们自己的数据中心106的MDS通信。两个数据中心102、104的MDS彼此协调以通过协调引擎122保持命名空间的状态一致。一个数据中心的DataNode可以与其他一个或多个数据中心的DataNode通信。
根据一个实施例,CE进程122可以被配置为保证在所有MDS上以相同的确定性顺序应用命名空间状态的相同确定性更新。根据一个实施例,该确定性顺序由全局序列号(GSN)定义。因此,根据一个实施例,CE进程122的重要作用是处理提议以修改或以其他方式更新来自所有MDS的命名空间的状态,并将它们转换为全局排序的协议序列。然后,MDS可以顺序地将来自该排序序列的协议应用为对其存储状态的更新。根据一个实施例,GSN可以被配置为唯一的单调递增数。然而,如本领域技术人员可以认识到的,可以以其他方式配置GSN。然后,可以使用GSN来比较不同MDS在更新命名空间状态和在MDS之间保持该命名空间状态一致的进度(或者通过全局排序的协议序列的顺序应用,使存储在每个MDS中的命名空间的状态随时间变得一致)。例如,如果MDS 110刚刚处理了编号为GSN1的协议(该协议小于刚刚由MDS 112处理的GSN2),则MDS 110具有比MDS 112更早的命名空间状态。一旦MDS110处理GSN2,MDS 110存储的命名空间的状态将匹配MDS112存储的状态,条件是MDS112在过渡期间没有处理更高编号的协议。以这一方式,并且通过顺序执行由CE进程122生成的(通过GSN机制)排序的协议集,使存储在每个数据中心中的每个MDS中的命名空间的状态变得一致或保持一致。
根据一个实施例,对于每个操作,客户端了解在客户端当前连接的MDS上处理的最新GSN。此后,如果客户端切换到另一个MDS,则根据一个实施例,在发出包含诸如写入之类的数据访问命令的RPC之前,客户端应该首先等待(如果需要),直到新的MDS赶上客户端了解的最后一个GSN(即,客户端从先前访问的MDS接收的GSN)。这样可以避免陈旧的读取问题。由于MDS从相同的状态开始,这种有序的更新应用意味着副本的一致性,因为在同一GSN处理了协议的不同节点上拍摄的快照在数据中心内和数据中心之间是相同的。
一个实施例在CE进程122递送协议时即时(或几乎如此,考虑网络固有的带宽和延迟)协调MDS 110、112、114、116、118、120之间的所有元数据。同样,在群集的多个数据中心之间所有文件系统数据也会自动复制。一个实施例在(例如但不限于Hadoop)集群中的文件系统之间提供一致的、连续的数据复制。客户端应用程序可以配置为与跨多个集群集成底层存储的虚拟文件系统进行交互。对一个群集中的文件进行更改时,这些更改将一致地复制到其他跨区群集。一个实施例可以包括允许Hadoop部署在(例如,Hadoop)集群之间复制HCFS数据的软件应用程序,所述集群运行不同的,甚至不兼容的Hadoop版本,诸如例如CDH、HDP、EMC Isilon、Amazon S3/EMRFS和MAPR。根据一种实现方式,还可以在不同的供应商分发和Hadoop版本之间进行复制。
有利地,实施例提供用于Hadoop且与所有Hadoop应用程序兼容的虚拟文件系统、单个虚拟命名空间(其集成来自不同类型的Hadoop的存储)、全局分布式存储机制和使用主动-主动复制技术的WAN复制(递送单次拷贝一致的HDFS数据,在遥远的数据中心之间复制)。
根据一个实施例,本文描述的一些或所有功能可以在一个服务器或多个服务器内,以在Hadoop堆栈中的更高级别执行,所述服务器在远离,例如活动MDS和协调引擎的Hadoop集群附近。以这种方式,而不是在名称节点级别深入工作,一个实施例可以被配置为作为Hadoop文件系统的代理应用程序操作。
实施例可以被配置为通过将数据传输到远程云服务(例如,作为提供按需计算能力、数据库存储、内容传递和其他功能的平台Amazon Web Services(AWS))来提高云的处理能力,以在需要时获得额外的处理能力。
此外,实施例实现了跨不同Hadoop分发的同步,诸如例如在两个Hortonworks集群之间、在Hortonworks和Cloudera与EMC的Isilon存储系统之间复制的能力,仅举几个可能性。也可以适应与HBase服务器的同步。Hbase是开源的、非关系型的分布式数据库,以Google的BigTable为模型、用Java编写。Hbase是作为Apache Software Foundation的Apache Hadoop项目的一部分开发的,并且运行在HDFS之上,为Hadoop提供类似BigTable的功能。
一个实施例使用Paxos协议同步地复制元数据操作(例如,创建文件),该协议通过计算机网络202由大多数仲裁数据复制服务器204、206、208同意,如图2所示。如图所示,计算机网络202可以跨越由WAN(广域网)链路连接的世界上的多个位置。通常在元数据操作之后,异步地复制可以与元数据操作相关联的数据操作(例如,写入文件数据)而不进行协调。也就是说,对与创建文件元数据操作相关联的分布式文件系统存储器210、212和218的写入可以异步地执行,而不需要多个数据复制服务器204、206、208之间的协调。这是为了确保当远程数据中心(RDC)将写入DCO 214中的分布式文件系统存储器210的数据复制到RDC 216中的分布式文件存储器212时,数据源中心(DCO)214的存储性能不会受到负面影响。然而,这些未协调的数据写入操作打开了窗口,在该窗口期间,对同一文件对象的后续元数据操作可能导致这种未协调的数据复制操作失败。例如,当执行其中一个未协调的数据写入操作时,有可能改变文件名或路径,这将导致数据写入操作失败。
这种问题的说明性示例是DCO 214的客户端创建文件(例如“foo.tmp”)、将200MB数据写入文件、关闭它、然后重命名“foo.tmp”文件为“foo”的情况。RDC216中的数据复制服务器将看到“foo.tmp”的文件创建操作的元数据,但是当它或它们正在复制200MB的数据时,DCO中的数据复制服务器可以执行“重命名foo.tmp为foo”协议,从而导致“foo.tmp”数据复制到RDC失败,这是因为它正在从提取时不再存在的文件“foo.tmp”中提取200MB数据。
当在异步提取文件的数据的同时重新命名文件时,一种实现方式重新开始从DCO214向RDC 216提取数据。实际上,由于介入的文件重命名操作,在文件关闭时启动的数据提取失败。为了解决这个问题,重命名操作会检查文件是否不一致,如果不一致,则重新启动提取,并将重命名目标作为提取的数据的DCO源。
另一个实施例更有利地跟踪数据中心之间的元数据变化,以防止在诸如文件重命名或者对到要复制其数据的文件的路径进行更改的操作之后的数据复制失败。本公开描述了这种同步元数据和异步数据复制系统的实施例。
设计原则
相对于其在大数据复制平台上的部署,一个实施例可以被配置为体现以下三个设计原则:
1、没有数据要存储或高速缓存在下面描述的任何计算组件中,包括但不限于客户端、数据复制服务器或版本桥接服务器。实际上,可以通过高速缓存商定的提议的元数据操作而不是与这些操作相关联的数据来实现一个实施例。
2、远程数据中心客户端(要复制数据的RDC 216的数据中心客户端,而不是最初写入数据的DCO 214的数据中心客户端)将看到使用GSN的机制在底层存储的时间点一致的元数据视图。也就是说,在数据中心之间,跨群集的命名空间和已复制文件夹的状态在相同的GSN上是相同的。但是,数据可能不完整。换句话说,远程客户端可能看到文件的存在(因为其元数据将被同步高速缓存),但其基础数据可能尚未完全写入。此行为模仿了在大数据存储系统的单个数据中心实例中具有热切读取器的慢速写入器的行为。
3、RDC客户端永远不会看到不属于该文件系统的时间点的数据,也不会看到来自文件的不同时间点的数据混合,如下面进一步展开的。
验证所公开的实施例的正确性
证明正确性的最简单方法是,如果在后续元数据操作中对相同路径进行了更改,则中止任何数据提取(即,将数据从DCO提取到RDC)。该文件被标记为不一致,并执行修复以纠正不一致。可以用最少的复制服务知识(即底层存储的文件系统语义的知识)来执行该检查。它也可以通过执行协议的最小高速缓存来实现。
设计
只满足上面列出的正确性标准的简单实现将导致许多中止和修复操作,从而导致复制的文件夹不一致并降低分布式系统的效率。因此,本文描述的实施例提供了基于底层存储系统的文件系统语义的优化。
根据一个实施例,在DCO 214或RDC 216处的数据提取操作的失败可导致使用名称映射服务重新启动操作。实际上,从DCO 214到RDC 216的数据提取操作需要DCO 214处的读取操作和RDC 216处的写入操作。如果任一者失败,则使用名称映射服务应用程序接口(API)(在此也表示为MapFilename)重新操作。根据一个实施例,这些优化和名称映射服务的部署需要存储关于在每个协议下执行的文件系统操作的更详细信息。
根据一个实施例,增强可以包括三个方面:
1、增强数据复制服务器206、208(图2)、308、310(图3),以在执行的协议高速缓存309、311中高速缓存执行的协议,并使用这一执行的协议高速缓存309、311实现MapFilename API;
2、部署版本桥接服务器312以在DCO 214处对源文件名调用名称映射服务MapFilename;以及
3、增强数据复制服务器310以在RDC 216处对目标文件名调用名称映射服务,并相应部署版本桥接服务器314以在RDC 216处对源文件名调用名称映射服务。
图3是示出根据一个实施例的计算机实现的方法和系统的各方面的框图。如图所示,附图标记214表示DCO,附图标记216表示RDC,但是可以交换命名。DCO214和RDC 216可以经由一个或更多个计算机网络302松散地连接,并且可以在地理上分离,如地球仪301所标明。在DCO 214中,客户端应用程序304可以利用客户端库向数据复制服务器308发出数据访问命令。类似地,在RDC 216中,客户端应用程序306可以利用客户端库向数据复制服务器310发出数据访问命令。根据一个实施例,数据复制服务器308在高速缓存309(图3中示为执行协议高速缓存309)中高速缓存协议的元数据,以改变复制的文件夹的状态和协议的关联GNS,数据复制服务器310高速缓存也在高速缓存311中高速缓存协议的元数据和关联的GSN。高速缓存309、311保持彼此一致,如下所述。一个实施例提供DCO 214中的版本桥接服务器312和RDC 216中的版本桥接服务器314。最后,DCO 214和RDC 216中的每一个包括如316、318处所示的存储器,所述存储器被配置为持久地存储与在执行的协议高速缓存309、311中高速缓存的元数据相对应的数据。
Create-GSN(创建-GSN)
根据一个实施例,要复制的文件可以由唯一的Create-GSN识别。Create-GSN是同时分配给文件创建协议并与之相关联的唯一GSN。顺便提及,这确保了实施例可与诸如S3的存储系统无缝地互操作,这些存储系统不具有HFlush特征。
执行的协议高速缓存
根据一个实施例,数据复制服务器308可以被配置为在执行的协议高速缓存309中高速缓存执行的协议,并且根据一个实施例,数据复制服务器310可以被配置为在执行的协议高速缓存311中高速缓存执行的协议。根据一个实施例,数据复制服务器308、310可以被配置为分别在执行的协议高速缓存309、311中的条目上实现名称映射服务MapFilenameAPI。由于协议可以不按顺序执行,因此数据复制服务器308、310可以配置为具有迭代和搜索高于指定GSN的所有GSN的能力。
继续参考图3,客户端应用程序304可以发出创建文件提议,协调引擎可以向其发出相应的协议。然后,客户端应用程序304可以向数据复制服务器308发出创建文件操作,如(1)所示。为了提供可以在从创建、写入、启动提取操作到远程数据中心的数据写入结束不对文件名、路径或数据进行更改时起作用,还可以在进行干预发生变化时起作用的全面的解决方案,可以执行以下方法。重要的是并且根据一个实施例,与文件创建操作相关联的元数据可以高速缓存在DCO 214处执行的协议高速缓存308中,并且立即通过网络302与RDC216中的数据复制服务器310(例如,快速)同步,以更新数据复制服务器的执行的协议缓存311,如(2)所示。这使得文件创建操作对RDC 216可见,在数据中心214、216维持被复制文件夹的单个视图。根据一个实施例,每个复制的文件夹可以有一个执行的协议高速缓存。其他实现方式是可能的,并且可以对单个物理高速缓存进行逻辑分区以适应若干复制的文件夹的元数据。由于元数据由相对少量的数据组成,所以至少在与将相应的文件数据从DC0214中的存储器316复制到RDC 216中的存储器318需要的时间相比时,通过线路将其从DCO 214中的执行的协议高速缓存309发送到RDC 216中的执行的协议高速缓存311快速的操作。目的是使用所生成的GSN在执行的协议高速缓存309、311(以及其他,如果存在的话)之间快速协调文件写入操作,并且此后,允许基础数据本身异步复制(通常相对较慢),无需协调。以这种方式,数据的写入者(在本文开发的示例中,客户端应用程序304)不会产生任何显着的罚分(例如,在延迟或网络带宽限制方面),因为它创建文件并写入底层本地存储器316。
如(3)所示,在创建文件操作元数据的协调复制之后,数据复制服务器308可以代表客户端应用程序以指定的完全限定路径和文件名在存储器316中创建文件。然后该信息可以被传递回客户端应用程序304,客户端应用程序304然后可以将数据写入该文件名(可以是相对较高的局域网(LAN)速度),如(4)所示。然后,客户端应用程序304在完成写入数据时可以关闭文件,如(5)所示。
因为RDC 216处的数据复制服务器310现在“了解”了所创建的文件(因为它现在将其元数据存储在其执行的协议高速缓存311中),所以它查询DCO 214的版本桥接服务器312。数据复制服务器310可以向版本桥接服务器312提供与创建的文件相关联的Create-GSN,该Create-GSN形成在(2)处从DCO的数据复制服务器308获得的元数据的一部分。然后,版本桥接服务器312可以使DCO 214的数据复制服务器308对执行的协议高速缓存309中的条目执行名称映射服务,然后可以在执行的协议高速缓存309中逐步通过后续的GSN(在Create-GSN之后),以确定是否自RDC的数据复制服务器310提供给它的Create-GSN(即,在比GSN更高的GSN)以来,随后发生了对文件的文件名、路径和/或数据的任何改变。注意,那些对文件的文件名、路径和/或数据的改变将被提出、商定并且其元数据存储在DCO 214处的执行的协议高速缓存309中并且在协调下在过渡期复制在数据复制服务器310的执行的协议高速缓存311中。
然后,DCO 214的版本桥接服务器312可以将任何更新的文件名、路径和数据提供给RDC 216处的数据复制服务器310。然后,数据复制服务器310可以将因此获得的数据写入存储器318中正确的文件名、路径。当然,RDC 216处的客户端应用程序可能在数据复制之前、期间或之后对文件执行了一些状态改变操作。这些可能性中的每一个都在下面涉及。
根据一种实现方式,可以为数据复制服务器308、310执行的每个协议高速缓存以下信息:
1、执行的协议cacheEntry.Operation。这是文件操作(诸如重命名、删除、截断、追加或修复)的标识;
2、执行的协议cacheEntry.Pathl,具有以下约束:
a、路径必须是目录或文件的完全限定路径(而不是相对路径);和
b、不允许使用通配符(*、$等);
c、在重命名操作的情况下,此执行的协议cacheEntry.Pathlis是源路径;
3、执行的协议cacheEntry.Path2,具有以下约束:
a、目录或文件的完全限定目标路径;
b、不允许使用通配符;和
c、仅在重命名的情况下出现;
4、执行的协议cacheEntry.FileLength。这是文件的文件长度。这里,
a、在文件截断操作的情况下,这是文件被截断的长度;
b、对于追加,这是追加开始之前文件的长度;
在执行的协议高速缓存中高速缓存此类元数据信息并以同步方式将该元数据信息传播到远程执行的协议高速缓存,使得能够相对较慢地写入基础数据,同时在每个GSN处使复制的文件夹的状态在数据中心之间保持一致。也就是说,GSN 122处的DCO 214中的复制的文件夹的状态将与RDC 216中的GSN 122处的复制的文件夹的状态相同,即使RDC 216中的数据复制服务器310已经执行了与复制的数据文件夹的GSN 127关联的协议,并且DCO214中的数据复制服务器308尚未赶上该复制的文件夹的GSN 127。
执行的协议高速缓存的垃圾收集
收集执行的协议高速缓存309、311的垃圾是该系统的操作考虑的重要方面。这消除了分布式文件系统的任何节点不再可能需要的执行的元数据协议高速缓存。这使得执行的协议高速缓存的大小能够保持合理的大小,并且进一步使得执行的协议高速缓存能够被有效地持久化,并且在有需要的情况下进行重建。因此,一个实施例可以被配置为垃圾收集一个或多个所执行的协议高速缓存。这种垃圾收集功能的一种实现方式可以包括每个数据复制服务器跟踪对数据的任何请求(例如,数据提取请求)是活动的最低GSN。然后,可以将该信息分发到仲裁中的所有数据复制服务器,该仲裁可以包括跟踪特定复制的文件夹或所选复制的文件夹的GSN的数据复制服务器组。此后,执行的协议高速缓存中低于仲裁中任何活动提取的最低GSN的条目可以被垃圾收集,而不再需要。根据一个实施例,可以施加对执行的协议高速缓存中的条目数量的可配置限制(例如10,000个),其中每个条目与GSN相关联。执行的协议高速缓存309、311可以被配置为存储更少或更多数量的协议。如果映射请求已经被垃圾收集的GSN,则名称映射服务MapFilename API可能返回错误代码,诸如ErrorExecutedAgreementCacheGarbageCollected。在另一个实施例中,数据复制服务器308、310可以被配置为跟踪最低活动数据提取GSN,并且可以将该最低活动数据提取GSN分发到跨数据中心的所有数据复制服务器(再次,基于每个复制的文件夹),使垃圾收集能够持续进行。
如上所述,执行的协议高速缓存可以被配置为每个复制的文件夹数据结构,使得数据复制服务器308、310可以各自访问和维护多个高速缓存,一个高速缓存用于每个复制的文件夹数据结构。
根据一个实施例,与复制的数据结构相关联的管理或操作命令(诸如对选择性复制正则表达式的更改)会导致刷新相应的执行的协议高速缓存,然后所述高速缓存可以从头开始重建。当批准和实施命名空间更改操作的提议时,可能会发生这种重建。
名称映射服务
如上所述,名称映射服务MapFilename API调用可以由数据复制服务器308、310实现。该API的使用可以包括:
1、在DCO 214中,版本桥接服务器312可以被配置为在接收到传送文件的请求时调用该方法。然后,当已知为Create-GSN时,被调用的名称映射服务将映射文件的名称,Create-GSN是与创建文件相关联的GSN。在读取文件期间,如果读取失败,则版本桥接服务器312将再次调用名称映射服务以确定文件名在读取文件数据时是否改变。
2、在RDC 216中,数据复制服务器将调用名称映射服务以在开始写入之前以及将提取的数据写入本地文件失败时映射文件名。
根据一个实施例,由于版本桥接服务器312在上面列举的第一次使用中不在进程中而在上面的第二次使用中在进程中,因此名称映射服务器可以被配置为既可用作Request API又可用作同一Java虚拟机(JVM)中的本地方法。其他实现方式也是可能的。
名称映射服务MapFilename的输入和输出参数
根据一种实现方式,名称映射服务的输入参数可以包括:
1、Create-GSN
a、这是创建文件或对象的GSN;
2、Path-in(路径输入)
a、Path-in是远程数据中心请求数据的文件的完全限定路径;
b、Path-in不能是目录;
根据一个实施例,名称映射服务的输出参数可以包括:
1、ReturnValue(返回值)
a、ReturnValue可能是'FileExistsUnchanged',意味着文件自Create-GSN起无改变;
b、ReturnValue可能是'FileExistsChanged',意味着文件自写入(自其Create-GSN)以来已经发生了变化;
c、ReturnValue可能是'FileDeleted',意味着该文件不再存在;
d、ReturnValue'ErrorExecuted agreement cacheGarbageCollected'ReturnValue表示该文件与之后被垃圾收集的Create-GSN相关联;以及
e、ReturnValue'AbortPullRepairComingUp'表示应该中止此文件的数据提取,因为已安排修复操作。
2、NewPath(新路径)
如果返回值为'FileExistsUnchanged',那么'NewPath'返回值是文件的路径,因为它当前存在于底层文件系统中,并且自文件的Create-GSN起无改变。此输出参数跟踪从Create-GSN到底层存储器的当前GSN的Path-in的更改。以这种方式跟踪和报告对文件名的更改和对任何父目录组件的更改。
3、对文件有效的数据长度
a、此输出参数说明可能已删除文件末尾数据的任何可能的截断操作。
名称映射服务的操作
根据一个实施例,当调用名称映射服务时,可以执行下面详述的功能和操作中的一个或更多个。
在被调用时,名称映射服务可以检查与调用API的文件相关联的Create-GSN是否小于存储在执行的协议高速缓存中的最低GSN。如果是这样,返回'ErrorExecutedagreement cacheGarbageCollected',因为数据复制服务器将无法检查执行的协议高速缓存是否有变化。
逐步执行由GSN(该GSN大于与调用名称映射服务的文件相关联的Create-GSN)标识的执行的协议高速缓存中的每个条目,直到达到执行的协议高速缓存中存储的最大(在一个实施例中为最高)GSN为止。对于每个这样的条目,可以执行以下操作。
如果ExecutedAgreementCacheEntry.Pathl(执行的协议高速缓存中的条目中的文件的路径)与输入参数Path-in完全匹配,则要执行的步骤取决于基础文件操作。如果文件操作是重命名,则将Path-in替换为执行的协议高速缓存中的新路径'ExecutedAgreementCacheEntry.Path2',并继续迭代执行的协议高速缓存中的其余条目。如果操作是追加或截断,则保存Executed AgreementCacheEntry.FileLength以返回给调用者并继续迭代执行的协议高速缓存条目中的其余条目。如果操作是删除,则立即返回FileDeleted,如果操作是修复,则立即返回AbortPullRepairComingUp。
如果ExecutedAgreementCacheEntry.Pathl与Path-in不匹配,则提取Path-in的父目录。例如,如果Path-in是/user/jagane/hive-tables/weblogs/fileABC,则Path-in的父目录是/user/jagane/hive-tables/weblogs。如果Executed agreementCacheEntry.Pathl比Path-in父目录长,则数据复制服务器应继续迭代执行的协议高速缓存中的其余条目(具有比调用名称映射服务的文件的Create-GSN更大的GSN)。
当ExecutedAgreementCacheEntry.Pathl被确定为小于或等于Path-in父目录时,执行以下操作。如果Executed agreement CacheEntry.Pathl等于Path-in-parentdir的某些前缀子字符串,则表示已对Path-in其中一个父目录组件进行操作。请注意,ExecutedAgreementCacheEntry.Pathl必须是目录,此时不能是文件。如果操作是重命名,则Path-in-parentdir上的前缀将替换为ExecutedAgreement CacheEntry.Path2,并重新组合Path-in。继续上面开发的示例,如果ExecutedAgreementCacheEntry.Pathl是/user/jagane/hive-tables,并且如果ExecutedAgreement CacheEntry.Path2是/user/jagane/archived-hive-tables,那么用/user/jagane/archived-hive-tables/weblogs/fileABC替换Path-in。然后,继续迭代执行的协议高速缓存条目的其余条目。如果操作是删除,则删除整个子目录,并立即返回FileDeleted。如果操作是修复,则返回AbortPullRepairComingUp。请注意,此时追加和截断是无效操作,因为ExecutedAgreementCacheEntry.Pathl必须是目录。
如果Executed agreement CacheEntry.Pathl不等于Path-in-parentdir(根目录除外)的任何前缀子字符串,则继续迭代其余的执行的协议高速缓存条目。如果在上面的循环结束时没有遇到Path-in的任何匹配,则返回FileExistsUnchanged。如果在上面的循环结束时遇到了一些更改,无论是对Path-in还是对长度的更改,那么返回FileExistsChanged,且新路径和新长度作为返回值。
增强对DCO的源文件名调用名称映射服务
如本文所示和所述,数据复制服务器308可以被配置为维持执行的协议高速缓存309,其被配置为高速缓存在特定GSN处执行的文件系统操作的细节。根据一个实施例,该执行的协议高速缓存309可以被配置为向版本桥接服务器312提供名称映射服务,以请求将过去的特定GSN处的文件名映射到底层文件系统的当前状态(直到执行的协议高速缓存中的最高GSN)。
注意,在来自DCO处的数据复制服务器310的提取请求到达DCO 214处的版本桥接服务器312之前、期间或之后,数据复制服务器308可以执行重命名/删除协议。这些可能性中的每一个都在下面依次讨论。
在提取请求之前数据复制服务器执行的重命名/删除协议
图4是示出在从RDC接收到提取请求之前重命名/删除源文件或父路径的情况的框图。如图所示,(1)表示由RDC 216中的数据复制服务器310发出并指向DCO中的版本桥接服务器312的提取请求。例如,考虑到其所请求的数据的文件的文件名或父目录可能自其初始写入以来可能已经改变的可能性,数据复制服务器310可以请求文件MapFilename/jagane/hive/的名称映射。如在(2)处所示,已经接收到该提取请求的版本桥接服务器312调用名称映射服务,该服务由数据复制服务器308针对执行的协议高速缓存309中执行的协议执行,其中最大GSN现在是50(在该示例中)。响应于此,名称映射服务将迭代遍历GSN 21至50,在GSN 21和GSN 50之间的间隔时间内搜索对jagane/hive/foo.tmp的可能改变。在该示例中,名称映射服务发现/jagane/hive/foo.tmp确实在GSN 21和GSN 50之间的某个GSN更改为/Jagane/hive/foo。然后将该信息返回到版本桥接服务器312,接着,版本桥接服务器读取来自分布式文件系统316的/Jagane/hive/foo(而不是读取/jagane/hive/foo.tmp)并将新文件名和存储在其中的数据返回到RDC中的数据复制服务器310,以便将其异步复制到远程存储器318。
在由版本桥接服务器服务于提取请求时由数据复制服务器执行重命名/删除协议
图5是示出在版本桥接服务器正在服务于远程提取请求的同时重命名/删除源文件或父路径的情况的框图。在版本桥接服务器312正在从底层存储器316读取文件以满足远程提取请求的任何时候,数据复制服务器可以执行另一个协议,该协议重命名/删除作为提取请求的主题的文件或作为提取请求主题的文件的路径。在这种情况下,文件提取将在进程中失败,因为文件已重命名或删除,或者路径已更改。根据一个实施例,版本桥接服务器312再次调用名称映射服务以映射源文件的名称/路径。名称映射服务的返回值将指示文件是否以其他名称存在或是否已删除。
如图5所示,RDC 216的数据复制服务器310可以发送针对特定文件的提取请求,并且DCO 214的版本桥接服务器312可以接收针对特定文件的提取请求,如(1)所示。在该示例中,提取请求用于Create-GSN 21处的文件Jagane/hive/foo.tmp。如(2)所示,DCO 214处的版本桥接服务器312然后调用数据复制服务器308以在包含在执行的协议高速缓存309中执行的协议的元数据的高速缓存的条目上执行名称映射服务,该协议高速缓存309当前存储执行的协议直到GSN 32。名称映射服务返回值/Jagane/hive/foo.tmp,指示自GSN 21以来foo.tmp无改变(即,没有被重命名或删除)。如(3)所示,然后,DCO 214中的版本桥接服务器312通过读取映射的文件名开始服务于提取请求,在这个时候,文件名仍然是/Jagane/hive/foo.tmp。
如(4)所示,在服务于提取请求的同时,数据复制服务器308执行将/Jagane/hive/foo.tmp重命名为/Jagane/hive/foo的协议。这导致提取请求失败,因为版本桥接服务器312不能再继续读取/Jagane/hive/foo.tmp,因为该文件已被重命名,而/Jagane/hive/foo.tmp不再存在。响应于此,已经服务于提取/Jagane/hive/foo.tmp的请求的版本桥接服务器312现在调用数据复制服务器308以重新执行对/Jagane/hive/foo.tmp、执行的协议高速缓存309中的高速缓存的元数据的GSN 21的名称映射服务,其中协议高速缓存309现在存储直到GSN 50的协议(将'foo.tmp'重命名为'foo'可能发生在GSN 32和GSN50之间的某处)。名称映射服务返回映射的信息/jagane/hive/foo。版本桥接服务器312现在可以通过读取映射的文件/Jagane/hive/foo并将其提供给RDC 216中的数据复制服务器310来继续服务于提取请求,数据复制服务器310将使用映射的元数据更新其自己执行的协议高速缓存311并将所提取的数据写入RDC 216中的存储器318。
从远程站点提取请求后重命名/删除源文件或父路径
如果提取请求已经完成并且此后仅重命名或删除文件或父路径,则不采取动作,因为DCO 214和RDC 216中执行的协议高速缓存将被适当地更新而不干扰任何先前的或正在进行的拉动请求。所有数据中心将通过各自执行的协议高速缓存了解重命名/删除,因为这些是同步的。
远程数据中心的数据复制服务器用于对目标文件名调用名称映射服务
根据一个实施例,数据复制服务器被配置为提取数据并异步地将提取的数据写入本地文件。如果重命名或删除了数据复制服务器正在写入的本地文件,则此进程可能会因失败而中断。这是因为在提取和写入数据的同时继续执行元数据操作(即协议)。根据一个实施例,为了解决这种可能性,数据复制服务器的名称映射服务用于将目标文件映射到新重命名的文件。当远程数据复制服务器310执行导致数据提取的协议时,根据一个实施例,创建数据复制拷贝对象,该数据复制拷贝对象与GSN相关联。此GSN用于两个目的:
1、提取数据的同时,GSN从删除数据复制服务器传递到DCCO 214的版本桥接服务器309;
2、当对本地文件的写入失败时,GSN用作名称映射服务的参数。
注意,重命名/删除协议可以在执行数据复制的线程之前、期间或之后由数据复制服务器中的另一个线程异步执行:
情况1:在数据复制线程可以开始写入提取的数据之前,重命名和/或删除目标文件或父路径;
情况2:当数据复制线程正在写入提取的数据时,重命名和/或删除目标文件或父路径;和
情况3:在数据复制线程完成写入提取的数据之后,重命名和/或删除目标文件或父路径。这无关紧要,因为执行的协议高速缓存中的元数据将同步更新并远程传播。
如上所述,根据一个实施例,数据复制拷贝对象是在RDC 216中实现数据的异步拷贝的机制。数据复制拷贝对象具有其自己的执行线程,为其提供独立于元数据修改运行的能力。因此,数据复制拷贝对象实现启用同步元数据操作和异步数据操作。
根据一个实施例,当创建数据复制拷贝对象时,给出其正被提取数据的文件的名称和文件被命名的GSN号。这使数据复制拷贝对象可以做两件事:
1、当从DCO 214请求数据时,RDC 216的版本桥接服务器提供要从中提取数据的文件名和调用该文件的GSN。
2、当RDC 216的数据复制服务器将从DCO 214的分布式文件系统提取的数据写入RDC 216的分布式文件系统时,根据一个实施例,使用这两个参数(GSN和Filename)调用名称映射服务,用于确定文件名是否更改。也就是说,RDC 216处的客户端应用程序306可能在已经写入提取的数据之前或者正在写入提取的文件数据时对数据进行了更变。如果文件名在GSN和底层文件系统的当前状态之间已经改变,则数据复制服务器310将使用来自RDC216处执行的协议高速缓存311的元数据写入底层文件系统的当前状态中命名的文件。这用作最终检查以确保正在写入的数据是当前的、截至存储在执行的协议高速缓存311中的最新GSN。
由于每个数据中心中执行的协议高速缓存可以在易失性随机存取存储器(例如,动态随机存取存储器(DRAM))中实现,因此,在电源故障或与之连接的数据复制服务器发生故障时很容易丢失其数据。在这样的实现方式中,在数据复制服务器故障时,新选择的写入者将以空的执行的协议高速缓存开始,并且可能返回异常高数量的ErrorExecutedAgreementCacheGarbageCollected。然而,根据一个实施例,执行的协议高速缓存可以持久存储在非易失性存储器中,使其能够根据需要,诸如在例如写入者故障/重新选择的情况下至少部分地恢复(截至上次执行的协议高速缓存持久存储在非易失性存储器中)。非易失性存储器是存储器316和/或318的一部分,或者在其自己的专用非易失性存储器中。
根据一个实施例,当文件名和/或路径更改并且变得不一致时,整个复制的文件夹可能被标记为不一致且不可信。根据另一实施例,变得不一致的文件/文件夹可以持久存储在非易失性存储器中,使得仅能够修复不一致的特定子目录,如本文详述的。
根据另一实施例,提取数据的远程数据中心不一定需要从数据源中心提取数据。给定分布式文件系统中数据的一个拷贝等效性质,RDC 216可以到达另一个数据中心(即,除了DCO 214之外),并从该另一个数据中心请求(提取)相同的数据。这可能出于各种原因,包括负载平衡、带宽管理、灾难恢复、在线建立新的数据中心等。
图6是根据一个实施例的在分布式文件系统中维持复制的文件夹的一致性的计算机实现方法的流程图。分布式文件系统可以通过计算机网络(至少)跨越第一数据中心和第二数据中心。如框B61所示,该方法可以包括在第一数据中心并代表第一数据中心中的应用程序客户端接收在复制的文件夹中创建文件的商定提议和与该商定提议相关联的GSN。框B62要求在连接到第一数据中心(图3中的214)中的第一数据复制服务器(例如,在图3中的308处示出)的第一执行的协议高速缓存(例如,在图3中的309处示出)中存储要创建的文件的元数据和与商定的提议相关联的GSN。此后,如B63所示,元数据和相关联的GSN可以同步存储在连接到第二数据中心(如图3中的附图标记216所示)中的第二数据复制服务器(图3中的310)的第二执行的协议高速缓存(图3中的311)中。然后,可以由第一数据中心中的第一数据复制服务器代表应用程序客户端(图3中的304)在存储器中(例如,在图3中的存储器316中)创建文件,如B64所示。然后,客户端应用程序可以将数据写入第一数据中心的存储器中的创建文件,如框B65所示。
如框B66所示,计算机实现的方法可以进一步包括保持执行的协议高速缓存同步并在对文件的更改的提议达成时达到最新。实际上,在第一数据中心中接收的用于更改文件的文件名、路径或数据的与任何商定的提议相对应的更新的元数据和相关的GSN可以存储在第一执行的协议高速缓存中,第二执行的协议高速缓存中更新的元数据以及相关的GSN也可以同步存储在第二数据中心中。同样地,在第二数据中心中接收的用于更改文件的文件名、路径或数据的与任何商定的提议相对应的更新的元数据和相关的GSN可以存储在第二执行的协议高速缓存中,并且更新的元数据和关联的GSN可以同步存储在第一执行的协议高速缓存中。
在图7中,框B71要求从第二数据中心接收对文件数据的请求(这里也称为数据提取请求),该请求至少包括与创建请求其数据的文件的协议相关联的Create-GSN。响应于接收到请求,框B72要求在第一执行的协议高速缓存中搜索与GSN相关联的文件的更新的元数据,该GSN(例如,代表最近商定的提议)大于请求其数据的文件的Create-GSN。这将捕获自启动提取请求以来对文件所做的任何更改。在搜索第一执行的协议高速缓存的条目之后,如果搜索没有找到更新的元数据,则框B73指定读取与请求中接收的元数据相对应的数据,并且如果搜索找到的更新的元数据,则读取与更新的元数据相对应的数据。然后,响应于从第二数据中心接收的对文件数据的请求,可以提供读取数据,如B74所示。
在图8中,可以搜索第二执行的协议高速缓存中的条目,如B81所示,搜索用于与GSN相关联的文件的元数据,该GSN大于与更新的元数据相关联的GSN。在搜索了第二执行的协议高速缓存的条目之后,如B82所示,如果搜索第二执行的协议高速缓存没有找到更新的元数据,则可以将提供的数据写入第二数据中心的存储器中(如B83所示)(对该文件没有进行干预更改),如果在搜索第二执行的协议高速缓存中找到更新的元数据,则读取与在第二执行的协议高速缓存中找到的元数据相对应的数据并将读取的数据写入第二数据中心的存储器,如B84所示(进行了干预更改,通过在第二执行的协议高速缓存中查找更新的元数据来证明。
根据一个实施例,可以通过执行名称映射服务API来执行搜索。第一和第二执行的协议高速缓存的至少一部分可以分别被记录(即,持久保存)在第一和第二数据中心的非易失性存储器中。如果需要重建执行的协议高速缓存,则可以检索其在非易失性存储器中的版本、根据需要进行垃圾收集并更新到当前协议的GSN。根据另一实施例,执行的协议高速缓存未记录在易失性存储器中,并且根据需要简单地从头开始重建。
计算机实现的方法的另一个实施例可以包括:在第一数据中心中提供第一执行的协议高速缓存,并在第二数据中心中提供第二执行的协议高速缓存;接收关于创建或更改存储在第一数据中心和第二数据中心的文件的提议的协议;在第一执行的协议高速缓存和第二执行的协议高速缓存之一中存储由所接收的协议引用的文件的元数据;在创建或更改被所接收的协议所引用的文件之前,使第一执行的协议高速缓存和第二执行的协议高速缓存保持彼此同步;仅在第一执行的协议高速缓存和第二执行的协议高速缓存已同步之后,才创建或更改被所接收的协议所引用的文件;以及每当在第一数据中心或第二数据中心中接收到针对存储在第一数据中心或第二数据中心中对文件的数据的请求时,检查第一执行的协议高速缓存和第二执行的协议高速缓存中的至少一个用于更新的元数据,并且响应于所接收的请求,在找到更新的元数据时提供对应于更新的元数据的数据。
GSN可以与每个协议相关联,并且每个协议的GSN可以与元数据一起存储在第一执行的协议高速缓存和第二执行的协议高速缓存中。可以通过使用与更新的元数据相关联的GSN在第一执行的协议高速缓存和/或第二执行的协议高速缓存中搜索用于文件的更新的元数据的条目来执行检查或搜索更新的元数据。可以通过对第一执行的协议高速缓存中的条目调用名称映射服务的第一数据复制服务器在第一数据中心中执行检查或搜索,并且可以通过对第二执行的协议缓存中的条目调用名称映射服务的第二数据复制服务器在第二数据中心中执行检查或搜索。
可以在第一版本桥接服务器中的第一数据中心中接收对数据的请求,该第一版本桥接服务器被配置为使第一数据复制服务器调用名称映射服务以检查第一执行的协议高速缓存以获得与所请求的数据相对应的更新的元数据。类似地,可以在第二版本桥接服务器中的第二数据中心中接收针对数据的请求,该第二版本桥接服务器被配置为使得第二数据复制服务器调用名称映射服务以检查第二执行的协议高速缓存,以获得对应于所请求数据的更新的元数据。当在第一执行的协议高速缓存中找到更新的元数据时,第一版本桥接服务器检索并提供与更新的元数据相对应的数据而可以执行数据请求服务。同样地,在第二执行的协议高速缓存中找到更新的元数据时,可以通过第二版本桥接服务器检索并提供与更新的元数据相对应的数据而可以执行数据请求服务。以这种方式,由第一数据中心中的第一数据复制服务器针对存储在第二数据中心中的数据发出的所有请求可以由第二数据中心中的第二版本桥接服务器提供服务,并且其中由第二数据中心中的第二数据复制服务器针对存储在第一数据中心中的数据的发出的所有请求可以由第一数据中心中的第一版本桥接服务器提供服务。
图9示出了可以利用其实现实施例的计算装置900的框图。计算机系统900可以包括总线901或用于传递信息的其他通信机制,以及与总线901连接而用于处理信息的一个或更多个处理器902。计算机系统900还包括随机存取存储器(RAM)或其他动态存储装置904(称为主存储器),其连接到总线901,用于存储将由处理器902执行的信息和指令。主存储器904还可以用于在处理器902执行指令期间存储临时变量或其他中间信息。计算装置900还可以包括只读存储器(ROM)和/或其他静态存储装置906,其连接到总线901,用于存储用于处理器902的静态信息和指令。非暂时性有形数据存储装置907(例如磁盘或闪存存储器)可以连接到总线901,用于存储信息和指令。非暂时性有形数据存储装置可以被配置为存储计算机可读指令,当由处理器902执行时,该计算机可读指令使计算系统执行本文描述和示出的实施例中的一个或更多个。计算装置900还可以经由总线901连接到显示装置910,用于向计算机用户显示信息。包括字母数字键和其他键的字母数字输入装置922可以连接到总线901,用于将信息和命令选择传送到处理器902。另一种类型的用户输入装置是光标控制器923,诸如鼠标、轨迹球或光标方向键以用于将方向信息和命令选择传送到处理器902并用于控制显示器921上的光标移动。计算装置900可以经由通信装置(例如,调制解调器,NIC)连接到网络926和分布式计算系统的一个或多个节点。
实施例涉及计算装置和/或多个这样的计算装置的使用,以通过计算机网络维持数据中心之间的元数据和数据的一致性。根据一个实施例,本文描述的方法和系统可以响应于处理器902执行包含在存储器904中的指令序列而由一个或更多个计算装置900提供。这些指令可以从另一计算机读取可读介质(诸如数据存储装置907)读入存储器904。包含在存储器904中的指令序列的执行使得处理器902执行这些步骤并具有本文所述的功能。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令组合以实现本发明。因此,本发明不限于硬件电路和软件的任何特定组合。实际上,本领域技术人员应该理解,任何合适的计算装置都可以实现本文描述的功能。计算装置可以包括用于执行期望功能的一个或多个微处理器。在一个实施例中,由一个微处理器或多个微处理器执行的指令可操作以使微处理器执行本文所述的步骤。指令可以存储在任何计算机可读介质中。在一个实施例中,它们可以存储在微处理器外部的非易失性半导体存储器上,或者与微处理器集成在一起。在另一个实施例中,指令可以存储在盘上并在由微处理器执行之前读入易失性半导体存储器。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。虽然已经描述了某些示例实施例,但是这些实施例仅作为示例呈现,并且不旨在限制本文公开的发明的范围。因此,前面的描述中的任何内容都不旨在暗示任何特定的特征、特性、步骤、模块或块是必需的或必不可少的。实际上,本文描述的新方法和系统可以以各种其他形式体现;此外,在不脱离本文公开的实施例的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。
Claims (18)
1.一种计算机实现的方法,用于维持分布式文件系统中复制的文件夹的一致性,所述分布式文件系统通过计算机网络跨越至少第一数据中心和第二数据中心,所述方法包括:
在所述第一数据中心中,代表所述第一数据中心中的应用程序客户端,接收用于在复制的文件夹中创建文件的商定提议和与所述商定提议相关联的全局序列号(GSN);
在与所述第一数据中心中的第一数据复制服务器连接的第一执行的协议高速缓存中存储要创建的文件的元数据和与所述商定提议相关联的所述GSN;
将所述元数据和所述关联的GSN同步存储在第二执行的协议高速缓存中,所述第二执行的协议高速缓存连接到所述第二数据中心中的第二数据复制服务器;
代表所述应用程序客户端在所述第一数据中心的存储器中创建所述文件;以及
使所述应用程序客户端能够将数据写入所述第一数据中心的存储器中的创建文件。
2.如权利要求1所述的计算机实现的方法,还包括:
存储与在所述第一数据中心接收的任何商定提议相对应的更新的元数据和相关GSN,以改变所述第一执行的协议高速缓存中文件的文件名、路径或数据,并在所述第二数据中心中的第二执行的协议高速缓存中同步存储更新的元数据和相关GSN。
3.如权利要求1所述的计算机实现的方法,还包括:
存储与在所述第二数据中心接收的任何商定提议相对应的更新的元数据和相关GSN,以改变所述第二执行的协议高速缓存中文件的文件名、路径或数据,并在第一执行的协议高速缓存中同步存储更新的元数据和相关GSN。
4.如权利要求1所述的计算机实现的方法,还包括:
接收来自所述第二数据中心的关于文件数据的请求,所述请求至少包括与用于创建其数据被请求的文件的协议相关联的Create-GSN;
响应于接收到请求,在第一执行的协议高速缓存的条目中搜索与GSN相关联的文件的更新的元数据,所述GSN大于其数据被请求的文件的Create-GSN;
在搜索到所述第一执行的协议高速缓存的条目之后,如果搜索没有找到更新的元数据,则读取与请求中接收的元数据相对应的数据,而如果搜索找到更新的元数据,则读取与更新的元数据相对应的数据;以及
响应于从所述第二数据中心接收的、针对文件数据的请求,提供所述读取的数据。
5.如权利要求4所述的计算机实现的方法,还包括:
在所述第二执行的协议高速缓存的条目中搜索与GSN相关联的文件的元数据,所述GSN大于与更新的元数据相关联的GSN;并
在搜索所述第二执行的协议高速缓存的条目后:
如果搜索所述第二执行的协议高速缓存没有找到更新的元数据,则将提供的数据写入所述第二数据中心的存储器中;和
如果搜索所述第二执行的协议高速缓存找到更新的元数据,则读取与在所述第二执行的协议高速缓存中找到的元数据相对应的数据,并且将所述读取的数据写入所述第二数据中心中的存储器中。
6.如权利要求2所述的计算机实现的方法,其中,通过执行名称映射服务应用程序接口(API)来执行搜索。
7.如权利要求1所述的计算机实现的方法,还包括:来自所述第二数据中心的关于文件数据的请求被所述第一数据中心中的第一版本桥接服务器接收,所述第一版本桥接服务器是独立的并且不同于所述第一数据复制服务器。
8.如权利要求1所述的计算机实现的方法,还包括:
周期性地将所述第一执行的协议高速缓存的至少一部分持久保存在所述第一数据中心的非易失性存储器中;和
周期性地将所述第二执行的协议高速缓存的至少一部分持久保存在所述第二数据中心的非易失性存储器中。
9.一种计算机实现的方法,包括:
在第一数据中心提供第一执行的协议高速缓存,并在第二数据中心提供第二执行的协议高速缓存;
接收关于在所述第一数据中心和所述第二数据中心中创建或更改存储在所述第一数据中心和所述第二数据中心中的文件的提议的协议;
在所述第一执行的协议高速缓存和所述第二执行的协议高速缓存之一中存储由所接收的协议引用的文件的元数据;
在创建或更改被所接收的协议所引用的文件之前,使所述第一执行的协议高速缓存和所述第二执行的协议高速缓存保持彼此同步;
仅在所述第一执行的协议高速缓存和所述第二执行的协议高速缓存已同步之后,才创建或更改被所接收的协议所引用的文件;以及
每当在所述第一数据中心或所述第二数据中心中接收到针对存储在所述第一数据中心或所述第二数据中心中的文件的数据的请求时,搜索所述第一执行的协议高速缓存和所述第二执行的协议高速缓存中的至少一个以获得更新的元数据,并且响应于所接收的请求,在找到更新的元数据时提供与更新的元数据对应的数据。
10.如权利要求9所述的计算机实现的方法,还包括:将全局序列号(GSN)与每个协议相关联,并将每个协议的GSN与所述元数据一起存储在所述第一执行的协议高速缓存和所述第二执行的协议高速缓存中,并且其中,
通过使用与更新的元数据相关联的GSN在所述第一执行的协议高速缓存和所述第二执行的协议高速缓存中的至少一个协议高速缓存的条目中搜索文件的更新的元数据来检查更新的元数据。
11.如权利要求9所述的计算机实现的方法,其中,由第一数据复制服务器对所述第一执行的协议高速缓存中的条目调用名称映射服务而在所述第一数据中心中执行检查,并且其中,由第二数据复制服务器对所述第二执行的协议高速缓存中的条目调用名称映射服务而在所述第二数据中心中执行检查。
12.如权利要求11所述的计算机实现的方法,还包括:
在第一版本桥接服务器中接收针对所述第一数据中心中的数据的请求,所述第一版本桥接服务器被配置为使所述第一数据复制服务器调用所述名称映射服务以检查所述第一执行的协议高速缓存以获得与所请求的数据相对应的更新的元数据;和
在第二版本桥接服务器中接收针对所述第二数据中心中的数据的请求,所述第二版本桥接服务器被配置为使所述第二数据复制服务器调用所述名称映射服务以检查所述第二执行的协议高速缓存以获得与所请求的数据相对应的更新的元数据。
13.如权利要求12所述的计算机实现的方法,还包括:
当在所述第一执行的协议高速缓存中找到更新的元数据时,所述第一版本桥接服务器检索并提供与更新的元数据相对应的数据,从而服务于数据请求;和
当在所述第二执行的协议高速缓存中找到更新的元数据时,所述第二版本桥接服务器检索并提供与更新的元数据相对应的数据,从而服务于数据请求。
14.如权利要求12所述的计算机实现的方法,其中,由所述第一数据中心中的第一数据复制服务器针对存储在所述第二数据中心中的数据发出的所有请求由所述第二数据中心中的第二版本桥接服务器提供服务,并且其中,由所述第二数据中心中的第二数据复制服务器针对存储在所述第一数据中心中的数据发出的所有请求由所述第一数据中心中的第一版本桥接服务器提供服务。
15.一种计算机实现的系统,其跨越连接到计算机网络的第一数据中心和第二数据中心,所述系统包括:
在第一数据中心中:第一存储器;第一数据复制服务器;第一高速缓存,用于存储元数据;和第一版本桥接服务器;和
在第二数据中心中:第二存储器;第二数据复制服务器;第二高速缓存,用于存储元数据;和第二版本桥接服务器;
其中,所述第一高速缓存和所述第二高速缓存被配置为存储被存储在所述第一存储器和所述第二存储器中的数据的元数据,并且彼此保持一致;
其中,从所述第二数据中心发出的、针对存储在所述第一存储器中的数据的请求由所述第一版本桥接服务器提供服务,所述第一版本桥接服务器被配置为使所述第一复制服务器在所述第一高速缓存中搜索所请求数据的更新的元数据,所述第一版本桥接服务器还被配置为当在所述第一高速缓存中找到更新的元数据时向所述第二数据中心提供与更新的元数据相对应的数据;以及
其中,从所述第一数据中心发出的、针对存储在所述第二存储器中的数据的请求由所述第二版本桥接服务器提供服务,所述第二版本桥接服务器被配置为使所述第二复制服务器在所述第二高速缓存中搜索更新的元数据,所述第二版本桥接服务器还被配置为当在所述第二高速缓存中找到更新的元数据时向所述第一数据中心提供与更新的元数据相对应的数据。
16.如权利要求15所述的计算机实现的系统,其中,所述第一高速缓存和所述第二高速缓存中的每个条目被配置为存储全局序列号(GSN),并且其中,所述第一数据复制服务器和所述第二数据复制服务器中的每个被配置为使用所述GSN分别搜索所述第一高速缓存和所述第二高速缓存以获得所请求数据的更新的元数据。
17.如权利要求15所述的计算机实现的系统,其中,所述第一数据复制服务器和所述第二数据复制服务器被配置为通过分别对所述第一高速缓存和所述第二高速缓存中的条目执行名称映射服务来分别搜索所述第一高速缓存和所述第二高速缓存。
18.如权利要求12所述的计算机实现的方法,其中,由所述第一数据中心中的第一数据复制服务器针对存储在所述第二数据中心中的数据发出的所有请求由所述第二数据中心中的第二版本桥接服务器提供服务,并且其中,由所述第二数据中心中的第二数据复制服务器针对存储在所述第一数据中心中的数据发出的所有请求由所述第一数据中心中的第一版本桥接服务器提供服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/457,837 US11360942B2 (en) | 2017-03-13 | 2017-03-13 | Methods, devices and systems for maintaining consistency of metadata and data across data centers |
US15/457,837 | 2017-03-13 | ||
PCT/US2018/022062 WO2018169886A1 (en) | 2017-03-13 | 2018-03-12 | Methods, devices and systems for maintaining consistency of metadata and data across data centers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110447021A true CN110447021A (zh) | 2019-11-12 |
CN110447021B CN110447021B (zh) | 2024-03-01 |
Family
ID=63446449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880016079.3A Active CN110447021B (zh) | 2017-03-13 | 2018-03-12 | 用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11360942B2 (zh) |
EP (1) | EP3596619B8 (zh) |
JP (1) | JP7009488B2 (zh) |
CN (1) | CN110447021B (zh) |
AU (1) | AU2018236167B2 (zh) |
CA (1) | CA3055301A1 (zh) |
WO (1) | WO2018169886A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309719A (zh) * | 2020-05-13 | 2020-06-19 | 深圳市赢时胜信息技术股份有限公司 | 一种对应HBase数据库的数据规范方法及系统 |
CN113032338A (zh) * | 2021-05-31 | 2021-06-25 | 智者四海(北京)技术有限公司 | 一种跨数据中心的数据存储和查询方法与系统 |
CN113539464A (zh) * | 2020-04-22 | 2021-10-22 | 西门子医疗有限公司 | 用于磁共振成像的智能扫描推荐 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10789217B2 (en) * | 2018-06-22 | 2020-09-29 | Microsoft Technology Licensing, Llc | Hierarchical namespace with strong consistency and horizontal scalability |
US11100086B2 (en) * | 2018-09-25 | 2021-08-24 | Wandisco, Inc. | Methods, devices and systems for real-time checking of data consistency in a distributed heterogenous storage system |
US11354324B1 (en) | 2018-10-31 | 2022-06-07 | Anaplan, Inc. | Method and system for servicing query requests using revisions maps |
US11475003B1 (en) * | 2018-10-31 | 2022-10-18 | Anaplan, Inc. | Method and system for servicing query requests using dataspaces |
US11580105B2 (en) | 2018-10-31 | 2023-02-14 | Anaplan, Inc. | Method and system for implementing subscription barriers in a distributed computation system |
US11573927B1 (en) | 2018-10-31 | 2023-02-07 | Anaplan, Inc. | Method and system for implementing hidden subscriptions in a distributed computation system |
US11281683B1 (en) | 2018-10-31 | 2022-03-22 | Anaplan, Inc. | Distributed computation system for servicing queries using revisions maps |
US11481378B1 (en) * | 2018-10-31 | 2022-10-25 | Anaplan, Inc. | Method and system for servicing query requests using document-based metadata |
CN109960687A (zh) * | 2019-03-28 | 2019-07-02 | 北京百分点信息科技有限公司 | 一种文件处理系统及方法 |
CN112597249B (zh) * | 2020-12-26 | 2023-06-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种业务数据的同步分发存储方法及系统 |
EP4315811A1 (en) | 2021-03-30 | 2024-02-07 | Cira Apps Limited | Hub and spoke architecture for cloud-based synchronization |
CN113778764B (zh) * | 2021-08-24 | 2023-10-27 | 百融至信(北京)科技有限公司 | 一种hbase数据双活系统及方法 |
CN113722401B (zh) * | 2021-11-04 | 2022-02-01 | 树根互联股份有限公司 | 数据缓存方法、装置、计算机设备及可读存储介质 |
US11954073B2 (en) * | 2022-03-16 | 2024-04-09 | International Business Machines Corporation | Multi-protocol multi-site replication |
CN115657956B (zh) * | 2022-11-02 | 2023-08-22 | 中国科学院空间应用工程与技术中心 | 一种应对缓存数据丢失的元数据一致性写入方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
US9020987B1 (en) * | 2011-06-29 | 2015-04-28 | Emc Corporation | Managing updating of metadata of file systems |
WO2015153045A1 (en) * | 2014-03-31 | 2015-10-08 | Wandisco, Inc. | Geographically-distributed file system using coordinated namespace replication |
US20160275125A1 (en) * | 2010-02-09 | 2016-09-22 | Google Inc. | Storage of Data in a Distributed Storage System |
Family Cites Families (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261085A (en) | 1989-06-23 | 1993-11-09 | Digital Equipment Corporation | Fault-tolerant system and method for implementing a distributed state machine |
DE4497149T1 (de) | 1993-09-24 | 1996-10-17 | Oracle Corp | Verfahren und Vorrichtung zum Replizieren von Daten |
US5699515A (en) | 1995-01-23 | 1997-12-16 | Hewlett-Packard Company | Backoff scheme for access collision on a local area network |
US5862346A (en) | 1996-06-28 | 1999-01-19 | Metadigm | Distributed group activity data network system and corresponding method |
US6006034A (en) | 1996-09-05 | 1999-12-21 | Open Software Associates, Ltd. | Systems and methods for automatic application version upgrading and maintenance |
US5781910A (en) | 1996-09-13 | 1998-07-14 | Stratus Computer, Inc. | Preforming concurrent transactions in a replicated database environment |
US6247059B1 (en) | 1997-09-30 | 2001-06-12 | Compaq Computer Company | Transaction state broadcast method using a two-stage multicast in a multiple processor cluster |
US6014669A (en) | 1997-10-01 | 2000-01-11 | Sun Microsystems, Inc. | Highly-available distributed cluster configuration database |
US6202067B1 (en) | 1998-04-07 | 2001-03-13 | Lucent Technologies, Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
US6261085B1 (en) | 1998-06-22 | 2001-07-17 | Reena Corporation | Tandem injection molding apparatus and press therefor |
US6401120B1 (en) | 1999-03-26 | 2002-06-04 | Microsoft Corporation | Method and system for consistent cluster operational data in a server cluster using a quorum of replicas |
US6513084B1 (en) | 1999-06-29 | 2003-01-28 | Microsoft Corporation | Arbitration of state changes |
US7013465B1 (en) | 1999-08-17 | 2006-03-14 | Emc Corporation | System, device and method for interprocessor communication in a computer system |
US7069320B1 (en) | 1999-10-04 | 2006-06-27 | International Business Machines Corporation | Reconfiguring a network by utilizing a predetermined length quiescent state |
US8332740B2 (en) | 2000-01-19 | 2012-12-11 | Graham John D | Systems and method for management of intangible assets |
US20140164262A1 (en) | 2012-12-11 | 2014-06-12 | John D. Graham | System and method for management of intangible assets |
US6898642B2 (en) | 2000-04-17 | 2005-05-24 | International Business Machines Corporation | Synchronous collaboration based on peer-to-peer communication |
US7185076B1 (en) | 2000-05-31 | 2007-02-27 | International Business Machines Corporation | Method, system and program products for managing a clustered computing environment |
US7155524B1 (en) | 2000-12-04 | 2006-12-26 | Lucent Technologies Inc. | Backoff protocols and methods for distributed mutual exclusion and ordering |
US6931431B2 (en) | 2001-01-13 | 2005-08-16 | International Business Machines Corporation | Agreement and atomic broadcast in asynchronous networks |
EP1449093A4 (en) | 2001-10-18 | 2005-06-08 | Univ Nebraska | ERROR TOLERANT FIREWALL LAYER STRUCTURES |
US7024429B2 (en) | 2002-01-31 | 2006-04-04 | Nextpage,Inc. | Data replication based upon a non-destructive data model |
US7305585B2 (en) | 2002-05-23 | 2007-12-04 | Exludus Technologies Inc. | Asynchronous and autonomous data replication |
US7558883B1 (en) | 2002-06-28 | 2009-07-07 | Microsoft Corporation | Fast transaction commit |
BRPI0314881B1 (pt) | 2002-10-25 | 2019-01-08 | S & C Electric Co | sistema e método para controle de distribuição de energia elétrica através de uma rede |
US8311980B2 (en) | 2002-12-09 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Namespace consistency for a wide-area file system |
US8315975B2 (en) | 2002-12-09 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Symbiotic wide-area file system and method |
US7197632B2 (en) | 2003-04-29 | 2007-03-27 | International Business Machines Corporation | Storage system and cluster maintenance |
US20050086384A1 (en) | 2003-09-04 | 2005-04-21 | Johannes Ernst | System and method for replicating, integrating and synchronizing distributed information |
US20050198493A1 (en) | 2003-09-17 | 2005-09-08 | Bartas John A. | Distribution methods and apparatus for promoting distributed digital content on a local network |
US8161438B2 (en) | 2003-10-21 | 2012-04-17 | Mentor Graphics Corporation | Determining mutual inductance between intentional inductors |
EP1591858B1 (en) | 2004-04-26 | 2016-04-13 | Micron Technology, Inc. | Trimming functional parameters in integrated circuits |
US7334154B2 (en) | 2004-06-18 | 2008-02-19 | Microsoft Corporation | Efficient changing of replica sets in distributed fault-tolerant computing system |
US7467078B2 (en) | 2004-07-16 | 2008-12-16 | Agilent Technologies Inc. | Portable distributed application framework |
US20060143517A1 (en) | 2004-12-22 | 2006-06-29 | Microsoft Corporation | Replicated virtual machine |
US9753754B2 (en) | 2004-12-22 | 2017-09-05 | Microsoft Technology Licensing, Llc | Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine |
US8103644B2 (en) | 2005-01-12 | 2012-01-24 | Microsoft Corporation | Data access layer class generator |
US8364633B2 (en) | 2005-01-12 | 2013-01-29 | Wandisco, Inc. | Distributed computing systems and system components thereof |
US9361311B2 (en) | 2005-01-12 | 2016-06-07 | Wandisco, Inc. | Distributed file system using consensus nodes |
US7224938B2 (en) | 2005-03-11 | 2007-05-29 | Freescale Semiconductor Inc. | Method of communicating with a network device |
US7765186B1 (en) | 2005-04-13 | 2010-07-27 | Progress Software Corporation | Update-anywhere replication of distributed systems |
US7426653B2 (en) | 2005-04-13 | 2008-09-16 | Progress Software Corporation | Fault tolerant distributed lock management |
US7814322B2 (en) | 2005-05-03 | 2010-10-12 | Sri International | Discovery and authentication scheme for wireless mesh networks |
US7400596B1 (en) | 2005-08-17 | 2008-07-15 | Rockwell Collins, Inc. | Dynamic, multicast routing using a quality of service manager |
US20100070982A1 (en) * | 2005-09-09 | 2010-03-18 | Pitts William M | Distributed File System Consistency Mechanism Extension For Accelerating Communications Between Distributed Applications |
US20070204078A1 (en) | 2006-02-09 | 2007-08-30 | Intertrust Technologies Corporation | Digital rights management engine systems and methods |
US7598751B2 (en) | 2006-08-14 | 2009-10-06 | Clemson University Research Foundation | Impedance-based arc fault determination device (IADD) and method |
JP4606404B2 (ja) | 2006-12-01 | 2011-01-05 | 富士通株式会社 | 計算資源管理プログラムおよび計算資源管理装置 |
US9390396B2 (en) | 2006-12-04 | 2016-07-12 | Excalibur Ip, Llc | Bootstrapping social networks using augmented peer to peer distributions of social networking services |
US7788522B1 (en) | 2007-05-31 | 2010-08-31 | Oracle America, Inc. | Autonomous cluster organization, collision detection, and resolutions |
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
US7849223B2 (en) | 2007-12-07 | 2010-12-07 | Microsoft Corporation | Virtually synchronous Paxos |
WO2009114483A1 (en) | 2008-03-08 | 2009-09-17 | Mentor Graphics Corporation | High-frequency vlsi interconnect and intentional inductor impedance extraction in the presence of a multi-layer conductive substrate |
US20100018014A1 (en) | 2008-07-23 | 2010-01-28 | Brian Boisclair | Messenger clamp |
KR100966566B1 (ko) | 2009-01-29 | 2010-06-29 | 엘지전자 주식회사 | 효율적인 공용 e-dch 관리를 위한 신호 전송 기법 |
US8336080B2 (en) | 2009-06-26 | 2012-12-18 | Symbol Technologies, Inc. | Methods and apparatus for rating device security and automatically assessing security compliance |
WO2011023134A1 (en) | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
US9141449B2 (en) | 2009-10-30 | 2015-09-22 | Symantec Corporation | Managing remote procedure calls when a server is unavailable |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8135987B2 (en) | 2010-06-03 | 2012-03-13 | Microsoft Corporation | Collection ordering for replicated state machines |
US20110314163A1 (en) | 2010-06-16 | 2011-12-22 | Mmb Research Inc. | Wireless communication network for smart appliances |
US9323775B2 (en) | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
US8954385B2 (en) * | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
EP2421225A1 (en) | 2010-08-20 | 2012-02-22 | Alcatel Lucent | Processing method, proxy processing agent, system and method for filling a routing table of a DHT client node, router and dht client node |
US8549142B2 (en) | 2011-03-28 | 2013-10-01 | Siemens Corporation | Replicated state machine utilizing view change protocol resilient to performance attacks |
US9652469B2 (en) | 2011-06-04 | 2017-05-16 | Microsoft Technology Licensing, Llc | Clustered file service |
US8818951B1 (en) | 2011-12-29 | 2014-08-26 | Emc Corporation | Distributed file system having separate data and metadata and providing a consistent snapshot thereof |
US9158843B1 (en) | 2012-03-30 | 2015-10-13 | Emc Corporation | Addressing mechanism for data at world wide scale |
US9904689B2 (en) | 2012-07-13 | 2018-02-27 | Facebook, Inc. | Processing a file system operation in a distributed file system |
US9369520B2 (en) * | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9582221B2 (en) | 2012-08-24 | 2017-02-28 | Vmware, Inc. | Virtualization-aware data locality in distributed data processing |
US8943178B2 (en) | 2012-08-29 | 2015-01-27 | International Business Machines Corporation | Continuous operation during reconfiguration periods |
US8769105B2 (en) | 2012-09-14 | 2014-07-01 | Peaxy, Inc. | Software-defined network attachable storage system and method |
US20140344453A1 (en) * | 2012-12-13 | 2014-11-20 | Level 3 Communications, Llc | Automated learning of peering policies for popularity driven replication in content delivery framework |
CN102999633A (zh) | 2012-12-18 | 2013-03-27 | 北京师范大学珠海分校 | 网络信息的云聚类提取方法 |
US8977594B2 (en) * | 2012-12-21 | 2015-03-10 | Zetta Inc. | Systems and methods for state consistent replication |
US9444899B2 (en) | 2012-12-26 | 2016-09-13 | Microsoft Technology Licensing, Llc | Use of internet information services logging to collect user information in an asynchronous manner |
US9130943B1 (en) | 2013-03-11 | 2015-09-08 | Ca, Inc. | Managing communications between client applications and application resources of on-premises and cloud computing nodes |
US20140344323A1 (en) | 2013-03-15 | 2014-11-20 | Reactor8 Inc. | State-based configuration management for distributed systems |
US9009215B2 (en) | 2013-03-15 | 2015-04-14 | Wandisco, Inc. | Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment |
US9158472B2 (en) | 2013-06-25 | 2015-10-13 | Google Inc. | Hierarchical chunking of objects in a distributed storage system |
CN103458044B (zh) | 2013-09-12 | 2017-01-04 | 北京航空航天大学 | 一种面向广域网环境下多存储集群的元数据共享管理方法 |
US10585627B2 (en) * | 2016-03-24 | 2020-03-10 | Microsoft Technology Licensing, Llc | Distributed metadata management in a distributed storage system |
US10503427B2 (en) * | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11216315B2 (en) * | 2018-02-21 | 2022-01-04 | Rubrik, Inc. | Distributed semaphore with a different keys to reduce contention for dynamic reservation of disk space |
-
2017
- 2017-03-13 US US15/457,837 patent/US11360942B2/en active Active
-
2018
- 2018-03-12 CN CN201880016079.3A patent/CN110447021B/zh active Active
- 2018-03-12 AU AU2018236167A patent/AU2018236167B2/en active Active
- 2018-03-12 CA CA3055301A patent/CA3055301A1/en active Pending
- 2018-03-12 WO PCT/US2018/022062 patent/WO2018169886A1/en unknown
- 2018-03-12 EP EP18767539.2A patent/EP3596619B8/en active Active
- 2018-03-12 JP JP2019545967A patent/JP7009488B2/ja active Active
-
2022
- 2022-04-28 US US17/732,300 patent/US11704290B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
US20160275125A1 (en) * | 2010-02-09 | 2016-09-22 | Google Inc. | Storage of Data in a Distributed Storage System |
US9020987B1 (en) * | 2011-06-29 | 2015-04-28 | Emc Corporation | Managing updating of metadata of file systems |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
WO2015153045A1 (en) * | 2014-03-31 | 2015-10-08 | Wandisco, Inc. | Geographically-distributed file system using coordinated namespace replication |
Non-Patent Citations (1)
Title |
---|
A THOMSON等: "CalvinFS: Consistent WAN Replication and Scalable Metadata Management for Distributed File Systems", 《PROCEEDINGS OF THE 13TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113539464A (zh) * | 2020-04-22 | 2021-10-22 | 西门子医疗有限公司 | 用于磁共振成像的智能扫描推荐 |
CN111309719A (zh) * | 2020-05-13 | 2020-06-19 | 深圳市赢时胜信息技术股份有限公司 | 一种对应HBase数据库的数据规范方法及系统 |
CN111309719B (zh) * | 2020-05-13 | 2020-08-21 | 深圳市赢时胜信息技术股份有限公司 | 一种对应HBase数据库的数据规范方法及系统 |
CN113032338A (zh) * | 2021-05-31 | 2021-06-25 | 智者四海(北京)技术有限公司 | 一种跨数据中心的数据存储和查询方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
JP7009488B2 (ja) | 2022-01-25 |
CA3055301A1 (en) | 2018-09-20 |
EP3596619A1 (en) | 2020-01-22 |
US20180260409A1 (en) | 2018-09-13 |
US20230012697A1 (en) | 2023-01-19 |
WO2018169886A1 (en) | 2018-09-20 |
CN110447021B (zh) | 2024-03-01 |
AU2018236167A1 (en) | 2019-08-15 |
EP3596619B1 (en) | 2023-11-22 |
US11704290B2 (en) | 2023-07-18 |
EP3596619B8 (en) | 2023-12-27 |
US11360942B2 (en) | 2022-06-14 |
AU2018236167B2 (en) | 2022-03-03 |
JP2020514885A (ja) | 2020-05-21 |
EP3596619A4 (en) | 2020-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110447021A (zh) | 用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统 | |
JP6628730B2 (ja) | ワイド・エリア・ネットワーク上で同等の名前空間レプリカを用いる地理的に分散したファイルシステム | |
JP2021002369A (ja) | 索引更新パイプライン | |
US10831720B2 (en) | Cloud storage distributed file system | |
CN104281506B (zh) | 一种文件系统的数据维护方法及系统 | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US10817498B2 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
CN103002027B (zh) | 基于键值对系统实现树形目录结构的数据存储系统及方法 | |
WO2018059032A1 (zh) | 一种虚拟节点的数据迁移方法和虚拟节点 | |
JP2016524750A5 (zh) | ||
CN111078121A (zh) | 一种分布式存储系统数据迁移方法、系统、及相关组件 | |
CN102420854A (zh) | 面向云存储的分布式文件系统 | |
JP2013541057A (ja) | マップリデュース即時分散ファイルシステム | |
CN103458044A (zh) | 一种面向广域网环境下多存储集群的元数据共享管理方法 | |
CN102073739A (zh) | 带有快照功能的分布式文件系统中的数据读与数据写方法 | |
CN104331478A (zh) | 一种自精简存储系统数据一致性管理方法 | |
US20190073153A1 (en) | Efficient repository migration and storage | |
CN113449065A (zh) | 一种面向数据删重的去中心化存储方法及存储装置 | |
Junping | Analysis of key technologies of distributed file system based on big data [J] | |
Mangal et al. | Erlang Distributed File System (eDFS) |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40016497 Country of ref document: HK |
|
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Xilata Co. Address before: California, USA Applicant before: WANDISCO, Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |