IP Library › Granted Patent US 12,688,160
Granted Patent B2
US 12,688,160 · App. 18/942,186 · Granted Jul 21, 2026

Distributed file system with reduced write and read latencies

Inventors: Ananthan Subramanian (San Ramon, CA); Daniel McCarthy (Erie, CO); Arindam Banerjee (Fremont, CA)
Assignee: NetApp, Inc.
G06F16/1827G06F16/164G06F16/188H04L67/00
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,688,160
App. No.
18/942,186
Filed
Nov 8, 2024
Granted
Jul 21, 2026
Kind
B2
Art Unit
2154
USPC
707/827
Abstract

A method for reducing write latency in a distributed file system. A write request that includes a volume identifier is received at a data management subsystem deployed on a node within a distributed storage system. The data management subsystem maps the volume identifier to a file system volume and maps the file system volume to a set of logical block addresses in a logical block device in a storage management subsystem deployed on the node. The storage management subsystem maps the logical block device to a metadata object for the logical block device on the node that is used to process the write request. The mapping of the file system volume to the set of logical block addresses in the logical block device enables co-locating the metadata object with the file system volume on the node, which reduces the write latency associated with processing the write request.

Claims (40)

1 . A method for reducing write latency in a distributed file system, the method comprising:

for a given node of a plurality of nodes of a distributed storage system:

reducing write latency associated with processing of write requests by co-locating, by the distributed storage system, a metadata object with a file system volume on the given node, wherein a first mapping, maintained by a data management subsystem of the given node, of the file system volume to a set of logical block addresses in a logical block device of a storage management subsystem of the given node enables the co-locating; and

maintaining, by the storage management subsystem of the given node, a second mapping of the logical block device to the metadata object on the given node;

receiving a write request at the data management subsystem;

identifying, by the data management subsystem, the file system volume on the given node to which the write request is directed based on a volume identifier associated with the write request; and

servicing the write request by utilizing, by the data management subsystem and the storage management subsystem the first mapping and the second mapping.

2 . The method of claim 1 , wherein co-location of the file system volume, the logical block device, and the metadata object on the given node reduces the write latency associated with the write request by enabling local metadata updates.

3 . The method of claim 2 , further comprising sending, by the data management subsystem, a request that identifies a set of logical block addresses to which data from the write request is to be written in the logical block device over a local pathway to the storage management subsystem.

4 . The method of claim 1 , further comprising computing, by a metadata service in the storage management subsystem, a set of block identifiers based on a request received from the data management subsystem, the request identifying the set of logical block addresses to which data from the write request is to be written in the logical block device.

5 . The method of claim 1 , further comprising sending a response to a source of the write request after metadata and data associated with the write request are stored in a logging storage device associated with the given node.

6 . A node of a distributed storage system comprising:

a memory; and

one or more processors coupled to the memory programmed with executable instructions, the instructions including:

a storage management subsystem for maintaining a first mapping of a logical block device to a metadata object and contributing to processing of write requests received by the node based on the first mapping; and

a data management subsystem for maintaining a second mapping of a file system volume to a set of logical block addresses in the logical block device and for contributing to processing of the write requests based on the second mapping, wherein the second mapping enables co-locating of the metadata object with the file system volume on the node, and wherein co-location of the metadata object with the file system volume on the node reduces write latency associated with the processing of the write requests.

7 . The node of claim 6 , wherein the file system volume is mapped to the set of logical block addresses in the logical block device by mapping the file system volume to a logical aggregate and mapping the logical aggregate to the set of logical block addresses in the logical block device.

8 . The node of claim 6 , wherein the file system volume, the logical block device, and the metadata object being co-located on the node reduces the write latency associated with the write request by enabling local metadata updates.

9 . The node of claim 6 , wherein the data management subsystem is configured to send a request that identifies a set of logical block addresses to which data associated with a given write request is to be written in the logical block device over a local pathway to the storage management subsystem.

10 . The node of claim 6 , wherein the storage management subsystem includes a metadata service configured to compute a set of block identifiers based on a request received from the data management subsystem, the request identifying the set of logical block addresses to which data associated with a given write request is to be written in the logical block device received from the data management subsystem.

