Method and apparatus for a caching file server
First Claim
1. A computer system having a plurality of computers, each computer having a processor, a memory, and a microkernel operating system, said computer system comprising:
- a. an extensible file system wherein a new file system can be added to the system without modification to the microkernel operating system;
b. a virtual memory manager (VMM) in a computer which can cache data from said new file system; and
c. a caching file server (CFS) resident on the computer containing the VMM, said CFS configured to cache file system attributes from said new file system which attributes said VMM cannot cache, said CFS coordinating the caching operations for clients between said CFS and said VMM so that data caching is not duplicated by said CFS and said VMM.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus are described for a caching file server ("CFS") system which permits end user client programs on a local node of a distributed computer system, to issue requests to read/write data to a remote file and to query/set attributes of the remote file, and to have these requests serviced by the CFS in a way which minimizes the caching resources used as well as minimizes the related network communications. The CFS establishes CFS file programs to interface with the client programs, and sets up a common CFS cache for the file attributes, which cache is kept current via a communications link to a file program in a file server at the remote node containing the file, wherein the file program automatically updates the common CFS cache whenever any attributes change. The CFS also caches the results of bind operations in order to further minimize network calls and redundant cache usage. In addition the CFS coordinates all client program requests for read/write data requests with a virtual memory manager ("VMM") on the local node, servicing all client programs from a single pager program in the VMM which is coupled to a cache program in the file server of the remote node. VMM page-in/page-out operations go directly to the remote file server without CFS intervention. In this manner, network communications and related processing overhead as well as memory resources may be minimized by use of the VMM for caching file data and the Common CFS cache for caching file attributes.
405 Citations
28 Claims
-
1. A computer system having a plurality of computers, each computer having a processor, a memory, and a microkernel operating system, said computer system comprising:
-
a. an extensible file system wherein a new file system can be added to the system without modification to the microkernel operating system; b. a virtual memory manager (VMM) in a computer which can cache data from said new file system; and c. a caching file server (CFS) resident on the computer containing the VMM, said CFS configured to cache file system attributes from said new file system which attributes said VMM cannot cache, said CFS coordinating the caching operations for clients between said CFS and said VMM so that data caching is not duplicated by said CFS and said VMM. - View Dependent Claims (2)
-
-
3. A data processing system having one or more file systems and connected at a local computer to at least one remote computer by a communications link, and said local computer having a memory and a virtual memory manager ("VMM"), said data processing system comprising:
-
a. at least one file in the one or more file systems; b. a microkernel operating system in said local computer thereby permitting a user to add a new file system without modification to the microkernel operating system; c. said VMM in said local computer comprising mechanisms for caching data from said at least one file system required by clients in said local computer, said mechanisms comprising memory in said local computer and devices for managing said caches and said memory and supplying said clients with data from said at least one file system; and d. a caching file server ("CFS") in said local computer outside of said microkernel operating system which provides caching services for the at least one file, said caching services comprising mechanisms for caching specific data within said CFS if said specific data is not cached by said VMM and mechanisms for using existing caches in said VMM for caching other data where said VMM is able to cache said other data thereby preventing any duplication of data caching in said CFS and said VMM, said CFS comprising a first file program in the CFS which recognizes requests from a first client program, to read first designated data which originates in the at least one file and which is passed to said first client through said cache in said VMM and to write second designated data which originates in said first client program and is ultimately written to said at least one file having passed through said cache in said VMM, said CFS coordinating the caching of said first and second designated data to the at least one file with the VMM in the local computer when said VMM can cache said first and second designated data, and wherein said CFS recognizes requests to query/set attributes of the at least one file and caches said file attributes in the CFS when said attributes are not cached by said VMM, said attributes of said at least one file comprising data which resides in said at least one file and which is accessible by said first client program. whereby the caching services provided by the CFS and the VMM for the first client program need not be duplicated and can minimize data transfer overhead by virtue of being cached at the local computer. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data processing system having one or more file systems, one or more computers, each computer having a processor, a memory, program instructions in said memory, and a virtual memory manager ("VMM"), said data processing system comprising:
-
a. at least one file in the one or more file systems; b. a microkernel operating system in a local one of said one or more computers, said microkernel operating system using an extensible file system wherein new file systems can be added by a user; c. said VMM comprising mechanisms for caching data from said at least one file required by a client in a local computer, said mechanisms comprising memory in said local computer and devices for managing caches and said memory and supplying said client with data from said at least one file; and d. a caching file server ("CFS") in said local computer which provides caching services for the at least one file, said caching services comprising mechanisms for caching specific data within said CFS if said specific data is not cached by said VMM and mechanisms for using existing cache in said VMM for caching other data where said VMM is able to cache said other data thereby preventing any duplication of data caching in said CFS and said VMM, said CFS comprising a first file program in the CFS which recognizes requests from a first client program, to read first designated data which originates in the at least one file and which is passed to said first client through said cache in said VMM and to write second designated data which originates in said first client program and is ultimately written to said at least one file having passed through said cache in said VMM, said CFS coordinating the caching of said first and second designated data to the at least one file with the VMM when said VMM can cache said first and second designated data, and wherein said CFS recognizes requests to query/set attributes of the at least one file and caches said file attributes in the CFS when said attributes are not cached by said VMM, said attributes of said at least one file comprising data which resides in said at least one file and which is accessible by said first client program, whereby the caching services provided by the CFS and the VMM for the first client program need not be duplicated and disk input/output operations can be reduced. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method, performed by a computer having a processor, a memory, a computer program residing in said memory, of accessing a remote file from a local computer in a data processing system having one or more file systems and connected at said local computer to at least one remote computer by a communications link, said method comprising:
-
a. using a microkernel operating system in said local computer; b. using a virtual memory manager ("VMM") in said local computer outside of said microkernel operating system, comprising mechanisms for caching data from said one or more file systems required by a client in said local computer, said mechanisms comprising memory in said local computer and devices for managing said cache and said memory and supplying said client with data from said one or more file systems; c. establishing a caching file server ("CFS") in said local computer which provides caching services for at least one file, said caching services comprising mechanisms for caching specific data within said CFS if said specific data is not cached by said VMM, and mechanisms for using existing caches in said VMM for caching other data where said VMM is able to cache said other data thereby preventing any duplication of data caching in said CFS and said VMM,; and d. establishing a file program in the CFS which recognizes requests from a first client program to read first designated data which originates in the at least one file and which is passed to said first client through said cache in said VMM and to write second designated data which originates in said first client program and is ultimately written to said at least one file having passed through said cache in said VMM, said CFS coordinating the caching of said first and second designated data to the at least one file with the VMM when said VMM can cache said first and second designated data, and wherein said CFS recognizes requests to query/set attributes of the at least one file and caches said file attributes in the CFS when said attributes are not cached by said VMM, said attributes of said at least one file comprising data which resides in said at least one file and which is accessible by said first client program, whereby the caching services provided by the CFS and the VMM for the first client program need not be duplicated and related network communications traffic between the local and remote computers can be minimized. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification