DISTRIBUTED FILESYSTEM ATOMIC FLUSH TRANSACTIONS
First Claim
1. In a computing system where a data request has been passed between an upstream site and a file service proxy cache node, the file service proxy cache node being a network node located between the upstream site and the origin file system node, a non-transitory computer-readable storage medium including instructions that, when executed by the file service proxy cache node, performs the steps:
- receiving a flush request from the upstream site, wherein the flush request includes;
a request to save flush data contained in the flush request to a stable memory;
storing the flush data in a shadow extent;
dispatching a downstream flush request to a second file service proxy cache node;
receiving a response to the downstream flush request from the second file service proxy cache node; and
if the response to the downstream flush request includes a status code that indicates the successful completion of the requestsending a flush response that includes the status code that indicates the successful completion of the request to the upstream site.
0 Assignments
0 Petitions
Accused Products
Abstract
Large scale high performance file proxy caching sites may be configured to coalesce many client write operations into one very large assemblage of modified file data. At some point the caching site will flush all modified file data downstream towards the origin file server. In some instances the amount of modified data being flushed may be more than can be transferred in a single network request. When multiple network requests are required, the consistency guarantee provided by many filesystems requires that the file either be updated with the data contained in all of the network requests or not be modified at all. In addition, once the first flush request is processed no other file read or write requests can be serviced until the last flush request has been processed. This document discloses methods for performing atomic multi-request flush operations within a large geographically distributed filesystem environment.
-
Citations
20 Claims
-
1. In a computing system where a data request has been passed between an upstream site and a file service proxy cache node, the file service proxy cache node being a network node located between the upstream site and the origin file system node, a non-transitory computer-readable storage medium including instructions that, when executed by the file service proxy cache node, performs the steps:
-
receiving a flush request from the upstream site, wherein the flush request includes; a request to save flush data contained in the flush request to a stable memory; storing the flush data in a shadow extent; dispatching a downstream flush request to a second file service proxy cache node; receiving a response to the downstream flush request from the second file service proxy cache node; and if the response to the downstream flush request includes a status code that indicates the successful completion of the request sending a flush response that includes the status code that indicates the successful completion of the request to the upstream site. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computing system where a data request has been passed between an upstream site and a file service proxy cache node, the file service proxy cache node being a network node located between the upstream site and the origin file system node, a non-transitory computer-readable storage medium including instructions that, when executed by the file service proxy cache node, performs the steps:
-
receiving a flush request from the upstream site, wherein the flush request includes; a request to save flush data contained in the flush request to a stable memory; storing the flush data in a shadow extent; and if the file service proxy cache node is not a server terminator site; dispatching a downstream flush request to a second file service proxy cache node; receiving a response to the downstream flush request from the second file service proxy cache node; and if the response to the downstream flush request includes a status code that indicates the successful completion of the request sending a flush response that includes the status code that indicates the successful completion of the request to the upstream site. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a computing system where a data request has been passed between an upstream site and a file service proxy cache node, the file service proxy cache node being a network node located between the upstream site and the origin file system node, a non-transitory computer-readable storage medium including instructions that, when executed by the file service proxy cache node, performs the steps:
-
receiving a flush request from the upstream site, wherein the flush request includes; a request to save flush data contained in the flush request to a stable memory; and a flush level, wherein the flush level indicates how far the data should be flushed; storing the flush data in a shadow extent; if the file service proxy cache node is not a server terminator site; dispatching a downstream flush request to a second file service proxy cache node, wherein the downstream flush request includes; the flush data; receiving a response to the downstream flush request from the second file service proxy cache node including; if the response to the downstream flush request includes a status code that indicates the successful completion of the request sending a flush response that includes a status code that indicates the successful completion of the request to the upstream site. - View Dependent Claims (14, 16, 17, 18, 19, 20)
-
-
15. The system of claim 15, wherein promoting the shadow extents includes making the flushed data permanent.
Specification