CN1783082A - 用于与文件***保持命名空间一致性的方法和*** - Google Patents
用于与文件***保持命名空间一致性的方法和*** Download PDFInfo
- Publication number
- CN1783082A CN1783082A CNA2005101192391A CN200510119239A CN1783082A CN 1783082 A CN1783082 A CN 1783082A CN A2005101192391 A CNA2005101192391 A CN A2005101192391A CN 200510119239 A CN200510119239 A CN 200510119239A CN 1783082 A CN1783082 A CN 1783082A
- Authority
- CN
- China
- Prior art keywords
- filtrator
- namespace
- computer
- frame
- readable medium
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
- G06F16/166—File name conversion
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于在由文件***维护的选择的对象及与之关联的过滤器之间保持命名空间一致性的方法和***。过滤器监控选定类型的请求(或与之关联的操作)并确定对象是否在与过滤器关联的命名空间内。与过滤器关联的命名空间基于对象的更改被更新。
Description
技术领域
本发明一般涉及计算机,尤其涉及文件***。
背景技术
使用当代操作***,诸如具有如WindowsNTFS(WindowsNT文件***)、FAT、CDFS、SMB重定向器文件***的基础文件***,或WebDav文件***的Microsoft公司的WindowsXP操作***,一个或多个文件***过滤器驱动程序可被***至接收用户I/O请求的I/O管理器和文件***驱动程序之间。一般地,过滤器驱动程序(在此有时候简称为“过滤器”)是通过执行各种用户所需的关于文件的计算任务来增强基础文件***的处理,这些任务包括诸如通过反病毒软件、文件***配额提供程序、文件复制程序,以及加密/压缩产品发送文件***I/O(请求和数据)的任务。
例如,反病毒产品提供当文件复制产品执行文件***级镜像时,查看至某个文件类型和来自某个文件类型(.exe、.doc等)的I/O来查找病毒签名的过滤器。文件***过滤器驱动程序的其它类型涉及***还原(当要做出更改时备份***文件以使用户可返回原始状态)、磁盘分配实施、开放文件备份、删除的文件的恢复、文件的加密等。如此,通过安装文件***过滤器驱动程序,计算机用户可以用不改变实际操作***或文件***驱动程序代码而使组件的更新、替换、***和移除成为可能的方式选择他们想要的和需要的文件***特性。
文件***过滤器可维护用于卷中的文件和目录的内部元数据。对于与过滤器关联的卷的修改可导致过滤器的内部元数据与卷的状态不同步。这个情况可导致过滤器行为错误或呈现为它不能执行想要的功能。
需要的是用于在由文件***维护的选择的对象及与之关联的过滤器之间保持命名空间一致性的方法和***。
发明概要
简单地说,本发明提供一种用于在由文件***维护的选择的对象和与之关联的过滤器之间保持命名空间一致性的方法和***。一处理请求访问文件***的对象。过滤器监控选定类型的请求(或与之关联的操作)并确定该对象是否在与过滤器关联的命名空间内。与过滤器关联的命名空间基于对象的更改而更新。
在本发明的一个方面中,请求包括重命名或删除操作。如果对象具有与之关联的策略或如果对象是这样一个对象的祖先,那么该对象在与过滤器关联的命名空间内。
在本发明的另一方面中,重命名操作可导致对象被移除和/或重命名。
在本发明的另一方面中,对象通过打开对象的句柄而被访问。句柄包括标识被用以访问对象的通信信道的信息。标记可被设置以指示当对象的所有句柄关闭时,对象应该被删除。如果在最后一个句柄关闭后标记保持设定,那么对象被删除。
在本发明的一方面中,保持命名空间一致性允许当对象被重命名时,过滤器应用对象上的策略并停止应用删除的对象上的策略。
当结合附图时,其它方面将从以下详细的描述中显现,在图中:
附图简述
图1是框图,表现了可实现本发明的计算机***;
图2是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的典型排列;
图3是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的另一典型排列;
图4是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的另一典型排列;
图5是框图,表现了根据本发明的各个方面,可被用以监控具有对其应用的策略的对象的数据结构;
图6是流程图,一般表现了根据本发明的各个方面,可发生以保持感兴趣的对象的过滤器命名空间和文件***命名空间之间的一致性的动作;
图7是流程图,一般表现了根据本发明的各个方面,当重命名操作被接收时,对应于图6的框630可发生的动作;
图8是流程图,一般表现了根据本发明的各个方面,在更新数据结构时,对应于图7的框745可发生的动作;
图9是流程图,一般表现了根据本发明的各个方面,当对象被移动时,对应于图8的框815在添加节点时可发生的动作;
图10是流程图,一般表现了根据本发明的各个方面,当更新数据结构以移除与旧对象名关联的前缀节点时,对应于图8的框825可发生的动作;
图11是流程图,一般表现了根据本发明的各个方面,对应于图6的框640在删除相关的操作期间可发生的保持过滤器命名空间和文件***命名空间之间的一致性的动作;
图12是流程图,一般表现了根据本发明的各个方面,当对于在关闭操作后的删除的创建被接收时,对应于图11的框1115可发生的动作;
图13是流程图,一般表现了根据本发明的各个方面,当重命名操作被接收时,对应于图6的框632可发生的动作;
图14是流程图,一般表现了根据本发明的各个方面,当设置配置操作被接收时,对应于图11的框1135可发生的动作;及
图15是流程图,一般表现了根据本发明的各个方面,当清除操作被接收时,对应于图11的框1145可发生的动作。
发明的详细描述
典型操作环境
图1示出了一合适的计算***环境100的示例,在该环境中可实现本发明。计算***环境100只是一合适的计算环境的一例,而不是要提出对本发明使用或功能的范围进行限制。计算***环境100也不应解释成对于在示例计算***环境100中所示出的任一组件或其组合有任何依赖或需求。
本发明可用多个其它通用或专用计算***环境或配置操作。可以适用于本发明使用的公知的计算***、环境,和/或配置的实例包括,但不局限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费者电器、网络PC、小型机、大型计算机,及包括任何诸如以上***或设备的分布式计算环境等。
本发明可以在诸如由计算机执行的程序模块的可实现计算机指令的一般上下文中被描述。一般地,程序模块包括完成特殊任务或实现特殊抽象数据类型的例行程序、程序、对象、组件、数据结构等。本发明也可以在分布式计算环境中实践,其中通过连接到一计算网络的远程处理设备来执行任务。在分布式计算环境中,程序模块可以定位于包括存储器存储设备的本地和远程计算机存储介质。
参见图1,用于实现本发明的示例的***包括一以计算机110形式出现的通用计算设备。计算机110的组件包括,但不局限于,处理单元120、***存储器130,以及将包括***存储器130在内的各种***元件耦合至处理单元120的***总线121。***总线121可以是多种总线体系结构类型中的任何一种,包括存储器总线或存储器控制器、***总线和使用各种总线体系结构的任一种的局部总线。举例来说,而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型工业标准体系结构(EISA)总线、视频电子标准技术协会(VESA)局部总线,和也被称为Mezzanine总线的***部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是任何计算机110能够访问的可用介质,包括易失性的和非易失性的介质、可移动的和不可移动的介质。举例来说,而非限制,计算机可读介质可以包含计算机存储介质和通信介质。计算机存储介质包括能以任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机存储介质包括,但不局限于,RAM、ROM、EEPROM、闪存或其它存储技术,CD-ROM、数字化多功能光盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储器或其它磁存储设备,或任何其它可以被用来存储所需信息并且可以被计算机110访问的介质。通信介质通常体现为诸如载波或其它传送机制的已调数据信号中的计算机可读指令、数据结构、程序模块或其它数据,也包括任何信息传递介质。注意术语“已调制数据信号”是指在该信号中以编码信息的方式来设置或改变其一个或多个特征的信号。举例来说,而非限制,通信介质包括诸如有线网或直线连接的有线介质,和诸如声音、射频、红外线和其它无线介质的无线介质。任何以上所述的组合也可以包括在计算机可读介质的范围之内。
***存储器130包括以诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器的形式的计算机存储介质。包含如在启动期间帮助在计算机110内各元素之间传送信息的基本例行程序的基本输入输出***(BIOS)133,通常存储在ROM 131中。RAM 132通常包含可以被处理单元120立即访问和/或当前操作的数据和/或程序模块。举例来说,而非限制,图1示出了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。仅作为示例,图1示出了读或写不可移动、非易失性磁性介质的硬盘驱动器141、读或写可移动、非易失性磁性磁盘152的磁盘驱动器151,以及读或写可移动、非易失性光盘156的光盘驱动器155。其它可以使用在示例的操作环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不局限于,盒式磁带、闪存卡、数字多功能光盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器141通常通过诸如接口140的不可移动存储接口连接到***总线121,磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储接口连接到***总线121。
以上讨论并且在图1中示出的驱动器及它们相关的计算存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,示出硬盘驱动141存储操作***144、应用程序145、其它程序模块146,和程序数据147。需要注意的是这些组件可以和操作***134、应用程序135、其它程序模块136和程序数据137相同,也可以和它们不同。在此对操作***144、应用程序145、其它程序模块146和程序数据147给出了不同的标号来说明至少它们是不同的拷贝。用户可以通过诸如键盘162和定位设备161这样的输入设备把命令和信息输入到计算机110中,定位设备161通常指如鼠标、跟踪球或触摸板。其它输入设备(图1中未示)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、手持PC或其他写字板的触摸屏等等。这些和其它输入设备通常由用户输入接口160连接到处理单元120,上述输入接口160和***总线121相耦合。但是上述和其它输入设备也可以由其它接口和总线结构连接到处理单元120,诸如,并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型显示设备也可以通过诸如视频接口190的接口连接到***总线121。除监视器外,计算机110也包括其它***输出设备,诸如可以通过一输出***设备接口195等连接的扬声器197和打印机196。
计算机110可以在网络化的环境中运行,使用逻辑连接连接到一个或多个诸如远程计算机180的远程计算机。远程计算机180可以是个人计算机、服务器、路由器、网络个人计算机、对等设备或其它共用网络节点,通常包括以上描述的和计算机110相关的多个或全部组件,尽管在图1中只示出了存储器储存设备181。在图1中描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或通过诸如因特网的WAN 173建立通信的其他装置。调制解调器172可以是内置的或外置的,可以通过用户输入接口160或其它适当的机制连接到***总线121。在一网络连接的环境中,所述的和计算机110相关的程序模块或其中的一部分可以存储在远程存储器储存设备内。举例说明,但非限制,图1示出了驻留在存储设备181上的远程应用程序185。可以理解的是所示的网络连接是示例的,也可以使用在计算机间建立通信链路的其他装置。
保持命名空间一致性
图2是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的典型排列。这些组件包括一个或多个应用程序205、应用编程接口(API)210、输入/输出(I/O)管理器215、过滤器管理器220、文件***225,以及一个或多个过滤器230-232。
应用程序205可通过AP1210向I/O管理器215做出文件***请求(例如,通过函数/方法调用)。I/O管理器215可确定哪个I/O请求应该被处理以实现每个请求以及发送每个I/O请求至过滤器管理器220。I/O管理器210也可把数据返回至应用程序205作为与文件***请求继续、结束,或中止的关联操作。
在一实现中,当实例化的登记器(例如,在他们初始化过程期间)在过滤器管理器220内具有登记机制时候过滤器包括对象等。为了有效,每个过滤器一般只登记文件***对处理感兴趣的请求。为此,作为登记的一部分,每个过滤器通知过滤器管理器220其感兴趣的I/O请求的类型(例如,创建、读、写、关闭、重命名等)。例如,一加密过滤器可登记读和写I/O,但是对于其它不需要加密或解密数据的I/O不进行登记。类似地,配额过滤器只对对象创建和对象写感兴趣。
除了指定被感兴趣的I/O请求类型外,过滤器可进一步指定过滤器是否应该在预回调时得到通知和发送对于每个I/O类型的回调。当与I/O请求关联的数据从I/O管理器215发送至文件***225时,调用预回调,而当与I/O请求关联的数据从文件***225发送至I/O管理器225时,在I/O请求完成的期间,调用后回调。
从每个I/O请求中,过滤器管理器220可以用合适于由过滤器230-232使用的统一格式创建数据结构。在下文中,该数据结构有时候称为回调数据。然后过滤器管理器220可调用和发送回调数据至每个已经登记接收对于由过滤器管理器220接收到的I/O类型回调的过滤器。任何登记以接收对于由过滤器管理器接收的I/O类型的回调的过滤器有时候称为登记的过滤器。
一般地,过滤器管理器220以登记的过滤器排序的次序顺序地发送与特定I/O请求类型关联的回调数据至每个登记的过滤器。例如,如果过滤器230和232被登记以接收所有读I/O请求的回调并且是以过滤器230在过滤器232之前处理这些请求的次序排列,那么在接收一个读I/O之后,过滤器管理器220可首先调用和发送回调数据至过滤器230并且在过滤器230处理完回调数据后,接着过滤器管理器220可调用和发送回调数据(如果在任何程度上被修改)至过滤器232。
过滤器可附加在一个或多个卷上。也就是说,过滤器可被登记已被调用和接收用于与仅仅一个或一个以上卷相关的I/O的回调数据。
过滤器可产生以后可被发送至其它过滤器的它自己的I/O请求。例如,一反病毒过滤器希望在文件被打开之前读一文件。过滤器可停止来自其它地方发送的I/O请求然后可指示过滤器管理器报告I/O请求的状态码(例如,成功或失败)。过滤器可在存储器内存储数据并且在磁盘上保留该数据。一般地,过滤器可被创建以执行任何可由内核模式或用户模式处理执行的以及可以是反应性的(例如,直到接收到I/O请求才行动)和/或原发性的(例如,初始化它自己的I/O请求或异步地执行其它具有由I/O管理器215处理的请求的动作)动作组。
在一实施例中,过滤器可以如图3示出的堆栈的方式排列,图3是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的另一典型排列。在该实施例中,过滤器305-307中的每个过滤器都可处理I/O请求(修改的或未被修改的)和发送请求至另一过滤器或其它栈内的组件。例如,响应于从应用程序205中的一个接收到的读请求,I/O管理器215可提交I/O请求并发送该请求至过滤器305。过滤器305可检测I/O请求并且确定过滤器305不对I/O请求感兴趣,然后发送未更改的I/O请求至过滤器306。过滤器306可确定过滤器306将基于I/O请求执行某些动作并且然后发送I/O请求(更改的或未被更改的)至过滤器307。过滤器307可确定过滤器307不对I/O请求感兴趣并且发送请求至文件***235。
在文件***235处理I/O请求后,它发送结果至过滤器307。一般地,结果以I/O请求被处理相反的次序发送(例如,首先发送至过滤器307,然后至过滤器306,然后至过滤器305)。过滤器305-307中的每个过滤器检测结果,确定过滤器是否对结果感兴趣,并且可在发送结果(更改的或未被更改的)至另一过滤器或组件之前基于结果执行动作。
在本发明的另一实施例中,过滤器可以如图4中示出的堆栈/管理的方式排列,图4是框图,表现了根据发明的各个方面,本发明可在其内操作的***的组件的另一典型排列。在该配置中,某些过滤器与过滤器管理器关联而其它过滤器则不与过滤器管理器关联。过滤器管理器220与其它过滤器(例如,过滤器305和307)放置在一个栈内。
可以容易意识到的是在不背离本发明精神和范围的情况下,过滤器可以由许多其它配置所实现。在某些实施例中,过滤器包括任何检测应用程序与文件***之间的I/O的对象,并且这样的对象可更改、完成,或中止I/O或执行其它基于I/O的动作。
返回图2,文件***235可包括一个或多个卷,该卷可本地或远程地定位于一个或多个机器上,应用程序205在所述机器上执行。
某些过滤器监控在某些目录内的文件。例如,配额过滤器可实施在特定目录上的配额。如另一例子,数据筛选过滤器可拒绝在某些目录内某些文件类型(例如,由后缀名如.MP3,.JPG等可取得版权的文件)的创建。这些过滤器可包括识别涉及的目录的命名空间。
某些文件***请求(例如,重命名或删除)可更改由过滤器监控的对象的文件***命名空间。例如,配额过滤器可被配置以实施在名为C:\DIR\QUOTA的对象上一千兆字节的配额。对象名称和应用至对象上的配额可被存储在非易失性存储器上保留的元数据文件中。应用程序可把对象C:\DIR重命名为C:\DIR2或可从C:\DIR\QUOTA移动至C:\QUOTA。为了继续在QUOTA对象上实施配额,配额过滤器监控重命名并在每次重命名影响配额过滤器实施配额的对象时,更新配额过滤器的元数据文件。
在某些操作***中,重命名操作可重命名对象和/或移动对象。如此,通过监控重命名操作,过滤器可捕获名字的重命名、对象的移动,或两者。在其中重命名文件和移动文件是独立操作的操作***内,过滤器需要监控这两种操作以保持命名空间与文件***的命名空间一致性。
此外,应用程序可删除对象,例如C:\DIR或C:\DIR\QUOTA。为了避免监控已经被删除的对象,当现存对象被删除,并且具有相同名称的新的对象在它的位置上被重新创建时,不实施策略,以及为了减少在监控这样的对象上使用的元数据的大小,过滤器可监控删除并且相应地更新它的元数据。
图5是框图,表现了根据本发明的各个方面,可被用以监控具有对其应用的策略的对象的数据结构。如在此涉及的,监控的对象包括目录、文件、任何可存储在文件***上的事物等。
此数据结构包括每个感兴趣的对象的节点并且有时称为前缀树。表现的典型对象包括根目录″\″、\DIR、\DIR1\QUOTA1、\DIR1\QUOTA1\QUOTA2、\DIR2、\DIR2\DIR3,以及\DIR2\DIR3\QUOTA3。对象\DIR1\QUOTA1、\DIR1\QUOTA1\QUOTA2,以及\DIR2\DIR3\QUOTA3有各自应用到它们的策略P1、P2,和P3。策略可包括在磁盘空间上由对象及它的后代(例如,子目录)消耗的配额、对象及它的后代中所允许的文件,针对对象及它的后代所允许和/或不被允许的内容,等等。当感兴趣的对象在文件***上被重命名或删除时,图5所示的数据结构需要被更新。这样的更新可涉及移除节点、添加额外的节点,以及更改以下更详述的节点内容。
一般地,如果重命名或删除对象将影响在数据结构内寻找对象或策略的应用,那么对象是所感兴趣的。例如,如果\DIR2和它的子目录被删除,那么策略P3不再需要被应用至\DIR2\DIR3\QUOTA3。此外,节点DIR2、DIR3,以及QUOTA3将不再被需要应用策略P3并且可以被删除以保存空间和减少对于任何剩余策略的查找时间。
如另一例子,如果\DIR1\QUOTA1\QUOTA2在文件***上被重命名为\QUOTA5,这可影响在数据结构内寻找新对象。由于在过滤器应用策略至特定操作之前,过滤器需要直到操作是否可影响任何已经为之建立策略的对象,所以这是重要的。为了在数据结构内寻找新的对象(例如,以使过滤器确定它是否需要在特定操作上实施策略),新的节点可被创建并且与新对象关联,然后与旧节点QUOTA2关联的策略(例如,P2)可被复制到新节点,然后旧节点QUOTA2可被删除。接着策略P2对于新对象被实施。响应于对象的更改而添加和删除节点在以下结合附图8-10将做详细描述。
应用(例如,服务或其它)可把具有与对象关联的策略的对象发送至过滤器。应用可提供这样的对象列表或根据需要添加和/或删除策略。在接收该列表或指令后,过滤器可创建新的数据结构或修改现存的数据结构以说明所感兴趣的对象。
数据结构可在启动时或使用该数据结构的过滤器实例化时被重构。这可使用以上描述的保留在非易失性存储器(例如,磁盘)上的元文件来完成。
数据结构可在一个以上的过滤器间共享。例如,两个或两个以上的过滤器可对被重命名或删除的对象实施策略。两个或两个以上的过滤器可共享数据结构,而不是对每个过滤器维护独立的数据结构备份。一个或一个以上的过滤器可被指定以保持数据结构与文件***同步。
此外,即使过滤器可共享数据结构,但是它们不希望监控所有相同的对象。为此,额外的数据可被维护以指示每个过滤器所感兴趣的节点。
图6是流程图,一般表现了根据本发明的各个方面,可发生以保持感兴趣的对象的过滤器命名空间和文件***命名空间之间的一致性的动作。在框605处,过程开始。在框610,过滤器接收所感兴趣的I/O操作。在管理的过滤器的情况下,过滤器可已经预先登记以接收已接收到的类型的I/O操作。在堆栈的过滤器的情况下,过滤器可确定I/O是可影响文件***命名空间的。在一实现中,某些可影响文件***命名空间的I/O操作包括重命名和删除。
在框615,做出I/O操作是否涉及所感兴趣的对象的确定。如果是,处理转至框625;否则处理转至框620,在此过程返回。参考图5,所感兴趣的对象是由任何数据结构的节点所表现的对象。在接收与所感兴趣的I/O操作关联的数据后,过滤器在数据结构上执行查找以确定I/O操作是否涉及其中任何节点。如果不是(例如,查找失败),过滤器返回。
在框625,做出I/O操作是否是重命名操作的确定。如果是,处理转至框630;否则处理转至框635。在另一实施例中,与框615和610关联的动作被颠倒。也就是说,首先做出I/O操作是否涉及所感兴趣的对象的确定,然后做出I/O操作是否是所感兴趣的确定。在该实施例中,如果I/O不涉及所感兴趣的对象或如果I/O不是所感兴趣的I/O,过程返回。
在框630,过滤器命名空间被适当地更新为如结合图7-10所详细描述的那样。在框632,如果与对象关联的流上下文如结合附图13所详细描述的那样存在,则该流上下文被更新。流上下文包括数据,从中可存储或检索有关对象的信息。流上下文可为对象所创建,例如,当对象被标记为删除时。即使对象可被标记为删除,在它被删除之前可别重命名。为了跟踪重命名中对象的名称,对象的新名称存储在流上下文中。每次对象被重命名,流上下文被更新以包括对象的新名称。然后,当对象被完全删除时,过滤器在流上下文中查找所删除的对象最近的名称并且从过滤器的命名空间内删除适当的一个节点或多个节点。
在框635,做出操作是否是删除相关的操作的确定。如果是,处理转至框640;否则,处理转至框645。删除相关的操作可包括在关闭操作、一组配置操作,或如结合图11详细描述的清除操作上删除的创建。在框640,过滤器命名空间被适当更新为如结合图10所详细描述的那样。
在框645,任何其它过滤器动作可被执行。例如,配额过滤器可通过禁止或允许I/O请求继续以实施配额。在某些实现中,与框645关联的动作在框610之后发生。这可允许过滤器禁止操作和停止任何对象的更改。在框620,过程返回。结合图6描述的过程在每次所感兴趣的I/O被接收时重复。
图7是流程图,一般表现了根据本发明的各个方面,当重命名操作被接收时,对应于图6的框630可发生的动作。在框705,过程开始。在框710,做出重命名操作是在预回调还是在后回调阶段的确定。如果操作是在预回调阶段(也就是说,在I/O请求发送至文件***之前),处理转至框715;否则,如操作在后回调阶段,处理转至框730。实质上,在更新数据结构之前,过程等待直到操作成功。
在框715,回调上下文被分配并且与操作关联。回调上下文可包括任何数据并提供发送有关操作的数据至后回调阶段的方式。当后回调阶段对特定操作发生时,与操作关联的回调上下文可被访问。
在框720,在操作被执行之前的对象名(也就是说,旧名称)被存储在回调上下文中。在框725,后操作回调被强制调用,实质上表明过滤器指示它希望在文件***上的操作被执行完之后以及I/O结果返回应用之前被调用。
在框730的后操作阶段中,做出操作是否失败的确定。如果是,处理转至框750;否则处理转至框735。如果操作失败,不需要更新数据结构。
在框735,从回调上下文中检索对象的旧名称。该旧名称被用以在维护过滤器命名空间的数据结构中寻找节点。在框704,询问文件***,查找对象的新名称,该新名称可包括新对象名称和/或对象路径。在框745,数据结构被更新,如结合图8详细描述的那样。在框750,释放回调上下文。在框755,过程返回。
图8是流程图,一般表现了根据本发明的各个方面,在更新数据结构时,对应于图7的框745可发生的动作。在框805,过程开始。在框810,做出对象是否被移动的确定。如果是,处理转至框815;否则,处理转至框830。如果对象被移动,旧节点可被删除并且新节点被创建以如由框815、820,以及825所指示的更新过滤器命名空间和策略。如果仅仅对象名被更改而不是它的路径被更改,如在节点内指示的对象名可被更改为由框830所指示的新对象名。
在框835,被移动的节点的后代节点可被适当更新。在一实现中,完整的路径和对象名存储在每个节点中。例如,参考图5,QUOTA2节点可存储\DIR1\QUOTA1\QUOTA2。这个可为了提高执行速度或其它原因而进行。当对象名和/或节点路径被更改时,是该节点后代节点的每个节点可被更新以包括包括新对象名和/或与更改的节点关联的路径的新前缀路径。在其它实现中(例如,完整的路径和对象名没有在节点内存储并且不需要在后代节点内被更新),框835可被跳过。
在框840,过程返回。
图9是流程图,一般表现了根据本发明的各个方面,当对象被移动时,对应于图8的框815在添加节点时可发生的动作。在框905,过程开始。在框910,选择对象新路径的第一个成分。如在路径中被使用,成分涉及相应于对象的祖先对象的路径的一部分并且包括根目录。例如,\DIR1\QUOTA1\QUOTA2的成分是根(也就是说,″\″)、DIR1、QUOTA,以及QUOTA2。该第一成分是根。
在框915,做出是否存在对应于选择的组件的节点的确定。如果是,处理转至框925,新节点不需要被创建;否则,处理转至框920。在框920,一相对于组件的新节点被创建。
在框925,做出是否当前选择的成分是新路径的最后一个成分的确定。如果是,处理转至框905,在此处理返回。否则,处理转至框930,在此下一成分被选择并且与框915-925关联的动作被重复直到最后一个成分被处理。可以意识到的是结合图9所述的过程实质上修改数据结构,以包括在没有存储于数据结构中的新路径中用于任何成分的节点。
图10是流程图,一般表现了根据本发明的各个方面,当更新数据结构以移除与旧对象名关联的前缀节点时,对应于图8的框825可发生的动作。一般地,当节点被移动到数据结构内的新位置时,所有不再必要的节点从数据结构中移除。如果一节点没有与其后代节点关联的策略并且该节点本身不具有与之关联的策略,那么该节点不再是必要的。
过程开始于框1005。在框1010,与旧对象关联的节点被选择。在框1015,旧节点的策略被移除,因为它们先前已经被复制到新节点中。在框1020,做出当前选择的节点是否具有与之关联的策略的确定。如果是,处理转至框1045;否则,处理转至框1025。
在框1025,做出节点是否具有子节点的确定。如果是,处理转至框1045;否则,处理转至框1030。由于节点被维护用于具有策略以及它们祖先的对象,否则则不被维护,则如果节点具有任何子节点,这就表明节点的后代节点中至少一个与策略关联。例如,如果不具有策略的节点有两个子节点并且其中一个子节点被重命名以使它不再是节点的后代节点,除非第二个子节点也被移除,该节点将不被删除。
在框1030,如不再需要它,则删除节点。在框1035,做出节点是否有父节点的确定。如果是,处理转至框1040,在此选择父节点。从框1040,处理继续到框1020并且与框1020-1035关联的动作被重复。可以意识到的是,实际上,这些动作递归地沿数据结构向上删除节点直到它们找到本身与策略关联或是具有与策略关联的子节点的节点。
在框1045,过程返回。
可以意识到的是图6-10的流程图表现一种当对文件***发生重命名时,命名空间数据结构可被更新以一致的方法,并且该方法在不背离本发明的精神或范围的情况下,重命名由多种方式实现期间,保持命名空间数据结构与文件***的命名空间一致。
图11是流程图,一般表现了根据本发明的各个方面,对应于图6的框640在删除相关的操作期间可发生的保持过滤器命名空间和文件***命名空间之间的一致性的动作。在框1105,过程开始。
在框111O,做出操作是否是在关闭操作后对于删除的创建。如果是,处理转至框1115;否则,处理转至框1130。创建操作可创建对象或打开已经存在的对象。对象可为关闭后删除而被创建。当对象为关闭后删除而创建时,表示该对象在被关闭后应该被删除。也就是说,对象可以被创建、存在,以及继续存在直到所有具有对象的句柄的进程关闭它们的句柄。在所有句柄被关闭后,对象被删除。在框1115,用于创建的动作被执行,如结合图12所详细描述的。
在框1130,做出操作是否是一组配置操作的确定。如果是,处理转至框1135;否则,处理转至框1140。在一实现中,对象可具有与之关联的指示是否该对象应该在关闭所有它的句柄后被删除的标记。该标记可被设定(也就是说,指示该对象应该删除)或清除(也就是说,指示该对象不应该被删除)。此外,标记可由每个具有对象句柄的进程所设定或清除。如此,一进程可设定标记仅仅使标记由另一进程所清除。对象保留或被删除取决于当具有对象的句柄的最后一个进程关闭句柄时标记的配置(例如,被设定或被清除)。在框1135,涉及设定对象配置的动作被执行,如结合图14所详细描述的。
在框1140,做出操作是否是清除操作的确定。如果是,处理转至框1145;否则,处理转至框1155。每次处理关闭对象的句柄时,清除操作可被提交。然而,如先前提到的,对象实际上不被删除直到具有对象的句柄的最后一个进程关闭句柄。即使在最后一个进程已经关闭对象后,如果例如,在最后关闭时,用户删除对象的标记指示该对象不应该在关闭后被删除,则该对象可不被删除。在框1145,执行清除动作,如结合图15所详细描述的。
在框1155,过程返回。结合图11所述的过程可在每次过滤器接收对所感兴趣的对象的删除相关I/O操作时被重复。
图12是流程图,一般表现了根据本发明的各个方面,当对于在关闭操作后的删除的创建被接收时,对应于图11的框1115可发生的动作。在框1205,过程开始。
在框1210,做出操作是否是在预操作阶段的确定。如果是,处理转至框1215;否则,处理转至框1220。
在框1215,强制执行后操作回调以使过滤器在操作的后操作阶段接收回调。在框1220,做出操作是否失败的确定。如果是,处理转至框1240;否则,处理转至框1225。
在框1225,流上下文被分配(如果它没有存在)并且与对象关联。在框1230,对象名存储在流上下文中。在框1235,删除标记在流上下文中被更新。对于用于关闭后删除而被创建的对象,标记可指示当对象的所有句柄关闭时,对象被删除。此类标记可不被后面的进程所修改。当对象的所有句柄关闭时,用于关闭后删除所被打开的对象被删除。
对于不为关闭后删除而打开的对象,标记可被设定或清除(通过一组配置操作)以指示对象应该或不应该在关闭后被删除。然后,标记可由后面的设置配置操作更改。在所有句柄被关闭后,对象是否被删除取决于当最后一个对象的句柄关闭时,标记的状态。
在框1240,过程返回。
图13是流程图,一般表现了根据本发明的各个方面,当重命名操作被接收时,对应于图6的框632可发生的动作。在框1305,过程开始。
在框1310,做出操作是否在预操作阶段的确定。如果是,处理转至框1330;否则,处理转至框1315。
在框1330,强制执行后操作回调以使过滤器在操作的后操作阶段接收回调。在框1315,做出操作是否失败的确定。如果是,处理转至框1335;否则,处理转至框1320。
在框1320,做出与对象关联的流上下文是否存在的确定。如果是,处理转至框1325;否则,处理转至框1335。如果例如,对象不为关闭后删除而打开并且在指示对象是否应该在关闭后被删除的标记上没有配置被设置或清除,流上下文可不存在。
在框1325,名称在流上下文中被更新以反映被更改的对象的名称。这是有用的,例如,在稍后确定名称更改是否影响任何节点上。
在框1335,过程返回。
图14是流程图,一般表现了根据本发明的各个方面,当设置配置操作被接收时,对应于图11的框1135可发生的动作。在框1405,过程开始。
在框1410,做出操作是否在预操作阶段的确定。如果是,处理转至框1415;否则,处理转至框1420。
在框1415,强制执行后操作回调以使过滤器在操作的后操作阶段可接收回调。在框1420,做出操作是否失败的确定。如果是,处理转至框1440;否则,处理转至框1425。
在框1425,做出与对象关联的流上下文是否存在的确定。如果是,处理转至框1435;否则,处理转至框1430,在此创建流上下文并且在其中存储对象名。流上下文是与对象关联的。
在框1435,删除标记被更新以反映对象的删除配置。如以上描述的,进程可设定标记以指示对象应该在关闭后被删除或清除标记以指示在关闭后控制器不应该被删除。在框1440,过程返回。
图15是流程图,一般表现了根据本发明的各个方面,当清除操作被接收时,对应于图11的框1145可发生的动作。在框1505,过程开始。
在框1510,做出操作是否在预操作阶段的确定,如果是,处理转至框1515;否则,处理转至框1520。
在框1515,强制执行后操作回调以使过滤器在操作的后操作阶段接收回调。在框1520,做出操作是否失败的确定。如果是,处理转至框1550;否则,处理转至框1525。
在框1525,做出与对象关联的流上下文是否存在的确定。如果是,处理转至框1530;否则,处理转至框1550。在框1530,做出对象是否是过滤器感兴趣的对象的确定。如果是,处理转至框1535;否则,处理转至框1550。
在框1535,做出删除标记是否被设定为删除或对象是否为关闭后删除而打开的确定。如果这些条件的任意一条被满足,处理转至框1540;否则,处理转至框1550。在一实现中,当对象为关闭后删除而打开时,不会在稍后指示对象不在关闭后被删除。
在框1540,做出对象是否被删除的确定。由于多个进程可打开一个对象以及对象只在所有进程已经关闭对象的句柄后被删除,即使所有其它条件已经被满足,对象也可不被删除。在本发明的一个实施例中,当对象已经被删除时,操作***可通知过滤器(而不是过滤器自己检测)。在这样的实施例中,结合图15所述的方法可包括确定对象是否是所感兴趣的并且合当地删除节点。
在框1545,节点和任何相关的节点被适当地删除。如果节点是其它在结合图5所述的数据结构内的节点的祖先,其它节点也被删除。此外,类似于那些结合图10所述的动作可被执行,以删除节点的祖先节点以及不再需要的节点。在框1550,过程返回。
可以意识到的是在不背离本发明精神和范围的情况下,结合图11-15所述的动作可被其它动作替代,并且根据操作***操作的方式以不同的次序执行。例如,某些操作***可不具有标记以指示文件是否应该在所有对于文件的句柄关闭后被删除。而是,这样的操作***可提供独立的删除操作以删除对象。在这样的操作***中,用于检测删除的更改的方法可包括当对象被删除时的监控以及删除与对象关联的节点(如果有的话)。
图12-14的后操作调用的强制执行可在后操作调用默认发生的实现中被跳过。
可以从以上详细的描述中看出,本发明提供了一种用于保持命名空间与文件***的一致性的方法和***。尽管本发明允许各种修改和可供选择的构造,某些示例性的实施例在此结合附图被展示并且详细的描述。然而,可以理解的是,本发明不受公开的特定形式的限制,而是相反,本发明涵盖所有在本发明的精神和范围内的修改、可供选择的构造,和同等物。
Claims (38)
1.一计算机可读介质,具有计算机可执行指令,包括:
接收访问文件***对象的请求;
确定所述对象在与过滤器关联的命名空间内;以及
基于对于所述对象的更改更新与所述过滤器关联的命名空间。
2.如权利要求1所述的计算机可读介质,其特征在于,所述访问对象的请求包括重命名操作。
3.如权利要求2所述的计算机可读介质,其特征在于,所述重命名操作导致对象移动至文件***内的不同位置。
4.如权利要求2所述的计算机可读介质,其特征在于,所述重命名操作导致与对象关联的名称更改。
5.如权利要求1所述的计算机可读介质,其特征在于,所述访问对象的请求包括删除操作。
6.如权利要求5所述的计算机可读介质,其特征在于,所述删除操作包括设定标记以指示在与对象关联的所有句柄关闭后对象被删除。
7.如权利要求6所述的计算机可读介质,其特征在于,还包括清除标记以指示对象不被删除。
8.如权利要求1所述的计算机可读介质,其特征在于,所述访问对象的请求包括清除操作。
9.如权利要求8所述的计算机可读介质,其特征在于,每次进程关闭对象的句柄时,提交清除操作。
10.如权利要求1所述的计算机可读介质,其特征在于,所述对象是否在与过滤器关联的命名空间的确定包括在由过滤器维护的数据结构内搜索对象名。
11.如权利要求10所述的计算机可读介质,其特征在于,所述数据结构分层地排列。
12.如权利要求10所述的计算机可读介质,其特征在于,所述数据结构包括每个对象的节点,所述对象具有与之关联的策略。
13.如权利要求12所述的计算机可读介质,其特征在于,所述数据结构还包括每个对象的每个祖先的节点,所述对象具有与之关联的策略。
14.如权利要求13所述的计算机可读介质,其特征在于,所述祖先包括目录,对象驻留在所述目录内。
15.如权利要求1所述的计算机可读介质,其特征在于,所述对象包括文件***的目录。
16.如权利要求1所述的计算机可读介质,其特征在于,所述对象包括文件***的文件。
17.如权利要求1所述的计算机可读介质,其特征在于,所述对象的更改包括对象名的更改。
18.如权利要求1所述的计算机可读介质,其特征在于,所述对象的更改包括文件***内对象位置的更改。
19.在一计算环境内,一方法,包括:
打开文件***的对象的句柄;
确定所述对象是否与过滤器命名空间相关;以及如果对象与过滤器命名空间相关,则基于对象的更改更新过滤器命名空间。
20.如权利要求19所述的方法,其特征在于,所述打开文件***的对象的句柄是创建的一部分。
21.如权利要求20所述的方法,其特征在于,所述创建包括打开操作。
22.如权利要求20所述的方法,其特征在于,所述创建包括为关闭操作后删除而打开,其中在对象的所有句柄被关闭后,对象被删除。
23.如权利要求20所述的方法,其特征在于,所述创建导致对象在文件***上被创建。
24.如权利要求19所述的方法,其特征在于,所述过滤器包括在所述请求发送至文件***之前,有机会检测涉及发送至文件***的请求的数据的进程。
25.如权利要求19所述的方法,其特征在于,所述过滤器包括在所述结果数据返回发出所述请求的请求者之前,有机会检测涉及发送至文件***的请求的结果数据的进程。
26.如权利要求19所述的方法,其特征在于,所述过滤器登记以接收对于某些与卷相关的操作的数据。
27.如权利要求19所述的方法,其特征在于,所述过滤器命名空间包括表示策略对其存在的对象的数据。
28.如权利要求27所述的方法,其特征在于,所述过滤器命名空间还包括标识对象的每个祖先的数据。
29.如权利要求28所述的方法,其特征在于,所述数据存储在被分层排列的节点中。
30.如权利要求19所述的方法,其特征在于,所述过滤器包括内核模式进程。
31.如权利要求19所述的方法,其特征在于,所述对象的更改包括删除对象。
32.如权利要求19所述的方法,其特征在于,还包括确定更改是否成功。
33.如权利要求19所述的方法,其特征在于,还包括更改对象的文件***名。
34.如权利要求19所述的方法,其特征在于,还包括更改对象删除配置。
35.一用于同步命名空间的装置,包括:
被安排以存储对象的文件***,所述文件***具有第一命名空间;
被安排以请求访问所述对象的进程;以及
被安排以检测所述文件***和所述进程之间选择的通信并对于任何影响第二命名空间的第一命名空间的更改更新第二命名空间的过滤器。
36.如权利要求35所述的装置,其特征在于,如果对象包括在第二命名空间中且对象被删除或重命名,则第一命名空间的更改影响第二命名空间。
37.如权利要求36所述的装置,其特征在于,所述重命名对象包括更改第一命名空间内的对象名。
38.如权利要求36所述的装置,其特征在于,所述重命名对象包括移动对象至第一命名空间内的另一位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/000,430 | 2004-11-30 | ||
US11/000,430 US7496565B2 (en) | 2004-11-30 | 2004-11-30 | Method and system for maintaining namespace consistency with a file system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1783082A true CN1783082A (zh) | 2006-06-07 |
CN100535899C CN100535899C (zh) | 2009-09-02 |
Family
ID=35911056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101192391A Expired - Fee Related CN100535899C (zh) | 2004-11-30 | 2005-10-28 | 用于与文件***保持命名空间一致性的方法和*** |
Country Status (10)
Country | Link |
---|---|
US (1) | US7496565B2 (zh) |
EP (1) | EP1669894A3 (zh) |
JP (1) | JP4809663B2 (zh) |
KR (1) | KR101120686B1 (zh) |
CN (1) | CN100535899C (zh) |
AU (1) | AU2005211571B2 (zh) |
BR (1) | BRPI0504679A (zh) |
CA (1) | CA2524541A1 (zh) |
MX (1) | MXPA05011696A (zh) |
RU (1) | RU2408060C2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567140A (zh) * | 2010-12-03 | 2012-07-11 | 微软公司 | 使用变化日志的文件***备份 |
US9229818B2 (en) | 2011-07-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Adaptive retention for backup data |
CN107085501A (zh) * | 2016-02-16 | 2017-08-22 | 杭州海康威视数字技术股份有限公司 | 一种数据存储、数据迁移方法及装置 |
US9870379B2 (en) | 2010-12-21 | 2018-01-16 | Microsoft Technology Licensing, Llc | Searching files |
CN108021510A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 操作对多重名称空间进行管理的存储装置的方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1684151A1 (en) | 2005-01-20 | 2006-07-26 | Grant Rothwell William | Computer protection against malware affection |
WO2007014297A2 (en) * | 2005-07-26 | 2007-02-01 | Invensys Systems, Inc. | Method and system for hierarchical namespace |
US8156507B2 (en) * | 2006-12-08 | 2012-04-10 | Microsoft Corporation | User mode file system serialization and reliability |
US8195704B2 (en) * | 2009-01-06 | 2012-06-05 | International Business Machines Corporation | Validation and correction in a distributed namespace |
US20100293197A1 (en) * | 2009-05-14 | 2010-11-18 | Microsoft Corporation | Directory Opportunistic Locks Using File System Filters |
US8285692B2 (en) * | 2010-01-15 | 2012-10-09 | Oracle America, Inc. | Method and system for attribute encapsulated data resolution and transcoding |
JP5539833B2 (ja) * | 2010-09-29 | 2014-07-02 | キヤノン電子株式会社 | 情報処理装置及びその制御方法、コンピュータプログラムならびにコンピュータ可読記憶媒体 |
US8627431B2 (en) | 2011-06-04 | 2014-01-07 | Microsoft Corporation | Distributed network name |
US9652469B2 (en) | 2011-06-04 | 2017-05-16 | Microsoft Technology Licensing, Llc | Clustered file service |
US8856484B2 (en) * | 2012-08-14 | 2014-10-07 | Infinidat Ltd. | Mass storage system and methods of controlling resources thereof |
CN102929982B (zh) * | 2012-10-17 | 2017-07-28 | Tcl通力电子(惠州)有限公司 | 多媒体扫描文件索引方法及装置 |
US10592475B1 (en) * | 2013-12-27 | 2020-03-17 | Amazon Technologies, Inc. | Consistent data storage in distributed computing systems |
CN105981033B (zh) * | 2014-02-14 | 2019-05-07 | 慧与发展有限责任合伙企业 | 将放置策略分配给片段集合 |
US10630772B2 (en) * | 2014-09-10 | 2020-04-21 | Panzura, Inc. | Maintaining global namespace consistency for a distributed filesystem |
US10387405B2 (en) | 2014-11-03 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Detecting inconsistencies in hierarchical organization directories |
WO2016073030A1 (en) | 2014-11-03 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Policy and configuration data for a user directory |
US10599621B1 (en) | 2015-02-02 | 2020-03-24 | Amazon Technologies, Inc. | Distributed processing framework file system fast on-demand storage listing |
US9922201B2 (en) * | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US10140461B2 (en) | 2015-10-30 | 2018-11-27 | Microsoft Technology Licensing, Llc | Reducing resource consumption associated with storage and operation of containers |
JP2018136614A (ja) * | 2017-02-20 | 2018-08-30 | 株式会社日立製作所 | データ分散処理システム、データ分散処理方法、及びデータ分散処理プログラム |
US10735369B2 (en) * | 2018-06-22 | 2020-08-04 | Microsoft Technology Licensing, Llc | Hierarchical namespace service with distributed name resolution caching and synchronization |
US11334364B2 (en) | 2019-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Layered composite boot device and file system for operating system booting in file system virtualization environments |
KR20210085674A (ko) | 2019-12-31 | 2021-07-08 | 삼성전자주식회사 | 다중-스트림을 지원하도록 구성된 스토리지 장치 및 그것의 동작 방법 |
US11595493B2 (en) * | 2020-09-28 | 2023-02-28 | Oracle International Corporation | System and method for namespace masking in an integration flow |
US11803511B2 (en) * | 2021-11-05 | 2023-10-31 | Microsoft Technology Licensing, Llc | Methods and systems for ordering operations on a file system having a hierarchical namespace |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761676A (en) * | 1994-09-19 | 1998-06-02 | Bmc Software, Inc. | Method of removing unneeded data from DB2 logs and other data sets having displacement-dependent data |
US6161147A (en) * | 1995-03-31 | 2000-12-12 | Sun Microsystems, Inc. | Methods and apparatus for managing objects and processes in a distributed object operating environment |
US6119118A (en) | 1996-05-10 | 2000-09-12 | Apple Computer, Inc. | Method and system for extending file system metadata |
US5761678A (en) | 1996-06-26 | 1998-06-02 | International Business Machines Corporation | Creation of clone storage area with identification of base storage area and deferred cloning of metadata |
US5832501A (en) * | 1996-12-31 | 1998-11-03 | Apple Computer, Inc. | Method and system for filtering file manager attribute values |
US5937406A (en) | 1997-01-31 | 1999-08-10 | Informix Software, Inc. | File system interface to a database |
AU3304699A (en) * | 1998-02-20 | 1999-09-06 | Storm Systems Llc | File system performance enhancement |
US6697846B1 (en) * | 1998-03-20 | 2004-02-24 | Dataplow, Inc. | Shared file system |
US6126211A (en) * | 1998-10-01 | 2000-10-03 | Dominquez; Edward | Slidable deadbolt security device for sliding doors and windows enabling selective locking thereof in closed or partially open position |
US6513051B1 (en) * | 1999-07-16 | 2003-01-28 | Microsoft Corporation | Method and system for backing up and restoring files stored in a single instance store |
US6408298B1 (en) * | 1999-12-15 | 2002-06-18 | Microsoft Corporation | Methods and systems for copying and moving across virtual namespaces |
US6578035B1 (en) * | 2000-01-14 | 2003-06-10 | Novell, Inc. | Method for dynamic validation of a distributed database segment which yields a suitable successor |
US6856993B1 (en) | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US6708186B1 (en) * | 2000-08-14 | 2004-03-16 | Oracle International Corporation | Aggregating and manipulating dictionary metadata in a database system |
AU2002246625B2 (en) * | 2000-11-29 | 2008-01-10 | University Of Rochester | Helper virus-free herpes virus amplicon particles and uses thereof |
US6976060B2 (en) * | 2000-12-05 | 2005-12-13 | Agami Sytems, Inc. | Symmetric shared file storage system |
US6920461B2 (en) * | 2001-07-10 | 2005-07-19 | Microsoft Corp. | Application program interface for network software platform |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US6687701B2 (en) * | 2001-09-25 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Namespace management in a distributed file system |
US7120631B1 (en) * | 2001-12-21 | 2006-10-10 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US7043485B2 (en) * | 2002-03-19 | 2006-05-09 | Network Appliance, Inc. | System and method for storage of snapshot metadata in a remote file |
JP4092947B2 (ja) * | 2002-05-09 | 2008-05-28 | 日本電気株式会社 | 名前サービス多重化方法、名前サービス多重化システム及び名前サービス管理用プログラム |
US7444317B2 (en) | 2002-06-28 | 2008-10-28 | Microsoft Corporation | System and method for managing file names for file system filter drivers |
EP1563411B1 (en) * | 2002-11-14 | 2013-06-19 | EMC Corporation | Systems and methods for restriping files in a distributed file system |
US6993603B2 (en) * | 2002-12-09 | 2006-01-31 | Microsoft Corporation | Managed file system filter model and architecture |
US7610348B2 (en) * | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US7409511B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7409494B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US7617321B2 (en) * | 2004-05-07 | 2009-11-10 | International Business Machines Corporation | File system architecture requiring no direct access to user data from a metadata manager |
US20060026161A1 (en) * | 2004-07-16 | 2006-02-02 | Henseler David A | Distributed parallel file system for a distributed processing system |
US7284150B2 (en) * | 2004-09-22 | 2007-10-16 | International Business Machines Corporation | System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data |
US7610307B2 (en) * | 2004-11-30 | 2009-10-27 | Microsoft Corporation | Method and system of detecting file system namespace changes and restoring consistency |
-
2004
- 2004-11-30 US US11/000,430 patent/US7496565B2/en not_active Expired - Fee Related
-
2005
- 2005-09-16 AU AU2005211571A patent/AU2005211571B2/en not_active Ceased
- 2005-10-11 KR KR1020050095377A patent/KR101120686B1/ko not_active IP Right Cessation
- 2005-10-26 BR BRPI0504679-3A patent/BRPI0504679A/pt not_active IP Right Cessation
- 2005-10-26 CA CA002524541A patent/CA2524541A1/en not_active Abandoned
- 2005-10-28 CN CNB2005101192391A patent/CN100535899C/zh not_active Expired - Fee Related
- 2005-10-28 RU RU2005133383/09A patent/RU2408060C2/ru not_active IP Right Cessation
- 2005-10-31 MX MXPA05011696A patent/MXPA05011696A/es active IP Right Grant
- 2005-11-03 EP EP05110304A patent/EP1669894A3/en not_active Withdrawn
- 2005-11-10 JP JP2005326362A patent/JP4809663B2/ja not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567140A (zh) * | 2010-12-03 | 2012-07-11 | 微软公司 | 使用变化日志的文件***备份 |
CN102567140B (zh) * | 2010-12-03 | 2015-09-23 | 微软技术许可有限责任公司 | 使用变化日志的文件***备份 |
US9824091B2 (en) | 2010-12-03 | 2017-11-21 | Microsoft Technology Licensing, Llc | File system backup using change journal |
US10558617B2 (en) | 2010-12-03 | 2020-02-11 | Microsoft Technology Licensing, Llc | File system backup using change journal |
US9870379B2 (en) | 2010-12-21 | 2018-01-16 | Microsoft Technology Licensing, Llc | Searching files |
US11100063B2 (en) | 2010-12-21 | 2021-08-24 | Microsoft Technology Licensing, Llc | Searching files |
US9229818B2 (en) | 2011-07-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Adaptive retention for backup data |
CN107085501A (zh) * | 2016-02-16 | 2017-08-22 | 杭州海康威视数字技术股份有限公司 | 一种数据存储、数据迁移方法及装置 |
CN107085501B (zh) * | 2016-02-16 | 2020-04-03 | 杭州海康威视数字技术股份有限公司 | 一种数据存储、数据迁移方法及装置 |
CN108021510A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 操作对多重名称空间进行管理的存储装置的方法 |
CN108021510B (zh) * | 2016-10-31 | 2023-02-17 | 三星电子株式会社 | 操作对多重名称空间进行管理的存储装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2006155607A (ja) | 2006-06-15 |
EP1669894A3 (en) | 2007-03-07 |
AU2005211571B2 (en) | 2010-10-21 |
CN100535899C (zh) | 2009-09-02 |
EP1669894A2 (en) | 2006-06-14 |
KR20060060548A (ko) | 2006-06-05 |
US7496565B2 (en) | 2009-02-24 |
RU2408060C2 (ru) | 2010-12-27 |
KR101120686B1 (ko) | 2012-03-23 |
JP4809663B2 (ja) | 2011-11-09 |
US20060116985A1 (en) | 2006-06-01 |
BRPI0504679A (pt) | 2006-07-11 |
CA2524541A1 (en) | 2006-05-30 |
RU2005133383A (ru) | 2007-05-10 |
AU2005211571A1 (en) | 2006-06-15 |
MXPA05011696A (es) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1783082A (zh) | 用于与文件***保持命名空间一致性的方法和*** | |
CN1783081A (zh) | 在本地缓存远程文件的方法和*** | |
CN1311358C (zh) | 对迁移和清除候选者的有效查找 | |
CN1744603A (zh) | 通过远程协议的远程文件更新 | |
CN1838128A (zh) | 存储装置***的控制技术 | |
US20110161296A1 (en) | Applying a policy criteria to files in a backup image | |
CN1961313A (zh) | 用于索引文件并将相关元数据添加到索引和元数据数据库的方法和*** | |
CN1852101A (zh) | 一种并行下载方法和终端 | |
CN1773509A (zh) | 计算机文件*** | |
CN1662905A (zh) | 多路并行现用文件*** | |
CN1508679A (zh) | 被管理的文件***过滤器模型和构造 | |
CN1524224A (zh) | 信息备份的***和方法 | |
CN1536485A (zh) | 数据维护、备份和恢复***及方法 | |
US20060117048A1 (en) | Method and system of synchronizing filter metadata after a restore | |
US7421560B2 (en) | Method and system of computing quota usage | |
CN101046772A (zh) | 回收存储器中的空间的方法和装置 | |
CN1742271A (zh) | 使用静态列表管理数据的***和方法 | |
CN1680926A (zh) | 带有相对受限存储空间以及操作/文件***的计算装置 | |
CN1277210C (zh) | 一种文件同步的方法 | |
CN1367896A (zh) | 文件处理方法、数据处理装置及存储介质 | |
CN1848111A (zh) | 用于内存数据库的一种数据操作接口的实现方法 | |
CN1556448A (zh) | 一种移动杀毒装置及其制作方法 | |
CN1266609C (zh) | 细粒度快照实现方法 | |
CN1786951A (zh) | 允许歧义名字的计算机文件*** | |
US7456991B2 (en) | Printer based file revision databasing |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090902 Termination date: 20121028 |