US20050262102A1 - Method, apparatus, and program for separate representations of file system locations from referring file systems - Google Patents

Method, apparatus, and program for separate representations of file system locations from referring file systems Download PDF

Info

Publication number
US20050262102A1
US20050262102A1 US11/174,146 US17414605A US2005262102A1 US 20050262102 A1 US20050262102 A1 US 20050262102A1 US 17414605 A US17414605 A US 17414605A US 2005262102 A1 US2005262102 A1 US 2005262102A1
Authority
US
United States
Prior art keywords
file system
server
location
request
referenced
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.)
Abandoned
Application number
US11/174,146
Inventor
Owen Anderson
Craig Everhart
Boaz Shmueli
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US11/174,146 priority Critical patent/US20050262102A1/en
Publication of US20050262102A1 publication Critical patent/US20050262102A1/en
Abandoned 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/13File access structures, e.g. distributed indices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Definitions

  • the present invention relates to network file systems and, in particular, to supporting a uniform name space and transparent migration and replication of individual file systems. Still more particularly, the present invention provides a method, apparatus, and program for separate representations of file system locations from the data in referring file systems.
  • a network file system is a mechanism, an architecture, that allows a computer to use files on a separate machine as if they were local to the first machine.
  • Network file systems include a high-level network protocol that provides the structure and language for file requests between clients and servers. The protocol provides the commands for opening, reading, writing and closing files across the network and may also provide access to directory services.
  • a client may ask a server for information about a name that appears in a first file system, as seen from the client, but is a reference to a second file system. As such, the response from the first file system must include information about the second file system, such as its location in the network. The client will then “mount” the second file system. Mounting simply means setting up the client's operating system to do input/output (I/O) operations on a file system.
  • I/O input/output
  • FIGS. 1A-1C depict example network file systems.
  • file system 106 includes a directory “usr.”
  • the “usr” directory includes a reference to file system “foo.”
  • the reference redirects a client to file system 116 .
  • path names where a component of the path name designates the next sub-directory in the tree.
  • the path starts at the top of the tree.
  • a common convention uses forward slashes or back slashes to separate sub directories, and a single slash or backslash at the beginning of the path refers to the top of the hierarchy.
  • the path /a/b/C refers to an object “C” that is in directory “b.”
  • Directory “b” is in directory “a,” which belongs at the top level of the hierarchy.
  • file system 106 includes a directory “usr.”
  • the “usr” directory includes a reference to file system “foo.”
  • the reference redirects a client to file system 116 .
  • “foo” has moved to file system 126 . Therefore, file system 116 must include information to redirect the client to file system 126 .
  • the information in file system 106 that had directed clients to file system 116 must be changed to direct them to file system 126 .
  • a file system may also be replicated for increased reliability. Multiple file systems can thus reference a mounted file system.
  • file system 106 includes a reference to file system “foo” in file system 116
  • file system 136 includes a reference to file system “foo” in file system 146
  • file system 156 includes a reference to file system “foo” in file system 166 .
  • the file system “foo” moved to file system 126 . Therefore, file systems 116 , 146 , 166 must be updated to include information to redirect the client to file system 126 .
  • too many updates results in inefficiency and a higher likelihood for error.
  • file system 166 is not updated and the client is not redirected to the correct file system.
  • references to file system “foo” in file systems 106 , 136 , and 156 need to be updated so as to direct clients straight to file system 126 rather than any of 116 , 146 , or 166 .
  • FIGS. 2A and 2B illustrate examples of file systems that allow mounting on remote machines.
  • FIG. 2A depicts an example operation using Network File System (NFS), version 4 (NFSv4), which is an example of a network file system that allows mounting on remote machines.
  • Client 208 requests an object “X” from file system (FS) server # 1 206 (step 1 ).
  • FS file system
  • X is a mounted file system existing on FS server # 2 216 and FS server # 1 206 sends a redirection message identifying FS server # 2 and the path, “/a/b/c/X,” used to find X (step 2 ).
  • client 208 uses the information in the redirection message to access /a/b/c/X on server # 2 (step 3 ).
  • NFSv4 requires that each referencing server include knowledge of the location and path for each mounted file system in the references returned to its clients.
  • a server can send a redirection message that redirects the client to the server itself. This may be useful, for example, when a file system object is moved within a server.
  • a chain of redirection messages may be used, for example, when an object is moved more than once.
  • FIG. 2B depicts an example operation of using the DCE's Distributed File System (DCE/DFS), which is another example of a network file system that allows referrals to remote machines.
  • DCE/DFS Distributed File System
  • client 208 requests an object “X” from FS server # 1 206 (step 1 ).
  • X is a mounted file system existing on FS server # 2 216 and FS server # 1 206 sends an indirection response including file system identifier “Y” used to find the file system (step 2 ).
  • client 208 requests the location of “Y” from file system (FS) location database 220 (step 3 ).
  • the FS location database returns the location of Y, “FS server #2,” to client 208 (step 4 ).
  • client 208 uses the location of FS server # 2 to request the object from FS server # 2 216 (step 5 ).
  • NFSv4 and similar network file systems require that a referring server know the correct locations where to direct clients.
  • the obvious implementation of referrals in NFSv4 and similar network file systems is to embed the locations of the referenced file systems directly in the data stored in the referencing file system.
  • the combination of the movability of the referenced file systems and the replicability of the referencing file systems makes this a cumbersome solution: if a referencing file system is replicated to many read-only locations and a referenced file system is subsequently moved, all the instances of the referencing file systems must be updated even though they are read-only.
  • DCE/DFS avoids this complication by storing only an identifier for the target file system in the referencing file system, so that the client looks up the current location for the file system given the file system identifier from the referencing server. It would be much less cumbersome for the client, not to mention conformant with NFSv4 and similar network file systems, if the server could handle the changing of file system locations without explicit updating of all references.
  • a first file system includes a data object that references a second file system.
  • the data object acts as a place holder for the second file system, but does not contain changeable data such as the name of the server containing system.
  • the data object can be a new or existing file type with data identifying the second file system or some of its properties.
  • the data required to locate the second file system, such as the name of a file server is stored in a file system location data structure that is located outside the first file system.
  • the data object then contains a key value, such as a name or a number, identifying the second file system, that can be used to look up the file system location. This allows the data in the second file system to be replicated or moved without requiring updates to the data in any redirecting or referencing servers.
  • the present invention also uses a basic notification mechanism to enable clients to access a uniform name space that can include all file system objects available on participating file servers.
  • a referencing server sends a redirection message to a client
  • the redirection typically includes a server location and a path.
  • the referencing server encodes the file system identification and includes the encoded file system identification rather than the path.
  • the server decodes the file system identification. Then, the server may locate the root of the file system identified by the file system identification and return the root object to the client. Location of the root can be done either by accessing the file system location data structure or by using another data structure.
  • the present invention includes a special referral object, called the root referral object, and a special root file system.
  • the root referral object is the top level object in all participating file servers. It contains a referral to a special designated file system identification, which is the special root file system.
  • the server Whenever a client contacts a participating server and asks for the root object, the server will send a redirection message to the client containing the file system identification of the root file system. Since all participating file systems contain the same root file system identification, all clients will view the same name space regardless of which file server is initially contacted.
  • FIGS. 1A-1C depict example network file systems
  • FIGS. 2A and 2B illustrate examples of file systems that allow mounting on remote machines
  • FIG. 3 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented
  • FIG. 4 is a block diagram of a data processing system that may be implemented as a server in accordance with a preferred embodiment of the present invention
  • FIG. 5 is a block diagram illustrating a data processing system in which the present invention may be implemented
  • FIGS. 6A-6D illustrate example file systems that allow mounting on remote machines in accordance with a preferred embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating the operation of a file system server in accordance with a preferred embodiment of the present invention.
  • FIG. 3 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented
  • Network data processing system 300 is a network of computers in which the present invention may be implemented.
  • Network data processing system 300 contains a network 302 , which is the medium used to provide communications links between various devices and computers connected together within network data processing system 300 .
  • Network 302 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • servers 304 , 314 , 324 are connected to network 302 .
  • Servers 304 , 314 , 324 serve requests for storage units 306 , 316 , 326 , respectively.
  • clients 308 , 310 , 312 are connected to network 302 .
  • These clients 308 , 310 , 312 may be, for example, personal computers or network computers.
  • servers 304 , 314 , 316 provide data stored in storage units 306 , 316 , 326 to clients 308 - 312 .
  • Clients 308 , 310 , 312 are clients to server 304 , for example.
  • Network data processing system 300 may include additional servers, clients, and other devices not shown.
  • network data processing system 300 is the Internet with network 302 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another.
  • network 302 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another.
  • At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages.
  • network data processing system 300 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
  • FIG. 3 is intended as an example, and not as an architectural limitation for the present invention.
  • Data processing system 400 may be a symmetric multiprocessor (SMP) system including a plurality of processors 402 and 404 connected to system bus 406 . Alternatively, a single processor system may be employed. Also connected to system bus 406 is memory controller/cache 408 , which provides an interface to local memory 409 . I/O bus bridge 410 is connected to system bus 406 and provides an interface to I/O bus 412 . Memory controller/cache 408 and I/O bus bridge 410 may be integrated as depicted.
  • SMP symmetric multiprocessor
  • Peripheral component interconnect (PCI) bus bridge 414 connected to I/O bus 412 provides an interface to PCI local bus 416 .
  • PCI Peripheral component interconnect
  • a number of modems may be connected to PCI local bus 416 .
  • Typical PCI bus implementations will support four PCI expansion slots or add-in connectors.
  • Communications links to network computers 308 - 312 in FIG. 3 may be provided through modem 418 and network adapter 420 connected to PCI local bus 416 through add-in boards.
  • Additional PCI bus bridges 422 and 424 provide interfaces for additional PCI local buses 426 and 428 , from which additional modems or network adapters may be supported. In this manner, data processing system 400 allows connections to multiple network computers.
  • a memory-mapped graphics adapter 430 and hard disk 432 may also be connected to I/O bus 412 as depicted, either directly or indirectly.
  • FIG. 4 may vary.
  • other peripheral devices such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted.
  • the depicted example is not meant to imply architectural limitations with respect to the present invention.
  • the data processing system depicted in FIG. 4 may be, for example, an IBM e-Server pSeries system, a product of International Business Machines Corporation in Armonk, N.Y., running the Advanced Interactive Executive (AIX) operating system or LINUX operating system.
  • AIX Advanced Interactive Executive
  • Data processing system 500 is an example of a client computer.
  • Data processing system 500 employs a peripheral component interconnect (PCI) local bus architecture.
  • PCI peripheral component interconnect
  • AGP Accelerated Graphics Port
  • ISA Industry Standard Architecture
  • Processor 502 and main memory 504 are connected to PCI local bus 506 through PCI bridge 508 .
  • PCI bridge 508 also may include an integrated memory controller and cache memory for processor 502 . Additional connections to PCI local bus 506 may be made through direct component interconnection or through add-in boards.
  • local area network (LAN) adapter 510 SCSI host bus adapter 512 , and expansion bus interface 514 are connected to PCI local bus 506 by direct component connection.
  • audio adapter 516 graphics adapter 518 , and audio/video adapter 519 are connected to PCI local bus 506 by add-in boards inserted into expansion slots.
  • Expansion bus interface 514 provides a connection for a keyboard and mouse adapter 520 , modem 522 , and additional memory 524 .
  • Small computer system interface (SCSI) host bus adapter 512 provides a connection for hard disk drive 526 , tape drive 528 , and CD-ROM drive 530 .
  • Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
  • An operating system runs on processor 502 and is used to coordinate and provide control of various components within data processing system 400 in FIG. 4 .
  • the operating system may be a commercially available operating system, such as Windows 2000, which is available from Microsoft Corporation.
  • An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system 500 .
  • Java is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented operating system, and applications or programs are located on storage devices, such as hard disk drive 526 , and may be loaded into main memory 504 for execution by processor 502 .
  • FIG. 5 may vary depending on the implementation.
  • Other internal hardware or peripheral devices such as flash ROM (or equivalent nonvolatile memory) or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in FIG. 5 .
  • the processes of the present invention may be applied to a multiprocessor data processing system.
  • data processing system 500 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 500 comprises some type of network communication interface.
  • data processing system 500 may be a Personal Digital Assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
  • PDA Personal Digital Assistant
  • data processing system 500 also may be a notebook computer or hand held computer in addition to taking the form of a PDA.
  • data processing system 500 also may be a kiosk or a Web appliance.
  • Storage 306 may store a first file system that includes a reference to a second file system stored in storage 316 .
  • a reference object is placed in the first file system to serve as a place holder for the second file system.
  • the reference object may be a new or existing file type with data indicating the second file system or some of its properties. This allows the normal directory enumeration procedures of the first file system to include a special name in a natural fashion.
  • example file systems are shown that allow mounting on remote machines in accordance with a preferred embodiment of the present invention.
  • a referencing server requests location information for a referenced file system from a file system (FS) location database.
  • Client 608 requests object “X” from FS server # 1 606 (step 1 ).
  • X is a mounted file system existing on FS server # 2 616 .
  • a referencing object may be a special file in a file system that contains an identification of a specific file system, also known as a file system identification (FSID).
  • the FSID may be the key used to query the FS location database.
  • the FS location database may contain, for each file system, the location of the server on which the file system resides. It may also contain the path name of the root of the file system on each server.
  • the purpose of the referencing object is to serve as a link to the root of another file system.
  • the root of the file system that is referenced replaces the referencing object in the directory containing the referencing object.
  • the mounted file system is thus accessed using the name of the referencing object.
  • the client cannot itself access the referencing object using conventional file system operations. The access is manipulated by the referencing server.
  • FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2 ). It is convenient for the object that is in the file system on FS server # 1 not to contain, itself, the information needed to the redirect the client. For example, a referencing object “X” on FS server # 1 may contain a key value, such as a name or number, identifying the referenced file system. FS server # 1 606 may then use the key value to query FS location database 620 for the location of the file system.
  • FS location database 620 then returns the location of FS server # 2 and the path “/a/b/c/X” to server 606 (step 3 ). Then, FS server 606 returns the location of FS server # 2 and the path “/a/b/c/X” to client 608 (step 4 ). Client 608 then may send a request for “/a/b/c/X” to FS server # 2 616 (step 5 ). FS server # 2 may then access the file system and return the file system root to client 608 . Alternatively, the location information may be found in some other data structure, such as a table in memory, rather than a database.
  • the key value associated with the file system may be static.
  • the mounted file system may be moved, put off-line, replicated, copied, or cloned, and the referencing object need not be changed.
  • the database or table in which the attributes for the referenced file system are maintained may be updated and changed, corresponding to the updates and changes of the referenced file system itself, without invalidating the data in the referencing file system.
  • a basic notification mechanism is used to enable clients to access a uniform name space, which can include all file system objects available on all participating file servers.
  • a uniform name space can include all file system objects available on all participating file servers.
  • client 608 requests object “X” from FS server # 1 606 (step 1 ).
  • X is a mounted file system existing on FS server # 2 616 .
  • FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2 ).
  • FS location database 620 then returns the location of FS server # 2 to server 606 (step 3 ).
  • FS server # 1 does not send a real path name to the client. Rather, FS server # 1 606 encodes the FSID, in this case “X,” using a predetermined, system wide encoding algorithm.
  • the encoded FSID resembles a path name and can easily be decoded back to the FSID. For example, if the FSID is a text string, such as “user.bob,” a simple encoding might be to add the string “###” at the beginning and at the end of the FSID, so the path would be “###user.bob###.” As such, in the example shown in FIG.
  • the encoded FSID would be “###X###.”
  • a requirement that disallows real path names from resembling encoded FSIDs must be enforced.
  • a person of ordinary skill in the art will recognize that other encoding methods may also be used.
  • FS server 606 returns the location of FS server # 2 and the path “###X###” to client 608 (step 4 ).
  • the encoded FSID is transparent to the client.
  • the client upon receiving the name of the new server and the encoded FSID, contacts the new server and retries to access the object by passing the new server the path name given by the old server, which is the encoded FSID.
  • client 608 then sends a request for “###X###” to FS server # 2 616 (step 5 ).
  • FS server # 2 recognizes the path name as an encoded FSID and requests the location of X from FS location database 620 (step 6 ).
  • FS location database 620 returns the path “/a/b/c/X” to FS server # 2 616 (step 7 ).
  • FS server # 2 may then access the file system and return the file system root to client 608 .
  • the location of the root of each file system can be stored in a local table that maps the FSID of each file system to a local path name.
  • client 608 requests object “X” from FS server # 1 606 (step 1 ).
  • X is a mounted file system existing on FS server # 2 616 .
  • FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2 ).
  • FS location database 620 then returns the location of FS server # 2 to server 606 (step 3 ).
  • FS server 606 returns the location of FS server # 2 and the path “###X###” to client 608 (step 4 ).
  • Client 608 then sends a request for “###X###” to FS server # 2 (step 5 ).
  • FS server # 2 recognizes the path name as an encoded FSID and requests the location of X from FSID table 630 and returns the path “/a/b/c/X” to FS server # 2 616 .
  • FS server # 2 may then access the file system and return the file system root to client 608 .
  • a file system may be mounted in a special directory using a special mount point.
  • the mount point may be a string representation of the FSID.
  • the file system identified by “X” could be mounted in the “/exports/X.” Therefore, FS server # 2 616 need not look the FSID up in a table or database, because the file system is mounted in a predetermined directory which serves as an appropriate table.
  • the present invention includes a special referencing object, called a root referencing object, and a special root file system.
  • the root referencing object is the top level object in all participating file servers. It contains a reference to a special designated FSID, which is the identifier for the special designated root file system.
  • the FSID referred to by the root referencing object may be “rooffs.” Whenever a client contacts a server and requests the root object, the server will access the root referencing object.
  • client 608 requests the top level object from FS server # 1 606 (step 1 ).
  • FS server # 1 606 accesses the root referencing object and sends a request to FS location database 620 for the location of the file system with the FSID of “rooffs” (step 2 ).
  • the FS location database returns the location of rooffs, FS server # 2 , to FS server # 1 606 (step 3 ).
  • FS server # 1 then encodes the FSID to form “###rooffs###” and sends a redirection message indicating that the file system is on FS server # 2 and the path is “###rooffs###” to client 608 (step 4 )
  • client 608 sends a request for “###rooffs###” to FS server # 2 616 (step 5 ).
  • FS server # 2 recognizes the path name as an encoded FSID and sends a request for the location of the rooffs file system to FS location database 620 (step 6 ).
  • the FS location database then returns the path, “/a/b/c/,” to FS server # 2 616 (step 7 ).
  • FS server # 2 may then access the file system and return the file system root to client 608 .
  • the location of the root of the file system can be stored in a local table that maps the FSID of each file system to a local path name.
  • the example in FIG. 6D shows only two file system servers. However, fewer or more participating servers may be included.
  • the network file system may include only a single server, such as server 616 . If a client requests the top level object of FS server # 2 616 , the server may send a redirection message redirecting the client to itself with the encoded FSID, “###rootfs###.”
  • the example of FIG. 6D may also include more participating file system servers, each of which has the same referencing object as its top level object.
  • a flowchart is shown illustrating the operation of a file system server in accordance with a preferred embodiment of the present invention.
  • the process begins and receives a request for an object (step 702 ). A determination is made as to whether the object is a reference to another file system (step 704 ). If the object is a reference to a separate file system, the process looks up the location of the separate file system (step 706 ) and encodes the FSID of the file system (step 708 ). Next, the process returns a redirection message indicating the location and the encoded FSID as the path name to the client (step 710 ) and ends.
  • a referencing object may refer to a file system on an unmodified server that does not incorporate the present invention. This may be achieved by having the referencing object itself include the location of the unmodified server and the path name of the file system on that server.
  • the server When a client accesses the referencing object, the server will reply with the information included in the FS location database for the file system on the unmodified server.
  • the referencing object may also include an FSID, as if it referred to a modified server.
  • the file system database may contain a special tag that marks the file system stored on an unmodified server, together with the server location and path name.
  • the server may then reply to the client with the information retrieved from the FS location database.
  • the path name cannot comprise an encoded FSID, and the unmodified server may not be configured to contain referrals to other file systems.
  • the present invention may also support file systems that are replicated on various modified servers. If the network file system protocol supports a redirection message that includes more than one server, such as is the case with NFSv4, the present invention may be extended to include the locations of all the servers that host a particular file system.
  • the modified server may reply with a list of file system server locations. The client may then select a server to access.
  • the modified server after receiving the list of server locations from the FS location database, may choose which server to include in the redirection message.
  • the selection algorithm may be, for example, a round robin algorithm, and may be based on various factors, such as server load and server response time.
  • the present invention solves the disadvantages of the prior art by providing a data object that references a second file system that is interpreted directly by the file server.
  • the data required to locate the second file system is stored in a file system location data structure that may be located outside the first file system.
  • the data object may then contain a key value, such as a name or a number, identifying the second file system, that can be used to look up the file system location. Therefore, a file system may be referred to by another file system transparently to the client.
  • a referencing server encodes the file system identification and includes the encoded file system identification rather than a path.
  • the server decodes the file system identification. Then, the server may locate the root of the file system identified by the file system identification and return the root object to the client. Location of the root can be done either by accessing the file system location database structure or by using another, local data structure.
  • a root referral object is the top level object in all participating file servers. It contains a referral to a root file system identification, which is the root file system. Since all participating file servers contain the same root file system identification, all clients will view the same name space regardless of which file server is initially contacted.

