US2014006543A1PendingUtilityA1

Distributed filesystem atomic flush transactions

Individually held — no corporate assignee on recordPriority: Jun 29, 2012Filed: Jun 28, 2013Published: Jan 2, 2014
Est. expiryJun 29, 2032(~5.9 yrs left)· nominal 20-yr term from priority
G06F 16/182G06F 15/167G06F 16/172G06F 12/0804H04L 67/1097G06F 12/0891H04L 65/40H04L 67/06H04L 41/00H04L 67/5682G06F 16/183
57
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         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. 
   
     
     
         2 . The system of  claim 1 , wherein the upstream site includes a third file service proxy cache node. 
     
     
         3 . The system of  claim 1 , wherein the second file service proxy cache node includes the origin file system. 
     
     
         4 . The system of  claim 1 , wherein the flush request includes a flush level. 
     
     
         5 . The system of  claim 4 , wherein the flush level specifies the file service proxy cache node's flash memory as the flush destination. 
     
     
         6 . The system of  claim 4 , wherein the flush level specifies the file service proxy cache node's disk as the flush destination. 
     
     
         7 . The system of  claim 4 , wherein the flush level specifies the origin file system as the flush destination. 
     
     
         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. 
 
   
     
     
         9 . The system of  claim 8  further comprising:
 if the downstream flush request was not successfully completed:
 decrementing a retry count; 
 if the retry count is greater than zero:
 dispatching the downstream flush request to the second file service proxy cache node again; 
 
 if the retry count equals zero:
 declaring a network failure, which will initiate a search for an alternate route to the server terminator site. 
 
 
 
     
     
         10 . The system of  claim 8 , wherein if the downstream flush request was successfully completed further comprises:
 if the ALL_DATA_RECEIVED response flag is set, indicating that the server terminator site has received and accepted all flush data:
 promoting the flushed data in the shadow extents. 
   
     
     
         11 . The system of  claim 8  further comprising:
 the file service proxy cache node remaining committed to the node when the amount of flushed data is higher than can be accommodated in a single network operation until the last batch of data is successfully received. 
 
     
     
         12 . The system of  claim 11 , wherein the request containing the last batch of data also includes a flag that indicates this is the last batch. 
     
     
         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. 
   
     
     
         14 . The system of  claim 13 , wherein if the downstream flush request was successfully completed further comprises:
 if the ALL_DATA_RECEIVED response flag is set, indicating that the server terminator site has received and accepted all flush data:
 promoting the flushed data in the shadow extents. 
   
     
     
         15 . The system of  claim 15 , wherein promoting the shadow extents includes making the flushed data permanent. 
     
     
         16 . The system of  claim 13 , wherein the response to the downstream flush request includes:
 an error code if the downstream flush request was not successfully completed.   
     
     
         17 . The system of  claim 16 , wherein the flush response to the upstream site includes:
 an error code if the flush request was not successfully completed.   
     
     
         18 . The system of  claim 13  further comprising:
 if the file service proxy cache node is the server terminator site:
 determining if:
 all batches of the flush have been received; and 
 a DATA_COMPLETE request flag was set in one of the requests. 
 
 
 
     
     
         19 . The system of  claim 18  further comprising:
 if all batches of the flush have been received and the DATA_COMPLETE request flag was set in one of the requests:
 if synchronous filesystem writes are enabled for the file identified in the flush request:
 writing all data contained in shadow extents to the origin filesystem 
 if the filesystem write operation did not complete successfully:
 responding to the upstream site with a status that conveys the write error code. 
 
 if the filesystem write operation did complete successfully:
 setting the ALL_DATA_RECEIVED response flag; 
 promoting the flushed data in the shadow extents; and 
 responding to the received flush request with a status code that indicates the successful completion of the request. 
 
 
 
 
     
     
         20 . The system of  claim 19  further comprising:
 if synchronous writes are not enabled for the file identified in the flush request:
 setting the ALL_DATA_RECEIVED response flag; 
 promoting the flushed data in the shadow extents; and 
 responding to the received flush request with a status code that indicates the successful completion of the request.

Join the waitlist — get patent alerts

Track US2014006543A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.