US 11,868,324 B2
Remote durable logging for journaling file systems
James Edward Kinney, Jr., Seattle, WA (US); and Khawaja Salman Shams, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on May 17, 2019, as Appl. No. 16/415,944.
Application 16/415,944 is a continuation of application No. 14/303,549, filed on Jun. 12, 2014, granted, now 10,303,663.
Prior Publication US 2019/0272260 A1, Sep. 5, 2019
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/10 (2019.01); G06F 16/18 (2019.01)
CPC G06F 16/1873 (2019.01) 20 Claims
OG exemplary drawing
 
1. A system, comprising:
one or more persistent, block storage devices configured to maintain a file system and a local file system change log;
one or more processors and a memory that implement a journaling file system manager, configured to:
receive a request to update the file system, the update modifying an object in the file system;
in response to receipt of the request, store one or more log records indicating the update in a local file system change log;
acknowledge the update as committed;
send one or more requests to a network-based data store to add the one or more log records in the local file system change log to a remote version of the file system change log at the network-based data store, wherein the remote version of the file system change log stores a plurality of previously received log records indicating respective previously received updates for the file system;
subsequent to a determination that the one or more log records are stored in the remote version of the file system change log at the network-based data store, reclaim storage space in the one or more block storage devices that persists the one or more log records; and
responsive to a determination to generate a duplicate version of the file system:
obtain a set of log records from the remote version of the file system change log at the network-based data store;
reconcile the set of log records obtained from the remote version of the change log with log records in the local file system change log, wherein the reconciliation selects overlapping updates in the local file system change log and the remote version of the change log only once to determine a complete sequence of updates made to the file system after a snapshot of the file system; and
apply the complete sequence of updates in the set of log records obtained to the snapshot to generate the duplicate version of the file system.