CN103098443B - 分布式元数据高速缓存 - Google Patents

分布式元数据高速缓存 Download PDF

Info

Publication number
CN103098443B
CN103098443B CN201180043779.XA CN201180043779A CN103098443B CN 103098443 B CN103098443 B CN 103098443B CN 201180043779 A CN201180043779 A CN 201180043779A CN 103098443 B CN103098443 B CN 103098443B
Authority
CN
China
Prior art keywords
peer
metadata
file
request
client
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.)
Expired - Fee Related
Application number
CN201180043779.XA
Other languages
English (en)
Other versions
CN103098443A (zh
Inventor
S·S·德施卡
A·P·戈利
P·M·尼卡姆
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.)
Kioxia Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN103098443A publication Critical patent/CN103098443A/zh
Application granted granted Critical
Publication of CN103098443B publication Critical patent/CN103098443B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • 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/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

描述与分布式元数据高速缓存相关联的装置、方法和其它实施例。根据一个实施例,一种方法包括截获去往NFS服务器的元数据请求并且与对等体集合的成员通信以从由对等体集合维护的分布式元数据高速缓存满足元数据请求。元数据请求将已经源于参与对等分布式元数据高速缓存的对等体集合的成员。

Description

分布式元数据高速缓存
相关申请的交叉引用
本申请要求对通过引用而全部结合于此的、于2010年9月13日提交的第61/382,411号美国临时申请的优先权。
技术领域
本发明的各实施例涉及高速缓存,特别地,本发明的各实施例涉及分布式元数据高速缓存。
背景技术
常规网络文件系统(NFS)架构包括NFS服务器和一个或者多个NFS客户端。NFS客户端可以在存储器中和/或在固态设备(SSD)中存储数据和/或元数据。NFS服务器是用于文件和元数据二者的中央贮存库。元数据可以例如是关于文件的信息,该信息包括但不限于文件访问时间、文件所有者、文件更新时间和文件权限。NFS客户端可以从NFS服务器获取文件并且可以在NFS客户端存储器中存储文件及其元数据的本地副本。应用继而可以使用文件及其元数据的本地副本而无需跨越网络对在NFS服务器处存储的文件的副本工作。如果仅存在一个NFS客户端和仅一个文件以及对文件工作的仅一个应用,则存储文件的本地副本和元数据的本地副本可能不产生显著问题。
然而,NFS服务器可以与想要存储文件及其元数据的本地副本许多NFS客户端交互。继而,在NFS客户端上的许多应用可能想要与文件及其元数据的本地副本交互。在多个客户端存储被多个应用操作的多个本地副本时,容易想象高速缓存相干问题如何可能当元数据在NFS服务器和/或在NFS客户端变得过期时发生。例如,在两个不同NFS客户端上的两个应用可能在基本上相同时间对文件及其元数据的、不同NFS客户端的相应本地副本进行两个不同操作。
常规地,NFS已经通过集中文件和元数据控制、通过迫使NFS客户端向NFS服务器传送影响元数据的动作并且通过迫使NFS客户端定期(例如,每30秒)“退休”元数据来处理这一问题。在元数据被退休之后,NFS客户端可以向NFS服务器索取元数据的新副本。如果存在少量NFS客户端索取新副本,则这一退休/刷新协议可能不太繁重。然而,当NFS客户端数目增长得太大时,集中式元数据控制过程和退休/刷新协议可能使NFS服务器成为瓶颈。另外,如果文件和/或元数据仅被一个NFS客户端接触,则退休/刷新协议可能不必要。
图1图示了常规NFS客户端/服务器环境。第一应用110使用NFS客户端112以与NFS服务器130通信。类似地,第二应用130使用第二不同NFS客户端122以与NFS服务器130通信。第一应用110和第一NFS客户端112可以在第一计算机上运行,而第二应用120和第二NFS客户端122可以在第二计算机上运行。第一应用110和第一NFS客户端112可以与存储器114中存储的本地文件118和本地元数据119交互。类似地,第二应用120和第二NFS客户端122可以与存储器124中存储的本地文件128和本地元数据129交互。
在这一常规环境中,在NFS服务器130中集中元数据控制。元数据请求流向并且流过NFS服务器130。在NFS客户端112与NFS客户端122之间不存在涉及元数据的对等通信。当应用和/或NFS客户端数目增长得超出某一限制时,NFS服务器130可能不必要地成为瓶颈。
发明内容
在一个实施例中,一种被配置用于在分布式对等元数据高速缓存环境中操作的装置包括处理器、存储器、逻辑集合以及用于连接处理器、存储器和逻辑集合的接口。逻辑集合包括:第一逻辑,被配置用于存储与文件的本地副本相关联的元数据;第二逻辑,被配置用于存储有助于在对等元数据高速缓存环境中存储用于文件的本地副本的最新近元数据的数据;第三逻辑,被配置用于存储有助于在对等元数据高速缓存环境中对用于文件的本地副本的最新近元数据定位的数据;以及第四逻辑,被配置用于获取用于文件的本地副本的最新近元数据。
在一个实施例中,由第二逻辑存储的用于有助于在对等元数据高速缓存环境中存储用于文件的本地副本的最新近元数据的数据包括标识对等元数据高速缓存环境的负责以下各项中的一项或者多项的成员的数据:知道对等元数据高速缓存环境的哪个成员具有用于文件的本地副本的最新近元数据;以及存储用于文件的本地副本的最新近元数据的副本。
在一个实施例中,第三逻辑被配置用于通过访问存储将文件与客户端相关的信息的每文件数据结构来标识对等元数据高速缓存环境的具有用于文件的本地副本的最新近元数据的成员,其中每文件数据结构存储文件标识符和有关客户端标识符,其中有关客户端标识符唯一标识对等元数据高速缓存环境的具有用于文件的本地副本的最新近元数据的成员。
在一个实施例中,第三逻辑被配置用于使用通过将哈希函数应用于文件的本地副本的文件标识符而产生的哈希值来标识对等元数据高速缓存环境的成员,该成员可以标识对等元数据高速缓存环境的具有用于文件的本地副本的最新近元数据的成员,其中哈希函数输入文件标识符并且输出哈希值,哈希值是客户端的标识符和值之一,该值标识客户端标识符贮存库中的客户端标识符,并且其中客户端标识符唯一标识对等元数据高速缓存环境的成员。
在一个实施例中,该装置还包括:第五逻辑,被配置用于用新元数据更新对等元数据高速缓存环境的具有最新近元数据的成员。
在一个实施例中,该装置还包括:第五逻辑,被配置用于用新客户端标识符更新对等元数据高速缓存环境的成员,该成员可以标识对等元数据高速缓存环境的具有最新近元数据的成员。
在一个实施例中,该装置还包括:第六逻辑,被配置用于有选择地向服务器传送以下各项中的一项或者多项:与文件的本地副本相关联的元数据,以及文件的本地副本。
在一个实施例中,对等元数据高速缓存环境包括NFS文件服务器和NFS客户端集合。
在一个实施例中,一种方法包括:截获去往NFS服务器的元数据请求,其中元数据请求源于参与对等分布式元数据高速缓存的对等体集合的成员;并且与对等体集合的成员通信以从由对等体集合维护的分布式元数据高速缓存满足元数据请求。
在一个实施例中,该方法还可以包括:通过满足对获取元数据的请求和/或满足对更新元数据的请求来满足元数据请求。
在一个实施例中,该方法还可以包括:至少部分基于与元数据请求相关联的文件标识符来标识对等体集合的将与之通信以满足元数据请求的成员。
在该方法的一个实施例中,标识对等体集合的将与之通信的成员包括将哈希函数应用于与元数据请求相关联的文件标识符以获取可以从其获取对等体标识符的数据。
在一个实施例中,一种装置包括:本地存储器,被配置用于存储从文件服务器获取的文件的本地副本;网络附着存储装置,被配置用于存储与文件相关联的元数据的本地副本;以及处理器,被配置用于控制装置参与基于对等通信的分布式元数据高速缓存,借此使用基于对等通信的分布式元数据高速缓存来满足与文件的本地副本相关联的元数据请求。
附图说明
并入于说明书中并且构成说明书的部分的附图图示了公开内容的各种系统、方法和其它实施例。将理解,图中的所示单元边界(例如,框、框组或者其它形状)代表边界的一个示例。本领域普通技术人员将理解,在一些示例中,可以将一个单元设计为多个单元或者可以将多个单元设计为一个单元。在一些示例中,可以将被示出为一个单元的内部部件的另一单元示出为外部部件,并且反之亦然。另外,单元可能未按比例绘制。
图1图示了常规NFS客户端/服务器环境。
图2图示了分布式元数据高速缓存环境。
图3图示了被配置用于参与基于对等通信的分布式元数据高速缓存的装置。
图4图示了与基于对等通信的分布式元数据高速缓存相关联的方法。
图5图示了被配置成参与基于对等通信的分布式元数据高速缓存的装置。
图6图示了与基于对等通信的分布式元数据高速缓存相关联的哈希函数和每文件数据结构。
具体实施方式
这里描述与基于对等通信的分布式元数据高速缓存相关联的装置、方法和其它实施例的示例。装置和方法的示例提供在NFS客户端之间的对等通信,该对等通信有助于提供分布式元数据高速缓存。分布式元数据高速缓存减轻常规集中式控制和退休/刷新协议所产生的问题。
装置和方法的示例可以与NFS客户端交互和/或更新NFS客户端,从而使得NFS客户端不再关于将影响元数据的每个文件操作或者每次文件接触自动与NFS服务器通信。取代自动前往NFS服务器,NFS客户端可以首先检查它自己的高速缓存和/或与对等体通信以如果有则发现哪个(哪些)对等体(包括NFS客户端本身)被假设具有用于文件的最新近元数据。如果NFS客户端具有最新近元数据并且负责具有最新近元数据,则无需与其它NFS客户端或者与NFS服务器通信。如果NFS客户端具有最新近元数据,但是另一NFS客户端负责具有最新近元数据,则NFS客户端可能需要使该另一NFS客户端被更新。
在一个实施例中,至少一个NFS客户端将负责存储新近元数据。在另一实施例中,两个或者更多NFS客户端将负责存储新近元数据。因此,可以冗余地存储元数据。类似地,在一个实施例中,至少一个NFS客户端将负责知道如果有则哪个NFS客户端具有用于文件的最新近元数据。在另一实施例中,两个或者更多NFS客户端将负责知道如果有则哪个NFS客户端具有用于文件的最新近元数据。因此,元数据高速缓存也可以在存储关于何处可以找到新近元数据的信息时冗余。常规地,仅NFS服务器将知道哪个元数据为新近或者仅NFS服务器将具有新近元数据。分布用于存储新近元数据的责任从NFS服务器去除负荷。类似地,分布用于知道哪个NFS客户端具有新近元数据的责任从NFS服务器去除显著负荷。然而,如果未在充分数目的NFS客户端之间恰当分布这些责任,则负担仅已经从NFS服务器转向NFS客户端。
装置和方法的示例可以尝试平衡在参与NFS客户端之间的责任分布。一种用于平衡用于存储元数据的责任和/或用于知道谁具有新近元数据的责任的分布的方式涉及使用哈希函数。哈希函数被设计用于产生针对文件的责任在参与NFS客户端之间的良好(例如,均匀、高斯)分布。哈希函数可以是NFS服务器和参与NFS客户端已知的。当执行将影响文件或者其元数据的操作时,可以向哈希函数提供文件标识符。哈希函数继而将返回如下值,该值可以用来标识具有元数据和/或负责知道谁具有元数据的NFS客户端。在一个实施例中,该值可以用作进入NFS客户端标识信息贮存库(例如,表、数组)中的索引。在另一实施例中,该值可以是NFS客户端标识符。
对于数目充分大的文件并且利用良好设计的哈希函数,可以出现相对均匀的责任分布。然而,在添加或者从参与NFS客户端的集合删除NFS客户端时,可能需要更新哈希函数和/或在哈希值与可用NFS客户端之间的联接。因此,在另一实施例中,另一种用于平衡分布方式是基于对当前分布的理解分配责任并且在每文件表中存储责任数据。在文件被请求时,NFS服务器或者另一实体可以标识在参与NFS客户端处的当前责任分布并且向选择的NFS客户端分配针对这一文件的责任。这一技术去除在NFS客户端处对每次文件访问的哈希函数计算,但是引入在每唯一文件基础上执行分布动作的责任。
使用哈希函数以产生客户端标识符意味着无需用于在每文件或者每客户端基础上存储信息的附加存储器。使用哈希函数以产生索引值意味着使用足以具有将标识符与NFS客户端相关的每NFS客户端一个条目的附加存储装置。当在每文件基础上而不是使用哈希函数来存储信息时,则每个NFS客户端将针对NFS已知的文件存储在文件与NFS客户端之间的相关性。尽管这一方式可能消耗更多存储器,但是它无需对每个文件操作执行哈希函数。
图6图示了在不同实施例中可用于逻辑140的哈希函数610和每文件数据结构620。哈希函数610可以输入文件句柄并且输出客户端标识符。在一个示例中,哈希函数610输入文件句柄并且向已经用客户端标识符填充的阵列中输出索引。每文件数据结构620可以存储文件标识符和客户端标识符。当逻辑140截获元数据请求时,哈希函数610或者每文件数据结构620可以标识与元数据请求相关联的文件,并且继而提供关于可以满足元数据请求的对等体的信息。
图2图示了分布式元数据高速缓存环境,其中NFS客户端相互通信以处理元数据负担的至少部分而不是总是与NFS服务器130通信。在图2中,图示NFS客户端112与对等分布式元数据高速缓存逻辑140交互,并且图示NFS客户端122与对等分布式元数据高速缓存逻辑150交互。在图1中,元数据请求流向NFS服务器130。在图2中,元数据请求可以在对等分布式元数据高速缓存逻辑140与对等分布式元数据高速缓存逻辑150之间流动。
对等分布式元数据高速缓存逻辑140可以采取如下动作,这些动作包括但不限于存储元数据、存储关于何处可以找到元数据的信息、请求来自另一对等体而不是来自NFS服务器130的元数据、请求来自另一对等体而不是NFS服务器130上的关于何处可以找到元数据的信息、使另一客户端上的另一逻辑更新由该另一逻辑存储的元数据以及使另一客户端上的另一逻辑更新关于何处可以找到新近元数据的信息。
图3图示了被配置成在分布式元数据高速缓存环境中操作并且被配置成参与基于对等通信的分布式元数据高速缓存的装置300。在分布式元数据高速缓存中,对等体集合的成员分担存储用于从服务器向作为对等体集合的成员的客户端复制的文件的元数据这样的负担。可以在对等体集合的一个或者多个成员上高速缓存元数据。也可以在对等体集合的一个或者多个成员上存储关于何处高速缓存元数据的信息。在对等体的成员处存储新近元数据和关于何处可以找到该新近元数据的信息有助于减少与NFS服务器的通信。
装置300包括处理器310、存储器320以及连接处理器310、存储器320和逻辑集合的接口330。逻辑集合可以包括第一逻辑340、第二逻辑345、第三逻辑350、第四逻辑355、第五逻辑360、第六逻辑365和第七逻辑370。在不同实施例中,逻辑可以被配置用于执行与支持分布式元数据高速缓存或者与分布式元数据高速缓存交互相关联的不同动作。尽管图示了七个逻辑,但是将理解,更大和/或更少数目的逻辑可以被配置用于执行由七个逻辑执行的动作。在一个实施例中,装置300可以是与NFS服务器交互的NFS客户端。尽管描述了NFS客户端和NFS服务器,但是这里描述的分布式元数据高速缓存可以与其它基于网络的文件系统一起运用。
在一个实施例中,第一逻辑340被配置用于存储元数据。元数据与从服务器获取的文件的本地副本相关联,该服务器与参与基于对等通信的分布式元数据高速缓存的客户端集合配合。客户端集合可以被称为对等体集合。可以在存储器320中、在固态设备(SSD)上和/或在装置300已知和可用的其它位置中存储元数据。元数据可以由装置300存储并且也可以由客户端集合中的另一装置冗余地存储。在一个实施例中,可以在第一位置(例如,存储器320)中存储文件的本地副本,而可以在第二位置(例如,SSD)中存储元数据。更一般而言,第一逻辑340可以被配置用于存储与文件的本地副本相关联的元数据,第二逻辑345可以被配置用于存储如下数据,该数据有助于在对等元数据高速缓存环境中存储用于文件的本地副本的最新近元数据,并且第三逻辑350可以被配置用于存储如下数据,该数据有助于在对等元数据高速缓冲环境中对用于文件的本地副本的最新近元数据定位。
第二逻辑345可以被配置用于存储如下数据,该数据标识客户端集合的如下成员,该成员负责知道哪个对等体具有用于文件的本地副本的最新近元数据。第二逻辑345也可以被配置用于存储如下数据,该数据标识客户端集合的如下成员,该成员负责存储用于文件的本地副本的最新近元数据的副本。因此,第二逻辑345可以存储关于最新近元数据位于何处的信息和/或可以存储关于哪个客户端知道最新近元数据位于何处的信息。存储这一信息有助于无需在进行元数据请求时完全返回到NFS服务器。回顾与NFS服务器的通信产生常规系统中的瓶颈。
第三逻辑350可以被配置用于标识客户端集合的如下成员,该成员具有用于文件的本地副本的最新近元数据。可以根据由第二逻辑345存储的数据进行标识。第三逻辑350也可以被配置用于标识客户端集合的如下成员,该成员可以标识客户端集合的如下成员,该成员具有用于文件的本地副本的最新近元数据。同样可以根据由第二逻辑345存储的数据进行标识。第三逻辑350可以能够按照不同方式标识客户端,这些方式包括但不限于将哈希函数应用于与元数据属于的文件相关联的文件标识符,以及从客户端标识符贮存库(例如,数组、表、文件)获取客户端标识符。
第四逻辑355可以被配置用于获取用于文件的本地副本的最新近元数据。第四逻辑355可以使用由第三逻辑350执行的标识来获取新近元数据。在一个示例中,当装置300本身负责具有最新近元数据时,则第四逻辑355可以从装置300获取新近元数据。在另一示例中,当不同客户端负责具有最新近元数据时,则第四逻辑355可能需要请求来自客户端集合的成员的该元数据。然而,第四逻辑355可能不能直接请求信息并且可能首先必须找出谁负责具有最新近元数据。
在一个实施例中,第三逻辑350被配置用于根据通过将哈希函数应用于文件的本地副本的文件标识符来生成的哈希值标识客户端集合的如下成员,该成员具有用于文件的本地副本的最新近元数据。哈希值可以例如是客户端标识符或者可以用来对客户端标识符贮存库中的客户端标识符定位。贮存库可以每条目存储一个或者多个客户端标识符并且可以使用哈希值来编索引。在一个示例中,如果哈希值引向其中未发现客户端标识符的空条目,则装置300可以回到NFS服务器以寻找所需信息。尽管描述了哈希函数,但是将理解可以运用其它数学和算术方式以根据文件标识符标识客户端。
在另一实施例中,第三逻辑350被配置用于通过访问存储将文件与客户端相关的信息的每文件数据结构来标识客户端集合的如下成员,该成员具有用于文件的本地副本的最新近元数据。在一个示例中,可以将每文件数据结构填充为客户端集合的负责文件的成员。在另一示例中,每文件数据结构可以由NFS服务器填充。可以操控每文件数据结构以有助于负荷平衡。
在一个实施例中,第三逻辑350被配置用于根据通过将哈希函数应用于文件的本地副本的文件标识符而产生的哈希值标识客户端集合的如下成员,该成员可以标识客户端集合的如下成员,该成员具有用于文件的本地副本的最新近元数据。同样,哈希值可以是客户端标识符或者可以用来对客户端标识符贮存库中的客户端标识符定位。
图6图示了与对等分布式元数据高速缓存逻辑140交互的哈希函数610和每文件数据结构620。哈希函数610和每文件数据结构可以由第三逻辑350类似地应用。第三逻辑350可以能够按照不同方式标识客户端,这些方式包括但不限于将哈希函数应用于与元数据属于的文件相关联的文件标识符、从客户端标识符贮存库(例如,数组、表、文件)获取客户端标识符,以及访问存储将文件与客户端相关的信息的每文件数据结构。每文件数据结构可以存储文件标识符和客户端标识符。
在一个实施例中,第五逻辑360被配置用于用新元数据更新客户端集合的具有最新近元数据的成员。第五逻辑360可以在确定装置300现在具有最新近元数据、但是客户端集合的不同成员被假设具有或知道谁具有最新近元数据之后向客户端集合的成员提供元数据。附加地和/或备选地,第五逻辑360可以被配置用于更新客户端集合的如下成员,该成员可以用足以标识装置300的新客户端标识符标识客户端集合的具有最新近元数据的成员。
在一个实施例中,第六逻辑365可以被配置用于有选择地与服务器通信。第六逻辑365可以被配置用于传送与文件的本地副本相关联的元数据。这可以被运用于其中对等网络上的响应时间在所需阈值以下的情况中。这也可以被运用作为备份或者安全机制,其中在某一时间段已经到期之后,向NFS服务器通知分布式元数据高速缓存已经发生了什么是适合的。也由于用于具有新近元数据和新近文件的最终责任可以驻留于NFS服务器,所以第六逻辑365也可以向NFS服务器传送文件的本地副本。
在一个实施例中,第七逻辑370被配置用于响应于截获去往服务器的NFSGetAttr调用来有选择地与客户端集合的成员而不是与服务器通信。NFSGetAttr调用是如下函数,该函数请求由先前获得的文件句柄所标识的文件的文件属性。本地高速缓存元数据允许截获NFSGetAttr调用并且提供文件属性而不完全返回到达NFS服务器。第七逻辑370也可以被配置用于响应于去往服务器的NFSSetAttr调用来有选择地与客户端集合的集合的成员而不是与服务器通信。NFSSetAttr调用是如下函数,该函数更新由先前获得的文件句柄所标识的文件的文件属性。同样,本地高速缓存元数据允许截获NFSSetAttr调用并且更新文件属性而不完全到达NFS服务器。因此,在一个实施例中,第七逻辑370可以物理上和/或逻辑上被插入于NFS客户端与NFS服务器之间。这有助于用这里描述的分布式元数据高速缓存翻新现有配置。
图4图示了与基于对等通信的分布式元数据高速缓存相关联的方法400。在410处,方法400包括控制与对等体集合参与对等分布式元数据高速缓存的NFS客户端以截获去往NFS服务器的元数据请求。元数据请求可以索取新近元数据或者可以提供关于更新的元数据的信息。
在420处,方法400还包括标识对等体集合的与之通信以满足元数据请求的成员。可以至少部分基于与元数据请求相关联的文件标识符标识成员。在一个实施例中,标识对等体集合的将与之通信的成员涉及到将哈希函数应用于与元数据请求相关联的文件标识符以获取可以从其获取对等标识符的数据。在一个实施例中,标识对等体集合的将与之通信的成员涉及到查询存储将文件和负责那些文件的客户端相关的信息的每文件数据结构。
在430处,方法400还包括控制NFS客户端以从由对等体集合维护的分布式元数据高速缓存满足元数据请求。未向NFS服务器发送、但是代之以通过与对等体集合的成员通信来满足元数据请求。在一个实施例中,满足元数据请求包括满足对获取元数据的请求。附加地和/或备选地,满足元数据请求可以包括满足对更新元数据的请求。
在一个实施例中,方法400还可以包括控制NFS客户端以存储用于在对等体集合的不同成员处存储的文件的本地副本的当前元数据。这将是在运行方法400的装置负责维护用于文件的新近元数据时的情况。方法400还可以包括控制NFS客户端以存储足以标识对等体结合的如下成员的信息,该成员具有用于在对等体集合的不同成员处存储的文件的本地副本的当前元数据。这可以是在运行方法400的装置具有最新近元数据并且不同装置负责知道哪个装置具有最新近元数据时的情况。
图5图示了被配置用于参与基于对等通信的分布式元数据高速缓存530的装置500。装置500包括被配置成控制500参与基于对等通信的分布式元数据高速缓存530的处理器510。分布式元数据高速缓存涉及到使用基于对等通信的分布式元数据高速缓存530而不是自动前往服务器寻找元数据信息来处理与文件的本地副本相关联的元数据请求。
装置500还包括被配置用于存储从文件服务器获取的文件的本地副本的本地存储器520。装置500也包括被配置用于存储与文件相关联的元数据的本地副本的网络附着存储装置(NAS)530。尽管描述了本地存储器520存储文件的本地副本,但是将理解,可以在装置500可用的其它存储装置中存储本地副本。类似地,尽管描述了NAS530存储元数据,但是将理解,可以在装置500可用的其它存储装置中存储元数据。
在一个实施例中,处理器510被配置用于存储用于文件的本地副本的当前元数据。处理器510可以在本地存储器520中和/或在NAS530中存储当前元数据。处理器510也可以被配置用于存储用于在参与基于对等通信的分布式元数据高速缓存530的不同装置处存储的不问文件的本地副本的当前元数据。同样,处理器510可以在本地存储器520中和/或在NAS530中存储当前元数据。处理器520也可以被配置用于存储足以标识参与基于对等通信的分布式元数据高速缓存530的装置的信息,该装置具有用于文件的本地副本的当前元数据。处理器510可以在本地存储器520中和/或在NAS530中存储信息。处理器520也可以被配置用于存储足以标识装置的信息,该装置具有用于在参与基于对等通信的分布式元数据高速缓存530的不同装置处存储的不同文件的本地副本的当前元数据。同样,处理器510可以在本地存储器520中和/或在NAS530中存储信息。
下文包括这里运用的所选术语的定义。定义包括落入术语的范围内并且可以用于实施的部件的各种示例和/或形式。示例并非旨在于限制。术语的单数和复数形式二者可以在定义内。
引用“一个实施例”、“实施例”、“一个示例”、“示例”等指示这样描述的实施例或者示例可以包括特定特征、结构、特性、性质、单元或者限制,但是并非每个实施例或者示例必然包括该特定特征、结构、特性、性质、单元或者限制。另外,反复使用短语“在一个实施例中”虽然可以、但是未必指代相同实施例。
如这里所用的“逻辑”包括但不限于用于执行功能或者动作和/或引起来自另一逻辑、方法和/或系统的功能或者动作的硬件、固件、在非瞬态介质上存储或者在机器上执行的指令和/或各项的组合。逻辑可以包括软件控制的微处理器、离散逻辑(例如,ASIC)、模拟电路、数字电路、编程的逻辑器件、包含指令的存储器设备等。逻辑可以包括一个或者多个门、门组合或者其它电路部件。当描述多个逻辑时,可以有可能向一个物理逻辑中并入多个逻辑。类似地,当描述单个逻辑时,可以有可能在多个物理逻辑之间分布该单个逻辑。可以使用逻辑单元中的一个或者多个逻辑单元来实施这里描述的部件和功能中的一个或者多个部件和功能。
尽管出于说明简化的目的而示出和描述所示方法为一系列块。但是方法不受块的顺序限制,因为一些块可以按与示出和描述的顺序不同的顺序和/或与其它块并行出现。另外,少于所有所示块可以用来实施示例方法。可以组合块或者将块分离成多个部件。另外,附加和/或备选方法可以运用附加的未图示的块。
在具体实施方式或者权利要求中运用术语“包括(include)”的程度上,它旨在于以与术语“包括(comprise)”相似的方式有包含意义,因为该术语在运用时被解释为权利要求中的过渡词。
尽管已经通过描述示例来举例说明示例系统、方法等并且尽管已经以相当多的细节描述示例,但是申请人的意图并非是约束或者以任何方式使所附权利要求的范围限于这样的细节。当然不可能出于描述这里描述的系统、方法等的目的而描述每个可设想的部件或者方法组合。因此,公开内容不限于示出和描述的具体细节、有代表性的装置和示例示例。因此,本申请旨在于涵盖落入所附权利要求的范围内的变更、修改和变化。