11 . The node of claim 6 , wherein the storage management subsystem includes a metadata service configured to store a cryptographic hash for data that is to be written to a selected logical block address in the logical block device based on a given write request in a key-value store.

12 . The node of claim 6 , wherein the storage management subsystem includes a metadata service configured to overwrite a previously computed cryptographic hash associated with a selected block address in the logical block device with a new cryptographic hash.

13 . A non-transitory machine readable medium storing instructions, which when executed by one or more central processing unit resources of a distributed storage system, cause the distributed storage system to:

for a given node of a plurality of nodes of the distributed storage system:

reduce write latency associated with processing of write requests by co-locating a metadata object with a file system volume on the given node, wherein a first mapping, maintained by a data management subsystem of the given node, of the file system volume to a set of logical block addresses in a logical block device of a storage management subsystem of the given node enables the co-locating; and

maintain within the storage management subsystem of the given node a second mapping of the logical block device to the metadata object on the given node;

receive a write request at the data management subsystem;

identify by the data management subsystem, the file system volume on the given node to which the write request is directed based on a volume identifier associated with the write request; and

service the write request by utilizing, by the data management subsystem and the storage management subsystem the first mapping and the second mapping.

14 . The non-transitory machine readable medium of claim 13 , wherein co-location of the file system volume, the logical block device, and the metadata object on the given node reduces the write latency associated with the write request by enabling local metadata updates.

15 . The non-transitory machine readable medium of claim 13 , wherein the instructions further cause the distributed storage system to send, by the data management subsystem, a request that identifies a set of logical block addresses to which data from the write request is to be written in the logical block device over a local pathway to the storage management subsystem.

16 . The non-transitory machine readable medium of claim 13 , wherein the instructions further cause the distributed storage system to compute, by a metadata service in the storage management subsystem, a set of block identifiers based on a request received from the data management subsystem, the request identifying the set of logical block addresses to which data from the write request is to be written in the logical block device.

17 . The non-transitory machine readable medium of claim 13 , wherein the instructions further cause the distributed storage system to:

compute a cryptographic hash for a data block formed by file system data and file system metadata that is to be written in the logical block device based on the write request; and

store the cryptographic hash as a key within a key-value store and the data block as a value within the key-value store.

18 . The non-transitory machine readable medium of claim 13 , wherein servicing of the write request includes overwriting a logical block address in the logical block device and overwriting a previously computed cryptographic hash associated with a selected block address in the logical block device with a new cryptographic hash.

19 . The non-transitory machine readable medium of claim 13 , wherein the instructions further cause the distributed storage system to send a response to a source of the write request after metadata and data associated with the write request are stored in a logging storage device associated with the given node.

20 . The non-transitory machine readable medium of claim 13 , wherein the instructions further cause the distributed storage system to:

compute a block identifier for a data block corresponding to write data and write metadata associated with the write request; and

store the block identifier in a set of indirect nodes in a buffer tree within the data management subsystem.

