CN104268242B - 目录租赁 - Google Patents

目录租赁 Download PDF

Info

Publication number
CN104268242B
CN104268242B CN201410513205.XA CN201410513205A CN104268242B CN 104268242 B CN104268242 B CN 104268242B CN 201410513205 A CN201410513205 A CN 201410513205A CN 104268242 B CN104268242 B CN 104268242B
Authority
CN
China
Prior art keywords
lease
catalogue
request
client computer
key
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.)
Active
Application number
CN201410513205.XA
Other languages
English (en)
Other versions
CN104268242A (zh
Inventor
D·M·克鲁斯
M·乔治
S·C·哈弗瓦拉
C·G·奥尔雷德
N·R·克里斯蒂安森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104268242A publication Critical patent/CN104268242A/zh
Application granted granted Critical
Publication of CN104268242B publication Critical patent/CN104268242B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及目录租赁。描述了用于允许访问分布式文件系统的客户机本地高速缓存目录元数据的实施例。客户机可请求读租约,这允许该客户机本地高速缓存目录元数据并使用该高速缓存服务于从最初请求目录元数据的同一应用程序接收到的请求。此外,客户机也可请求句柄租约,这允许客户机延迟目录句柄的关闭,并允许句柄被重用以服务于来自同一应用程序或不同应用程序的后续目录元数据请求。客户机还可请求写租约,这允许该客户机上的应用程序诸如通过创建或删除目录中的新文件或改变其属性来修改目录元数据,并高速缓存这些改变。

Description

目录租赁
本申请是申请号为201110290775.3、申请日为2011年9月16日、发明名称为“目录租赁”的发明专利申请的分案申请。
技术领域
本发明涉及本地高速缓存目录元数据。
背景技术
客户机上的应用程序常常访问存储在分布式文件系统中的文件。分布式文件系统允许对在客户机上本地运行的应用程序透明地访问远程存储的文件。分布式文件系统可包括允许客户机本地高速缓存某些信息使得比远程检索信息更为高效地用本地信息服务某些请求的某些特征。然而,当前的分布式文件系统不具有用于高速缓存诸如元数据(例如,目录元数据)等信息的机制,这些元数据在访问分布式文件系统的客户机之间提供一致性和相关性。
正是基于这些及其他考虑才作出了本发明的各实施例。同样,虽然讨论了相对具体的问题,但是,应该理解,本发明的各实施例不应该仅限于解决背景中所标识的具体问题。
发明内容
提供本发明内容以便以简化形式介绍将在以下的“具体实施方式”中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
描述了用于允许访问分布式文件系统的客户机本地高速缓存目录元数据的实施例。在一个实施例中,客户机向文件服务器请求高速缓存目录数据的租约。客户机可请求读租约,这允许该客户机本地高速缓存目录元数据并服务于来自最初请求目录元数据的同一应用程序的请求。此外,客户机也可请求句柄租约,这允许客户机延迟目录句柄的关闭,并允许句柄被重用以服务于来自该客户机上的同一应用程序或不同应用程序的后续目录元数据请求。在某些实施例中,服务器依赖于两个租约键来跟踪客户机租约,并确保对目录元数据拥有读租约的客户机对目录元数据的改变不会导致读租约被撤销。在其它实施例中,客户机可请求写租约,这允许该客户机上的应用程序诸如通过创建或删除目录中的文件或改变其属性来修改目录元数据,并高速缓存这些改变。当另一客户机请求目录元数据时,写租约被打破,且改变被转储清除到服务器。
各实施例可以实现成计算机进程、计算系统或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码用于执行计算机进程的指令的计算机程序的载波上的传播信号。
附图说明
参考以下附图描述非限制性和非穷尽的实施例。
图1示出了可用于实现一些实施例的系统的实施例。
图2示出了可在一些实施例中使用的客户机和服务器的框图。
图3示出了根据用于本地高速缓存目录元数据的一些实施例的操作流程。
图4示出了根据用于服务对目录元数据持有租约的客户机修改目录元数据的请求的一些实施例的操作流程。
图5示出了根据一些实施例当接收到对目录数据的读租约的撤销时执行的操作流程。
图6示出了根据用于允许本地高速缓存目录元数据的一些实施例的操作流程。
图7示出适于实现各实施例的计算环境的框图。
具体实施方式
以下将结合作为本发明一部分并示出用于实践本发明的特定实施例的附图来更详尽地描述各个实施例。然而各实施例被实现为许多不同的形式并且不应将其解释为限制在此处描述的实施例;相反地,提供这些实施例以使得本公开变得透彻和完整,并且将本发明的范围完全传达给本领域普通技术人员。因此,各实施例可以呈现完全是硬件实现、完全是软件实现或组合了软件和硬件方面的实现。因此,以下详细描述并非是局限性的。
图1示出了其中可实现各实施例的分布式文件系统100的实施例。系统100包括运行要求对文件和文件信息的访问的各个应用程序的客户机102和104。文件服务器106将文件和文件信息例如存储在数据存储108中。客户机102和104可通过例如网络110的网络访问文件服务器106。如本领域的技术人员可以理解地,网络110可以是LAN、WAN(例如,因特网)、存储区域网或允许客户机102和104与文件服务器106通信的其它网络。
分布式文件系统100可实现允许客户机102和104访问文件服务器106的协议。协议的一些非限定性示例包括服务器消息块(SMB)、SMB2和NFS。如本领域的技术人员可以理解地,文件访问协议提供客户机向文件服务器请求文件的不同格式。实施例不限于任何特定文件访问协议。相反,可使用包括但不限于以上所列的任何文件访问协议来实现所描述的实施例的特征。
在一个实施例中,客户机102和104可向文件服务器106请求允许它们本地高速缓存目录元数据的租约。如本领域的技术人员可以理解地,文件服务器106除存储实际的文件数据以外也可存储描述目录中文件的特性的目录元数据。例如,目录元数据可包括但不限于:目录中每一文件的最后修改的日期、创建日期、文件大小、文件类型和作者名。本实施例可通过提供租赁机制来实现。
如图1中所示,某些实施例允许诸如客户机102的客户机随元数据租约请求向文件服务器106发送分组112。在实施例中,分组112除租约请求以外还可包括对元数据的请求。例如,诸如浏览器应用程序的应用程序可请求特定目录的目录元数据。响应于该请求,客户机102可发送分组112,分组112将包括对该特定目录的元数据的请求以及元数据租约请求。
如图1中所示,分组112可指定读租约、写租约和/或句柄租约。读租约将允许客户机102在本地高速缓存中存储目录的元数据,并每当浏览器应用程序请求目录元数据时,该客户机可从本地高速缓存服务该请求。句柄租约将允许客户机102延迟目录句柄的关闭,这允许客户机102使用目录句柄来服务于来自浏览器应用程序以及请求目录的目录元数据的其它应用程序的后续请求。写租约允许客户机高速缓存应用程序对目录元数据进行的改变。
在图1所示的实施例中,文件服务器106发送响应分组114,分组114包括所请求的目录元数据和对是否授予所请求的租约的指示。基于响应分组,如果租约请求被准许,则客户机102高速缓存目录元数据,并将目录元数据提供给浏览器应用程序。如果响应分组指示租约未被授予,则客户机102将不会高速缓存目录元数据,而是仅将目录元数据提供给浏览器应用程序。如果客户机102未被授予租约,则浏览器应用程序对目录元数据的任何后续请求将导致客户机向文件服务器106请求目录元数据。
如下更详细描述地,向客户机授予租约在服务来自应用程序的请求方面提供了效率,并减少了客户机向文件服务器106发送多个请求的需求。从而,在一些实施例中,文件服务器106一般对客户机授予租约只要没有另一客户机当前持有冲突的租约。为确保目录元数据的相关性,文件服务器106确保不向不同的客户机授予对特定目录元数据的冲突的租约。
仅提供图1的描述来介绍一些实施例的一些特征。如下更详细描述地,其它实施例可提供其它特征。图1的描述不应被用来限制任何其它实施例的范围。
图2示出了可在一些实施例中使用的客户机和服务器的框图。如上所述,可使用不同的文件访问协议来实现所描述的各实施例的特征。图2的以下某些描述包括对SMB2的特征的一些描述。然而,这不应被用来限制其它实施例,因为可使用任何文件访问协议来实现所描述的特征。对SMB2的使用仅是一个示例,且仅用于说明的目的。
图2示出了作为分布式文件系统200的一部分的客户机202和文件服务器204的框图。在一些实施例中,客户机202可在系统100(图1)中被实现为客户机102和104,而文件服务器204可在系统100(图1)中被实现为文件服务器106。
如图2中所示,客户机202包括多个应用程序206A-C,这些应用程序请求对存储在服务器204的文件系统208中文件数据和元数据的访问。客户机202还包括重定向器210。在一个实施例中,重定向器210可被配置为SMB2重定向器,客户机202与服务器204使用根据SMB2协议格式化的分组来通信。当应用程序206A-C之一请求位于服务器204上的文件时,重定向器210将处理该请求。重定向器210将关于对文件数据和元数据的请求创建根据SMB2协议格式化的分组。如下更详细描述地,在各实施例中,SMB2协议被扩展成提供允许客户机202在客户机202上的本地高速缓存212中存储目录元数据的租赁机制。租赁机制利用客户机202上的查找表214,该查找表存储与由服务器204授予的租约相关联的租约键(目录键/文件键)。服务器204还为请求租约并被授予租约的客户机存储租约键。服务器204使用租约表216来存储租约键。
作为系统200的操作的一个示例,应用程序206A可请求存储在文件系统208的目录如目录1中的文件的元数据。作为结果,应用程序206A发出请求,该请求被重定向器210接收。响应于接收请求,重定向器210将通过发送协商请求分组218来启动与服务器204的会话。如本领域的技术人员将理解地,协商请求分组218将根据允许在客户机和服务器之间协商会话的SMB2协议格式化。协商请求分组218将包括指示该客户机是否能够处理目录元数据租赁的信息。在一个实施例中,目录元数据租赁可仅被SMB2协议的某些版本支持,协商请求分组218可提供客户机支持SMB2协议支持元数据租赁的一版本并想要使用SMB2协议的该版本与服务器通信的指示。
响应于协商请求分组218,服务器204将发送协商响应分组220,该分组可包括对服务器是否支持SMB2协议的该版本的指示。在当前示例中,协商响应分组220指示服务器同意使用SMB2协议支持目录元数据租赁的一版本通信。
当客户机202和服务器204之间的协商完成时,重定向器210然后可请求应用程序206A所请求的目录元数据。在一个实施例中,重定向器210将首先生成与正在请求的目录元数据相关联的元数据键,例如目录2键。另外,重定向器210也为包括被请求的目录元数据的父目录生成键,在此为目录1。这些键被存储在查找表214中。如图2的实施例中所示,查找表214使目录键与目录内存储的文件的各个文件键以及目录内子目录的目录键相关联。这些租约键在某些实施例中是全局唯一标识符(GUID)。然而,它们不限于GUID。
重定向器210然后发送包括对目录2中目录元数据的请求的分组222,还请求对目录2中目录元数据的租约。作为租约请求的一部分,重定向器210包括所生成的租约键(即,目录1的目录键和目录2的目录键)。在一不同的实施例中,重定向器210不生成任何目录键。相反,分组222允许重定向器210指示服务器应生成租约键。
当服务器204接收目录租约请求分组222时,它将从目录2检索目录元数据。服务器204还确定它是否可向客户机201授予所请求的租约。具体地,服务器可咨询存储它已经授予的其它租约的租约键(目录键和文件键)的租约表216。在此示例中,先前没有客户机请求对目录2的租约,作为结果,服务器204将来自目录租约请求分组222的目录1的目录键和目录2的目录键存储至租约表216。
服务器发送带有目录元数据和所请求的租约已被授予的指示的目录租约响应分组224。在这种情况中,所请求的租约可包括读租约、写租约和/或句柄租约。如果租约是读租约,则允许客户机202从高速缓存212服务来自应用程序206A对目录2的目录元数据的请求。如果租约是写租约,则可将对目录2的目录元数据的任何改变存储在高速缓存212中。如果租约包括句柄租约,客户机202可在应用程序206A关闭该句柄时对目录2延迟关闭该句柄。然后可重用该句柄以服务来自应用程序206A以及其它应用程序206B和206C的后续请求。重定向器210将向应用程序206A提供目录元数据并还将目录元数据存储在高速缓存212中。
稍后,如果第二客户机请求对存储在目录2中的同一目录元数据的访问,则在第二客户机请求与向客户机202基于的句柄租约不兼容的访问时,服务器204可撤销来自客户机202的句柄租约。服务器204将向客户机202发送指示句柄租约正在撤销的撤销通知226。在撤销之后,来自应用程序206A、206B和206C对目录元数据的任何请求将要求客户机202直接向服务器204请求新的目录句柄。在某些实施例中,对租约的撤销同步进行,且客户机202必须发送已经接收到撤销通知的确认228。如果在稍后时间,第二客户机对存储在目录2中的目录元数据作出修改,则服务器204可撤销来自客户机202的读租约,这将使存储在高速缓存212中的数据无效。在撤销之后,来自应用程序206A、206B和206C的对目录元数据的任何请求必须通过直接向服务器204请求信息来接受服务。
如本领域的技术人员将理解地,高速缓存212中的信息可由客户机202为除向应用程序206A、206B和206C提供目录元数据以外的目的而使用。作为一个示例,如果文件不存在于目录中,可使来自应用程序206A、206B和206C对遗失文件的请求失败,而不必将请求重定向至服务器204。这有助于减少目标文件不存在的开口(open)请求的网络通信量。
在一个实施例中,以上描述的租赁特征是可传递的。即,重定向器210可将租约的获取和撤销传至本地应用程序。然后可使用该本地应用程序来服务其它远程客户机。以此方式,租约授予和撤销实质上被传递回最终对等体。
图3-6示出根据各实施例的操作流程300、400、500和600。操作流程300、400、500和600可在任何合适的计算环境中执行。例如,操作流程可以由诸如图1和图2中所示的系统来执行。因此,对操作流程300、400、500和600的描述可参考图1和图2的组件中的至少一个。然而,对图1和图2的组件的任何这类参考是仅出于描述性目的的,并且应当理解,图1和图2的实现是操作流程300、400、500和600的非限制性环境。
此外,尽管以特定次序顺序地示出并描述了操作流程300、400、500和600,但在其它实施例中,能以不同的顺序、多次和/或并行执行各个操作。此外,在某些实施例中,一个或多个操作可被省略或组合。
图3示出了根据用于本地高速缓存目录元数据的一些实施例的操作流程300。流程300开始于操作302,此处从应用程序接收对目录元数据(包括目录元数据的一部分)的请求。在某些实施例中,操作302由客户机上的重定向器接收,重定向器是诸如系统100(图1)或系统200(图2)的分布式文件系统的一部分。流程300不限于使用任何特定的文件访问协议来实现。可使用任何合适的文件访问协议来实现流程300的实施例。
流程从操作302至判定304,在那里作出所请求的元数据是否被存储在本地高速缓存中的判断。如果在判定304,作出所请求的元数据被存储在本地高速缓存中的判断,则流程传至操作306,在那里从本地高速缓存检索元数据。在操作308,将从本地高速缓存检索到的元数据提供给应用程序。流程300在310处结束。
然而,如果在判定304,作出目录元数据未被存储在本地高速缓存中的判断,则控制从判定304传至操作312,在那里创建由目录元数据标识的文件的目录键。在某些实施例中,目录键是由执行流程300的重定向器生成的。在操作312之后,在操作314生成由目录元数据标识的目录的父目录的目录键。在某些实施例中,操作314可包括为目录的所有祖先生成键。键可被本地高速缓存。
在操作316,向文件服务器发送请求。请求是针对元数据以及允许对元数据进行本地高速缓存的租约的。在操作318,从文件服务器接收响应。在各实施例中,响应将包括对所请求的租约是否已由文件服务器授予的指示。流程从操作318传至操作320,将在那里来自响应的元数据提供给应用程序。在操作320之后,在判定322作出关于服务器是否授予所请求的对目录元数据的租约的判断。如果在判定322,作出租约未被批准的判断,则元数据不能被本地高速缓存,且流程在310结束。如果在判定322,作出租约被文件服务器批准的判断,则在操作324,元数据被存储在本地高速缓存。在操作324之后,流程在310结束。
现在参考图4,示出了根据用于服务对目录元数据持有句柄租约的客户机(它访问分布式文件系统)修改目录元数据的请求的某些实施例的流程400。在各实施例中,流程400可在流程300已被执行之后被执行。因此,流程400在其中已经授予用于高速缓存目录元数据的句柄租约的各实施例中执行。
流程400开始于操作402,在那里接收到修改目录元数据的请求。请求可以例如是向文件写信息的写请求,这会改变元数据;非限定性的示例包括修改日期和文件大小。之前已经由文件服务器向正在执行流程400的客户机授予用于高速缓存目录元数据的句柄租约。
在操作404处,用来自请求的信息即修改目录元数据的信息,例如要写至文件的数据,来创建分组。因为之前已授予租约,存在第一目录键和与租约相关联的父目录的目录键。从而,在操作406中,该目录键被包括在分组中,且在操作408处,各目录键被包括在分组中。分组然后在410处被发送给服务器。在某些实施例中,客户机一开始在对开口的请求中发送目录键和父目录的目录键。服务器然后将对该开口上的所有后续操作使用各键。然而,在其它实施例中,客户机可对每一操作提供目录键和父目录键。
在操作410之后,流程传至操作412,在那里更新本地高速缓存来反映改变后的元数据。换言之,更新本地高速缓存来反映在最新的修改日期、文件大小等中的改变。流程400在414处结束。
图5示出了用于处理撤销目录元数据上的读租约的通知的流程500。可在已经从诸如服务器204(图2)的服务器向客户机授予读租约之后执行流程500。流程500开始于操作502处,在那里从服务器接收到指示正在撤销之前授予的对目录元数据的读租约的撤销通知。在一些实施例中,由于另一客户机已经执行的动作影响了高速缓存的目录元数据的相关性,例如对目录中文件的修改,因此由服务器发送撤销通知。响应于接收撤销通知,流程500传至操作504,在那里使任何高速缓存的目录元数据无效。在某些实施例中,操作504包括由客户机采取的指示高速缓存不可再被使用来向请求目录元数据的应用程序提供目录元数据的多个步骤。
在操作504之后,流程传至操作506,在那里向服务器发送撤销通知被成功接收的确认。在某些实施例中,流程500可不包括操作506。在这些实施例中,客户机接收撤销通知而不向服务器发送确认。流程然后传至操作508,在那里通过向服务器请求目录元数据来服务对目录元数据的任何请求。流程500在510处结束。
图6示出了根据用于允许本地高速缓存目录元数据的一些实施例的操作流程600。在某些实施例中,流程600可由作为分布式文件系统的一部分的文件服务器执行。
流程600开始于操作602,在那里接收到对目录元数据和租约的请求。该请求在某些实施例中由客户机发送,或由作为分布式文件系统的一部分的客户机上的重定向器发送。在操作602之后,流程600传递至判定604,在那里作出是否授予在操作602接收的请求中所请求的租约的判断。判定604可基于多个因素,包括例如是否已对目录元数据授予租约。如果在判定600,作出不授予租约的判断,则流程传至操作606,在那里发送带有目录元数据的分组。分组将包括所请求的租约未被授予的指示。流程然后在操作608处结束。
如果在判定604,作为可授予租约的判断,则流程600传至操作610,在那里存储目录键和父附录键。在某些实施例中,目录键和父目录键是用作跟踪向客户机授予的租约的租约键的GUID。在某些实施例中,随对目录元数据的请求和租约请求,在操作602接收目录键和父目录键。在该实施例中,目录和父目录键由在操作602发送请求的客户机生成。在其它实施例中,目录键和父目录键可由服务器生成,并且然后在操作610处被存储在租约表中。
在某些实施例中,目录键和父目录键表达两个或多个开口句柄之间的容器-孩子关系。这对文件键和目录键成立,该文件键与该目录中的文件相关联。例如,假定存在两个句柄开口H1和H2。H1可与文件键=K1和目录键=D相关联。H2可与文件键=K2和目录键=D相关联。各键指示由这些句柄所指的文件驻留在同一目录内。
再次参考图6,在操作612,将带有所请求的目录元数据和对租约批准的指示的响应分组发送给客户机。客户机然后可根据所授予的租约本地地高速缓存目录元数据。
在操作614,接收修改目录元数据的请求。该请求例如可以是将附加信息写入文件中。这将例如通过改变最后修改时间或文件大小来修改目录元数据。流程从操作614传至判定616,在那里作出修改目录元数据的请求是否来自租约持有者的判断。
在一个实施例中,在判定616处所作的判断是通过将与其上执行修改目录元数据的句柄相关联的租约键同与先前提供给客户机的句柄相关联的租约键进行比较来作出的。如上所述,在某些实施例中,客户机生成与文件句柄(或目录句柄)相关联的租约键,且因此每一键对于特定客户机将是唯一的。在一个示例中,提供给客户机的句柄H1与文件键=K1和目录键=D相关联。如果稍后服务器接收修改与句柄H2相关联的元数据的操作,则服务器将与句柄H2相关联的租约键同与句柄H1相关联的租约键进行比较。如果例如H2与文件键=K2和目录键=D相关联,服务器判断,由于H1和H2的目录键相同,因此在目录D上具有租约的同一客户机作出了修改,且因此租约不必被撤销。然而,如果H2与文件键=K2和目录键=D1相关联,则服务器将判断由于与句柄H1和H2相关联的目录键是不同的,因此必须撤销租约。
如果作出租约持有者是对目录元数据作出修改的那个的判断,则流程传至操作618,其中更新文件系统以反映修改后的目录元数据。流程600在608处结束。
如果在判定616作出请求不是来自租约持有者的判断,则流程传至判定620,在那里作出所请求的修改是否与已给予另一客户机的租约不一致的判断。如果请求并非不一致,则流程传至操作618并在608结束。
如果在判定620处作出请求与租约不一致的判断,则流程传至操作622,在那里向当前正持有目录元数据上的租约的客户机发送撤销通知。发送撤销以便于在访问目录元数据的所有客户机之间维护目录元数据的相关性。在操作624处接收撤销通知的确认,之后流程传至操作618并在608结束。
图7示出可用于实现此处所描述的各实施例的通用计算机环境700。计算机系统700仅是计算环境的一个示例,而非旨在对计算机和网络体系结构的使用范围或功能提出任何限制。计算机系统700也不应被解释成对于在示例计算机系统700中所示出的任一组件或其组合有任何依赖或要求。在某些实施例中,系统700可用作以上参考图1和图2所述的客户机和/或服务器。
在其最基本配置中,系统700通常包括至少一个处理单元702和存储器704。取决于计算设备的确切配置和类型,存储器704可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配置在图7中由虚线706来例示。系统存储器704存储在系统700上执行的应用程序。例如,存储器704可存储以上参考图2描述的报告查找表214。
此处所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储和不可移动存储708都是计算机存储介质示例(即,存储器存储)。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息并且可由计算设备700访问的任何其它介质。任何这样的计算机存储介质可以是设备700的一部分。计算设备700还可具有输入设备714,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括输出设备616,如显示器、扬声器、打印机等。上述设备是示例并且可使用其他设备。
此处所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可描述具有以对该信号中的信息编码的方式设定或者改变的一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。
本说明书通篇引述了“一个实施例”或“实施例”,这意味着在至少一个实施例中包括特定描述的特征、结构或特性。因此,对这样短语的使用可指的是一个以上的实施例。而且,在一个或多个实施例中,可以用任何合适的方式组合所描述的特征、结构或特性。
然而,本领域技术人员会认识到本发明也可在没有一个或多个具体细节的情况下实施,或者采用其它方法、资源、材料等来实现。仅仅为了避免模糊本发明的各方面,在其它情况下,未示出和详述公知的结构、资源或操作。
虽然示出和描述了示例实施例和应用,但是应该理解本发明不限于上述精确配置和资源。可以对此处公开的方法和系统的排列、操作以及细节作出对本领域技术人员显而易见的各种修改、改变和变化,而不背离所要求保护的本发明的范围。

Claims (19)

1.一种允许本地高速缓存目录元数据的方法,包括:
从第一客户机接收对目录元数据的第一请求,所述第一请求包括:
对包含所述目录元数据的目录的句柄的请求;
对租约的请求,所述租约允许本地高速缓存目录元数据直到所述租约撤销;
第一目录键,所述第一目录键与包括所请求的目录元数据的第一目录相关联;以及
第二目录键,所述第二目录键与第二目录相关联,所述第一目录被包括在所述第二目录中;以及
向所述第一客户机发送响应,所述响应包括所述目录元数据以及批准对所述租约的所述请求的指示。
2.如权利要求1所述的方法,其特征在于,对所述租约的所述请求指定以下中的一个或多个:读租约、写租约、以及句柄租约。
3.如权利要求1所述的方法,其特征在于,进一步包括:
接收修改目录元数据的第二请求;以及
确定所述第二请求是否是从第二客户机接收的。
4.如权利要求3所述的方法,其特征在于,确定所述第二请求是否是从第二客户机接收的包括将来自所述第二请求的目录键与之前存储的目录键进行比较。
5.如权利要求4所述的方法,其特征在于,还包括响应于确定来自所述第二请求的目录键与之前接收到的目录键不同,向所述第一客户机发送撤销所述租约的撤销通知。
6.如权利要求1所述的方法,其特征在于,进一步包括:
接收修改所述第二目录内存储的文件的第二请求,所述第二请求包括与所述文件相关联的文件键以及第三目录键。
7.如权利要求1所述的方法,其特征在于,所述第二目录键和所述第一目录键被存储在查找表中。
8.如权利要求7所述的方法,其特征在于,所述查找表存储所述第一目录键与所述第二目录键的关联。
9.如权利要求1所述的方法,其特征在于,进一步包括:
发送所述租约的撤销通知;以及
响应于发送所述租约的撤销通知,接收对接收到所述撤销通知的确认。
10.如权利要求7所述的方法,其特征在于,撤销通知包括所述目录元数据已被从所述第一客户机可访问的本地高速缓存中移除的通知。
11.一种允许本地高速缓存目录元数据的系统,包括:
用于从第一客户机接收对目录元数据的第一请求的装置,所述第一请求包括:
对包含所述目录元数据的目录的句柄的请求;
对租约的请求,所述租约允许本地高速缓存目录元数据直到所述租约撤销;
第一目录键,所述第一目录键与包括所请求的目录元数据的第一目录相关联;以及
第二目录键,所述第二目录键与第二目录相关联,所述第一目录被包括在所述第二目录中;以及
用于向所述第一客户机发送响应,所述响应包括所述目录元数据以及批准对所述租约的所述请求的指示的装置。
12.如权利要求11所述的系统,其特征在于,对所述租约的所述请求指定以下中的一个或多个:读租约、写租约、以及句柄租约。
13.如权利要求11所述的系统,其特征在于,还包括:
用于接收修改目录元数据的第二请求的装置;以及
用于确定所述第二请求是否是从第二客户机接收的的装置。
14.如权利要求13所述的系统,其特征在于,用于确定所述第二请求是否是从第二客户机接收的的装置包括用于将来自所述第二请求的目录键与之前存储的目录键进行比较的装置。
15.如权利要求14所述的系统,其特征在于,还包括用于响应于确定来自所述第二请求的目录键与之前接收到的目录键不同,向所述第一客户机发送撤销所述租约的撤销通知的装置。
16.如权利要求11所述的系统,其特征在于,还包括:
用于发送所述租约的撤销通知的装置;以及
用于响应于发送所述租约的撤销通知,接收对接收到所述撤销通知的确认的装置。
17.一种允许本地高速缓存目录元数据的系统,包括:
处理器;以及
耦合于所述处理器的存储器,所述存储器用于存储指令,所述指令在由所述处理器执行时执行一种方法,所述方法包括:
从第一客户机接收对目录元数据的第一请求,所述第一请求包括:
对包含所述目录元数据的目录的句柄的请求;
对允许本地高速缓存目录元数据的租约的请求;
与包括所请求的目录元数据的第一目录相关联的第一目录键;以及
与第二目录相关联的第二目录键;以及
向所述第一客户机发送批准响应,所述响应包括批准对所述租约的所述请求的指示。
18.如权利要求17所述的系统,其特征在于,所述响应还包括所述目录元数据。
19.如权利要求17所述的系统,其特征在于,对所述租约的所述请求指定以下中的一个或多个:读租约、写租约、以及句柄租约。
CN201410513205.XA 2010-09-17 2011-09-16 目录租赁 Active CN104268242B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/885,384 US8589553B2 (en) 2010-09-17 2010-09-17 Directory leasing
US12/885,384 2010-09-17
CN201110290775.3A CN102521224B (zh) 2010-09-17 2011-09-16 目录租赁

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201110290775.3A Division CN102521224B (zh) 2010-09-17 2011-09-16 目录租赁

Publications (2)

Publication Number Publication Date
CN104268242A CN104268242A (zh) 2015-01-07
CN104268242B true CN104268242B (zh) 2018-04-10

Family

ID=45818735

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110290775.3A Active CN102521224B (zh) 2010-09-17 2011-09-16 目录租赁
CN201410513205.XA Active CN104268242B (zh) 2010-09-17 2011-09-16 目录租赁

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201110290775.3A Active CN102521224B (zh) 2010-09-17 2011-09-16 目录租赁

Country Status (12)

Country Link
US (3) US8589553B2 (zh)
EP (2) EP3637275B1 (zh)
JP (1) JP5809275B2 (zh)
KR (1) KR101841311B1 (zh)
CN (2) CN102521224B (zh)
AU (1) AU2011302396B2 (zh)
BR (1) BR112013006347A2 (zh)
CA (1) CA2809133A1 (zh)
HK (1) HK1206119A1 (zh)
MX (1) MX2013002933A (zh)
RU (1) RU2596986C2 (zh)
WO (1) WO2012036938A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463846B2 (en) * 2010-05-06 2013-06-11 Cdnetworks Co., Ltd. File bundling for cache servers of content delivery networks
US8589553B2 (en) 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing
CN102819570B (zh) * 2012-07-19 2015-09-30 华为技术有限公司 一种数据访问方法、装置及系统
US9454573B1 (en) * 2013-02-25 2016-09-27 Emc Corporation Parallel processing database system with a shared metadata store
CN103714183B (zh) * 2014-01-10 2017-02-15 浪潮(北京)电子信息产业有限公司 一种元数据租约期限的动态获取方法和系统
US20150234775A1 (en) * 2014-02-14 2015-08-20 Western Digital Technologies, Inc. Enabling file oriented access on storage devices
US10264071B2 (en) * 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10169367B2 (en) * 2014-06-06 2019-01-01 Panzura, Inc. Managing opportunistic locks in a distributed file system
US11151082B1 (en) * 2015-03-31 2021-10-19 EMC IP Holding Company LLC File system operation cancellation
US11144504B1 (en) * 2015-03-31 2021-10-12 EMC IP Holding Company LLC Eliminating redundant file system operations
US11294862B1 (en) 2015-03-31 2022-04-05 EMC IP Holding Company LLC Compounding file system metadata operations via buffering
US9940213B2 (en) * 2015-06-10 2018-04-10 International Business Machines Corporation Integrating external services with a clustered file system
US10742731B2 (en) 2015-06-10 2020-08-11 International Business Machines Corporation Maintaining service configuration consistency across nodes of a clustered file system
KR20170010574A (ko) * 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
CN107516048B (zh) * 2016-06-16 2021-01-08 阿里巴巴集团控股有限公司 一种控制分布式文件系统中文件访问的方法与设备
CN106648903B (zh) * 2017-01-03 2019-03-26 北京百度网讯科技有限公司 调用分布式文件系统的方法和装置
CN107360245B (zh) * 2017-07-28 2020-10-16 苏州浪潮智能科技有限公司 一种基于租约锁机制的本地缓存方法及装置
US11301421B2 (en) * 2018-05-25 2022-04-12 Microsoft Technology Licensing, Llc Scalable multi-tier storage structures and techniques for accessing entries therein
CN109918356B (zh) * 2019-03-15 2023-05-12 深信服科技股份有限公司 文件读取方法、装置、设备及计算机可读存储介质
US11204892B2 (en) 2019-03-21 2021-12-21 Microsoft Technology Licensing, Llc Techniques for snapshotting scalable multitier storage structures
KR102018593B1 (ko) * 2019-05-22 2019-09-06 (주)에이앤티 말림방지 구조를 갖는 박판용 이물질 세정장치
CN112765106B (zh) * 2019-10-21 2024-05-14 伊姆西Ip控股有限责任公司 文件访问方法、电子设备和计算机程序产品
CN111177197B (zh) * 2019-12-26 2023-03-14 北京仁科互动网络技术有限公司 一种缓存处理方法及系统
CN111158597A (zh) * 2019-12-28 2020-05-15 浪潮电子信息产业股份有限公司 一种元数据读取方法、装置及电子设备和存储介质
CN112905556B (zh) * 2021-02-09 2022-11-15 山东英信计算机技术有限公司 分布式系统的目录租约管理方法、装置、设备及存储介质
CN113590546B (zh) * 2021-06-30 2024-10-18 济南浪潮数据技术有限公司 一种目录删除方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757705B1 (en) * 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
CN101236570A (zh) * 2007-01-03 2008-08-06 国际商业机器公司 用于协调访问本地和远程输出文件系统的方法和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897782A (en) 1987-10-19 1990-01-30 International Business Machines Corporation Local cache structure for maintaining updated file characteristics in a file sharing system
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
CA2513503A1 (en) * 2003-01-17 2004-08-12 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7363429B2 (en) 2004-01-29 2008-04-22 Toshiba Corporation System and method for caching directory data in a networked computer environment
EP1577776B1 (en) * 2004-03-18 2007-05-02 Alcatel Lucent Method and apparatus for data synchronization in a distributed data base system
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20080028033A1 (en) 2006-07-28 2008-01-31 Kestrelink Corporation Network directory file stream cache and id lookup
US8370456B2 (en) 2006-09-22 2013-02-05 Microsoft Corporation Intelligent pre-fetching using compound operations
US20080192582A1 (en) * 2007-02-14 2008-08-14 Now Is Forever, Llc. Timepiece suggestive of orbital motion
JP5076736B2 (ja) 2007-08-27 2012-11-21 日本電気株式会社 計算機システム、ストレージ、アクセス制御方法およびアクセス制御用プログラム
US8185566B2 (en) * 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US8296420B2 (en) * 2009-09-18 2012-10-23 Hitachi, Ltd. Method and apparatus for constructing a DHT-based global namespace
US8589553B2 (en) 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757705B1 (en) * 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
CN101236570A (zh) * 2007-01-03 2008-08-06 国际商业机器公司 用于协调访问本地和远程输出文件系统的方法和系统

Also Published As

Publication number Publication date
RU2596986C2 (ru) 2016-09-10
EP2616950B1 (en) 2019-12-25
EP3637275B1 (en) 2021-03-31
JP2013538407A (ja) 2013-10-10
CA2809133A1 (en) 2012-03-22
CN102521224B (zh) 2014-10-29
AU2011302396B2 (en) 2014-07-10
HK1206119A1 (zh) 2015-12-31
US20140040332A1 (en) 2014-02-06
MX2013002933A (es) 2013-06-28
US9092450B2 (en) 2015-07-28
US20120072596A1 (en) 2012-03-22
BR112013006347A2 (pt) 2016-06-28
EP2616950A2 (en) 2013-07-24
RU2013111824A (ru) 2014-09-20
KR20130107280A (ko) 2013-10-01
WO2012036938A3 (en) 2012-07-05
EP2616950A4 (en) 2017-06-07
US9292539B2 (en) 2016-03-22
CN104268242A (zh) 2015-01-07
CN102521224A (zh) 2012-06-27
EP3637275A1 (en) 2020-04-15
WO2012036938A2 (en) 2012-03-22
US8589553B2 (en) 2013-11-19
US20150149505A1 (en) 2015-05-28
KR101841311B1 (ko) 2018-03-22
JP5809275B2 (ja) 2015-11-10
AU2011302396A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
CN104268242B (zh) 目录租赁
US9977811B2 (en) Presenting availability statuses of synchronized objects
US7624134B2 (en) Enabling access to remote storage for use with a backup program
CN102394872B (zh) 数据通信协议
US8782602B2 (en) Updating a workflow when a user reaches an impasse in the workflow
US7783591B2 (en) Coordinated data conversion systems and methods
TWI450109B (zh) 使用具有全域知識之伺服器來處理寫入請求
US20070294237A1 (en) Enterprise-Wide Configuration Management Database Searches
JP5340610B2 (ja) 複数の構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
JP2005535947A (ja) 異なるタイプのバックエンド・データ・ストアにアクセスするためのシステムおよび方法
CN106933747B (zh) 基于多流的数据存储系统和数据存储方法
GB2401693A (en) Conflict-free updating of directory information between servers
CN114443677A (zh) 对象存储服务系统
US8224996B2 (en) Directory viewports
US10824748B2 (en) Method and system for low overhead control/status handshake for remote shared file server
JP4186521B2 (ja) サービス提供システム、画像管理装置、情報処理装置および方法、並びにプログラム
JP2005284939A (ja) ディレクトリシステム
JPH11212679A (ja) リモート電源制御方式およびリモート電源制御プログラムを記録した記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1206119

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20171017

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1206119

Country of ref document: HK