Claims (10)

1.一种用于在分布式对等元数据高速缓存环境中操作的方法,包括:
在计算机中截获去往网络文件系统NFS服务器的元数据请求,其中所述元数据请求源于参与对等分布式元数据高速缓存的对等体集合的成员;
控制所述计算机以通过访问存储将文件与所述对等体集合的一个或多个成员相关的信息的每文件数据结构来标识所述对等体集合的将与之通信以满足所述元数据请求的成员,其中所述每文件数据结构存储文件标识符和有关客户端标识符,其中所述有关客户端标识符唯一标识所述对等体集合的具有用于由所述元数据请求指定的文件的本地副本的最新近元数据的成员;以及
与所述对等体集合的所述成员通信以从由所述对等体集合维护的分布式元数据高速缓存满足所述元数据请求。
2.根据权利要求1所述的方法,其中与所述对等体集合的所述成员通信以满足所述元数据请求包括以下各项中的一项或者多项:满足对获取元数据的请求;以及满足对更新元数据的请求。
3.根据权利要求1所述的方法,包括至少部分基于与所述元数据请求相关联的文件标识符来标识所述对等体集合的将与之通信以满足所述元数据请求的所述成员。
4.根据权利要求3所述的方法,其中标识所述对等体集合的将与之通信的所述成员包括将哈希函数应用于与所述元数据请求相关联的文件标识符以获取可以从其获取对等体标识符的数据。
5.根据权利要求1所述的方法,包括控制所述计算机以存储以下各项中的一项或者多项:用于在所述对等体集合的不同成员处存储的文件的本地副本的当前元数据;以及用于标识所述对等体集合的成员的信息,所述成员具有用于在所述对等体集合的不同成员处存储的文件的本地副本的当前元数据。
6.一种配置成在分布式对等元数据高速缓存环境中操作的系统,包括:
截获逻辑,其配置成在计算机中截获去往网络文件系统NFS服务器的元数据请求,其中所述元数据请求源于参与对等分布式元数据高速缓存的对等体集合的成员;以及
通信逻辑,其配置成:
控制所述计算机以通过访问存储将文件与所述对等体集合的一个或多个成员相关的信息的每文件数据结构来标识所述对等体集合的将与之通信以满足所述元数据请求的成员,其中所述每文件数据结构存储文件标识符和有关客户端标识符,其中所述有关客户端标识符唯一标识所述对等体集合的具有用于由所述元数据请求指定的文件的本地副本的最新近元数据的成员;以及
与所述对等体集合的所述成员通信以从由所述对等体集合维护的分布式元数据高速缓存满足所述元数据请求。
7.根据权利要求6所述的系统,其中与所述对等体集合的所述成员通信以满足所述元数据请求包括以下各项中的一项或者多项:满足对获取元数据的请求;以及满足对更新元数据的请求。
8.根据权利要求6所述的系统,包括至少部分基于与所述元数据请求相关联的文件标识符来标识所述对等体集合的将与之通信以满足所述元数据请求的所述成员。
9.根据权利要求8所述的系统,其中标识所述对等体集合的将与之通信的所述成员包括将哈希函数应用于与所述元数据请求相关联的文件标识符以获取可以从其获取对等体标识符的数据。
10.根据权利要求8所述的系统,包括控制所述计算机以存储以下各项中的一项或者多项:用于在所述对等体集合的不同成员处存储的文件的本地副本的当前元数据;以及用于标识所述对等体集合的成员的信息,所述成员具有用于在所述对等体集合的不同成员处存储的文件的本地副本的当前元数据。
CN201180043779.XA 2010-09-13 2011-03-02 分布式元数据高速缓存 Expired - Fee Related CN103098443B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38241110P 2010-09-13 2010-09-13
US61/382,411 2010-09-13
PCT/US2011/026808 WO2012036757A1 (en) 2010-09-13 2011-03-02 Distributed metadata cache