Continuity (3)
Continuation 17449760 · Oct 1, 2021
Provisional Application 63197810 · Jun 7, 2021
Related Publication 20250068600A1 · Feb 27, 2025
References Cited (118)
US 7409511B2 · Edwards et al. · 2008 [cited by applicant]
US 7694191B1 · Bono et al. · 2010 [cited by applicant]
US 7958168B2 · Chen et al. · 2011 [cited by applicant]
US 7979402B1 · Hamilton et al. · 2011 [cited by applicant]
US 8086603B2 · Nasre et al. · 2011 [cited by applicant]
US 8671265B2 · Wright · 2014 [cited by applicant]
US 8903761B1 · Zayas et al. · 2014 [cited by applicant]
US 8903830B2 · Edwards · 2014 [cited by applicant]
US 9003021B2 · Wright et al. · 2015 [cited by applicant]
US 9407433B1 · Sohi et al. · 2016 [cited by applicant]
US 9846539B2 · Babu et al. · 2017 [cited by applicant]
US 10311019B1 · Vijendra et al. · 2019 [cited by applicant]
US 10459806B1 · He et al. · 2019 [cited by applicant]
US 10970259B1 · Bono et al. · 2021 [cited by applicant]
US 11341099B1 · Wolfson et al. · 2022 [cited by applicant]
US 11755627B1 · Puente et al. · 2023 [cited by applicant]
US 11868656B2 · Dronamraju et al. · 2024 [cited by applicant]
US 12001431B2 · Jaiswal et al. · 2024 [cited by applicant]
US 12038886B2 · Dronamraju et al. · 2024 [cited by applicant]
US 12045207B2 · Dronamraju et al. · 2024 [cited by applicant]
US 12079242B2 · Banerjee et al. · 2024 [cited by applicant]
US 12141104B2 · Subramanian · 2024 [cited by examiner]
US 12367184B2 · Dronamraju et al. · 2025 [cited by applicant]
US 20050114594A1 · Corbett et al. · 2005 [cited by applicant]
US 20070103984A1 · Kavuri et al. · 2007 [cited by applicant]
US 20080010325A1 · Yamakawa · 2008 [cited by applicant]
US 20110202705A1 · Hayashi et al. · 2011 [cited by applicant]
US 20120023385A1 · Scouarnec et al. · 2012 [cited by applicant]
US 20120036161A1 · Lacapra et al. · 2012 [cited by applicant]
US 20120310892A1 · Dam et al. · 2012 [cited by applicant]
US 20130227145A1 · Wright et al. · 2013 [cited by applicant]
US 20140237321A1 · Gold · 2014 [cited by applicant]
US 20150193168A1 · Sundaram et al. · 2015 [cited by applicant]
US 20150244795A1 · Cantwell et al. · 2015 [cited by applicant]
US 20160012117A1 · Dhavale et al. · 2016 [cited by applicant]
US 20160014073A1 · Reddy et al. · 2016 [cited by applicant]
US 20160048431A1 · Modukuri et al. · 2016 [cited by applicant]
US 20160188621A1 · Karinta et al. · 2016 [cited by applicant]
US 20160202935A1 · Hoch et al. · 2016 [cited by applicant]
US 20160350358A1 · Patel et al. · 2016 [cited by applicant]
US 20170026263A1 · Gell et al. · 2017 [cited by applicant]
US 20170169048A1 · Fathalla et al. · 2017 [cited by applicant]
US 20170212690A1 · Babu et al. · 2017 [cited by applicant]
US 20180314725A1 · Subramanian et al. · 2018 [cited by applicant]
US 20190147069A1 · Ben Dayan et al. · 2019 [cited by applicant]
US 20190384790A1 · Bequet et al. · 2019 [cited by applicant]
US 20200097404A1 · Cason · 2020 [cited by applicant]
US 20200117362A1 · McCarthy et al. · 2020 [cited by applicant]
US 20200117372A1 · Corey et al. · 2020 [cited by applicant]
US 20200136943A1 · Banyai et al. · 2020 [cited by applicant]
US 20210081292A1 · Jmt et al. · 2021 [cited by applicant]
US 20210124645A1 · Chinthekindi et al. · 2021 [cited by applicant]
US 20210133001A1 · Bono et al. · 2021 [cited by applicant]
US 20210349853A1 · Duttagupta et al. · 2021 [cited by applicant]
US 20210349859A1 · Bafna et al. · 2021 [cited by applicant]
US 20220391361A1 · Subramanian et al. · 2022 [cited by applicant]
US 20230367517A1 · Dronamraju et al. · 2023 [cited by applicant]
US 20230393787A1 · Dronamraju et al. · 2023 [cited by applicant]
US 20240036759A1 · Dailey et al. · 2024 [cited by applicant]
US 20240143233A1 · Dronamraju et al. · 2024 [cited by applicant]
US 20240370410A1 · Dronamraju · 2024 [cited by applicant]
US 20240427799A1 · Banerjee et al. · 2024 [cited by applicant]
US 20250013614A1 · Dronamraju et al. · 2025 [cited by applicant]
EP 1369772A2 · 2003 [cited by applicant]
WO 2020124608A1 · 2020 [cited by applicant]
WO WO2021050875A1 · 2021 [cited by examiner]
Anderson. Performance and Availability via Client-local NVM in a Distributed File System. Nov. 2020. Usenix. [cited by examiner]
Containers as a Service. Bring Data Rich Enterprise Applications to your Kubernetes Platform [online]. Portworx, Inc. 2021,8 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://portworx.com/container… [cited by applicant]
Containers vs. Microservices: What's The Difference? [online], BMC, 2021, 19 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.bmc.com/blogs/containers-vs-microservices/. [cited by applicant]
Docker vs Virtual Machines (VMs): A Practical Guide to Docker Containers and VMs [online], Jan. 16, 2020. Weaveworks, 2021, 8 pages, [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.weave.works/blog… [cited by applicant]
Extended European Search Report for Application No. EP22177676 mailed on Nov. 10, 2022, 10 pages. [cited by applicant]
GitHub., “Stork—Storage Orchestration Runtime for Kubernetes,” Libopenstorage/Stork, 2022, pp. 1-14. Retrieved from the Internet: https://github.com/libopenstorage/stork. [cited by applicant]
Joshi A., “From there to here, from here to there, Containers are Everywhere!,” Dec. 16, 2020 [online], Nutanix. Dev, 2021, 14 pages. [Retrieved on Nov. 9, 2021], Retrieved from the Internet: URL: https://www.nutanix.de… [cited by applicant]
Karbon Kubernetes Orchestration. Management Made Simple, [online], Nutanix, 2021, 12 pages [Retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.nutanix.com/products/karbon. [cited by applicant]
Kralj M., “How to Orchestrate the Modern Cloud with Kubernetes,” Jul. 2020, Software Engineering Blog, Retrieved from the Internet at: https://www.accenture.com/us-en/blogs/software-engineering-blog/kralj-orchestrate-mo… [cited by applicant]
Kubernetes., “Production-Grade Container Orchestration,” 2021, 6 pages. Retrieved from the Internet: [https://www.kubernetes.io/]. [cited by applicant]
NetApp SolidFire Element OS User Guide for Element OS Version 10.0, Sep. 2017, 215-12504_A0, 160 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 7, 2023 for U.S. Appl. No. 17/449,760, filed Oct. 1, 2021, 10 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 15, 2023 for U.S. Appl. No. 17/449,753, filed Oct. 1, 2021, 8 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 30, 2023 for U.S. Appl. No. 18/047,774, filed Oct. 19, 2022, 8 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 8, 2024 for U.S. Appl. No. 18/359,192, filed Jul. 26, 2023, 08 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 24, 2024 for U.S. Appl. No. 18/047,774, filed Oct. 19, 2022, 09 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 31, 2023 for U.S. Appl. No. 17/449,753, filed Oct. 1, 2021, 7 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 5, 2024 for U.S. Appl. No. 17/449,760, filed Oct. 1, 2021, 08 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2024 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 08 pages. [cited by applicant]
Notice of Allowance mailed on Nov. 8, 2023 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 8 pages. [cited by applicant]
ONTAP 9, Concepts, Jun. 2021,215-11959_2021-06_en-us, 38 pages. [cited by applicant]
ONTAP 9, Disks and Aggregates Power Guide, Jul. 2021,215-11204_2021-07_en-us, 54 pages. [cited by applicant]
ONTAP 9, Replication between NetApp Element Software and ONTAP, May 2021, 215-12645_2021-05_en-us, 23 pages. [cited by applicant]
ONTAP 9, System Administration Reference, Jul. 2021, 15-11148_2021-07_en-us, 150 pages. [cited by applicant]
Pods [online], Kubernetes, 2021, 6 pages [retrieved on Nov. 9, 2011], Retrieved from the Internet: https://kubernetes.io/docs/concepts/workloads/pods/. [cited by applicant]
Portworx Data Services, the Complete Solution for Deploying Production-Grade Data Services on Kubernetes. [online], Portworx, Inc. 2021,5 pages. [Retrieved on Nov. 9, 2021], Retrieved from the Internet: https://portworx… [cited by applicant]
Portworx Enterprise is the Complete Kubernetes Storage Platform Trusted in Production by the Global 2000 [online], Portworx, Inc. 2021, 10 pages [Retrieved on Nov. 9, 2021], Retrieved from the Internet: https://portworx… [cited by applicant]
Portworx., “Guarantee Your Cloud Native Success with the Portworx Data Services Platform for Kubernetes,” Pure Storage, 2 pages. Retrieved from the Internet: https://portworx.com/platform/. [cited by applicant]
Portworx., “Portworx Releases STORK, An Open-Source Kubernetes Scheduler Extender to Add Additional Capabilities for Stateful Applications in Production,” GlobeNewswire, 2018, pp. 1-6. Retrieved from the Internet: https… [cited by applicant]
Portwrox., “Introducing STORK: Intelligent Storage Orchestration for Kubernetes,” STORK, 2018, pp. 1-10. Retrieved from the Internet: https://portworx.com/blog/stork-storage-orchestration-kubernetes/. [cited by applicant]
Restriction Requirement mailed Jun. 16, 2023 for U.S. Appl. No. 17/449,758, filed Oct. 1, 2021, 6 pages. [cited by applicant]
Sanglaji M., et al., “Nutanix Karbon: Enterprise-grade Kubernetes Solution,” Nov. 28, 2018, 5 pages [online], [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.nutanix.com/blog/nutanix-karbon-enterpr… [cited by applicant]
Screen Captures from YouTube Video Clip Entitled “Pure Storage Portworx Deep Dive,” 5 pages, Uploaded on Nov. 6, 2020 by User “Tech Field Day”. Retrieved from the Internet: https://www.youtube.com/watch?v=WTC198RAbZg. [cited by applicant]
Software Defined Storage (SDS) Solutions, [online]. Trustradius, 2021, 14 pages [Retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.trustradius.com/software-defined-storage-sds. [cited by applicant]
Software-defined Storage, [online] IBM, 2021, 12 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.IBM.com/it-infrastructure. [cited by applicant]
Solution Brief. Easily Operate a Database-as-a-Service Platform, [online], Portworx, Inc. 2021, 2 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://portworx.com/wp-content/uploads/2021/09/pds-solut… [cited by applicant]
Tanase C.D., “Portworx—Brief Introduction—k8s Persistent Storage, Mobility, Backup, DR Made Easier,” Backup and Restore of Kubernetes Containers, 2021, pp. 1-5. Retrieved from the Internet: https://www.linkedin.com/puls… [cited by applicant]
Vast., “Universal Storage Explained,” An E-White Paper, Feb. 12, 2024, 222 pages. [cited by applicant]
Weil S.A., et al., Ceph: A Scalable, High-performance Distributed File System. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI '06), USENIX Association, USA, 2006, pp. 307-320. [cited by applicant]
What Is Container Orchestration, Exactly? Everything to Know [online], LaunchDarkly, Apr. 28, 2021, 8 pages. [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://launchdarkly.com/blog/what-is-container-orch… [cited by applicant]
What is Container Orchestration? [online], CapitalOne, 2021, 8 pages [retrieved on Nov. 9, 2021], Retrieved from the Internet: https://www.capitalone.com/tech/cloud/what-is-container-orchestration/. [cited by applicant]
Non Final Office Action mailed on Mar. 4, 2025 for U.S. Appl. No. 18/359,188, filed Jul. 26, 2023, 34 pages. [cited by applicant]
Non Final Office Action mailed on May 19, 2025 for U.S. Appl. No. 18/780,353, filed Jul. 22, 2024, 12 pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 9, 2025 for U.S. Appl. No. 18/406,515, filed Jan. 8, 2024, 07 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 21, 2025 for U.S. Appl. No. 18/773,483, filed Jul. 15, 2024, 06 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 28, 2025 for U.S. Appl. No. 18/773,483, filed Jul. 15, 2024, 09 pages. [cited by applicant]
Non-Final Office Action mailed on Jan. 30, 2025 for U.S. Appl. No. 18/452,814, filed Aug. 21, 2023, 10 pages. [cited by applicant]
Hu Y., et al., “NCScale: Toward Optimal Storage Scaling via Network Coding,” IEEE/ACM Transactions on Networking, 2022, vol. 30, pp. 271-284. [cited by applicant]
Non-Final Office Action mailed on Aug. 4, 2025 for U.S. Appl. No. 18/820,543, filed Oct. 16, 2024, 12 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 4, 2025 for U.S. Appl. No. 18/406,515, filed Jan. 8, 2024, 08 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 7, 2025 for U.S. Appl. No. 18/452,814, filed Aug. 21, 2023, 08 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 23, 2025 for U.S. Appl. No. 18/780,353, filed Jul. 22, 2024, 09 pages. [cited by applicant]