US6889233B2 - Selective file purging for delete or rename - Google Patents

Selective file purging for delete or rename Download PDF

Info

Publication number
US6889233B2
US6889233B2 US09/883,897 US88389701A US6889233B2 US 6889233 B2 US6889233 B2 US 6889233B2 US 88389701 A US88389701 A US 88389701A US 6889233 B2 US6889233 B2 US 6889233B2
Authority
US
United States
Prior art keywords
file
file identifier
target
target file
cached
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 - Lifetime, expires
Application number
US09/883,897
Other versions
US20030009480A1 (en
Inventor
Yun Lin
Shishir Pardikar
Venkataraman Ramanathan
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 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 Microsoft Corp filed Critical Microsoft Corp
Priority to US09/883,897 priority Critical patent/US6889233B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIN, YUN, PARDIKAR, SHISHIR, RAMANATHAN, VENKATARAMAN
Publication of US20030009480A1 publication Critical patent/US20030009480A1/en
Priority to US10/931,518 priority patent/US7895249B2/en
Application granted granted Critical
Publication of US6889233B2 publication Critical patent/US6889233B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • the present invention relates to remote file access, and more specifically to purging delayed file closes before a remote file delete or file rename operation is performed.
  • a key element to efficient and secure information transfer is the network file system employed by modern computers.
  • a network file system manages file sharing between computers requesting data (“clients”) and computers supplying the data (“servers”).
  • clients computers requesting data
  • servers computers supplying the data
  • a central goal in computer network design issue is increasing network file system performance without compromising the integrity of the network.
  • a file open operation is typically issued by a client before any file access is granted by a server.
  • the client and server perform time-consuming handshaking, negotiating, and security verification procedures to ensure network integrity is maintained. If an application repeatedly opens and closes the same remote file in quick succession, the overhead penalty of each open operation can significantly degrade network system performance.
  • the file system records the filenames of cached open files in a delayed close list (also known as a scavenger list) and waits until a timeout occurs.
  • the close file command is sent to the remote server after the timeout and the file reference is deleted from the delayed close list.
  • the file system disregards the application's earlier close command. To the server, it appears as though the client never closed the file between file accesses.
  • caching file opens helps the network file system avoid repeated file open operations by consolidating successive remote file accesses.
  • Aliased files have two or more filenames that refer to the same file.
  • file aliasing exists in operating systems which support file access using both a FAT32 or NTFS filename (long filename) and a FAT16 filename (short filename or 8.3 filename).
  • a remote file may be opened using either its long filename or its short filename.
  • the present invention overcomes the above-mentioned shortcomings of network file systems by referencing a unique file identifier (FID) in the delayed close list.
  • the unique FID always identifies the same remote file regardless of the filename used.
  • the network file system obtains the target file's unique FID from the server's file management system. The network file system then purges only those files in the delayed close list whose unique FID matches the unique FID of the target file. Files in the delayed close list whose unique FIDs do not match the target file's unique FID are left open. In this manner, casualty files are eliminated and system performance is greatly improved.
  • one aspect of the present invention is a method for purging cached open files from a delayed close list which reference a target file located on a remote server.
  • the cached open files include cached filenames and the target file includes a target filename.
  • the method includes a storing operation for storing a unique file identifier for each of the cached files. Furthermore, the unique file identifier is independent of the cached filenames.
  • a receiving operation receives a target file identifier for the target file from the server, wherein the target file identifier is independent of the target filename.
  • the method also includes a purging operation that purges from the delayed close list the cached open files having the same unique file identifier as the target file identifier.
  • the present invention relates to a computer-readable medium having stored thereon a data structure for purging a delayed close list of cached open files.
  • the data structure includes a namespace field representing a network filename for a remote file, and a unique file identifier independent of the network filename.
  • Another aspect of the present invention is a computer program product readable by a computing system and encoding a computer program of instructions for executing a computer process for purging a cached open file from a delayed close list which references a target file located on a server.
  • the computer process includes storing a file namespace and a unique file identifier for the cached open file, wherein the unique file identifier is independent of the file namespace.
  • a receiving operation receives a target namespace and a target file identifier for the target file. Likewise, the target file identifier is independent of the target namespace.
  • the computer process includes purging from the delayed close list the cached open file if the cached open file has the same unique file identifier as the target file identifier.
  • FIG. 1 shows the basic functional units of a computing device implementing various embodiments of the present invention.
  • FIG. 2 illustrates a representation of a typical computer network system utilizing an embodiment of the present invention.
  • FIG. 3 shows a more detailed functional diagram of a client-side remote file system as contemplated by the present invention.
  • FIG. 4A shows a representation of the file handle table as contemplated by the present invention.
  • FIG. 4B illustrates two file control blocks referencing the same remote file using different filenames while maintaining the same unique file identifier.
  • FIG. 5 shows a control flow diagram contemplated by the present invention for purging entries in a delayed close list.
  • the present invention involves referencing a unique file identifier (FID) to more efficiently handle cached open files on a network file system.
  • FID file identifier
  • Techniques for caching open files on network file systems are well known and are beneficially used in conjunction with the present invention.
  • the present invention incorporates a unique FID field to remote file references and allows for more rigorous file identification of cached open files on delayed close lists.
  • FIG. 1 the basic functional units of a computing device 102 implementing various embodiments of the present invention are shown.
  • inventive features of the present invention may be usefully embodied in a number of alternative processor architectures that will benefit from the performance features of the present invention. Accordingly, these alternative embodiments are equivalent to the particular embodiments shown and described herein.
  • FIG. 1 shows a typical computing device 102 incorporating a general-purpose processor 104 in accordance with an embodiment of the present invention.
  • the computing device 102 comprises an address/data bus 106 for communicating data and control information, at least one processor 104 coupled with the bus 106 through an input/output (I/O) interface 108 , and a memory system 110 coupled with the processor 104 for storing information and instructions.
  • the memory system 110 includes, for example, cache memory 112 and main memory 114 .
  • Cache memory 112 includes one or more levels of cache memory.
  • processor 104 may be integrated in a single integrated circuit, although the specific components and integration density are a matter of design choice selected to meet the needs of a particular application.
  • User I/O devices 116 are coupled to the bus 106 and are operative to communicate information in appropriately structured form to and from the other parts of the computer 102 .
  • User I/O devices 116 may include a keyboard, mouse, card reader, magnetic or paper tape, magnetic disk, optical disk, or other available input devices, including another computer.
  • a mass storage device 118 is coupled to the bus 106 and may be implemented using one or more magnetic hard disks, magnetic tapes, CDROMs, large banks of random access memory, or the like. A wide variety of random access and read only memory technologies are available and are equivalent for purposes of the present invention.
  • the mass storage 118 may include computer programs and data stored therein. In addition, some or all of the mass storage 118 may be configured to be incorporated as a part of the memory system 110 .
  • the processor 104 In a typical computing device 102 , the processor 104 , I/O interface 108 , memory system 110 , and mass storage device 118 , are coupled to the bus 106 formed on a printed circuit board and integrated into a single housing as suggested by the dashed-line box 120 .
  • the particular components chosen to be integrated into a single housing are based upon market and design choices. Accordingly, it is expressly understood that fewer or more devices may be incorporated within the housing suggested by dashed line 120 .
  • Display device 122 is used to display messages, data, a graphical or command line user interface, or other communications with the user.
  • Display device 122 may be implemented, for example, by a cathode ray tube (CRT) monitor, liquid crystal display (LCD) or any available equivalent.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • a communication interface 124 is utilized for carrying out digital or mixed analog-digital communications with other electrical devices over a network.
  • the communication interface 124 may carry out wire based communications and/or wireless communications.
  • Various communication protocols may be supported by the communication interface 124 including, but not limited to, Transmission Control Protocol/Internet Protocol (TCP/IP), and Common Internet File System (CIFS) protocol.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • CIFS Common Internet File System
  • the communication interface 124 allows the computer device 102 to access remote files stored on servers by means of a network file system.
  • a network file system refers generally to a mechanism responsible for file access between clients and servers over a computer network.
  • the network file system is typically a service or component of a network operating system, such as the Microsoft(R) Windows NT(R) operating system.
  • Microsoft and Windows NT are registered trademarks of Microsoft Corporation.
  • FIG. 2 a representation of a typical computer network system 202 utilizing an embodiment of the present invention is shown.
  • the network system 202 may be implemented on a local area network (LAN) or a wide area network (WAN).
  • LANs may be implemented using any available topology such as a hub and spoke topology and a loop topology.
  • a client-server network arrangement is referred to and illustrated. It should be noted, however, that other conventional network arrangements, such as a peer-to-peer network arrangement, may be utilized in connection with the present invention.
  • the computer network system 202 consists of a client 204 communicating with a server 206 through a network 208 .
  • the client 204 includes at least one application 210 executed under a client-side operating system 212 .
  • the application 210 is executed under a non-privileged processor mode (referred to as “User Mode”) and is given only limited system access through the operating system 212 .
  • the operating system is run under a privileged processor mode (referred to as “Kernel Mode”) and is given full system access to memory and processor commands.
  • the application 210 When the application 210 requires access to a remote file 214 , it sends a remote I/O request through the operating system 212 to an I/O manager 216 .
  • the I/O manager 216 passes remote I/O requests to the client-side remote file system 218 for further processing.
  • the remote file system 218 accepts and translates the I/O request into network file system protocol commands that are sent to a server-side remote file system 220 .
  • the server-side remote file system 220 listens for commands coming from the network 208 and issues the I/O request to a local file system 222 .
  • the local file system 222 carries out the I/O request by interfacing with a device driver 224 that manages the volume 224 on which the remote file 214 or directory that the I/O command is intended for resides.
  • FIG. 3 a more detailed functional diagram of one embodiments of a client-side remote file system 218 contemplated by the present invention is shown.
  • the remote file system 218 includes a command interface 302 coupled with the I/O manager 216 .
  • the command interface 302 is configured to exchange remote I/O messages between the I/O manager 216 and a file system controller 304 .
  • the command interface 302 may also interact with a cache manager (not shown) to cache server file data on the client system.
  • the file system controller 304 manages various aspects of remote file access, such as server negotiation, cache coherency, security verification, and data formatting.
  • the file system controller 304 is coupled with an CIFS interface 306 .
  • the CIFS interface 306 packages data sent from the client to a remote server according to the CIFS protocol. Additionally, the CIFS interface 306 translates CIFS formatted data received from remote servers and passes it to the file system controller 304 .
  • the file system controller 304 maintains a file handle table 310 listing handles of remote files accessed by the client. Each file handle in the file handle table 310 points to a file control block (FCB), thereby allowing the file system controller 304 to quickly identify an opened remote file. Furthermore, each FCB incorporates file objects containing access information about the remote file and its server.
  • FCB file control block
  • the file handle table 310 includes a plurality of remote file handles 402 pointing to FCB 404 structures.
  • the FCB 404 may include such fields as a server ID 406 , a session ID 408 , and a file namespace 410 of the associated remote file.
  • the FCB 404 also includes a unique FID 412 which is independent of the file namespace 410 .
  • the unique FID 412 is a 64-bit universal file ID supplied by an NTFS file system.
  • the unique FID 412 is used to match FCBs referencing the same remote file using different file namespaces.
  • one FCB may reference a remote file by its long (FAT32) filename and another FCB may reference the same remote file by its short (FAT16) filename.
  • FAT32 long
  • FAT16 short
  • FIG. 4B where a first FCB 414 and a second FCB 416 having different file namespace entries reference the same remote file 418 .
  • the remote file 418 is named My_Document.doc, however, it is also aliased as MY_DOC ⁇ 1.DOC to ensure compatibility with the FAT16 file system format.
  • FCBs 414 and 416 refer to the same remote file 418 and contain the same unique FID value (64-bit) in their respective unique FID fields 424 and 426 .
  • an application when an application no longer requires access to a remote file, it typically issues a close command to the I/O manager 216 .
  • the command interface 302 intercepts the close command and passes it to the file system controller 304 .
  • the file system controller 304 then checks whether other executing applications are accessing the remote file. If no other application is accessing the remote file, the file system controller 304 removes the remote file's handle from the file handle table 310 and places the handle in a delayed close list 312 , thereby caching the file open.
  • the file system controller 304 In addition to caching the file open on the delayed close list 312 , the file system controller 304 creates a scavenge thread 314 which counts down a brief time delay. The time delay is typically between 2 to 5 seconds, and may be adjusted to optimize system performance. If, during the time delay, an open command corresponding to a file cached in the delayed close list 312 is received by the command interface 302 , the file system controller 304 removes the file handle from the delayed close list 312 and restores the handle in the file handle table 310 . In doing so, remote file access overhead is reduced by eliminating repeated open commands. If, on the other hand, the remote file is not accessed again before the timeout delay completes, the file system controller 304 sends a close command to the file server via the CIFS interface 306 and the file handle entry is removed from the delayed close list 312 .
  • the client must ensure that a remote target file is not cached on the delayed close list 312 before the client attempts to delete or rename the target file.
  • the file system controller 304 ensures all entries referencing the remote target file are purged from the delayed close list 312 before deleting or renaming the target file. This is achieved by comparing the recorded unique FIDs of all the entries in the delayed close list 312 with the unique FID of the target file. Hence, any delayed close list entry containing a unique FID matching the target file's unique FID is expressly closed and removed from the delayed close list 312 .
  • the present invention greatly reduces the inefficiencies of aggressive prior art purging techniques which remove non-target related entries from the delayed close list 312 .
  • FIG. 5 a control flow diagram contemplated by the present invention for purging entries in a delayed close list 312 is shown.
  • the control flow begins at receiving operation 502 wherein the client-side remote file system 218 receives a command from an executing application 210 to delete or rename a remote target file 214 .
  • remote I/O commands may be issued through an I/O manager 216 and intercepted by a command interface 302 in the remote file system 218 .
  • control passes to querying operation 504 .
  • the client 204 queries the server 206 for the unique FID 412 of the target file 214 .
  • the unique FID 412 is a value assigned to the target file 214 which is independent of the filename used to identify the target file 214 .
  • the FID is obtained when the file is opened.
  • the same unique FID 412 is returned to the client 204 whether the client 204 uses a FAT16 filename or a FAT32 filename to identify the target file 214 .
  • the file system controller 304 prepares to examine all delayed close list entries for matching unique FIDs by setting the first delayed close list entry as a next delayed close list entry. Control then passes to comparing operation 508 .
  • comparing operation 508 the remote file system 218 compares the unique FID of the next delayed close list entry to the unique FID of the remote target file 214 . Beginning with the first delayed list entry, the comparing operation 508 tests the next delayed close list entry each time it is invoked. Once the next delayed close list entry is examined, control transfers to branching operation 510 .
  • branching operation 510 the result from comparing operation 508 is examined. If the unique FIDs of the next delayed close list entry and the remote target file matched in comparing operation 508 , this indicates that the next delayed close list entry is referencing the target file 214 and must be purged from the delayed close list 312 before the delete or rename command is issued to the server 206 . Thus, the branching operation 510 passes control to closing operation 512 .
  • closing operation 512 the remote file referenced by the next delayed close list entry (i.e. the target file) is closed by client 204 .
  • the CIFS interface 306 issues a file close command to the server 206 over the network 208 .
  • control is passed to deleting operation 514 , where the next delayed close list entry is deleted from the delayed close list 312 .
  • the remote file system 218 determines if all the delayed close list entries have been examined. If more entries in the delayed close list 312 need to be compared with the unique FID of the target file 214 , control loops back to comparing operation 508 . If, on the other hand, every delayed close list entry has been examined, control branches to issuing operation 518 .

Abstract

A method of purging cached open files from a client-side delayed close list on a remote file system. The remote file system stores a unique file identifier for each cached open file which is independent of the cached file's namespace. In response to a delete or rename command of a remote target file, the remote file system obtains a target file identifier from the target file's server. The remote file system then compares the target file identifier with each of the cached file's unique file identifier. If a cached file's unique file identifier matches the target file identifier, the cached file is purged from the delayed close list.

Description

TECHNICAL FIELD
The present invention relates to remote file access, and more specifically to purging delayed file closes before a remote file delete or file rename operation is performed.
BACKGROUND OF THE INVENTION
Efficient and secure information transfer between computers over a computer network has become a paramount concern in most every corporate and educational organization today. A key element to efficient and secure information transfer is the network file system employed by modern computers. A network file system manages file sharing between computers requesting data (“clients”) and computers supplying the data (“servers”). A central goal in computer network design issue is increasing network file system performance without compromising the integrity of the network.
One of the most performance costly operations carried out by network file systems is a file open operation. A file open request is typically issued by a client before any file access is granted by a server. During the file open operation, the client and server perform time-consuming handshaking, negotiating, and security verification procedures to ensure network integrity is maintained. If an application repeatedly opens and closes the same remote file in quick succession, the overhead penalty of each open operation can significantly degrade network system performance.
To minimize the overhead penalty of repeated open requests, network file systems typically delay closing open files for several seconds in the event an application will quickly re-access the same file again. Stalling a file close command is also referred to herein as caching file opens or caching an open file. Broadly speaking, the file system records the filenames of cached open files in a delayed close list (also known as a scavenger list) and waits until a timeout occurs. Unless the application issues another open request for the remote file, the close file command is sent to the remote server after the timeout and the file reference is deleted from the delayed close list. However, if the same application quickly follows a close request with a file open request for the same remote file, the file system disregards the application's earlier close command. To the server, it appears as though the client never closed the file between file accesses. Thus, caching file opens helps the network file system avoid repeated file open operations by consolidating successive remote file accesses.
One problem associated with delaying file closes occurs when a delete or rename operation is requested for an aliased file. Aliased files have two or more filenames that refer to the same file. Generally, file aliasing exists in operating systems which support file access using both a FAT32 or NTFS filename (long filename) and a FAT16 filename (short filename or 8.3 filename). In such operating systems, a remote file may be opened using either its long filename or its short filename.
The problem arises when a client issues a file delete command or a file rename command shortly after issuing a file close command for the same remote file using different names for the same file. From the client's perspective, the two commands should be carried out without trouble since the file is closed before the delete or rename command is sent to the remote server. As discussed above, however, the network file system delays sending the file close command to the server to improve system performance and, unless corrected, the delete command will be sent to the server before the close command. From the server's perspective, a file sharing violation is created when the client tries to delete a file before closing it. Complicating the matter even further is the fact that the close command and the delete/rename command use different filenames to identify the same remote file. Thus, the network file system cannot discover or prevent the conflicting operations by searching the delayed close list for the same filenames.
One known solution to this problem is to aggressively purge all files from the delayed close list that may potentially cause a file sharing violation to occur whenever a remote file delete or remote file rename command is received by the network file system. Thus, when a remote file delete/rename command is issued by an application, all potential file aliasing candidates in the delayed close list are quickly closed regardless of a timeout occurrence before the delete/rename command is sent to the remote server. For example, when a client requests a remote file to be deleted, the network file system closes all files in the delayed close list with the same server name and share name as the remote file, even though their filenames and/or directory names may differ. This approach ensures that any cached open file that potentially aliases the file to be deleted or renamed is closed before the delete/rename command is issued to the remote server.
One drawback of the above approach is that a large number of casualty files not aliasing the delete or rename command filename are typically purged from the delayed close list unnecessarily. When the client subsequently tries accessing these casualty files, the network file system must reopen these files using the costly file open operation. Thus, system performance is degraded when casualty files are purged from the delayed close list to prevent server sharing violations.
SUMMARY OF THE INVENTION
The present invention overcomes the above-mentioned shortcomings of network file systems by referencing a unique file identifier (FID) in the delayed close list. The unique FID always identifies the same remote file regardless of the filename used. In one embodiment of the invention, when a remote target file is to be deleted or renamed, the network file system obtains the target file's unique FID from the server's file management system. The network file system then purges only those files in the delayed close list whose unique FID matches the unique FID of the target file. Files in the delayed close list whose unique FIDs do not match the target file's unique FID are left open. In this manner, casualty files are eliminated and system performance is greatly improved.
Accordingly, one aspect of the present invention is a method for purging cached open files from a delayed close list which reference a target file located on a remote server. The cached open files include cached filenames and the target file includes a target filename. The method includes a storing operation for storing a unique file identifier for each of the cached files. Furthermore, the unique file identifier is independent of the cached filenames. A receiving operation receives a target file identifier for the target file from the server, wherein the target file identifier is independent of the target filename. The method also includes a purging operation that purges from the delayed close list the cached open files having the same unique file identifier as the target file identifier.
In accordance with other aspects, the present invention relates to a computer-readable medium having stored thereon a data structure for purging a delayed close list of cached open files. The data structure includes a namespace field representing a network filename for a remote file, and a unique file identifier independent of the network filename.
Another aspect of the present invention is a computer program product readable by a computing system and encoding a computer program of instructions for executing a computer process for purging a cached open file from a delayed close list which references a target file located on a server. The computer process includes storing a file namespace and a unique file identifier for the cached open file, wherein the unique file identifier is independent of the file namespace. A receiving operation receives a target namespace and a target file identifier for the target file. Likewise, the target file identifier is independent of the target namespace. The computer process includes purging from the delayed close list the cached open file if the cached open file has the same unique file identifier as the target file identifier.
These and various other features, as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows the basic functional units of a computing device implementing various embodiments of the present invention.
FIG. 2 illustrates a representation of a typical computer network system utilizing an embodiment of the present invention.
FIG. 3 shows a more detailed functional diagram of a client-side remote file system as contemplated by the present invention.
FIG. 4A shows a representation of the file handle table as contemplated by the present invention.
FIG. 4B illustrates two file control blocks referencing the same remote file using different filenames while maintaining the same unique file identifier.
FIG. 5 shows a control flow diagram contemplated by the present invention for purging entries in a delayed close list.
DETAILED DESCRIPTION OF THE INVENTION
The invention is described in detail below with reference to the figures. When referring to the figures, like structures and elements shown throughout are indicated with like reference numerals.
The present invention involves referencing a unique file identifier (FID) to more efficiently handle cached open files on a network file system. Techniques for caching open files on network file systems are well known and are beneficially used in conjunction with the present invention. However, the present invention incorporates a unique FID field to remote file references and allows for more rigorous file identification of cached open files on delayed close lists.
In FIG. 1, the basic functional units of a computing device 102 implementing various embodiments of the present invention are shown. Thus, particular embodiments discussed herein may be realized using a general-purpose computer. However, it is expressly understood that the inventive features of the present invention may be usefully embodied in a number of alternative processor architectures that will benefit from the performance features of the present invention. Accordingly, these alternative embodiments are equivalent to the particular embodiments shown and described herein.
FIG. 1 shows a typical computing device 102 incorporating a general-purpose processor 104 in accordance with an embodiment of the present invention. The computing device 102 comprises an address/data bus 106 for communicating data and control information, at least one processor 104 coupled with the bus 106 through an input/output (I/O) interface 108, and a memory system 110 coupled with the processor 104 for storing information and instructions. The memory system 110 includes, for example, cache memory 112 and main memory 114. Cache memory 112 includes one or more levels of cache memory. In a typical embodiment, the processor 104, I/O interface 108, and some or all of cache memory 112 may be integrated in a single integrated circuit, although the specific components and integration density are a matter of design choice selected to meet the needs of a particular application.
User I/O devices 116 are coupled to the bus 106 and are operative to communicate information in appropriately structured form to and from the other parts of the computer 102. User I/O devices 116 may include a keyboard, mouse, card reader, magnetic or paper tape, magnetic disk, optical disk, or other available input devices, including another computer. A mass storage device 118 is coupled to the bus 106 and may be implemented using one or more magnetic hard disks, magnetic tapes, CDROMs, large banks of random access memory, or the like. A wide variety of random access and read only memory technologies are available and are equivalent for purposes of the present invention. The mass storage 118 may include computer programs and data stored therein. In addition, some or all of the mass storage 118 may be configured to be incorporated as a part of the memory system 110.
In a typical computing device 102, the processor 104, I/O interface 108, memory system 110, and mass storage device 118, are coupled to the bus 106 formed on a printed circuit board and integrated into a single housing as suggested by the dashed-line box 120. However, the particular components chosen to be integrated into a single housing are based upon market and design choices. Accordingly, it is expressly understood that fewer or more devices may be incorporated within the housing suggested by dashed line 120.
Display device 122 is used to display messages, data, a graphical or command line user interface, or other communications with the user. Display device 122 may be implemented, for example, by a cathode ray tube (CRT) monitor, liquid crystal display (LCD) or any available equivalent.
A communication interface 124 is utilized for carrying out digital or mixed analog-digital communications with other electrical devices over a network. The communication interface 124 may carry out wire based communications and/or wireless communications. Various communication protocols may be supported by the communication interface 124 including, but not limited to, Transmission Control Protocol/Internet Protocol (TCP/IP), and Common Internet File System (CIFS) protocol. Of particular importance to the present invention, the communication interface 124 allows the computer device 102 to access remote files stored on servers by means of a network file system.
As used herein, a network file system refers generally to a mechanism responsible for file access between clients and servers over a computer network. The network file system is typically a service or component of a network operating system, such as the Microsoft(R) Windows NT(R) operating system. Microsoft and Windows NT are registered trademarks of Microsoft Corporation.
In FIG. 2, a representation of a typical computer network system 202 utilizing an embodiment of the present invention is shown. The network system 202 may be implemented on a local area network (LAN) or a wide area network (WAN). Furthermore, LANs may be implemented using any available topology such as a hub and spoke topology and a loop topology. During discussions of embodiments of the present invention, a client-server network arrangement is referred to and illustrated. It should be noted, however, that other conventional network arrangements, such as a peer-to-peer network arrangement, may be utilized in connection with the present invention.
The computer network system 202 consists of a client 204 communicating with a server 206 through a network 208. The client 204 includes at least one application 210 executed under a client-side operating system 212. Typically, the application 210 is executed under a non-privileged processor mode (referred to as “User Mode”) and is given only limited system access through the operating system 212. The operating system, on the other hand, is run under a privileged processor mode (referred to as “Kernel Mode”) and is given full system access to memory and processor commands.
When the application 210 requires access to a remote file 214, it sends a remote I/O request through the operating system 212 to an I/O manager 216. The I/O manager 216, in turn, passes remote I/O requests to the client-side remote file system 218 for further processing. The remote file system 218 accepts and translates the I/O request into network file system protocol commands that are sent to a server-side remote file system 220.
The server-side remote file system 220 listens for commands coming from the network 208 and issues the I/O request to a local file system 222. The local file system 222 carries out the I/O request by interfacing with a device driver 224 that manages the volume 224 on which the remote file 214 or directory that the I/O command is intended for resides.
In FIG. 3, a more detailed functional diagram of one embodiments of a client-side remote file system 218 contemplated by the present invention is shown. The remote file system 218 includes a command interface 302 coupled with the I/O manager 216. The command interface 302 is configured to exchange remote I/O messages between the I/O manager 216 and a file system controller 304. The command interface 302 may also interact with a cache manager (not shown) to cache server file data on the client system.
The file system controller 304 manages various aspects of remote file access, such as server negotiation, cache coherency, security verification, and data formatting. In one embodiment of the present invention, the file system controller 304 is coupled with an CIFS interface 306. The CIFS interface 306 packages data sent from the client to a remote server according to the CIFS protocol. Additionally, the CIFS interface 306 translates CIFS formatted data received from remote servers and passes it to the file system controller 304.
The file system controller 304 maintains a file handle table 310 listing handles of remote files accessed by the client. Each file handle in the file handle table 310 points to a file control block (FCB), thereby allowing the file system controller 304 to quickly identify an opened remote file. Furthermore, each FCB incorporates file objects containing access information about the remote file and its server.
With reference now to FIG. 4A, a representation of the file handle table 310 is shown. As mentioned above, the file handle table 310 includes a plurality of remote file handles 402 pointing to FCB 404 structures. The FCB 404 may include such fields as a server ID 406, a session ID 408, and a file namespace 410 of the associated remote file. In accordance with embodiments of the present invention, the FCB 404 also includes a unique FID 412 which is independent of the file namespace 410. In one embodiment of the present invention, the unique FID 412 is a 64-bit universal file ID supplied by an NTFS file system.
The unique FID 412 is used to match FCBs referencing the same remote file using different file namespaces. For example, one FCB may reference a remote file by its long (FAT32) filename and another FCB may reference the same remote file by its short (FAT16) filename. Such an example is illustrated in FIG. 4B, where a first FCB 414 and a second FCB 416 having different file namespace entries reference the same remote file 418. The remote file 418 is named My_Document.doc, however, it is also aliased as MY_DOC˜1.DOC to ensure compatibility with the FAT16 file system format. Accordingly, the namespace field 420 of the first FCB 414 contains the long filename format, while the namespace field 422 of the second FCB 416 contains the short filename format. Nevertheless, both FCBs 414 and 416 refer to the same remote file 418 and contain the same unique FID value (64-bit) in their respective unique FID fields 424 and 426.
Returning to FIG. 3, when an application no longer requires access to a remote file, it typically issues a close command to the I/O manager 216. The command interface 302 intercepts the close command and passes it to the file system controller 304. The file system controller 304 then checks whether other executing applications are accessing the remote file. If no other application is accessing the remote file, the file system controller 304 removes the remote file's handle from the file handle table 310 and places the handle in a delayed close list 312, thereby caching the file open.
In addition to caching the file open on the delayed close list 312, the file system controller 304 creates a scavenge thread 314 which counts down a brief time delay. The time delay is typically between 2 to 5 seconds, and may be adjusted to optimize system performance. If, during the time delay, an open command corresponding to a file cached in the delayed close list 312 is received by the command interface 302, the file system controller 304 removes the file handle from the delayed close list 312 and restores the handle in the file handle table 310. In doing so, remote file access overhead is reduced by eliminating repeated open commands. If, on the other hand, the remote file is not accessed again before the timeout delay completes, the file system controller 304 sends a close command to the file server via the CIFS interface 306 and the file handle entry is removed from the delayed close list 312.
To prevent network sharing violations, as discussed earlier, the client must ensure that a remote target file is not cached on the delayed close list 312 before the client attempts to delete or rename the target file. In one embodiment of the present invention, the file system controller 304 ensures all entries referencing the remote target file are purged from the delayed close list 312 before deleting or renaming the target file. This is achieved by comparing the recorded unique FIDs of all the entries in the delayed close list 312 with the unique FID of the target file. Hence, any delayed close list entry containing a unique FID matching the target file's unique FID is expressly closed and removed from the delayed close list 312. By utilizing the unique FIDs of delayed close list entries, only those entries aliasing the remote target file are purged from delayed close list 312. Therefore, the present invention greatly reduces the inefficiencies of aggressive prior art purging techniques which remove non-target related entries from the delayed close list 312.
In FIG. 5, a control flow diagram contemplated by the present invention for purging entries in a delayed close list 312 is shown. The control flow begins at receiving operation 502 wherein the client-side remote file system 218 receives a command from an executing application 210 to delete or rename a remote target file 214. As described above, remote I/O commands may be issued through an I/O manager 216 and intercepted by a command interface 302 in the remote file system 218. Once the delete or rename command is received by the remote file system 218, control passes to querying operation 504.
In querying operation 504, the client 204 queries the server 206 for the unique FID 412 of the target file 214. The unique FID 412, as earlier mentioned, is a value assigned to the target file 214 which is independent of the filename used to identify the target file 214. The FID is obtained when the file is opened. Thus, the same unique FID 412 is returned to the client 204 whether the client 204 uses a FAT16 filename or a FAT32 filename to identify the target file 214. Once the target file's unique FID 412 is received from the server 206, control proceeds to operation 506.
In operation 506, the file system controller 304 prepares to examine all delayed close list entries for matching unique FIDs by setting the first delayed close list entry as a next delayed close list entry. Control then passes to comparing operation 508.
In comparing operation 508, the remote file system 218 compares the unique FID of the next delayed close list entry to the unique FID of the remote target file 214. Beginning with the first delayed list entry, the comparing operation 508 tests the next delayed close list entry each time it is invoked. Once the next delayed close list entry is examined, control transfers to branching operation 510.
In branching operation 510, the result from comparing operation 508 is examined. If the unique FIDs of the next delayed close list entry and the remote target file matched in comparing operation 508, this indicates that the next delayed close list entry is referencing the target file 214 and must be purged from the delayed close list 312 before the delete or rename command is issued to the server 206. Thus, the branching operation 510 passes control to closing operation 512.
In closing operation 512, the remote file referenced by the next delayed close list entry (i.e. the target file) is closed by client 204. In a particular embodiment of the present invention, the CIFS interface 306 issues a file close command to the server 206 over the network 208. Next, control is passed to deleting operation 514, where the next delayed close list entry is deleted from the delayed close list 312.
After deleting operation 514 is executed, or if the unique FIDs of the next delayed close list entry and the remote target file did not match in comparing operation 508, control passes to branching operation 516. In this operation, the remote file system 218 determines if all the delayed close list entries have been examined. If more entries in the delayed close list 312 need to be compared with the unique FID of the target file 214, control loops back to comparing operation 508. If, on the other hand, every delayed close list entry has been examined, control branches to issuing operation 518.
When the control flow reaches issuing operation 518, all delayed close list entries referencing the remote target file 214, whether by the target file's long filename or its aliased short filename, have been purged from the delayed close list 312. Thus, the client issues the delete or rename command received in operation 502 to the server 206 without causing a file sharing violation.
It should be recognized by the reader that the logical operations of the various embodiments of the present invention described above may be implemented (1) as a sequence of computer implemented steps or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof, without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.
Although the invention has been described in language specific to computer structural features, methodological acts and by computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific structures, acts or media described. As an example, the unique FID field 412 may be included in the session ID field 408. Therefore, the specific structural features, acts and mediums are disclosed as exemplary embodiments implementing the claimed invention.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the invention. Those skilled in the art will readily recognize various modifications and changes that may be made to the present invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.

Claims (23)

1. In a network operating system containing a client-side delayed close list of cached open files with cached filenames, a method for the delayed close list the cached open files which reference a target file located on a remote server, the target file having a target filename, the method comprising:
storing a unique file identifier for each of the cached files, wherein the unique file identifier is independent of the cached filenames;
receiving a target file identifier for the target file from the server, wherein the target file identifier is independent of the target filename; and
purging from the delayed close list the cached open files having the same unique file identifier as the target file identifier.
2. The method of claim 1, further comprising receiving a delete command for the target file from an application executing on the networking operating system.
3. The method of claim 2, further comprising issuing the delete command to the remote server.
4. The method of claim 1, further comprising receiving a rename command for the target file from an application executing on the networking operating system.
5. The method of claim 4, further comprising issuing the rename command to the remote server.
6. The method of claim 1, further comprising querying the remote server for the unique file identifier.
7. The method claim 1, further comprising querying the remote server for the target file identifier.
8. The method for claim 1, wherein the purging further comprises comparing the unique file identifier with the target file identifier.
9. The method of claim 1, wherein the purging further comprises closing the cached open files having the same unique file identifier as the target file identifier.
10. The method of claim 1, wherein the purging further comprises deleting entries from the delayed close list corresponding to the cached open files having the same unique file identifier as the target file identifier.
11. The method of claim 1, wherein the unique file identifier and the target file identifier are universal file identifiers.
12. The method of claim 1, wherein the method is encoded in a computer program product readable by computing system.
13. A computer program product readable by a computing system and encoding a computer program of instructions for executing a computer process for purging from a client-side delayed closed list a cached open file which references a target file located on a server, the computer process comprising:
storing a file namespace for the cached open file;
storing a unique file identifier for the cached open file, wherein the unique file identifier is independent of the file namespace;
receiving a target namespace for the target file;
receiving a target file identifier for the target file from the server, wherein the target file identifier is independent of the target namespace; and
purging from the delayed close list the cached open file if the cached open file has the same unique file identifier as the target file identifier.
14. The computer program of claim 13, wherein the computer process further comprises receiving a delete command for the target file from an executing application.
15. The computer program of claim 14, wherein the computer process further comprises issuing the delete command to the server.
16. The computer program of claim 13, wherein the computer process further comprises receiving a rename command for the target file from an executing application.
17. The computer program of claim 16, wherein the computer process further comprises issuing the rename command to the server.
18. The computer program of claim 13, wherein the computer process further comprises querying the server for the unique file identifier.
19. The computer program of claim 13, wherein the computer process further comprises querying the server for the target file identifier.
20. The computer program of claim 13, wherein the purging further comprises comparing the unique file identifier with the target file identifier.
21. The computer program of claim 13, wherein the purging further comprises closing the cached open files having the same unique file identifier as the target file identifier.
22. The computer program of claim 13, wherein the purging further comprises deleting entries from the delayed close list corresponding to the cached open files having the same unique file identifier as the target file identifier.
23. The computer program of claim 13, wherein the unique file identifier and the target file identifier are universal file identifiers.
US09/883,897 2001-06-18 2001-06-18 Selective file purging for delete or rename Expired - Lifetime US6889233B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US09/883,897 US6889233B2 (en) 2001-06-18 2001-06-18 Selective file purging for delete or rename
US10/931,518 US7895249B2 (en) 2001-06-18 2004-08-31 Selective file purging for delete or rename

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/883,897 US6889233B2 (en) 2001-06-18 2001-06-18 Selective file purging for delete or rename

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/931,518 Continuation US7895249B2 (en) 2001-06-18 2004-08-31 Selective file purging for delete or rename

Publications (2)

Publication Number Publication Date
US20030009480A1 US20030009480A1 (en) 2003-01-09
US6889233B2 true US6889233B2 (en) 2005-05-03

Family

ID=25383555

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/883,897 Expired - Lifetime US6889233B2 (en) 2001-06-18 2001-06-18 Selective file purging for delete or rename
US10/931,518 Expired - Fee Related US7895249B2 (en) 2001-06-18 2004-08-31 Selective file purging for delete or rename

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/931,518 Expired - Fee Related US7895249B2 (en) 2001-06-18 2004-08-31 Selective file purging for delete or rename

Country Status (1)

Country Link
US (2) US6889233B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030140066A1 (en) * 2001-12-20 2003-07-24 Douglas Monahan File identification system and method
US20050027746A1 (en) * 2001-06-18 2005-02-03 Microsoft Corporation Selective file purging for delete or rename
US20050097061A1 (en) * 2003-10-31 2005-05-05 Shapiro William M. Offline access in a document control system
US20050097441A1 (en) * 2003-10-31 2005-05-05 Herbach Jonathan D. Distributed document version control
US7219191B2 (en) 2003-03-28 2007-05-15 Hitachi, Ltd. Data sharing method among remote computer systems and disk control device thereof
US20070282854A1 (en) * 2006-05-30 2007-12-06 International Business Machines Corporation Method and system for protecting the security of an open file in a computing environment
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8819587B1 (en) 2012-10-30 2014-08-26 Google Inc. Methods of managing items in a shared workspace
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363540B2 (en) * 2002-10-22 2008-04-22 Microsoft Corporation Transaction-safe FAT file system improvements
US7174420B2 (en) * 2002-10-22 2007-02-06 Microsoft Corporation Transaction-safe FAT file system
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US20050005164A1 (en) * 2003-06-20 2005-01-06 Bronwyn Syiek Apparatus and method for precluding e-mail distribution
US7451153B2 (en) 2004-01-26 2008-11-11 Nokia Corporation Method and apparatus for symmetrical filename encoding
US8108483B2 (en) * 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
US8627283B2 (en) * 2004-04-29 2014-01-07 Sap Ag Graphical user interface with a background class loading event system
US20050278278A1 (en) * 2004-05-28 2005-12-15 Petev Petio G Class loading jar operation optimizations
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US8332485B1 (en) 2005-03-04 2012-12-11 Cisco Technology, Inc. Lock optimization and lock prediction approaches for reducing client-server messages
US7703089B2 (en) * 2005-04-29 2010-04-20 Sap Ag Compatibility framework using versioning class loaders
US7853962B1 (en) 2005-05-31 2010-12-14 Cisco Technology, Inc. Method and apparatus for optimization of remote procedure call communications
US7716307B1 (en) * 2005-10-21 2010-05-11 Cisco Technology, Inc. Method and apparatus for reducing client-server messages associated with opening a file
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US8856511B2 (en) * 2006-12-14 2014-10-07 Blackberry Limited System and method for wiping and disabling a removed device
US7747664B2 (en) 2007-01-16 2010-06-29 Microsoft Corporation Storage system format for transaction safe file system
US7613738B2 (en) 2007-01-16 2009-11-03 Microsoft Corporation FAT directory structure for use in transaction safe file system
US20080294748A1 (en) * 2007-05-21 2008-11-27 William Boyd Brown Proxy between network file system version three and network file system version four protocol
US9135284B1 (en) 2008-03-13 2015-09-15 Blue Coat Systems, Inc. Composite execution of rename operations in wide area file systems
US9171004B2 (en) * 2009-03-09 2015-10-27 Sandisk Il Ltd. System and method to respond to a data file deletion instruction
US8407189B2 (en) * 2009-11-25 2013-03-26 International Business Machines Corporation Finding and fixing stability problems in personal computer systems
US9355036B2 (en) 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US20140157324A1 (en) * 2012-11-30 2014-06-05 Comcast Cable Communications, Llc Content Identification and Management
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US9300692B2 (en) * 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US9311314B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US10628380B2 (en) 2014-07-24 2020-04-21 Netapp Inc. Enabling data replication processes between heterogeneous storage systems
US10489349B2 (en) * 2015-11-04 2019-11-26 Dell Products L.P. Protecting files and folders on a shared application layer
US10216939B2 (en) * 2016-04-29 2019-02-26 Wyse Technology L.L.C. Implementing a security solution using a layering system
US10339765B2 (en) * 2016-09-26 2019-07-02 Shuffle Master Gmbh & Co Kg Devices, systems, and related methods for real-time monitoring and display of related data for casino gaming devices
US11194765B2 (en) * 2018-08-07 2021-12-07 Dell Products L.P. Accelerating and atomically moving files in an overlay optimizer
CN112445763B (en) * 2019-09-02 2022-07-19 阿里巴巴集团控股有限公司 File operation method and device, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732240A (en) * 1993-06-04 1998-03-24 Digital Equipment Corporation Real-time data cache size adjustment in a server computer
US5854901A (en) * 1996-07-23 1998-12-29 Cisco Systems, Inc. Method and apparatus for serverless internet protocol address discovery using source address of broadcast or unicast packet
US6067599A (en) * 1997-05-29 2000-05-23 International Business Machines Corporation Time delayed auto-premigeration of files in a virtual data storage system
US6385642B1 (en) * 1998-11-03 2002-05-07 Youdecide.Com, Inc. Internet web server cache storage and session management system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5673394A (en) * 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
US5658962A (en) * 1994-05-20 1997-08-19 Minnesota Mining And Manufacturing Company Omega-hydrofluoroalkyl ethers, precursor carboxylic acids and derivatives thereof, and their preparation and application
JP3335801B2 (en) * 1995-07-05 2002-10-21 株式会社日立製作所 Information processing system enabling access to different types of files and control method thereof
AU6678096A (en) * 1995-07-20 1997-02-18 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5742817A (en) * 1995-12-08 1998-04-21 Emc Corporation Method and apparatus for file server addressing
US5699428A (en) * 1996-01-16 1997-12-16 Symantec Corporation System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time
US5907709A (en) * 1996-02-08 1999-05-25 Inprise Corporation Development system with methods for detecting invalid use and management of resources and memory at runtime
US5909580A (en) * 1996-02-08 1999-06-01 Inprise Corporation Development system and methods with direct compiler support for detecting invalid use and management of resources and memory at runtime
US6134583A (en) * 1996-07-01 2000-10-17 Sun Microsystems, Inc. Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16)
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US6021408A (en) * 1996-09-12 2000-02-01 Veritas Software Corp. Methods for operating a log device
US5881269A (en) * 1996-09-30 1999-03-09 International Business Machines Corporation Simulation of multiple local area network clients on a single workstation
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5946677A (en) * 1997-04-14 1999-08-31 Electronic Data Systems Corporation System and method for locating and deleting computer files stored on a mass storage device
US6081807A (en) * 1997-06-13 2000-06-27 Compaq Computer Corporation Method and apparatus for interfacing with a stateless network file system server
JP4035872B2 (en) * 1997-10-27 2008-01-23 株式会社日立製作所 File format conversion method, file system, information system and electronic commerce system using the same
AU3304699A (en) * 1998-02-20 1999-09-06 Storm Systems Llc File system performance enhancement
US7346850B2 (en) * 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US6189016B1 (en) * 1998-06-12 2001-02-13 Microsoft Corporation Journaling ordered changes in a storage volume
US6654794B1 (en) * 2000-03-30 2003-11-25 International Business Machines Corporation Method, data processing system and program product that provide an internet-compatible network file system driver
US7047257B2 (en) * 2001-04-03 2006-05-16 Qnx Software Systems Computer file management system
US6889233B2 (en) * 2001-06-18 2005-05-03 Microsoft Corporation Selective file purging for delete or rename
JP2005025729A (en) * 2003-06-09 2005-01-27 Sony Corp File transfer system and file transfer method
US20050273486A1 (en) * 2004-06-03 2005-12-08 Keith Robert O Jr Virtual distributed file system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732240A (en) * 1993-06-04 1998-03-24 Digital Equipment Corporation Real-time data cache size adjustment in a server computer
US5742819A (en) * 1993-06-04 1998-04-21 Digital Equipment Corporation System and method for dynamically analyzing and improving the performance of a network
US5819033A (en) * 1993-06-04 1998-10-06 Caccavale; Frank Samuel System and method for dynamically analyzing and improving the performance of a network
US5835756A (en) * 1993-06-04 1998-11-10 Digital Equipment Corporation Real-time open file cache hashing table restructuring in a server computer
US5892937A (en) * 1993-06-04 1999-04-06 Digital Equipment Corporation Real-time data cache flushing threshold adjustment in a server computer
US5854901A (en) * 1996-07-23 1998-12-29 Cisco Systems, Inc. Method and apparatus for serverless internet protocol address discovery using source address of broadcast or unicast packet
US6067599A (en) * 1997-05-29 2000-05-23 International Business Machines Corporation Time delayed auto-premigeration of files in a virtual data storage system
US6385642B1 (en) * 1998-11-03 2002-05-07 Youdecide.Com, Inc. Internet web server cache storage and session management system

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
Chapter 10-Disks and File Systems, Microsoft TechNet, Dec. 4, 2000, http://www.microsoft.com/TechNet/win98/reskit/part2/wrkc10.asp.
Chapter 29-Windows 98 Network Architecture, Microsoft TechNet, Dec. 4, 2000, http://www.microsoft.com/technet/Win98/Restkit/Part6/wrkc29.asp.
CIFS Benefits, msdn online Web Workshop, updated Oct. 18, 1999, http://msdn..microsoft.com/workshop/networking/cifs/benefits.asp.
CIFS: An Internet File System Protocol, msdn online Web Workshop, updated Sep. 3, 1998, pp. 1-2, http://msdn.microsoft.com/workshop/networking/cifs/.
Coulouris et al. ("Distributed Systems Concepts and Design", Second Edition, and Coulouris hereinafter, 1994, pp. 198, 201 and 258.* *
Definition of CIFS, Webopedia, http://webopedia.internet.com/TERM/C/CIFS.html.
Definition of SMB, Webopedia, http://webopedia.internet.com/TERM/S/SMB.html.
Design of Distributed File System on Local Network and its Implementation, Hu Guanrong & Li Shengli Publisher: Editorial Board J. Huazhong Univ. of Sci. & Tech., vol. 27, No. 7, pp. 9-10 [1999 China].
Design of the 3Com 3+ Local Area Network File System, W. Paul Sherer, Digest of Papers, COMPCON Spring '87. Thirty-Second IEEE Computer Society International Conference. Intellectual Leverage (Cat. No. 87CH2409-1). IEEE Comput. Soc. Press 1987, pp. 2-5.
Just What is SMB?, Richard Sharpe, Sep. 27, 1999, pp. 1-10, http://samba.anu.edu.au/cifs/docs/what-is-smb.html.
WIN32 NetWare Core Protocol Revisited, Dr. Dobb's Journal, vol. 22 #10 (1997) pp. 60, 62-64, 103-104.

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027746A1 (en) * 2001-06-18 2005-02-03 Microsoft Corporation Selective file purging for delete or rename
US7895249B2 (en) * 2001-06-18 2011-02-22 Microsoft Corporation Selective file purging for delete or rename
US20030140066A1 (en) * 2001-12-20 2003-07-24 Douglas Monahan File identification system and method
US7219191B2 (en) 2003-03-28 2007-05-15 Hitachi, Ltd. Data sharing method among remote computer systems and disk control device thereof
US7930757B2 (en) 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US20050097441A1 (en) * 2003-10-31 2005-05-05 Herbach Jonathan D. Distributed document version control
US20050097061A1 (en) * 2003-10-31 2005-05-05 Shapiro William M. Offline access in a document control system
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8479301B2 (en) 2003-10-31 2013-07-02 Adobe Systems Incorporated Offline access in a document control system
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US8627077B2 (en) 2003-10-31 2014-01-07 Adobe Systems Incorporated Transparent authentication process integration
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US20070282854A1 (en) * 2006-05-30 2007-12-06 International Business Machines Corporation Method and system for protecting the security of an open file in a computing environment
US7845013B2 (en) * 2006-05-30 2010-11-30 International Business Machines Corporation Method and system for protecting the security of an open file in a computing environment
US8819587B1 (en) 2012-10-30 2014-08-26 Google Inc. Methods of managing items in a shared workspace

Also Published As

Publication number Publication date
US20030009480A1 (en) 2003-01-09
US7895249B2 (en) 2011-02-22
US20050027746A1 (en) 2005-02-03

Similar Documents

Publication Publication Date Title
US6889233B2 (en) Selective file purging for delete or rename
US7809675B2 (en) Sharing state information among a plurality of file operation servers
US6754799B2 (en) System and method for indexing and retrieving cached objects
US6314417B1 (en) Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US8650164B2 (en) Efficient storage and retrieval for large number of data objects
JP4842279B2 (en) Infrastructure for performing file operations by database server
US7386674B1 (en) Method and apparatus to provide a unified readahead scheme for multiple sources
US6128627A (en) Consistent data storage in an object cache
JP4489292B2 (en) High performance object cache
US7925751B1 (en) Mechanism for controlled sharing of files in a clustered application environment
US7548918B2 (en) Techniques for maintaining consistency for different requestors of files in a database management system
JP4759570B2 (en) Techniques for providing locks for file operations in database management systems
US20080313185A1 (en) Managing access to objects of a computing environment
US20020188626A1 (en) Disk storage with modifiable data management function
EP0853412B1 (en) System method for efficiently transferring datastreams in a multimedia system
JPH0619771A (en) File management system of shared file by different kinds of clients
US8224837B2 (en) Method and mechanism for supporting virtual content in performing file operations at a RDBMS
US6434553B1 (en) File prefetch control method for computer system
US20020087718A1 (en) Authentication referral search for LDAP
US7464070B2 (en) Database query operations using storage networks
JPH07239808A (en) Distributed data managing system
US7827194B2 (en) Access to shared disk device on storage area network
US20060136509A1 (en) Techniques for transaction semantics for a database server performing file operations
US7155458B1 (en) Mechanism for distributed atomic creation of client-private files
US20070282917A1 (en) File operation control device, system, method, and program

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, YUN;PARDIKAR, SHISHIR;RAMANATHAN, VENKATARAMAN;REEL/FRAME:011927/0011

Effective date: 20010611

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 12