Publications (2)

Publication Number Publication Date
CN103098443A CN103098443A (zh) 2013-05-08
CN103098443B true CN103098443B (zh) 2016-07-06

Family

ID=44041651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180043779.XA Expired - Fee Related CN103098443B (zh) 2010-09-13 2011-03-02 分布式元数据高速缓存

Country Status (5)

Country Link
US (1) US8468181B2 (zh)
EP (1) EP2617177B1 (zh)
JP (1) JP5824519B2 (zh)
CN (1) CN103098443B (zh)
WO (1) WO2012036757A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559224A (zh) * 2013-10-18 2014-02-05 华为技术有限公司 一种对元数据对象进行散列的方法及装置
CN111399760B (zh) * 2019-11-19 2023-01-24 杭州海康威视系统技术有限公司 Nas集群元数据处理方法、装置、nas网关及介质
US11151050B2 (en) * 2020-01-03 2021-10-19 Samsung Electronics Co., Ltd. Efficient cache eviction and insertions for sustained steady state performance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031918A (zh) * 2004-09-30 2007-09-05 兄弟工业株式会社 节点设备、共享信息更新方法、共享信息存储方法以及程序

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US8041735B1 (en) * 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US8315975B2 (en) * 2002-12-09 2012-11-20 Hewlett-Packard Development Company, L.P. Symbiotic wide-area file system and method
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
JP4247975B2 (ja) * 2003-08-20 2009-04-02 日本電信電話株式会社 データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体
JP5342010B2 (ja) * 2008-12-03 2013-11-13 テレフオンアクチーボラゲット エル エム エリクソン(パブル) P2pネットワークにおける適切なピアの選択

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031918A (zh) * 2004-09-30 2007-09-05 兄弟工业株式会社 节点设备、共享信息更新方法、共享信息存储方法以及程序