Abstract

A system provides referencing from one file system server to another through the use of a file system location database improving movement and replication of file systems. When a file system is moved from a first file system server a data object that references the file system remains in the first server and contains information used to find the current location of the file system. The actual location of the file system is stored in the separate file system location database which contains the locations of file systems on a number of file system servers. This allows the data in a file system to be replicated or moved without requiring updates to the data in any redirecting or referencing servers.

Description

    RELATED APPLICATIONS
  • This application is related to commonly assigned and co-pending U.S. patent application Ser. No. 09/969,294 (Attorney Docket No. RSW920010139US1) entitled “Apparatus and Method for Offloading Application Components to Edge Servers”, filed on Sep. 28, 2001; U.S. patent application Ser. No. 09/960,451 (Attorney Docket No. RSW920010141US1) entitled “Method and Apparatus for Minimizing Inconsistency Between Data Sources in a Web Content Distribution System”, filed on Sep. 21, 2001; and U.S. patent application Ser. No. 09/960,448 (Attorney Docket No. RSW920010142US1) entitled “Method and Apparatus for Caching Subscribed and Non-Subscribed Content in a Network Data Processing System”, filed on Sep. 21, 2001, which are hereby incorporated by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • The present invention relates to network file systems and, in particular, to supporting a uniform name space and transparent migration and replication of individual file systems. Still more particularly, the present invention provides a method, apparatus, and program for separate representations of file system locations from the data in referring file systems.
  • 2. Description of Related Art
  • A network file system is a mechanism, an architecture, that allows a computer to use files on a separate machine as if they were local to the first machine. Network file systems include a high-level network protocol that provides the structure and language for file requests between clients and servers. The protocol provides the commands for opening, reading, writing and closing files across the network and may also provide access to directory services. In network file systems that support referrals, a client may ask a server for information about a name that appears in a first file system, as seen from the client, but is a reference to a second file system. As such, the response from the first file system must include information about the second file system, such as its location in the network. The client will then “mount” the second file system. Mounting simply means setting up the client's operating system to do input/output (I/O) operations on a file system.
  • FIGS. 1A-1C depict example network file systems. Particularly, with reference to FIG. 1A, file system 106 includes a directory “usr.” The “usr” directory includes a reference to file system “foo.” The reference redirects a client to file system 116.
  • It is assumed that objects are arranged in a treelike structure, where files are arranged in directories and directories can contain other directories. Access to objects is achieved using path names, where a component of the path name designates the next sub-directory in the tree. The path starts at the top of the tree. A common convention uses forward slashes or back slashes to separate sub directories, and a single slash or backslash at the beginning of the path refers to the top of the hierarchy. For example, the path /a/b/C refers to an object “C” that is in directory “b.” Directory “b” is in directory “a,” which belongs at the top level of the hierarchy.
  • A file system may be moved from one location to another, such as to a new server. The referenced location must then redirect the client to the new location of the file system, and the source of the reference must be changed to indicate the new location of the file system as well. With reference to FIG. 1B, file system 106 includes a directory “usr.” The “usr” directory includes a reference to file system “foo.” The reference redirects a client to file system 116. However, “foo” has moved to file system 126. Therefore, file system 116 must include information to redirect the client to file system 126. At the same time, the information in file system 106 that had directed clients to file system 116 must be changed to direct them to file system 126.
  • A file system may also be replicated for increased reliability. Multiple file systems can thus reference a mounted file system. For example, in FIG. 1C, file system 106 includes a reference to file system “foo” in file system 116, file system 136 includes a reference to file system “foo” in file system 146, and file system 156 includes a reference to file system “foo” in file system 166. The file system “foo” moved to file system 126. Therefore, file systems 116, 146, 166 must be updated to include information to redirect the client to file system 126. However, too many updates results in inefficiency and a higher likelihood for error. For example, in FIG. 1C, file system 166 is not updated and the client is not redirected to the correct file system.
  • Similarly in FIG. 1C, the references to file system “foo” in file systems 106, 136, and 156 need to be updated so as to direct clients straight to file system 126 rather than any of 116, 146, or 166.
  • FIGS. 2A and 2B illustrate examples of file systems that allow mounting on remote machines. FIG. 2A depicts an example operation using Network File System (NFS), version 4 (NFSv4), which is an example of a network file system that allows mounting on remote machines. Client 208 requests an object “X” from file system (FS) server # 1 206 (step 1). However, X is a mounted file system existing on FS server # 2 216 and FS server # 1 206 sends a redirection message identifying FS server # 2 and the path, “/a/b/c/X,” used to find X (step 2). Next, client 208 uses the information in the redirection message to access /a/b/c/X on server #2 (step 3).
  • NFSv4 requires that each referencing server include knowledge of the location and path for each mounted file system in the references returned to its clients. A server can send a redirection message that redirects the client to the server itself. This may be useful, for example, when a file system object is moved within a server. In addition, a chain of redirection messages may be used, for example, when an object is moved more than once. Thus, using NFSv4 or similar network file systems, particularly with multiple referencing servers, the likelihood for error exists.
  • As another example, FIG. 2B depicts an example operation of using the DCE's Distributed File System (DCE/DFS), which is another example of a network file system that allows referrals to remote machines. Using DCE/DFS, client 208 requests an object “X” from FS server # 1 206 (step 1). However, X is a mounted file system existing on FS server # 2 216 and FS server # 1 206 sends an indirection response including file system identifier “Y” used to find the file system (step 2). Next, client 208 requests the location of “Y” from file system (FS) location database 220 (step 3). The FS location database returns the location of Y, “FS server #2,” to client 208 (step 4). Thereafter, client 208 uses the location of FS server # 2 to request the object from FS server # 2 216 (step 5).
  • NFSv4 and similar network file systems require that a referring server know the correct locations where to direct clients. The obvious implementation of referrals in NFSv4 and similar network file systems is to embed the locations of the referenced file systems directly in the data stored in the referencing file system. The combination of the movability of the referenced file systems and the replicability of the referencing file systems makes this a cumbersome solution: if a referencing file system is replicated to many read-only locations and a referenced file system is subsequently moved, all the instances of the referencing file systems must be updated even though they are read-only. DCE/DFS avoids this complication by storing only an identifier for the target file system in the referencing file system, so that the client looks up the current location for the file system given the file system identifier from the referencing server. It would be much less cumbersome for the client, not to mention conformant with NFSv4 and similar network file systems, if the server could handle the changing of file system locations without explicit updating of all references.
  • SUMMARY OF THE INVENTION
  • The present invention provides a file system that allows referencing between file systems which interacts well with motion and replication of file systems. A first file system includes a data object that references a second file system. The data object acts as a place holder for the second file system, but does not contain changeable data such as the name of the server containing system. The data object can be a new or existing file type with data identifying the second file system or some of its properties. The data required to locate the second file system, such as the name of a file server, is stored in a file system location data structure that is located outside the first file system. The data object then contains a key value, such as a name or a number, identifying the second file system, that can be used to look up the file system location. This allows the data in the second file system to be replicated or moved without requiring updates to the data in any redirecting or referencing servers.
  • The present invention also uses a basic notification mechanism to enable clients to access a uniform name space that can include all file system objects available on participating file servers. When a referencing server sends a redirection message to a client, the redirection typically includes a server location and a path. In the present invention, the referencing server encodes the file system identification and includes the encoded file system identification rather than the path. When a server receives a request with a path that is encoded, the server decodes the file system identification. Then, the server may locate the root of the file system identified by the file system identification and return the root object to the client. Location of the root can be done either by accessing the file system location data structure or by using another data structure.
  • To guarantee that clients will enter the name space at the same point, and thus view the same name space regardless of the initial participating server contacted, the present invention includes a special referral object, called the root referral object, and a special root file system. The root referral object is the top level object in all participating file servers. It contains a referral to a special designated file system identification, which is the special root file system. Whenever a client contacts a participating server and asks for the root object, the server will send a redirection message to the client containing the file system identification of the root file system. Since all participating file systems contain the same root file system identification, all clients will view the same name space regardless of which file server is initially contacted.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
  • FIGS. 1A-1C depict example network file systems;
  • FIGS. 2A and 2B illustrate examples of file systems that allow mounting on remote machines;
  • FIG. 3 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented;
  • FIG. 4 is a block diagram of a data processing system that may be implemented as a server in accordance with a preferred embodiment of the present invention;
  • FIG. 5 is a block diagram illustrating a data processing system in which the present invention may be implemented;
  • FIGS. 6A-6D illustrate example file systems that allow mounting on remote machines in accordance with a preferred embodiment of the present invention; and
  • FIG. 7 is a flowchart illustrating the operation of a file system server in accordance with a preferred embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • With reference again to the figures, FIG. 3 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented, Network data processing system 300 is a network of computers in which the present invention may be implemented. Network data processing system 300 contains a network 302, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 300. Network 302 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • In the depicted example, servers 304, 314, 324 are connected to network 302. Servers 304, 314, 324 serve requests for storage units 306, 316, 326, respectively. In addition, clients 308, 310, 312 are connected to network 302. These clients 308, 310, 312 may be, for example, personal computers or network computers. In the depicted example, servers 304, 314, 316 provide data stored in storage units 306, 316, 326 to clients 308-312. Clients 308, 310, 312 are clients to server 304, for example. Network data processing system 300 may include additional servers, clients, and other devices not shown.
  • In the depicted example, network data processing system 300 is the Internet with network 302 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 300 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 3 is intended as an example, and not as an architectural limitation for the present invention.
  • Referring to FIG. 4, a block diagram of a data processing system that may be implemented as a server, such as one of servers 304, 314, 324 in FIG. 3, is depicted in accordance with a preferred embodiment of the present invention. Data processing system 400 may be a symmetric multiprocessor (SMP) system including a plurality of processors 402 and 404 connected to system bus 406. Alternatively, a single processor system may be employed. Also connected to system bus 406 is memory controller/cache 408, which provides an interface to local memory 409. I/O bus bridge 410 is connected to system bus 406 and provides an interface to I/O bus 412. Memory controller/cache 408 and I/O bus bridge 410 may be integrated as depicted.
  • Peripheral component interconnect (PCI) bus bridge 414 connected to I/O bus 412 provides an interface to PCI local bus 416. A number of modems may be connected to PCI local bus 416. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to network computers 308-312 in FIG. 3 may be provided through modem 418 and network adapter 420 connected to PCI local bus 416 through add-in boards.
  • Additional PCI bus bridges 422 and 424 provide interfaces for additional PCI local buses 426 and 428, from which additional modems or network adapters may be supported. In this manner, data processing system 400 allows connections to multiple network computers. A memory-mapped graphics adapter 430 and hard disk 432 may also be connected to I/O bus 412 as depicted, either directly or indirectly.
  • Those of ordinary skill in the art will appreciate that the hardware depicted in FIG. 4 may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The depicted example is not meant to imply architectural limitations with respect to the present invention.
  • The data processing system depicted in FIG. 4 may be, for example, an IBM e-Server pSeries system, a product of International Business Machines Corporation in Armonk, N.Y., running the Advanced Interactive Executive (AIX) operating system or LINUX operating system.
  • With reference now to FIG. 5, a block diagram illustrating a data processing system is depicted in which the present invention may be implemented. Data processing system 500 is an example of a client computer. Data processing system 500 employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor 502 and main memory 504 are connected to PCI local bus 506 through PCI bridge 508. PCI bridge 508 also may include an integrated memory controller and cache memory for processor 502. Additional connections to PCI local bus 506 may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter 510, SCSI host bus adapter 512, and expansion bus interface 514 are connected to PCI local bus 506 by direct component connection. In contrast, audio adapter 516, graphics adapter 518, and audio/video adapter 519 are connected to PCI local bus 506 by add-in boards inserted into expansion slots. Expansion bus interface 514 provides a connection for a keyboard and mouse adapter 520, modem 522, and additional memory 524. Small computer system interface (SCSI) host bus adapter 512 provides a connection for hard disk drive 526, tape drive 528, and CD-ROM drive 530. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
  • An operating system runs on processor 502 and is used to coordinate and provide control of various components within data processing system 400 in FIG. 4. The operating system may be a commercially available operating system, such as Windows 2000, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system 500. Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented operating system, and applications or programs are located on storage devices, such as hard disk drive 526, and may be loaded into main memory 504 for execution by processor 502.
  • Those of ordinary skill in the art will appreciate that the hardware in FIG. 5 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash ROM (or equivalent nonvolatile memory) or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in FIG. 5. Also, the processes of the present invention may be applied to a multiprocessor data processing system.
  • As another example, data processing system 500 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 500 comprises some type of network communication interface. As a further example, data processing system 500 may be a Personal Digital Assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
  • The depicted example in FIG. 5 and above-described examples are not meant to imply architectural limitations. For example, data processing system 500 also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system 500 also may be a kiosk or a Web appliance.
  • Returning to FIG. 3, server 304 provides access to storage 306. Similarly, server 314 provides access to storage 316 and server 324 provides access to storage 325. Storage 306 may store a first file system that includes a reference to a second file system stored in storage 316. In accordance with a preferred embodiment of the present invention, a reference object is placed in the first file system to serve as a place holder for the second file system. The reference object may be a new or existing file type with data indicating the second file system or some of its properties. This allows the normal directory enumeration procedures of the first file system to include a special name in a natural fashion.
  • With reference to FIGS. 6A-6D, example file systems are shown that allow mounting on remote machines in accordance with a preferred embodiment of the present invention. Particularly, with respect to FIG. 6A, an example is shown in which a referencing server requests location information for a referenced file system from a file system (FS) location database. Client 608 requests object “X” from FS server # 1 606 (step 1). However, X is a mounted file system existing on FS server # 2 616.
  • A referencing object may be a special file in a file system that contains an identification of a specific file system, also known as a file system identification (FSID). The FSID may be the key used to query the FS location database. The FS location database may contain, for each file system, the location of the server on which the file system resides. It may also contain the path name of the root of the file system on each server.
  • In the present invention, the purpose of the referencing object is to serve as a link to the root of another file system. From the client's perspective, the root of the file system that is referenced replaces the referencing object in the directory containing the referencing object. The mounted file system is thus accessed using the name of the referencing object. The client cannot itself access the referencing object using conventional file system operations. The access is manipulated by the referencing server.
  • FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2). It is convenient for the object that is in the file system on FS server # 1 not to contain, itself, the information needed to the redirect the client. For example, a referencing object “X” on FS server # 1 may contain a key value, such as a name or number, identifying the referenced file system. FS server # 1 606 may then use the key value to query FS location database 620 for the location of the file system.
  • FS location database 620 then returns the location of FS server # 2 and the path “/a/b/c/X” to server 606 (step 3). Then, FS server 606 returns the location of FS server # 2 and the path “/a/b/c/X” to client 608 (step 4). Client 608 then may send a request for “/a/b/c/X” to FS server # 2 616 (step 5). FS server # 2 may then access the file system and return the file system root to client 608. Alternatively, the location information may be found in some other data structure, such as a table in memory, rather than a database.
  • The key value associated with the file system may be static. Thus, the mounted file system may be moved, put off-line, replicated, copied, or cloned, and the referencing object need not be changed. Yet, the database or table in which the attributes for the referenced file system are maintained may be updated and changed, corresponding to the updates and changes of the referenced file system itself, without invalidating the data in the referencing file system.
  • In accordance with a preferred embodiment of the present invention, a basic notification mechanism is used to enable clients to access a uniform name space, which can include all file system objects available on all participating file servers. Thus, if a client uses a certain path name to reach a file system object using any of the file servers, any other client can use the same path name to reach the same object.
  • Turning to FIG. 6B, client 608 requests object “X” from FS server # 1 606 (step 1). However, X is a mounted file system existing on FS server # 2 616. FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2). FS location database 620 then returns the location of FS server # 2 to server 606 (step 3).
  • In accordance with a preferred embodiment of the present invention, FS server # 1 does not send a real path name to the client. Rather, FS server # 1 606 encodes the FSID, in this case “X,” using a predetermined, system wide encoding algorithm. The encoded FSID resembles a path name and can easily be decoded back to the FSID. For example, if the FSID is a text string, such as “user.bob,” a simple encoding might be to add the string “###” at the beginning and at the end of the FSID, so the path would be “###user.bob###.” As such, in the example shown in FIG. 6B, the encoded FSID would be “###X###.” A requirement that disallows real path names from resembling encoded FSIDs must be enforced. A person of ordinary skill in the art will recognize that other encoding methods may also be used.
  • In FIG. 6B, FS server 606 returns the location of FS server # 2 and the path “###X###” to client 608 (step 4). The encoded FSID is transparent to the client. The client, upon receiving the name of the new server and the encoded FSID, contacts the new server and retries to access the object by passing the new server the path name given by the old server, which is the encoded FSID. Thus, client 608 then sends a request for “###X###” to FS server # 2 616 (step 5). FS server # 2 recognizes the path name as an encoded FSID and requests the location of X from FS location database 620 (step 6). In return, FS location database 620 returns the path “/a/b/c/X” to FS server # 2 616 (step 7). FS server # 2 may then access the file system and return the file system root to client 608.
  • In an alternative and preferred embodiment, the location of the root of each file system can be stored in a local table that maps the FSID of each file system to a local path name. With reference to FIG. 6C, client 608 requests object “X” from FS server # 1 606 (step 1). However, X is a mounted file system existing on FS server # 2 616. FS server # 1 606 sends a request for the location of X to FS location database 620 (step 2). FS location database 620 then returns the location of FS server # 2 to server 606 (step 3).
  • FS server 606 returns the location of FS server # 2 and the path “###X###” to client 608 (step 4). Client 608 then sends a request for “###X###” to FS server #2 (step 5). FS server # 2 recognizes the path name as an encoded FSID and requests the location of X from FSID table 630 and returns the path “/a/b/c/X” to FS server # 2 616. FS server # 2 may then access the file system and return the file system root to client 608.
  • Alternatively, a file system may be mounted in a special directory using a special mount point. The mount point may be a string representation of the FSID. In the example of FIG. 6C, the file system identified by “X” could be mounted in the “/exports/X.” Therefore, FS server # 2 616 need not look the FSID up in a table or database, because the file system is mounted in a predetermined directory which serves as an appropriate table.
  • To guarantee that clients will enter the name space at the same point, and thus view the same name space regardless of the initial participating server contacted, the present invention includes a special referencing object, called a root referencing object, and a special root file system. The root referencing object is the top level object in all participating file servers. It contains a reference to a special designated FSID, which is the identifier for the special designated root file system.
  • As an example, the FSID referred to by the root referencing object may be “rooffs.” Whenever a client contacts a server and requests the root object, the server will access the root referencing object. Turning now to FIG. 6D, client 608 requests the top level object from FS server # 1 606 (step 1). FS server # 1 606 accesses the root referencing object and sends a request to FS location database 620 for the location of the file system with the FSID of “rooffs” (step 2). The FS location database returns the location of rooffs, FS server # 2, to FS server # 1 606 (step 3). FS server # 1 then encodes the FSID to form “###rooffs###” and sends a redirection message indicating that the file system is on FS server # 2 and the path is “###rooffs###” to client 608 (step 4)
  • Next, client 608 sends a request for “###rooffs###” to FS server # 2 616 (step 5). FS server # 2 recognizes the path name as an encoded FSID and sends a request for the location of the rooffs file system to FS location database 620 (step 6). The FS location database then returns the path, “/a/b/c/,” to FS server # 2 616 (step 7). FS server # 2 may then access the file system and return the file system root to client 608. In an alternative and preferred embodiment, the location of the root of the file system can be stored in a local table that maps the FSID of each file system to a local path name.
  • The example in FIG. 6D shows only two file system servers. However, fewer or more participating servers may be included. For example, the network file system may include only a single server, such as server 616. If a client requests the top level object of FS server # 2 616, the server may send a redirection message redirecting the client to itself with the encoded FSID, “###rootfs###.” The example of FIG. 6D may also include more participating file system servers, each of which has the same referencing object as its top level object.
  • With reference to FIG. 7, a flowchart is shown illustrating the operation of a file system server in accordance with a preferred embodiment of the present invention. The process begins and receives a request for an object (step 702). A determination is made as to whether the object is a reference to another file system (step 704). If the object is a reference to a separate file system, the process looks up the location of the separate file system (step 706) and encodes the FSID of the file system (step 708). Next, the process returns a redirection message indicating the location and the encoded FSID as the path name to the client (step 710) and ends.
  • If the object is not a referencing object in step 704, a determination is made as to whether the object is a top level object (step 712). If the object is a top level object, the process accesses the root referencing object indicating an FSID of “rootfs” (step 714). Then, the process looks up the location of the file system (step 706) and encodes the FSID of the file system (step 708). Thereafter, the process returns a redirection message indicating the location and the encoded FSID as the path name to the client (step 710) and ends.
  • If the object is not a top level object in step 712, a determination is made as to whether the path is an encoded FSID (step 716). If the path is an encoded FSID, the process decodes the path to form the FSID (step 718), accesses and returns the root of the file system (step 720), and ends. If the path is not an encoded FSID in step 716, the process accesses and returns the real object (step 722) and ends.
  • A referencing object may refer to a file system on an unmodified server that does not incorporate the present invention. This may be achieved by having the referencing object itself include the location of the unmodified server and the path name of the file system on that server. When a client accesses the referencing object, the server will reply with the information included in the FS location database for the file system on the unmodified server.
  • The referencing object may also include an FSID, as if it referred to a modified server. However, the file system database may contain a special tag that marks the file system stored on an unmodified server, together with the server location and path name. The server may then reply to the client with the information retrieved from the FS location database. However, the path name cannot comprise an encoded FSID, and the unmodified server may not be configured to contain referrals to other file systems.
  • The present invention may also support file systems that are replicated on various modified servers. If the network file system protocol supports a redirection message that includes more than one server, such as is the case with NFSv4, the present invention may be extended to include the locations of all the servers that host a particular file system. When a client attempts to access a referencing object, the modified server may reply with a list of file system server locations. The client may then select a server to access.
  • Alternatively, if the network file system protocol does not support a redirection message that includes more than one server location, the modified server, after receiving the list of server locations from the FS location database, may choose which server to include in the redirection message. The selection algorithm may be, for example, a round robin algorithm, and may be based on various factors, such as server load and server response time.
  • Thus, the present invention solves the disadvantages of the prior art by providing a data object that references a second file system that is interpreted directly by the file server. The data required to locate the second file system is stored in a file system location data structure that may be located outside the first file system. The data object may then contain a key value, such as a name or a number, identifying the second file system, that can be used to look up the file system location. Therefore, a file system may be referred to by another file system transparently to the client.
  • A referencing server encodes the file system identification and includes the encoded file system identification rather than a path. When a server receives a request with a path that is encoded, the server decodes the file system identification. Then, the server may locate the root of the file system identified by the file system identification and return the root object to the client. Location of the root can be done either by accessing the file system location database structure or by using another, local data structure. A root referral object is the top level object in all participating file servers. It contains a referral to a root file system identification, which is the root file system. Since all participating file servers contain the same root file system identification, all clients will view the same name space regardless of which file server is initially contacted.
  • It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMS, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
  • The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims (26)

