IP Library › Granted Patent US 12,499,097
Granted Patent B2
US 12,499,097 · App. 18/518,176 · Granted Dec 16, 2025

Remote durable logging for journaling file systems

Inventors: James Edward Kinney, Jr. (Seattle, WA); Khawaja Salman Shams (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F16/1873
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,499,097
App. No.
18/518,176
Granted
Dec 16, 2025
Kind
B2
Abstract

A journaling file system may implement remote durable logging. Updates to a file system may be received, and log records describing the updates may be stored in a locally-accessible file system change log. The update may then be acknowledged as committed. The log records may then be sent to be stored in a network-based data store in a remote version of the file system change log. Once it may be determined that the log records are stored in the remote version, storage space for the log records in the local file system change log may be reclaimed. Various types of restoration and duplication techniques may be implemented based on the remote version of the change log to restore a file system at an originating device or to duplicate the file system at a different device.

Claims (62)

1 . A method, comprising:

performing, by one or more computing devices that implement a file system hosting service at a cloud-based infrastructure provider network:

registering a file system with the file system hosting service;

creating a duplicate file system of the file system at the file system hosting service, wherein the duplicate file system is created based on a snapshot of the file system at a remote location and a remote version of a file system change log at the remote location;

provisioning, based on expected I/O operations per second (IOPS) specified in a corresponding request, one or more virtual machine-based read nodes for the duplicate file system, wherein the one or more read nodes are virtual machine instances managed by a virtual computing service of the cloud-based infrastructure provider network, provisioned with computational capacity, memory size, and software stack specified for the virtual machines instances by the virtual computing service of the cloud-based infrastructure provider network based at least in part on the expected IOPS specified in the corresponding request;

making the duplicate file system available for read access requests via the one or more read nodes; and

determining that additional log records have been added to the remote version of the file system change log, and in response:

updating the duplicate file system based on the additional log records.

2 . The method of claim 1 , wherein:

the cloud-based infrastructure provider network provides multi-tenant storage for a plurality of clients accessible over a public network;

the file system is associated with a client of the cloud-based infrastructure provider network and located at a first location of the client; and

the duplicate file system is located at a second location of the cloud-based infrastructure provider network remote from the first location.

3 . The method of claim 2 , wherein:

the duplicate file system is used to maintain a second duplicate file system; and

the second duplicate file system is located at a third location of the client remote from the first and second locations.

4 . The method of claim 1 , wherein:

the duplicate file system is configured to handle a specified number of input/output operations per second (IOPS).

5 . The method of claim 4 , wherein:

the one or more read nodes are part of a read pool provisioned for the duplicate file system; and

the method further comprises selecting a size of the read pool is based at least in part on the IOPS configured for the duplicate file system.

6 . The method of claim 5 , further comprising:

dynamically scaling the size of the read pool based at least in part on an expected workload of the read pool.

7 . The method of claim 1 , further comprising:

provisioning one or more storage resources to store the duplicate file system in the cloud-based infrastructure provider network, wherein the storage resources include one or more solid state drive (SSD) devices.

8 . The method of claim 1 , wherein:

the cloud-based infrastructure provider network implements user authentication to control access to the duplicate file system.

9 . The method of claim 1 , further comprising:

tracking usage of the duplicate file system by a client; and

generating a report of the usage in response to a query from the client.

10 . The method of claim 9 , wherein:

the cloud-based infrastructure provider network provides a configuration interface for configuring the duplicate file system; and

the configuration interface comprises an application programing interface (API).

11 . A system, comprising:

one or more computing devices that implement a file system hosting service at cloud-based infrastructure provider network, configured to:

register a file system with the file system hosting service;

create a duplicate file system of the file system at the file system hosting service, wherein the duplicate file system is created based on a snapshot of the file system at a remote location and a remote version of a file system change log at the remote location;

provision, based on expected I/O operations per second (IOPS) specified in a corresponding request, one or more virtual machine-based read nodes for the duplicate file system, wherein the one or more read nodes are virtual machine instances managed by a virtual computing service of the cloud-based infrastructure provider network, provisioned with computational capacity, memory size, and software stack specified for the virtual machines instances by the virtual computing service of the cloud-based infrastructure provider network based at least in part on the expected IOPS specified in the corresponding request;

make the duplicate file system available for read access requests via the one or more read nodes; and

determine that additional log records have been added to the remote version of the file system change log, and in response:

update the duplicate file system based on the additional log records.

12 . The system of claim 11 , wherein:

the one or more read nodes are part of a read pool provisioned for the duplicate file system; and

a size of the read pool is selected based at least in part on an amount of input/output operations per second (IOPS) configured for the duplicate file system.

13 . The system of claim 12 , wherein the file system hosting service is configured to:

dynamically scale the size of the read pool based at least in part on an expected workload of the read pool.

14 . The system of claim 12 , wherein the file system hosting service is configured to:

dynamically scale the size of the read pool based at least in part on a workload of the read pool.

15 . The system of claim 11 , wherein to update the duplicate file system based on the additional log records, the file system hosting service is configured to:

receive the additional log records from the remote location;

reconcile the additional log records with a local log of the duplicate file system stored at the cloud-based infrastructure provider network; and

after the reconciliation, apply the reconciled the additional log records to the duplicate file system.

16 . The system of claim 11 , wherein the additional log records indicate modifications to metadata of the file system including one or more of:

a deletion of a file;

a move of a file;

a modification of a directory structure of the file system; and

a modification of permissions of a file.

17 . The system of claim 11 , wherein the additional log records indicate changes to contents of a file.

18 . The system of claim 11 , wherein the file system hosting service is configured to perform automated backups of the duplicate file system.

19 . The system of claim 11 , wherein the file system hosting service is configured to provide read-only access to the duplicate file system.

20 . The system of claim 11 , wherein:

the cloud-based infrastructure provider network provides a configuration interface for configuring the duplicate file system; and

the configuration interface is a web-based interface provided according to Hypertext Transfer Protocol (HTTP).

Continuity (3)
Continuation 16415944 · May 17, 2019
Continuation 14303549 · Jun 12, 2014
Related Publication 20240220461A1 · Jul 4, 2024
References Cited (108)
US 5280612A · Lorie et al. · 1994 [cited by applicant]
US 5471614A · Kakimoto · 1995 [cited by applicant]
US 5524205A · Lomet et al. · 1996 [cited by applicant]
US 5530850A · Ford et al. · 1996 [cited by applicant]
US 5870758A · Bamford et al. · 1999 [cited by applicant]
US 5907848A · Zaiken et al. · 1999 [cited by applicant]
US 6233585B1 · Gupta et al. · 2001 [cited by applicant]
US 6240413B1 · Learmont · 2001 [cited by applicant]
US 6615219B1 · Bruso et al. · 2003 [cited by applicant]
US 6631374B1 · Klein et al. · 2003 [cited by applicant]
US 6732171B2 · Hayden · 2004 [cited by applicant]
US 6832229B2 · Reed · 2004 [cited by applicant]
US 6976022B2 · Vemuri et al. · 2005 [cited by applicant]
US 7010645B2 · Hetzler et al. · 2006 [cited by applicant]
US 7089253B2 · Hinshaw et al. · 2006 [cited by applicant]
US 7146386B2 · Xiao · 2006 [cited by applicant]
US 7305386B2 · Hinshaw et al. · 2007 [cited by applicant]
US 7308456B2 · Friske et al. · 2007 [cited by applicant]
US 7415489B2 · Palapudi et al. · 2008 [cited by applicant]
US 7472138B2 · Adkins et al. · 2008 [cited by applicant]
US 7716645B2 · Dolby et al. · 2010 [cited by applicant]
US 7747663B2 · Atkin et al. · 2010 [cited by applicant]
US 7809778B2 · Mitaru · 2010 [cited by applicant]
US 7885922B2 · Pareek et al. · 2011 [cited by applicant]
US 7930271B2 · Tarbell · 2011 [cited by applicant]
US 7937551B2 · Schott · 2011 [cited by applicant]
US 7979670B2 · Saliba et al. · 2011 [cited by applicant]
US 8131723B2 · Sim-Tang · 2012 [cited by applicant]
US 8209515B2 · Schott · 2012 [cited by applicant]
US 8255627B2 · Blinick et al. · 2012 [cited by applicant]
US 8266107B2 · Fashchik et al. · 2012 [cited by applicant]
US 8266114B2 · Mace et al. · 2012 [cited by applicant]
US 8271830B2 · Erofeev · 2012 [cited by applicant]
US 8289801B2 · Smith et al. · 2012 [cited by applicant]
US 8301670B2 · Revah et al. · 2012 [cited by applicant]
US 8326897B2 · Butterworth et al. · 2012 [cited by applicant]
US 8341128B1 · Ruggiero · 2012 [cited by applicant]
US 8370715B2 · Hafner et al. · 2013 [cited by applicant]
US 8380670B2 · Kuber et al. · 2013 [cited by applicant]
US 8392479B1 · Pantin · 2013 [cited by applicant]
US 8396831B2 · Larson et al. · 2013 [cited by applicant]
US 8397032B2 · Elnozahy · 2013 [cited by applicant]
US 8412689B2 · Reid et al. · 2013 [cited by applicant]
US 8412752B2 · Dodge · 2013 [cited by applicant]
US 8429121B2 · Pareek et al. · 2013 [cited by applicant]
US 8639989B1 · Sorenson, III · 2014 [cited by examiner]
US 8930330B1 · Arguelles et al. · 2015 [cited by applicant]
US 8943282B1 · Armangau et al. · 2015 [cited by applicant]
US 9195542B2 · McKelvie et al. · 2015 [cited by applicant]
US 9251003B1 · Gupta et al. · 2016 [cited by applicant]
US 9740606B1 · McKelvie et al. · 2017 [cited by applicant]
US 9760480B1 · McKelvie et al. · 2017 [cited by applicant]
US 9767015B1 · McKelvie et al. · 2017 [cited by applicant]
US 10089220B1 · McKelvie et al. · 2018 [cited by applicant]
US 10387399B1 · McKelvie et al. · 2019 [cited by applicant]
US 20020107835A1 · Coram et al. · 2002 [cited by applicant]
US 20020143733A1 · Mukkamalla et al. · 2002 [cited by applicant]
US 20020143888A1 · Lisiecki et al. · 2002 [cited by applicant]
US 20030046121A1 · Menninger et al. · 2003 [cited by applicant]
US 20040133622A1 · Clubb et al. · 2004 [cited by applicant]
US 20040249869A1 · Oksanen · 2004 [cited by applicant]
US 20050262161A1 · Holmes et al. · 2005 [cited by applicant]
US 20080168081A1 · Gaurav et al. · 2008 [cited by applicant]
US 20080183973A1 · Aguilera et al. · 2008 [cited by applicant]
US 20080208924A1 · Bradshaw et al. · 2008 [cited by applicant]
US 20090024551A1 · Agrawal et al. · 2009 [cited by applicant]
US 20090193393A1 · Baldwin et al. · 2009 [cited by applicant]
US 20100050172A1 · Ferris · 2010 [cited by applicant]
US 20100192131A1 · Dolby et al. · 2010 [cited by applicant]
US 20110035548A1 · Kimmel et al. · 2011 [cited by applicant]
US 20110161496A1 · Nicklin · 2011 [cited by applicant]
US 20110238857A1 · Certain · 2011 [cited by examiner]
US 20120041899A1 · Greene et al. · 2012 [cited by applicant]
US 20120054158A1 · Hu · 2012 [cited by examiner]
US 20120143825A1 · Boehm et al. · 2012 [cited by applicant]
US 20120174112A1 · Vaidya et al. · 2012 [cited by applicant]
US 20120191648A1 · Kuber et al. · 2012 [cited by applicant]
US 20120297073A1 · Glover et al. · 2012 [cited by applicant]
US 20120310985A1 · Gale et al. · 2012 [cited by applicant]
US 20130007219A1 · Sorenson, III et al. · 2013 [cited by applicant]
US 20130036281A1 · Revah et al. · 2013 [cited by applicant]
US 20130042156A1 · Srinivasan et al. · 2013 [cited by applicant]
US 20130080386A1 · Dwyer et al. · 2013 [cited by applicant]
US 20130080388A1 · Dwyer et al. · 2013 [cited by applicant]
US 20130086129A1 · Brown et al. · 2013 [cited by applicant]
US 20140082288A1 · Beard · 2014 [cited by examiner]
US 20140149537A1 · Shankaran · 2014 [cited by examiner]
US 20140149590A1 · Mallipeddi et al. · 2014 [cited by applicant]
US 20190272260A1 · Kinney, Jr. et al. · 2019 [cited by applicant]
EP 0675451 · 1995 [cited by applicant]
EP 1277115 · 2003 [cited by applicant]
Amazon Web Services Blog Downloaded Apr. 30, 2013 from http://aws.typepad .com/aws/201 0/1 0/amazon-rdsannouncing-read-replicas.html, Published Oct. 5, 2010 pp. 1-11. [cited by applicant]
Bloom Filter Downloaded from http://en.wikipedia.org/wiki/Bioom_filteron May 15, 2013, pp. 1-12. [cited by applicant]
John Clarke “SQL Result Set Cache in Oracle 11 gR2” published Nov. 16, 2011 downloaded May 15, 2013 from http://www.centroid.com/knowledgebase/blog/sql-result-set-cache-in-oracle-11 gr2, pp. 1-27. [cited by applicant]
IBM, “Storage Class Memory : Towards a Disruptively Low-Cost Solid-State Non-Volatile Memory”, Almaden Research Center; Jan. 2013, pp. 1-27. [cited by applicant]
Github-Gist, “Latency Nos. Every Programmer Should Know”, pp. 1-6. [cited by applicant]
Jim Czuprynski “Oracle Database 11 g: SQL Query Result Set Caching” published Jul. 30, 2008, downloaded May 15, 2013 from http://www.databasejournal.com/features/oracle/article.php/3760761 /Oracle-Database-11 g-SQL -Que… [cited by applicant]
Oracle Database JDBC Developer's Guide and Reference: Chapter 20 Statement and Result Set 5 Cachingdownloaded from http://docs.oracle.com/cd/B28359 01 /java . 1111 b31224/stmtcach.htm via the Wayback Machine Nov. 27, 20… [cited by applicant]
Adrian Billington “Query Result Cache in Oracle 11 g” downloaded from http:/lweb.archive.org/web/20080124161135/http://www.oracle-developer.net/display.php?id=503 via the Wayback Machine Jan. 4, 2008, pp. 1-20. [cited by applicant]
Julian Dontcheff “Bloom Filters for DBAs” published Aug. 28, 2012, downloaded from http://juliandontcheff. wordpress. com/20 12/08/28/bloom-filters-for- db as/ on May 14, 2013, pp. 1-4. [cited by applicant]
Julian Dyke “Result Cache Internals” Nov. 2007, pp. 1-38. [cited by applicant]
Michele Cyran et al “Oracle Database Concepts 1 Og Release 2 (1 0.2)” Oct. 2005, pp. 1-542. [cited by applicant]
Lance Ashdown et al.“Oracle Database Concepts 11 g Release 2 (11 .2)” Sep. 2011, pp. 1-460. [cited by applicant]
Isolation (database systems) downloaded from http://en.wikipedia.org/wiki/Isolation_(database_systems) on May 15, 2013, pp. 1-7. [cited by applicant]
Adrian Proctor “Non-Volatile Memory: Non Volatile Memory and its use in Enterprise Applications” 2012. whitepaper downloaded from http://www.vikingtechnology.com/sites/default/files/featuredvideos/NVDIMM_Technology.pdf,… [cited by applicant]
Yuan Xie “Emerging NVM Memory Technologies”, Penn State Department of Computer Science and Engineering, Downloaded from http://web.engr.oregonstate.edu/˜sllu/xie.pdf on Aug. 13, 2013, pp. 1-31. [cited by applicant]
NV-DIMM: Fastest Tier in Your Storage Strategy, 2012 Whitepaper, Viking Technology, pp. 1-7. [cited by applicant]
Technology Lab/ Information Technology, Sean Gallagher, “Memory That Never Forgets: Non-Volatile DIMMS Hit the Market”, Apr. 4, 2013; pp. 1-3. [cited by applicant]