Also Published As

Publication number Publication date
US8468181B2 (en) 2013-06-18
US20120066276A1 (en) 2012-03-15
EP2617177A1 (en) 2013-07-24
JP5824519B2 (ja) 2015-11-25
EP2617177B1 (en) 2015-12-30
JP2013541086A (ja) 2013-11-07
CN103098443A (zh) 2013-05-08
WO2012036757A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
US9633060B2 (en) Computer data distribution architecture with table data cache proxy
US7991835B2 (en) Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
JP5006348B2 (ja) 応答出力キャッシュに対するマルチキャッシュ協調
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US20150269239A1 (en) Storage device selection for database partition replicas
Jelasity Gossip
US20110225121A1 (en) System for maintaining a distributed database using constraints
WO2013069329A1 (ja) データ送受信システム
CN111597077B (zh) 数据处理方法、装置、计算机设备以及存储介质
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
CA3098942C (en) Taking snapshots of blockchain data
Honnutagi The Hadoop distributed file system
CN103098443B (zh) 分布式元数据高速缓存
CN104202424A (zh) 一种使用软件架构扩展缓存的方法
US20170286483A1 (en) Standing queries in memory
Poteras et al. DCFMS: A chunk-based distributed file system for supporting multimedia communication
CN112632116B (zh) 一种k-db数据库多节点集群调度的方法、系统、设备及介质
CN104468715B (zh) 一种制造业物联网节点协同存储方法
WO2019154990A1 (en) Electronic devices, systems and methods
US10749902B2 (en) Method and apparatus for organizing elements of a server application in a client-server system
Lopes et al. A Time-Segmented Consortium Blockchain for Robotic Event Registration
JP4554564B2 (ja) 分散データの管理方法および管理システム
Nikolaidis et al. L earnae: Distributed and Resilient Deep Neural Network Training for Heterogeneous Peer to Peer Topologies
Mathur et al. Hydra: A peer to peer distributed training & data collection framework
US20170286490A1 (en) Implicit subscriptions in the connection protocol of a network switch

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: TOSHIBA K.K.

Free format text: FORMER OWNER: MAWIER INTERNATIONAL TRADE CO., LTD.

Effective date: 20140611

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140611

Address after: Tokyo, Japan

Applicant after: Toshiba Corp.

Address before: Babado J San Mega Le

Applicant before: MARVELL WORLD TRADE Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180502

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706