CN1774697A - 管理对计算环境对象的访问 - Google Patents

管理对计算环境对象的访问 Download PDF

Info

Publication number
CN1774697A
CN1774697A CN200480009759.0A CN200480009759A CN1774697A CN 1774697 A CN1774697 A CN 1774697A CN 200480009759 A CN200480009759 A CN 200480009759A CN 1774697 A CN1774697 A CN 1774697A
Authority
CN
China
Prior art keywords
entity
logic
buffer
visit
buffer entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200480009759.0A
Other languages
English (en)
Other versions
CN100397343C (zh
Inventor
R·阿南塔纳拉亚纳
C·埃弗哈特
V·尤伊里
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1774697A publication Critical patent/CN1774697A/zh
Application granted granted Critical
Publication of CN100397343C publication Critical patent/CN100397343C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

管理对计算环境对象的访问。通过一个与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问,而通过另一个缓存实体来允许对所述对象的访问。所述缓存实体被同时保持一段时间,但所述一个缓存实体处于影子状态。在一个实例中,所述缓存实体是会话锁并且所述对象是文件系统对象。

Description

管理对计算环境对象的访问
技术领域
本发明一般地涉及计算环境内的处理,具体地说,涉及管理对计算环境对象的访问。
背景技术
控制对计算环境的各种对象(如文件、目录等)的访问以便提供安全性并保持数据完整性。在许多计算环境中,在所述控制中使用锁定协议。例如,在分布式文件系统中,通过多个锁来控制对文件系统对象的访问。作为实例,某些锁被用来协调对文件系统内容的缓存,而其他锁被用来协调不同客户机对文件系统对象的访问。
为了提高系统性能,在一个或多个客户机高速缓存中缓存一个或多个锁。因此,确保缓存锁在使用时有效是很重要的。尽管存在缓存协议,但是仍然需要进一步管理缓存锁或其他缓存实体的能力。
发明内容
通过提供一种管理对计算环境对象的访问的方法,解决了现有技术的不足之处并提供了额外的优点。在本发明的一个方面中,提供了一种方法,所述方法包括例如通过与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问;以及通过与所述对象对应的另一个缓存实体来允许对所述对象的访问,其中所述缓存实体和所述另一个缓存实体被同时保持一段时间。
在本发明的进一步的方面中,提供了一种管理对文件系统对象的访问的方法,所述方法包括例如通过所述文件系统的服务器来促进提供与所述文件系统的对象对应的实体的不一致状态;通过所述文件系统的客户机来无效所述对象的一个或多个现有打开以响应所述不一致状态;以及通过所述客户机来允许所述对象的一个或多个其他打开,以响应与由所述服务器提供的所述对象对应的另一个实体,其中至少一个被无效的现有打开和至少一个其他打开同时处于打开状态一段时间。
在本发明的另一个方面中,提供了一种管理对计算环境对象的访问的方法,所述方法包括例如通过所述计算环境的服务器来促进提供与所述计算环境的对象关联的实体的不一致状态;以及通过所述服务器来提供与所述对象关联的另一个实体,其中所述不一致实体和所述另一个实体在一段时间内可被同时访问以便管理对所述对象的访问。
此处还描述并要求保护对应于上述方法的系统和计算机程序产品。
通过本发明的技术实现了其他特征和优点。此处详细描述了本发明的其他实施例和方面,并且它们被看作所要求保护的发明的一部分。
附图说明
在本说明书结尾处的权利要求书中特别指出并明确要求了被看作本发明的主题。通过以下结合附图的详细说明,本发明的上述和其他目标、特性和优点是显而易见的,这些附图是:
图1A示出了结合并使用本发明的一个或多个方面的计算环境的一个
实施例;
图1B示出了结合并使用本发明的一个或多个方面的文件系统;
图2A-2B示出了根据本发明的一个方面的图1B的客户机高速缓存的实例;
图3示出了根据本发明的一个方面的与打开文件系统对象关联的逻辑的一个实施例;
图4示出了根据本发明的一个方面的具有用来访问与句柄(handle)对应的文件系统对象的相同句柄的多个应用;
图5示出了根据本发明的一个方面的与检查缓存实体的有效性关联的逻辑的一个实施例;
图6示出了根据本发明的一个方面的与将缓存实体转换成影子实体关联的逻辑的一个实施例;
图7示出了根据本发明的一个方面的使用旧实体句柄并接收错误的各应用同时使用新实体句柄的另一个应用进行成功处理的一个实例;
图8示出了根据本发明的一个方面的与关闭缓存实体关联的逻辑的一个实施例;
图9A-9B示出了与其中采用本发明的一个或多个方面的特定实例关联的逻辑的一个实施例。
具体实施方式
综述
根据本发明的一个方面,提供了一种用于管理对计算环境对象的访问的能力。通过一个与对象对应的缓存实体来禁止对所述对象的访问,同时通过另一个缓存实体来允许对所述对象的访问。所述一个缓存实体和所述另一个缓存实体至少被同时保持某些时间。在一个实例中,所述缓存实体代表控制对所述对象的访问的锁。例如,在文件系统中,文件系统对象的一个或多个现有打开被无效,以响应与变成不一致的所述文件系统对象关联的缓存实体(例如,锁)。但是,虽然至少一个无效的现有打开被保持在无效但是打开状态,通过采用代表所述对象的另一个缓存实体,允许继续所述文件系统对象的一个或多个新的打开。
详细描述
参考图1A描述了结合并使用本发明的一个或多个方面的计算环境的一个实施例。计算环境100包括例如通过连接106与另一个计算单元104相连的计算单元102。计算单元包括例如个人计算机、膝上型计算机、工作站、大型机、小型计算机或任何其他类型的计算单元。计算单元102可以是与计算单元104相同类型的单元,也可以是不同类型的单元。将这些单元相连的连接是有线连接或任何类型的网络连接,诸如局域网(LAN)、广域网(WAN)、令牌网、以太网连接、互联网连接等。
在一个实例中,每个计算单元都执行操作系统108,诸如例如由纽约阿蒙克的国际商业机器公司提供的z/OS操作系统;UNIX操作系统;Linux;Windows;或其他操作系统等。某一计算单元的操作系统可以与另一计算单元的操作系统相同或不同。进而,在其他实例中,一个或多个计算单元可能不包括操作系统。
在一个实施例中,计算单元102包括客户端应用(也称为客户机)110,其与计算单元104上的服务器应用(也称为服务器)112相连。客户机110与服务器112在连接应用的TCP/IP链路上通过例如网络文件系统(NFS)协议来通信。进而,在至少一个计算单元上,一个或多个用户应用114正在执行。
在一个特定实施例中,所述环境包括诸如分布式文件系统之类的文件系统(图1B),其中采用存储区域网络116来促进通过高速链路的一个或多个客户机110以及一个或多个服务器112对一个或多个存储设备118的访问。存储区域网络的使用使得能够提供高性能的分布式文件系统,其允许客户机直接从存储设备获得数据,而不是通过代表它们执行读写的服务器来访问数据。但是,所述客户机访问通过一个或多个服务器来协调。
在分布式文件系统中,在客户机计算单元上运行的包括例如用户应用、客户机应用等的应用访问文件系统命名空间,该命名空间例如分布在一个或多个计算单元之间。所述命名空间包括一个或多个可由所述应用访问的文件系统对象。在一个实例中,所述命名空间被组织为树型结构并包括各种类型的对象,诸如例如文件,其包括客户机可以访问的数据;目录,用来组织其他对象;以及符号链接,其是树中的各点,在该处对象的名称查找被重定向。
与文件系统对象关联的是实体,其被用来例如促进对文件系统对象的访问。这些实体被缓存在客户机驻留高速缓存120中以便更快的访问。在一个实施例中,一个或多个应用(例如,用户应用、客户机应用)可以访问缓存实体。
缓存实体具有多种与其关联的属性,包括例如引用计数,其指示多少应用具有实体的句柄;以及有效性指示符,其指定缓存实体是否有效。作为一个实例,在诸如链接式列表200(图2A)之类的数据结构中,所述缓存实体彼此连接。
控制对文件系统对象的访问以维护安全性和数据完整性。下面将描述与管理对文件系统对象的访问关联的逻辑的一个实施例。
首先参考图3,在步骤300,应用请求打开文件系统对象(例如文件)。在一个实例中,在步骤302,应用在客户机计算单元上执行,并且所述打开包括在客户机的高速缓存中执行搜索,搜索与所请求的文件系统对象关联的实体。所述实体用来促进对文件系统对象的访问,并且出于说明目的,在此称为实体X。在查询304,如果所述关联的实体不在高速缓存中,则在步骤306创建所述实体的实例并将其添加到高速缓存中。这包括例如将实体X附加到缓存实体的链接式列表,如202处所示(图2B)。返回图3,此后,在步骤308,递增缓存实体的引用计数,并且在步骤310,计算所述实体的句柄。在一个实例中,这包括确定缓存实体的地址,在步骤312,其作为句柄(例如,句柄Hx)被返回。
返回参考查询304,假如所述高速缓存搜索是成功的,则在步骤308,递增缓存实体的引用计数,并且在步骤310,处理以计算实体句柄继续。这包括打开处理。
在客户机计算单元上执行的一个或多个应用可以请求打开同一文件系统对象。在此情况下,如图4所示,每个应用都可以从客户机获得相同的句柄。如所描述的,应用1-4都接收并使用句柄Hx以便进行处理。
在应用处理期间,在打开文件系统对象时请求诸如读或写操作之类的操作。作为此处理的一部分,对缓存实体的有效性进行检查,这用来促进对文件系统对象的访问。参考图5对与此检查关联的逻辑的一个实施例进行了描述。在步骤500,将被检查有效性的缓存实体是与在打开中返回的对象句柄对应的实体。在一个实例中,此检查包括检查缓存实体的有效性指示符。在查询502,如果实体处于无效状态,则在步骤504返回错误。否则,在步骤506返回成功指示。
在某些点处,缓存实体可能变得不一致。假如其变得不一致,则其被转换成影子实体,如参考图6所描述的。在步骤600,响应于缓存实体变得不一致,在步骤602,在高速缓存中搜索所述缓存实体,例如实体X。在步骤604,从实体的链接式列表删除所述缓存实体。但是,在步骤606,所述实体仍然作为影子实体(即,独立的实体)保留在高速缓存中。例如,所述实体被移动到高速缓存的另一部分并被标记为影子实体。图7示出了这样的一个实例,其中高速缓存700具有影子实体702。此后,在步骤608(图6),高速缓存统计被更新。例如,递减高速缓存的实体计数。
根据本发明的一个方面,任何旧的打开仍然引用这样的实体,所述实体使用它们在打开中接收的句柄,但是任何新的打开都将导致高速缓存未命中(cache miss),因为所述实体不再位于主实体散列表列表(例如,链接式列表)中。因此,所述实体将被引入高速缓存并具有新的句柄。因此,如图7的实例所示,应用1-4仍使用会导致返回错误的句柄Hx(704),但应用5接收允许成功访问的新的句柄NHx(706)。因此,与应用1-4关联的打开被无效,而与应用5关联的打开被允许。所述被无效的打开与被允许的打开同时保持打开状态一段时间(例如,直到不一致的缓存实体被关闭为止)。在应用1-4关闭所述实体之后,所述实体将不再存在,并且具有该实体的应用也不再处于打开状态。
参考图8描述了与关闭缓存实体关联的逻辑的一个实施例。在步骤800,在具有从打开中返回的句柄的实体上执行关闭。在步骤802,递减缓存实体的引用计数。在查询804,如果引用计数不是零,则关闭处理完成。但是,如果引用计数是零,则在查询806,判定其是否是影子实体。如果是,则在步骤808取消分配所述实体。否则,在步骤810,从高速缓存中删除该实体。这结束了所述关闭处理。
以上描述了这样一种能力,其中允许对象的新的打开,而禁止在旧的打开上的操作。其中采用此能力的一个实例具有用于分布式文件系统的锁定机制。例如,文件系统使用分布式锁(在此称为会话锁)在该文件系统的不同客户机之间控制对文件系统对象的访问。在一个实例中,每个客户机都具有每个文件系统对象一个的会话锁,但是该锁可用于多个与该客户机关联的应用。例如,客户机1获得文件系统对象(文件“Foo”)的会话锁(实体X)。该客户机的一个或多个应用使用该锁(通常,隐含地,但是在其他实施例中,可以是显式地)来访问文件(例如,读、写、创建、查找)。以下参考图9A-9B对此进行进一步描述。
在步骤900,当应用请求打开文件系统对象时,在步骤902,将打开请求从所述应用发送到客户机(例如,通过平台相关的可安装文件系统(IFS)发送到平台无关的客户机状态管理器(CSM))。在步骤904,客户机检查其高速缓存以寻找在文件系统对象上的会话锁。在查询906,如果存在缓存命中,则在步骤908将成功返回给客户机。如果不存在,则在步骤910,客户机将请求发送给服务器并且服务器处理该请求。在查询912,如果许可不成功,则在步骤914返回错误。否则,在步骤916,来自服务器的成功响应将文件系统对象上的会话锁授与被请求的客户机。在步骤917,该客户机缓存所述会话锁,并且因此在后续的打开上,客户机在本地返回成功。因此,与运行在同一文件系统对象上的某一客户机关联的不同应用可以具有不同的文件描述符,但只能具有一个会话锁。
在步骤918,客户机将缓存的会话锁的句柄(例如,地址)提供给请求所述打开的应用。此句柄随后用于进一步的处理。
例如,响应于成功的打开,在步骤920(图9B),针对打开的文件系统对象启动一个或多个操作(例如,读、写、查找或其他操作)。对于每个操作,在查询922,检查所述会话锁的有效性。在一个实例中,当与锁关联的租借到期之时,该会话锁可能变成无效。例如,租借是客户机与服务器之间的合同,其中服务器在租借中指定的时间段内保证客户机高速缓存中的数据的正确性。租借可以在其到期之前续租。但是,如果没有续租(例如,由于断开连接、服务器崩溃或任何其他原因),则在租借周期结束时,在租借期间获得的锁被无效。因此,当客户机没有有效的锁时,它不能对缓存的数据进行操作。因此,为了继续操作,在步骤924,客户机向服务器重新标识其自身以便进入新的租借,并尝试重新断言所述无效的锁。如果成功,则在步骤928,由客户机将锁的无效状态更改为有效并且操作继续。类似地,在查询922,如果会话锁有效,则过程继续。
但是,在查询926,如果重新断言不成功,则在步骤930,所述会话锁处于不一致状态。因此,在步骤932,执行各种操作。例如,文件系统对象的任何打开的实例被无效。为了无效打开的实例,客户机通过将缓存的会话锁标记为影子实体、从缓存列表中删除该缓存的会话锁以及将其作为独立实体保留在列表中,使得所述缓存的会话锁成为影子实体。由于所述锁被从缓存列表中删除,现有的对会话锁的引用将得到错误(例如,由于其影子状态),由此使与那些引用关联的打开无效。所述锁在高速缓存中被保持为独立的实体,直到现有的对所述对象的引用被撤消。然后,关闭该实体。但是,对文件(与所述影子实体对应)的新的访问(例如,打开)将创建一个新的缓存实体(例如,新的会话锁),允许新的访问正常继续。即,从客户机的角度,就像第一次访问该锁一样。因此,客户机向服务器发送会话锁请求并且新的会话锁被返回。对该会话锁的新的引用将正确地工作,而对旧锁的引用将得到错误。
优点
以上详细描述的是一种用于管理对文件系统对象的访问的能力。虽然文件系统对象的一个或多个现有打开可能被无效,但是允许一个或多个新的打开。在一个实例中,这通过缓存实体来实现,具体地说,通过影子实体来实现。影子实体的使用在最小程度地改变现有设计和/或代码的情况下有利地提供了所需的管理收益。进而,它通过允许访问文件系统对象(尽管一个或多个旧的打开尚未被关闭)提高了系统性能。更进一步地,通过以这种方式维护缓存实体,无需使每个打开都具有一个会话锁实例(其将使客户机高速缓存不必要地增大并难以维护)。
可替代实施例
虽然此处给出并详细说明了优选实施例,对相关领域的技术人员显而易见的是,可以做出各种修改、增加、替代等而不偏离本发明的精神,并且因此它们被看作在如以下权利要求限定的本发明的范围之内。
例如,尽管在上述的一个实施例中,一个客户机与一个服务器相连,但是在其他实施例中,一个或多个客户机可以与一个或多个服务器相连或者是它们的任意组合。所述一个或多个客户机可以在一个或多个计算单元上。类似地,所述一个或多个服务器可以在一个或多个计算单元上。进而,所述一个或多个客户机以及一个或多个服务器可以在一个计算单元上。
此外,尽管已经提供了计算环境的实例,但这些只是实例。可以使用其他环境。例如,尽管参考文件系统在此描述了一个实例,但这只是一个实例。本发明的一个或多个方面适用于其他环境。更进一步地,尽管参考会话锁在此描述了一个实例,但是可以代表其他类型的锁或其他类型的资源。所述缓存实体可以不只用于锁定并且可以用于其他目的。作为一个实例,所述缓存实体自身可以是对象的实例。
此外,尽管在上述实施例中,缓存实体变成不一致以响应到期的租借,但是缓存实体为何变成不一致可以有各种其他原因。这些都被认为是所要求保护的发明的一部分。进而,实体的缓存列表可以在除链接式列表以外的其他数据结构中。
更进一步地,请求访问文件系统对象的应用可以是各种应用,包括但并不限于用户应用、客户机应用或任何其他类型的应用。
此处示出的流程图只是实例。在不偏离本发明的精神的情况下,此处所述的这些图或步骤(或操作)可以有多种变化。例如,可以按不同顺序执行步骤,或者可以添加、删除或修改步骤。所有这些变化都被视为要求保护的发明的一部分。
本发明可以被包括在具有例如计算机可用介质的制品(例如,一个或多个计算机程序产品)中。所述介质中包含例如计算机可读程序代码装置或逻辑(例如,指令、代码、命令等),以便提供和促进本发明的功能。所述制品可以被包括为计算机系统的一部分或单独销售。
此外,可以提供至少一个计算机可读的程序存储装置,该装置包含至少一个计算机可执行的指令程序以执行本发明的功能。
本公开的范围包括在此披露的任何新颖特征或这些特征的组合。申请人在此通告,在本申请或从此衍生的任何此类进一步的申请的诉讼期间,可以根据此类特征或特征的组合来构想新的权利要求。具体地说,参考所附的权利要求书,来自从属权利要求的特征可以与独立权利要求的那些特征进行组合,而来自各个独立权利要求的特征可以以任何适当的方式进行组合并且不仅限于所述权利要求书中列出的特定组合。
为了避免疑义,如此处在整个说明书和权利要求书中所使用的,术语“包括”不应被解释为“仅由...组成”。

Claims (52)

1.一种管理对计算环境对象的访问的方法,所述方法包括:
通过与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问;以及
通过与所述对象对应的另一个缓存实体来允许对所述对象的访问,其中所述缓存实体和所述另一个缓存实体被同时保持一段时间。
2根据权利要求1的方法,其中所述禁止访问响应于所述缓存实体变成不一致。
3.根据权利要求1或2的方法,其中所述缓存实体变成不一致,以响应与所述缓存实体关联的到期租借。
4.根据权利要求2或3的方法,其中所述缓存实体包括与所述对象关联的锁。
5.根据权利要求2、3或4的方法,其中所述禁止包括将所述不一致的缓存实体转换成影子实体。
6.根据权利要求5的方法,其中所述转换包括从缓存实体的数据结构中删除所述不一致的缓存实体以提供独立的缓存实体。
7.根据权利要求6的方法,其中所述转换还包括将所述独立的缓存实体标记为影子实体。
8.根据任一上述权利要求的方法,其中所述禁止包括提供错误以响应采用了与所述缓存实体对应的句柄。
9.根据任一上述权利要求的方法,其中所述允许响应于导致缓存所述另一个缓存实体的高速缓存未命中。
10.根据任一上述权利要求的方法,其中所述允许包括为与所述对象对应的所述另一个缓存实体提供有效的句柄。
11.根据任一上述权利要求的方法,其中所述允许包括:
由客户机从服务器请求与所述对象对应的实体;
由所述服务器向所述客户机提供所请求的实体;以及在所述客户机的高速缓存中缓存所请求的实体,其中所述高速缓存中的所请求的实体是所述另一个缓存实体。
12.根据任一上述权利要求的方法,其中所述禁止包括删除对所述缓存实体的有效访问,并且其中所述允许包括提供对所述另一个缓存实体的有效访问。
13.根据任一上述权利要求的方法,其中所述缓存实体和所述另一个缓存实体位于促进对所述对象的访问的客户机的高速缓存中。
14.根据权利要求13的方法,其中所述缓存实体是所述高速缓存内的影子实体,并且所述另一个缓存实体具有所述高速缓存的数据结构。
15.根据任一上述权利要求的方法,其中所述对象包括文件系统对象。
16.一种管理对文件系统对象的访问的方法,所述方法包括:
通过所述文件系统的服务器来促进提供与所述文件系统的对象对应的实体的不一致状态;
通过所述文件系统的客户机来无效所述对象的一个或多个现有打开以响应所述不一致状态;以及
通过所述客户机来允许所述对象的一个或多个其他打开,以响应与由所述服务器提供的所述对象对应的另一个实体,其中至少一个被无效的现有打开和至少一个其他打开同时处于打开状态一段时间。
17.根据权利要求16的方法,其中所述促进包括通过所述服务器来拒绝所述客户机重新断言所述实体的请求,其中所述不一致状态响应于所述拒绝。
18.根据权利要求17的方法,其中所述重新断言的请求响应于所述客户机与所述服务器之间的租借到期。
19.根据权利要求16、17或18的方法,其中所述实体包括锁。
20.一种管理对计算环境对象的访问的方法,所述方法包括:
通过所述计算环境的服务器来促进提供与所述计算环境的对象关联的实体的不一致状态;以及
通过所述服务器来提供与所述对象关联的另一个实体,其中所述不一致实体和所述另一个实体在一段时间内可被同时访问以便管理对所述对象的访问。
21.根据权利要求20的方法,其中所述对象包括文件系统对象,并且所述实体包括与所述文件系统对象对应的锁。
22.根据权利要求20或21的方法,其中所述锁的所述不一致状态响应于与该锁关联的到期租借。
23.一种管理对计算环境对象的访问的系统,所述系统包括:
用于通过与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问的装置;以及
用于通过与所述对象对应的另一个缓存实体来允许对所述对象的访问的装置,其中所述缓存实体和所述另一个缓存实体被同时保持一段时间。
24.根据权利要求23的系统,其中所述禁止访问响应于所述缓存实体变成不一致。
25.根据权利要求23或24的系统,其中所述用于禁止的装置包括用于将所述不一致的缓存实体转换成影子实体的装置。
26.根据权利要求25的系统,其中所述用于转换的装置包括用于从缓存实体的数据结构中删除所述不一致的缓存实体以提供独立的缓存实体的装置。
27.根据权利要求23至26中的任一权利要求的系统,其中所述用于禁止的装置包括用于提供错误以响应采用了与所述缓存实体对应的句柄的装置。
28.根据权利要求23至27中的任一权利要求的系统,其中所述允许响应于导致缓存所述另一个缓存实体的高速缓存未命中。
29.根据权利要求23至28中的任一权利要求的系统,其中所述用于允许的装置包括用于为与所述对象对应的所述另一个缓存实体提供有效的句柄的装置。
30.根据权利要求23至29中的任一权利要求的系统,其中所述用于禁止的装置包括用于删除对所述缓存实体的有效访问的装置,并且其中所述用于允许的装置包括用于提供对所述另一个缓存实体的有效访问的装置。
31.根据权利要求23至30中的任一权利要求的系统,其中所述缓存实体和所述另一个缓存实体位于促进对所述对象的访问的客户机的高速缓存中。
32.根据权利要求31的系统,其中所述缓存实体是所述高速缓存内的影子实体,并且所述另一个缓存实体具有所述高速缓存的数据结构。
33.根据权利要求23至32中的任一权利要求的系统,其中所述对象包括文件系统对象。
34.一种管理对计算环境对象的访问的系统,所述系统包括:
客户机,所述客户机被配置成通过与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问;以及
所述客户机被配置成通过与所述对象对应的另一个缓存实体来允许对所述对象的访问,其中所述缓存实体和所述另一个缓存实体被同时保持一段时间。
35.一种用于管理对文件系统对象的访问的系统,所述系统包括:
所述文件系统的服务器,所述服务器被配置成促进提供与所述文件系统的对象对应的实体的不一致状态;
所述文件系统的客户机,所述客户机被配置成无效所述对象的一个或多个现有打开以响应所述不一致状态;以及
所述客户机被配置成允许所述对象的一个或多个其他打开,以响应与由所述服务器提供的所述对象对应的另一个实体,其中至少一个被无效的现有打开和至少一个其他打开同时处于打开状态一段时间。
36.根据权利要求35的系统,其中所述被配置成促进提供不一致状态的服务器拒绝所述客户机重新断言所述实体的请求,其中所述不一致状态响应于所述拒绝。
37.一种管理对计算环境对象的访问的系统,所述系统包括:
所述计算环境的服务器,所述服务器被配置成促进提供与所述计算环境的对象关联的实体的不一致状态;以及
所述服务器被配置成提供与所述对象关联的另一个实体,其中所述不一致实体和所述另一个实体在一段时间内可被同时访问以便管理对所述对象的访问。
38.根据权利要求37的系统,其中所述对象包括文件系统对象,并且所述实体包括与所述文件系统对象对应的锁。
39.根据权利要求38的系统,其中所述锁的所述不一致状态响应于与该锁关联的到期租借。
40.一件制品,所述制品包括:
至少一个计算机可用介质,所述计算机可用介质具有计算机可读程序代码逻辑以管理对计算环境对象的访问,所述计算机可读程序代码逻辑包括:
禁止逻辑,所述禁止逻辑通过与对象对应的缓存实体来禁止对所述计算环境的所述对象的访问;以及
允许逻辑,所述允许逻辑通过与所述对象对应的另一个缓存实体来允许对所述对象的访问,其中所述缓存实体和所述另一个缓存实体被同时保持一段时间。
41.根据权利要求40的制品,其中所述禁止访问响应于所述缓存实体变成不一致。
42.根据权利要求41的制品,其中所述禁止逻辑包括转换逻辑,所述转换逻辑将所述不一致的缓存实体转换成影子实体。
43.根据权利要求42的制品,其中所述转换逻辑包括删除逻辑,所述删除逻辑从缓存实体的数据结构中删除所述不一致的缓存实体以提供独立的缓存实体。
44.根据权利要求40、41、42或43的制品,其中所述禁止逻辑包括提供逻辑,所述提供逻辑提供错误以响应采用了与所述缓存实体对应的句柄。
45.根据权利要求40至44中的任一权利要求的制品,其中所述允许响应于导致缓存所述另一个缓存实体的高速缓存未命中。
46.根据权利要求40至45中的任一权利要求的制品,其中所述允许逻辑包括提供逻辑,所述提供逻辑为与所述对象对应的所述另一个缓存实体提供有效的句柄。
47.根据权利要求40至46中的任一权利要求的制品,其中所述禁止逻辑包括删除逻辑,所述删除逻辑删除对所述缓存实体的有效访问,并且其中所述允许逻辑包括提供逻辑,所述提供逻辑提供对所述另一个缓存实体的有效访问。
48.根据权利要求40至47中的任一权利要求的制品,其中所述缓存实体和所述另一个缓存实体位于促进对所述对象的访问的客户机的高速缓存中。
49.根据权利要求48的制品,其中所述缓存实体是所述高速缓存内的影子实体,并且所述另一个缓存实体具有所述高速缓存的数据结构。
50.根据权利要求40到49中的任一权利要求的制品,其中所述对象包括文件系统对象。
51.一件制品,所述制品包括:
至少一个计算机可用介质,所述计算机可用介质具有计算机可读程序代码逻辑以管理对文件系统对象的访问,所述计算机可读程序代码逻辑包括:
促进逻辑,所述促进逻辑通过所述文件系统的服务器来促进提供与所述文件系统的对象对应的实体的不一致状态;
无效逻辑,所述无效逻辑通过所述文件系统的客户机来无效所述对象的一个或多个现有打开以响应所述不一致状态;以及
允许逻辑,所述允许逻辑通过所述客户机来允许所述对象的一个或多个其他打开,以响应与由所述服务器提供的所述对象对应的另一个实体,其中至少一个被无效的现有打开和至少一个其他打开同时处于打开状态一段时间。
52.一件制品,所述制品包括:
至少一个计算机可用介质,所述计算机可用介质具有计算机可读程序代码逻辑以管理对计算环境对象的访问,所述计算机可读程序代码逻辑包括:
促进逻辑,所述促进逻辑通过所述计算环境的服务器来促进提供与所述计算环境的对象关联的实体的不一致状态;
提供逻辑,所述提供逻辑通过所述服务器来提供与所述对象关联的另一个实体,其中所述不一致实体和所述另一个实体在一段时间内可被同时访问以便管理对所述对象的访问。
CNB2004800097590A 2003-04-29 2004-03-31 管理对计算环境对象的访问的系统和方法 Expired - Lifetime CN100397343C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/427,081 US7409389B2 (en) 2003-04-29 2003-04-29 Managing access to objects of a computing environment
US10/427,081 2003-04-29

Publications (2)

Publication Number Publication Date
CN1774697A true CN1774697A (zh) 2006-05-17
CN100397343C CN100397343C (zh) 2008-06-25

Family

ID=33310037

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800097590A Expired - Lifetime CN100397343C (zh) 2003-04-29 2004-03-31 管理对计算环境对象的访问的系统和方法

Country Status (7)

Country Link
US (2) US7409389B2 (zh)
EP (1) EP1618472B1 (zh)
JP (1) JP4617297B2 (zh)
CN (1) CN100397343C (zh)
AT (1) ATE496332T1 (zh)
DE (1) DE602004031101D1 (zh)
WO (1) WO2004097630A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689181B (zh) * 2007-06-29 2012-05-30 微软公司 对命名空间灵活地区分优先级
WO2014161261A1 (zh) * 2013-07-24 2014-10-09 中兴通讯股份有限公司 数据的存储方法及装置
CN105247534A (zh) * 2013-12-11 2016-01-13 株式会社Iqs 访问控制装置、程序及访问控制系统
CN112835643A (zh) * 2021-02-02 2021-05-25 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US7574439B2 (en) * 2004-05-20 2009-08-11 International Business Machines Corporation Managing a nested request
US7587594B1 (en) 2004-08-30 2009-09-08 Microsoft Corporation Dynamic out-of-process software components isolation for trustworthiness execution
US9124653B2 (en) * 2004-09-03 2015-09-01 Symantec Corporation Method and apparatus for allowing sharing of streamable applications
US7665098B2 (en) * 2005-04-29 2010-02-16 Microsoft Corporation System and method for monitoring interactions between application programs and data stores
US7660797B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Scanning data in an access restricted file for malware
US8990954B2 (en) * 2007-06-20 2015-03-24 International Business Machines Corporation Distributed lock manager for file system objects in a shared file system
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US9684573B2 (en) * 2010-04-29 2017-06-20 Veritas Technologies Llc Dismounting a storage volume
CN103729247B (zh) * 2012-10-12 2017-04-12 阿里巴巴集团控股有限公司 数据获取请求的处理方法、系统及服务器
US10372685B2 (en) 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
US10264071B2 (en) * 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10031883B2 (en) 2015-10-16 2018-07-24 International Business Machines Corporation Cache management in RDMA distributed key/value stores based on atomic operations
US11741050B2 (en) 2021-01-29 2023-08-29 Salesforce, Inc. Cloud storage class-based variable cache availability
US11622000B2 (en) 2021-01-29 2023-04-04 Salesforce, Inc. Grey failure handling in distributed storage systems
US11509721B2 (en) 2021-01-31 2022-11-22 Salesforce.Com, Inc. Cookie-based network location of storage nodes in cloud

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
JPH0827754B2 (ja) 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
US5418966A (en) 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5634122A (en) * 1994-12-30 1997-05-27 International Business Machines Corporation System and method for multi-level token management for distributed file systems
US5805809A (en) * 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5761659A (en) * 1996-02-29 1998-06-02 Sun Microsystems, Inc. Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters
US5862376A (en) * 1996-06-24 1999-01-19 Sun Microsystems, Inc. System and method for space and time efficient object locking
US6574654B1 (en) * 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
US6041383A (en) * 1996-07-22 2000-03-21 Cabletron Systems, Inc. Establishing control of lock token for shared objects upon approval messages from all other processes
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5911776A (en) 1996-12-18 1999-06-15 Unisys Corporation Automatic format conversion system and publishing methodology for multi-user network
US6035379A (en) 1997-01-09 2000-03-07 Microsoft Corporation Transaction processing for user data employing both logging and shadow copying
CA2201275A1 (en) * 1997-03-27 1998-09-27 Chris L. Brealey Locking tool data objects in a framework environment
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6016508A (en) * 1997-07-02 2000-01-18 Microsoft Corporation Server-determined client refresh periods for dynamic directory services
US6023706A (en) * 1997-07-11 2000-02-08 International Business Machines Corporation Parallel file system and method for multiple node file access
US6108654A (en) * 1997-10-31 2000-08-22 Oracle Corporation Method and system for locking resources in a computer system
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6119115A (en) * 1998-03-12 2000-09-12 Microsoft Corporation Method and computer program product for reducing lock contention in a multiple instruction execution stream processing environment
JPH11353220A (ja) * 1998-06-09 1999-12-24 Hitachi Ltd キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法
US6460048B1 (en) 1999-05-13 2002-10-01 International Business Machines Corporation Method, system, and program for managing file names during the reorganization of a database object
US6584548B1 (en) * 1999-07-22 2003-06-24 International Business Machines Corporation Method and apparatus for invalidating data in a cache
US6499031B1 (en) * 1999-07-26 2002-12-24 Microsoft Corporation Systems and methods for using locks with computer resources
US6389420B1 (en) * 1999-09-30 2002-05-14 Emc Corporation File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration
US6496907B1 (en) * 1999-10-22 2002-12-17 Apple Computer, Inc. System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions
US6502108B1 (en) * 1999-10-25 2002-12-31 International Business Machines Corporation Cache-failure-tolerant data storage system storing data objects with version code equipped metadata tokens
US6529906B1 (en) * 2000-01-28 2003-03-04 Oracle Corporation Techniques for DLM optimization with re-mastering events
US6775703B1 (en) * 2000-05-01 2004-08-10 International Business Machines Corporation Lease based safety protocol for distributed system with multiple networks
US6601069B2 (en) * 2000-12-15 2003-07-29 Hewlett-Packard Development Company, L.P. Synchronization using commitment
US6842754B2 (en) * 2001-04-17 2005-01-11 Hewlett Packard Development Company, L.P. Lease enforcement in a distributed file system
JP4249622B2 (ja) * 2001-09-21 2009-04-02 ヒューレット・パッカード・カンパニー 共有ストレージを備えたマルチノード環境のためのシステムおよび方法
US6769048B2 (en) * 2001-12-06 2004-07-27 Sun Microsystems, Inc. Cache synchronization method, system and apparatus for a distributed application and an object located in a client cache
US7065558B2 (en) * 2002-02-22 2006-06-20 Microsoft Corporation Opportunistic directory cache and method of serving target directory information in a network environment
US6938139B2 (en) * 2002-06-21 2005-08-30 Jp Morgan Chase Bank Method and system for data element change across multiple instances of data base cache
US6941310B2 (en) * 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
US7093230B2 (en) * 2002-07-24 2006-08-15 Sun Microsystems, Inc. Lock management thread pools for distributed data systems
US7020750B2 (en) * 2002-09-17 2006-03-28 Sun Microsystems, Inc. Hybrid system and method for updating remote cache memory with user defined cache update policies
CA2513503A1 (en) * 2003-01-17 2004-08-12 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US7409389B2 (en) 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689181B (zh) * 2007-06-29 2012-05-30 微软公司 对命名空间灵活地区分优先级
WO2014161261A1 (zh) * 2013-07-24 2014-10-09 中兴通讯股份有限公司 数据的存储方法及装置
CN105247534A (zh) * 2013-12-11 2016-01-13 株式会社Iqs 访问控制装置、程序及访问控制系统
CN105247534B (zh) * 2013-12-11 2019-07-19 电子技巧股份有限公司 访问控制装置及访问控制系统
CN112835643A (zh) * 2021-02-02 2021-05-25 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备
CN112835643B (zh) * 2021-02-02 2022-05-17 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备

Also Published As

Publication number Publication date
CN100397343C (zh) 2008-06-25
US8700584B2 (en) 2014-04-15
EP1618472B1 (en) 2011-01-19
US7409389B2 (en) 2008-08-05
US20040220976A1 (en) 2004-11-04
ATE496332T1 (de) 2011-02-15
WO2004097630A2 (en) 2004-11-11
JP2006525571A (ja) 2006-11-09
EP1618472A2 (en) 2006-01-25
DE602004031101D1 (de) 2011-03-03
US20080313185A1 (en) 2008-12-18
JP4617297B2 (ja) 2011-01-19
WO2004097630A3 (en) 2005-01-20

Similar Documents

Publication Publication Date Title
CN1774697A (zh) 管理对计算环境对象的访问
US10810182B2 (en) Accessing data entities
US9164702B1 (en) Single-sided distributed cache system
US7809675B2 (en) Sharing state information among a plurality of file operation servers
JP4348036B2 (ja) ファイル中にバージョン固有プロパティを作成し保持する方法およびシステム
US8566299B2 (en) Method for managing lock resources in a distributed storage system
US7174360B2 (en) Method for forming virtual network storage
US8326839B2 (en) Efficient file access in a large repository using a two-level cache
US9305056B1 (en) Results cache invalidation
US7685124B2 (en) Systems and methods for performing authorization
GB2328535A (en) Determining how changes to underlying data affect cached objects
US20100030871A1 (en) Populating and using caches in client-side caching
US9009196B2 (en) Discovery and client routing to database nodes
US8224837B2 (en) Method and mechanism for supporting virtual content in performing file operations at a RDBMS
CN1294493C (zh) 利于计算机环境的错误处理的方法与系统
US9952968B2 (en) Methods and system for maintaining data coherency in distributed data cache network
US11379463B1 (en) Atomic enforcement of cross-page data constraints in decoupled multi-writer databases
JP6323109B2 (ja) 文書管理システム、キーバリューストア装置、文書管理方法、及びプログラム
US12007954B1 (en) Selective forwarding for multi-statement database transactions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20080625

CX01 Expiry of patent term