1. A method, in a network including a requested file system server, for servicing a request, comprising:
receiving a request for a referencing object from a client, wherein the referencing object refers to a referenced file system;
looking up a location of the referenced file system in a separate data structure at a remote location; and
returning a redirection message indicating the location of the referenced file system to the client.
2. The method of claim 1, wherein the redirection message includes an address of a referenced file system server.
3. The method of claim 2, wherein the redirection message further includes a path.
4. The method of claim 2, wherein the referencing object has a file system identifier.
5. The method of claim 4, further comprising:
encoding the file system identifier, wherein the redirection message further includes the encoded file system identifier.
6. The method of claim 5, wherein the referencing object is a top level object for a uniform namespace including all file systems on participating file system servers.
7. The method of claim 2, wherein the referenced file system server is the requested file system server.
8. The method of claim 1, wherein the separate data structure comprises a file system location database.
9. The method of claim 1, further comprising:
receiving a redirected request for a file system object;
identifying an encoded file system identifier in the redirected request;
decoding the encoded file system identifier to form a file system identifier corresponding to a requested file system;
looking up a path for the requested file system in a file system identifier data structure at a second remote location; and
retrieving the root of the requested file system using the path for the requested file system.
10. The method of claim 9, wherein the file system identifier data structure comprises a file system identifier table.
11. The method of claim 9, wherein the separate data structure and the file system identifier data structure are stored in a file system location database.
12. The method of claim 1, wherein the referencing object is a top level object for a uniform namespace including all file systems on participating file system servers.
13. A method, in a network including a requested file system server, for servicing a request, comprising:
receiving a request for a file system object, wherein the request includes an encoded file system identifier;
decoding the encoded file system identifier to form a file system identifier corresponding to a requested file system;
looking up a path for the requested file system in a file system identifier data structure at a remote location; and
retrieving the root of the requested file system using the path for the requested file system.
14. The method of claim 13, wherein the file system identifier data structure is stored in a table.
15. The method of claim 13, wherein the file system identifier data structure is stored in a file system location database at the remote location.
16-30. (canceled)
31. A computer program product, comprising:
a computer usable medium including computer usable program code for servicing a request, said computer program product including:
computer usable program code for receiving a request for a referencing object from a client, wherein the referencing object refers to a referenced file system;
computer usable program code for looking up a location of the referenced file system in a separate data structure; and
computer usable program code for returning a redirection message indicating the location of the referenced file system to the client.
32. A computer program product of claim 31 further comprises:
computer usable program code for receiving a request for a file system object, wherein the request includes an encoded file system identifier;
computer usable program code for decoding the encoded file system identifier to form a file system identifier corresponding to a requested file system;
computer usable program code for looking up a path for the requested file system in a file system identifier data structure; and
computer usable program code for retrieving the root of the requested file system using the path for the requested file system.
33. The method of claim 1 further comprises:
receiving relocate request for relocating the referenced file system;
relocating the referenced file system to a relocation file system server;
replacing the referenced file system with the referencing object, wherein the referencing object excludes an address for the relocation file system server; and
updating an attribute for the referenced file system in the separate data structure with the address for the relocation file system server.
34. The computer program product of claim 31 further comprises:
computer usable program code for receiving relocate request for relocating the referenced file system;
computer usable program code for relocating the referenced file system to a relocation file system server;
computer usable program code for replacing the referenced file system with the referencing object, wherein the referencing object excludes an address for the relocation file system server; and
computer usable program code for updating an attribute for the referenced file system in the separate data structure with the address for the relocation file system server.
35. A system of servicing a request, the system comprising:
a file system server comprising:
a memory to store addresses of remotely located data structures;
a network adapter connected to a network to transmit and receive messages on the network;
a processor to process a request for a referencing object from a client, to look up an address of a location for a separate data structure in the memory, to issue a request for a location of the referenced file system to the address of a location for the separate data structure, and to issue a redirection message indicating the location of the referenced file system to the client; and
a bus to communicate between the processor, memory and network adapter.
36. The system of claim 35, wherein the redirection message includes an address of a referenced file system server.
37. The system of claim 36, wherein the redirection message further includes a path.
38. The system of claim 36, wherein the referencing object has a file system identifier.
39. The system of claim 38, wherein the processor encodes the file system identifier, and the redirection message further includes the encoded file system identifier.
40. The system of claim 35, further comprising:
a second file system server comprising:
a memory to store addresses of remotely located data structures;
a network adapter to receive and transmit messages on a network;
a processor to process a redirected request for a file system object, identify an encoded file system identifier in the redirected request, decode the encoded file system identifier to form a file system identifier corresponding to a requested file system, to look up an address of a location for a file system identifier data structure in the memory, to issue a request for a path for the requested file system in the file system identifier data structure, and retrieve the root of the requested file system using the path for the requested file system, and a bus to communicate between the processor, memory and network adapter.
US11/174,146 2002-01-11 2005-07-01 Method, apparatus, and program for separate representations of file system locations from referring file systems Abandoned US20050262102A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/174,146 US20050262102A1 (en) 2002-01-11 2005-07-01 Method, apparatus, and program for separate representations of file system locations from referring file systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/044,730 US6931410B2 (en) 2002-01-11 2002-01-11 Method, apparatus, and program for separate representations of file system locations from referring file systems
US11/174,146 US20050262102A1 (en) 2002-01-11 2005-07-01 Method, apparatus, and program for separate representations of file system locations from referring file systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/044,730 Continuation US6931410B2 (en) 2002-01-11 2002-01-11 Method, apparatus, and program for separate representations of file system locations from referring file systems

