Method and apparatus for asynchronous file writes in a distributed file system
First Claim
1. A method for delaying asynchronous writes in a distributed file system wherein the file system comprises a unique identifier, the method comprising:
- buffering a page of dirty data with the unique identifier upon writing to a server;
changing the unique identifier to create a current unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token; and
a server sharing free space information with a plurality of clients comprising tracking at each client the amount of data the client has written to the client'"'"'s cache and the amount of free space.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for delaying asynchronous writes in a distributed file system, wherein the file system includes a unique identifier (“UID”). The method comprises buffering a page of dirty data with the unique identifier upon writing to the server; changing the unique identifier (“UID”) to create a current unique identifier upon a failure of the server; comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and handling the request responsive to the comparison. In other aspects of the invention, the invention comprises a computer programmed to perform the method and a program storage medium encoded with instructions that, when executed by a computer, perform the method.
51 Citations
20 Claims
-
1. A method for delaying asynchronous writes in a distributed file system wherein the file system comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing to a server;
changing the unique identifier to create a current unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token; and
a server sharing free space information with a plurality of clients comprising tracking at each client the amount of data the client has written to the client'"'"'s cache and the amount of free space. - View Dependent Claims (2, 3, 4, 5)
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient; and
turning over the revoked free space to the client if the server'"'"'s free space was insufficient.
-
-
6. A method for delaying asynchronous writes in a distributed file system wherein the file system comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing to a server;
changing the unique identifier to create a current unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token; and
a server sharing free space information with a plurality of clients, wherein the server sharing free space information with the plurality of clients comprises;
promising a portion of the free space to each client;
tracking at each client the amount of data the client has written to the client'"'"'s cache and the amount of free space;
requesting more free space from the server if the client'"'"'s free space is insufficient;
turning over the server'"'"'s unused free space if the server'"'"'s free space is sufficient;
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient;
turning over the revoked free space to the client if the server'"'"'s free space was insufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
setting an indication for modifying the time update if the free space turned over to the client is sufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
noting the current UID in the page header if the free space turned over to the client is insufficient;
writing the page to the server if the free space turned over to the client is insufficient; and
notifying the server to update the modification time if the free space turned over to the client is insufficient.
-
-
7. A program storage medium encoded with instructions that, when executed by a computer, perform a method for delaying asynchronous writes in a distributed file system wherein the file system in the encoded method comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing to a server;
changing the unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency and wherein maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token;
a server sharing free space information with a plurality of clients comprising promising a portion of the free space to each client. - View Dependent Claims (8, 9, 10, 11, 12)
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient; and
turning over the revoked free space to the client if the server'"'"'s free space was insufficient.
-
-
12. The program storage medium of claim 7, wherein the server sharing free space information with the plurality of clients comprises writing the dirty page to a client cache if the free space turned over to the client is sufficient.
-
13. A program storage medium encoded with instructions that, when executed by a computer, perform a method for delaying asynchronous writes in a distributed file system wherein the file system in the encoded method comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing to a server;
changing the unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token;
a server sharing free space information with a plurality of clients, wherein the server sharing free space information with the plurality of clients comprises;
promising a portion of the free space to each client;
tracking at each client the amount of data the client has written to the client'"'"'s cache and the amount of free space;
requesting more free space from the server if the client'"'"'s free space is insufficient;
turning over the server'"'"'s unused free space if the server'"'"'s free space is sufficient;
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient;
turning over the revoked free space to the client if the server'"'"'s free space was insufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
setting an indication for modifying the time update if the free space turned over to the client is sufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
noting the current UID in the page header if the free space turned over to the client is insufficient;
writing the page to the server if the free space turned over to the client is insufficient; and
notifying the server to update the modification time if the free space turned over to the client is insufficient.
-
-
14. A computer programmed to perform a method for delaying asynchronous writes in a distributed file system wherein the file system in the programmed method comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing the data to a server;
changing the unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state; and
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token;
a server sharing free space information with a plurality of clients comprising requesting more free space from the server if the client'"'"'s free space is insufficient. - View Dependent Claims (15, 16, 17, 18, 19)
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient; and
turning over the revoked free space to the client if the server'"'"'s free space was insufficient.
-
-
19. The programmed computer of claim 14, wherein the server sharing free space information with the plurality of clients comprises writing the dirty page to a client cache if the free space turned over to the client is sufficient.
-
20. A computer programmed to perform a method for delaying asynchronous writes in a distributed file system wherein the file system in the programmed method comprises a unique identifier, the method comprising:
-
buffering a page of dirty data with the unique identifier upon writing the data to a server;
changing the unique identifier upon a failure of the server;
comparing the buffered unique identifier with the current unique identifier when the page is requested while the page is in a written state;
handling the request responsive to the comparison;
maintaining cache consistency comprising issuing an exclusive mode token from the server to a client to permit the client to dirty the page, issuing a shared mode token from the server to the client to permit the client to use, but not dirty, the page, and revoking the exclusive mode token before issuing the shared mode token; and
a server sharing free space information with a plurality of clients, wherein the server sharing free space information with the plurality of clients comprises;
promising a portion of the free space to each client;
tracking at each client the amount of data the client has written to the client'"'"'s cache and the amount of free space;
requesting more free space from the server if the client'"'"'s free space is insufficient;
turning over the server'"'"'s unused free space if the server'"'"'s free space is sufficient;
revoking, at the server, unused space from another client if the server'"'"'s free space is insufficient;
turning over the revoked free space to the client if the server'"'"'s free space was insufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
setting an indication for modifying the time update if the free space turned over to the client is sufficient;
writing the dirty page to a client cache if the free space turned over to the client is sufficient;
noting the current UID in the page header if the free space turned over to the client is insufficient;
writing the page to the server if the free space turned over to the client is insufficient; and
notifying the server to update the modification time if the free space turned over to the client is insufficient.
-
Specification