Publications (1)

Publication Number Publication Date
US20050262102A1 true US20050262102A1 (en) 2005-11-24

Family

ID=21934009

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/044,730 Expired - Fee Related US6931410B2 (en) 2002-01-11 2002-01-11 Method, apparatus, and program for separate representations of file system locations from referring file systems
US11/174,146 Abandoned US20050262102A1 (en) 2002-01-11 2005-07-01 Method, apparatus, and program for separate representations of file system locations from referring file systems

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/044,730 Expired - Fee Related US6931410B2 (en) 2002-01-11 2002-01-11 Method, apparatus, and program for separate representations of file system locations from referring file systems

Country Status (1)

Country Link
US (2) US6931410B2 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267831A1 (en) * 2003-04-24 2004-12-30 Wong Thomas K. Large file support for a network file server
US20050125503A1 (en) * 2003-09-15 2005-06-09 Anand Iyengar Enabling proxy services using referral mechanisms
US20050149528A1 (en) * 2002-07-30 2005-07-07 Anderson Owen T. Uniform name space referrals with location independence
US20060004890A1 (en) * 2004-06-10 2006-01-05 International Business Machines Corporation Methods and systems for providing directory services for file systems
US20060064466A1 (en) * 2004-09-22 2006-03-23 Kenta Shiga Data migration method
US20060080371A1 (en) * 2004-04-23 2006-04-13 Wong Chi M Storage policy monitoring for a storage network
US20060161746A1 (en) * 2004-04-23 2006-07-20 Wong Chi M Directory and file mirroring for migration, snapshot, and replication
US7124143B2 (en) 2004-05-10 2006-10-17 Hitachi, Ltd. Data migration in storage system
US20080126369A1 (en) * 2006-11-29 2008-05-29 Daniel Ellard Referent-controlled location resolution of resources in a federated distributed system
US20100153612A1 (en) * 2008-12-15 2010-06-17 Lsi Corporation Transport agnostic scsi i/o referrals
US20120016891A1 (en) * 2010-07-16 2012-01-19 Jiri Pechanec Hierarchical registry federation
US8131689B2 (en) 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US8180843B2 (en) 2003-04-24 2012-05-15 Neopath Networks, Inc. Transparent file migration using namespace replication
US8190741B2 (en) 2004-04-23 2012-05-29 Neopath Networks, Inc. Customizing a namespace in a decentralized storage environment
US20140032940A1 (en) * 2012-07-30 2014-01-30 Bruno Sartirana Distributed file system at network switch
US8832697B2 (en) 2005-06-29 2014-09-09 Cisco Technology, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
US20140365428A1 (en) * 2013-06-07 2014-12-11 Dell Products, Lp Updating Object Attributes in a Lock-Coupled Namespace Traversal
US9134921B1 (en) 2007-04-23 2015-09-15 Netapp, Inc. Uniquely naming storage devices in a global storage environment
US9734159B2 (en) 2015-05-28 2017-08-15 International Business Machines Corporation File path modification based management

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6938072B2 (en) * 2001-09-21 2005-08-30 International Business Machines Corporation Method and apparatus for minimizing inconsistency between data sources in a web content distribution system
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US7805401B2 (en) * 2003-04-14 2010-09-28 Novell, Inc. Method and apparatus for splitting a replicated volume
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7155443B2 (en) * 2003-05-30 2006-12-26 Computer Associates Think, Inc. System and method for application text localization
JP4349871B2 (en) * 2003-09-09 2009-10-21 株式会社日立製作所 File sharing apparatus and data migration method between file sharing apparatuses
US7389298B2 (en) * 2004-11-18 2008-06-17 International Business Machines Corporation Seamless remote traversal of multiple NFSv4 exported file systems
US7865462B2 (en) * 2006-01-03 2011-01-04 Hitachi, Ltd. Apparatus and method for replicating data in file system
US7475077B2 (en) * 2006-01-31 2009-01-06 International Business Machines Corporation System and method for emulating a virtual boundary of a file system for data management at a fileset granularity
US7640247B2 (en) * 2006-02-06 2009-12-29 Microsoft Corporation Distributed namespace aggregation
US7461222B2 (en) * 2006-02-14 2008-12-02 Hitachi, Ltd. Method for mirroring data between clustered NAS systems
TW200925858A (en) * 2007-12-06 2009-06-16 Ind Tech Res Inst Virtual file managing system and method for building system configuration and accessing file thereof
US9128946B2 (en) * 2007-12-31 2015-09-08 Mastercard International Incorporated Systems and methods for platform-independent data file transfers
US20090177733A1 (en) * 2008-01-08 2009-07-09 Albert Talker Client application localization
US8307240B2 (en) 2008-12-15 2012-11-06 Netapp, Inc. Small computer system interface input output (SCSI IO) referral
US8327102B1 (en) 2009-10-21 2012-12-04 Netapp, Inc. Method and system for non-disruptive migration
CN101872356B (en) * 2010-05-31 2013-08-07 中兴通讯股份有限公司 Method and system for improving processing performance of memory database
US20220164322A1 (en) * 2020-11-23 2022-05-26 Oracle International Corporation Techniques for using an in-memory only file system as an interface for managing computer systems and user space file systems
US11347422B1 (en) * 2021-03-03 2022-05-31 ScaleFlux, Inc. Techniques to enhance storage devices with built-in transparent compression for mitigating out-of-space issues

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742817A (en) * 1995-12-08 1998-04-21 Emc Corporation Method and apparatus for file server addressing
US5915096A (en) * 1996-05-31 1999-06-22 Sun Microsystems, Inc. Network browsing system and method
US20020133491A1 (en) * 2000-10-26 2002-09-19 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US6687701B2 (en) * 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
US6842754B2 (en) * 2001-04-17 2005-01-11 Hewlett Packard Development Company, L.P. Lease enforcement in a distributed file system
US7130858B2 (en) * 2003-07-03 2006-10-31 General Motors Corporation System and method for electronically managing privileged and non-privileged documents

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317728A (en) 1990-09-07 1994-05-31 International Business Machines Corporation Storage management of a first file system using a second file system containing surrogate files and catalog management information
US5187786A (en) 1991-04-05 1993-02-16 Sun Microsystems, Inc. Method for apparatus for implementing a class hierarchy of objects in a hierarchical file system
US5627996A (en) * 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
US5566331A (en) * 1994-01-24 1996-10-15 University Corporation For Atmospheric Research Mass storage system for file-systems
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
DE19513308A1 (en) * 1994-10-04 1996-04-11 Hewlett Packard Co Virtual node file system for computer data system
US5819275A (en) 1995-06-07 1998-10-06 Trusted Information Systems, Inc. System and method for superimposing attributes on hierarchically organized file systems
US5687372A (en) 1995-06-07 1997-11-11 Tandem Computers, Inc. Customer information control system and method in a loosely coupled parallel processing environment
US5937406A (en) * 1997-01-31 1999-08-10 Informix Software, Inc. File system interface to a database
CA2201276C (en) 1997-03-27 2000-01-25 Ibm Canada Limited-Ibm Canada Limitee Indirect hierarchical views for software application management
US5946685A (en) * 1997-06-27 1999-08-31 Sun Microsystems, Inc. Global mount mechanism used in maintaining a global name space utilizing a distributed locking mechanism
US5991777A (en) * 1997-09-19 1999-11-23 Microsoft Corporation System and method for performing defined actions when grafting the name space of one storage medium into the name space of another storage medium
US5848410A (en) * 1997-10-08 1998-12-08 Hewlett Packard Company System and method for selective and continuous index generation
US6023710A (en) * 1997-12-23 2000-02-08 Microsoft Corporation System and method for long-term administration of archival storage
US6026402A (en) * 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
US6446109B2 (en) * 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6594663B2 (en) * 1999-12-30 2003-07-15 Intel Corporation Method and apparatus for implementing and maintaining a configuration database
US6728716B1 (en) * 2000-05-16 2004-04-27 International Business Machines Corporation Client-server filter computing system supporting relational database records and linked external files operable for distributed file system
US6871213B1 (en) * 2000-10-11 2005-03-22 Kana Software, Inc. System and method for web co-navigation with dynamic content including incorporation of business rule into web document
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
US6836775B2 (en) * 2002-04-24 2004-12-28 International Business Machines Corporation Method, apparatus and computer program product for file system referrals

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742817A (en) * 1995-12-08 1998-04-21 Emc Corporation Method and apparatus for file server addressing
US5915096A (en) * 1996-05-31 1999-06-22 Sun Microsystems, Inc. Network browsing system and method
US20020133491A1 (en) * 2000-10-26 2002-09-19 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US6842754B2 (en) * 2001-04-17 2005-01-11 Hewlett Packard Development Company, L.P. Lease enforcement in a distributed file system
US6687701B2 (en) * 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
US7130858B2 (en) * 2003-07-03 2006-10-31 General Motors Corporation System and method for electronically managing privileged and non-privileged documents

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149528A1 (en) * 2002-07-30 2005-07-07 Anderson Owen T. Uniform name space referrals with location independence
US7774364B2 (en) * 2002-07-30 2010-08-10 International Business Machines Corporation Uniform name space referrals with location independence
US7831641B2 (en) 2003-04-24 2010-11-09 Neopath Networks, Inc. Large file support for a network file server
US8180843B2 (en) 2003-04-24 2012-05-15 Neopath Networks, Inc. Transparent file migration using namespace replication
US20040267831A1 (en) * 2003-04-24 2004-12-30 Wong Thomas K. Large file support for a network file server
US8539081B2 (en) * 2003-09-15 2013-09-17 Neopath Networks, Inc. Enabling proxy services using referral mechanisms
US20050125503A1 (en) * 2003-09-15 2005-06-09 Anand Iyengar Enabling proxy services using referral mechanisms
US20060080371A1 (en) * 2004-04-23 2006-04-13 Wong Chi M Storage policy monitoring for a storage network
US20060161746A1 (en) * 2004-04-23 2006-07-20 Wong Chi M Directory and file mirroring for migration, snapshot, and replication
US8190741B2 (en) 2004-04-23 2012-05-29 Neopath Networks, Inc. Customizing a namespace in a decentralized storage environment
US8195627B2 (en) 2004-04-23 2012-06-05 Neopath Networks, Inc. Storage policy monitoring for a storage network
US7720796B2 (en) 2004-04-23 2010-05-18 Neopath Networks, Inc. Directory and file mirroring for migration, snapshot, and replication
US7912814B2 (en) 2004-05-10 2011-03-22 Hitachi, Ltd. Data migration in storage system
US7124143B2 (en) 2004-05-10 2006-10-17 Hitachi, Ltd. Data migration in storage system
US20060004890A1 (en) * 2004-06-10 2006-01-05 International Business Machines Corporation Methods and systems for providing directory services for file systems
US20060064466A1 (en) * 2004-09-22 2006-03-23 Kenta Shiga Data migration method
US7334029B2 (en) 2004-09-22 2008-02-19 Hitachi, Ltd. Data migration method
US20070233704A1 (en) * 2004-09-22 2007-10-04 Kenta Shiga Data migration method
US8832697B2 (en) 2005-06-29 2014-09-09 Cisco Technology, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
US8131689B2 (en) 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US20080126369A1 (en) * 2006-11-29 2008-05-29 Daniel Ellard Referent-controlled location resolution of resources in a federated distributed system
US7933921B2 (en) * 2006-11-29 2011-04-26 Netapp, Inc. Referent-controlled location resolution of resources in a federated distributed system
US10282137B2 (en) 2007-04-23 2019-05-07 Netapp, Inc. Uniquely naming storage devices in a global storage environment
US9134921B1 (en) 2007-04-23 2015-09-15 Netapp, Inc. Uniquely naming storage devices in a global storage environment
US20100153612A1 (en) * 2008-12-15 2010-06-17 Lsi Corporation Transport agnostic scsi i/o referrals
US8732340B2 (en) 2008-12-15 2014-05-20 Lsi Corporation Transport agnostic SCSI I/O referrals
JP2011054152A (en) * 2009-09-01 2011-03-17 Lsi Corp Communication method and system between initiator and storage cluster using scsii/o referral
US8725765B2 (en) * 2010-07-16 2014-05-13 Red Hat, Inc. Hierarchical registry federation
US20120016891A1 (en) * 2010-07-16 2012-01-19 Jiri Pechanec Hierarchical registry federation
US20140032940A1 (en) * 2012-07-30 2014-01-30 Bruno Sartirana Distributed file system at network switch
US9075820B2 (en) * 2012-07-30 2015-07-07 Hewlett-Packard Development Company, L.P. Distributed file system at network switch
US9400819B2 (en) * 2013-06-07 2016-07-26 Dell Products, Lp Updating object attributes in a lock-coupled namespace traversal
US20160253376A1 (en) * 2013-06-07 2016-09-01 Dell Products, Lp Updating Object Attributes in a Lock-Coupled Namespace Traversal
US9798765B2 (en) * 2013-06-07 2017-10-24 Dell Products, Lp Updating object attributes in a lock-coupled namespace traversal
US20140365428A1 (en) * 2013-06-07 2014-12-11 Dell Products, Lp Updating Object Attributes in a Lock-Coupled Namespace Traversal
US9734159B2 (en) 2015-05-28 2017-08-15 International Business Machines Corporation File path modification based management
US9852148B2 (en) 2015-05-28 2017-12-26 International Business Machines Corporation File path modification based management
US9922044B2 (en) 2015-05-28 2018-03-20 International Business Machines Corporation File path modification based management

Also Published As

Publication number Publication date
US6931410B2 (en) 2005-08-16
US20030135511A1 (en) 2003-07-17

Similar Documents

Publication Publication Date Title
US6931410B2 (en) Method, apparatus, and program for separate representations of file system locations from referring file systems
US10958752B2 (en) Providing access to managed content
US6366954B1 (en) Method and data format for exchanging data between a Java system database entry and an LDAP directory service
US7774364B2 (en) Uniform name space referrals with location independence
US10755234B2 (en) System and method for offline synchronization of exception items of shared services for client applications
US8396938B2 (en) Providing direct access to distributed managed content
JP4547263B2 (en) Apparatus and method for processing data in a network
US8255430B2 (en) Shared namespace for storage clusters
US7606840B2 (en) Version control in a distributed computing environment
US8219525B2 (en) Copying and updating files
US7467140B2 (en) System, method, and article of manufacture for maintaining and accessing a whois database
JP3968242B2 (en) Method and apparatus for accessing shared data
US8190570B2 (en) Preserving virtual filesystem information across high availability takeover
US7454426B2 (en) Referential integrity across a distributed directory
US8185630B2 (en) Method for creating global distributed namespace
JP2005539315A (en) Apparatus and method for proxy cache
US20080059495A1 (en) Graphical User Interface for System and Method for Managing Content
US7512990B2 (en) Multiple simultaneous ACL formats on a filesystem
US6996682B1 (en) System and method for cascading data updates through a virtual copy hierarchy
JP5241298B2 (en) System and method for supporting file search and file operations by indexing historical file names and locations
US20060129558A1 (en) Method, system and program product for presenting exported hierarchical file system information
CN115840788B (en) Method, device, terminal and storage medium for synchronizing MySql data to ES
US7293134B1 (en) System and method for an enhanced snapshot pointer
US8082334B1 (en) Providing direct access to managed content
WO2001059620A2 (en) A system and method for refreshing internet bookmarks

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION