IP Library Granted Patent US 12,596,682
Granted Patent B2
US 12,596,682 · App. 18/351,876 · Granted Apr 7, 2026

System and method for object store federation

Inventors: Mayur Vijay Sadavarte (Sunnyvale, CA); Anoop Kandi Reddy (San Jose, CA); Dheer Moghe (Bangalore, IN); Fnu Sadhana Kannan (Sunnyvale, CA); Sarthak Moorjani (Bangalore, IN); Chinmay Dinesh Kamat (San Jose, CA); Karan Gupta (San Jose, CA)
Assignee: Nutanix, Inc.
G06F16/164G06F9/547G06F16/1844
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,596,682
App. No.
18/351,876
Filed
Jul 13, 2023
Granted
Apr 7, 2026
Kind
B2
Art Unit
2168
USPC
707/822
Abstract

In some aspects, an apparatus includes a processor and a memory. The memory can include programmed instructions that, when executed by the processor, cause the apparatus to receive a request to create a bucket. The memory can also include programmed instructions that, when executed by the processor, cause the apparatus to, in response to receiving the request to create the bucket, write, to a first object store, a first mapping that maps an identifier of global metadata to an identifier of a second object store where the bucket is to be created, write, to the second object store, a second mapping that maps the identifier of global metadata to local metadata, and replicate, to the second object store, the first mapping.

Claims (50)

1 . An apparatus comprising a processor and a memory, the memory having programmed instructions that, when executed by the processor, cause the apparatus to:

receive a request to create a bucket in an object store federation including a plurality of object stores including a first object store and a second object store; and

in response to receiving the request to create the bucket:

create global metadata for the bucket to be created, wherein the global metadata is part of a global namespace for the object store federation;

write, to the first object store, a first mapping that maps the global metadata to the second object store where the bucket is to be created, wherein the first object store includes a first local namespace and the second object store includes a second local namespace;

create the bucket in the second object store;

create local metadata of the bucket in the second object store, wherein the local metadata is part of the local namespace of the second object store;

write, to the second object store, a second mapping that maps the global metadata to the local metadata;

replicate, to the second object store, the first mapping of the global metadata to the second object store; and

update the global metadata to indicate that the bucket is created in the second object store.

2 . The apparatus of claim 1 , the memory having the programmed instructions that, when executed by the processor, further cause the apparatus to:

receive a request to provide a list of buckets that are created within the first object store or the second object store; and

spawn remote procedure calls to each of the first object store and the second object store to provide a list of buckets of the respective object store.

3 . The apparatus of claim 1 , wherein the first mapping is replicated using a consensus protocol.

4 . The apparatus of claim 1 , wherein the first mapping is replicated at an application level or a virtual node level.

5 . The apparatus of claim 1 , wherein the first object store includes a first tenant and the second object store includes a second tenant.

6 . A non-transitory computer readable storage medium comprising instructions stored thereon that, when executed by a processor, cause the processor to:

receive a request to create a bucket in an object store federation including a plurality of object stores including a first object store and a second object store; and

in response to receiving the request to create the bucket:

create global metadata for the bucket to be created, wherein the global metadata is part of a global namespace for the object store federation;

write, to the first object store, a first mapping that maps an identifier of global metadata to the second object store where the bucket is to be created, wherein the first object store includes a first local namespace and the second object store includes a second local namespace;

create the bucket in the second object store;

create local metadata of the bucket in the second object store, wherein the local metadata is part of the local namespace of the second object store;

write, to the second object store, a second mapping that maps the identifier of global metadata to local metadata;

replicate, to the second object store, the first mapping of the global metadata to the second object store; and

update the global metadata to indicate that the bucket is created in the second object store.

7 . The non-transitory computer readable storage medium of claim 6 , comprising the instructions that, when executed by the processor, further cause the processor to:

receive a request to provide a list of buckets that are created within the first object store or the second object store; and

spawn remote procedure calls to each of the first object store and the second object store to provide a list of buckets of the respective object store.

8 . The non-transitory computer readable storage medium of claim 6 , wherein the first mapping is replicated using a consensus protocol.

9 . The non-transitory computer readable storage medium of claim 6 , wherein the first mapping is replicated at an application level or a virtual node level.

10 . The non-transitory computer readable storage medium of claim 6 , wherein the first object store includes a first tenant and the second object store includes a second tenant.

11 . A computer-implemented method comprising:

receiving, by a processor, a request to create a bucket in an object store federation including a plurality of object stores including a first object store and a second object store; and

in response to receiving the request to create the bucket:

creating, by the processor, global metadata for the bucket to be created, wherein the global metadata is part of a global namespace for the object store federation;

writing, by the processor, to the first object store, a first mapping that maps the global metadata to the second object store where the bucket is to be created, wherein the first object store includes a first local namespace and the second object store includes a second local namespace;

creating, by the processor, the bucket in the second object store;

creating, by the processor, local metadata of the bucket in the second object store, wherein the local metadata is part of the local namespace of the second object store;

writing, by the processor, to the second object store, a second mapping that maps the identifier of global metadata to local metadata;

replicating, by the processor, to the second object store, the first mapping of the global metadata to the second object store; and

updating, by the processor, the global metadata to indicate that the bucket is created in the second object store.

12 . The computer-implemented method of claim 11 , further comprising:

receiving, by the processor, a request to provide a list of buckets that are created within the first object store or the second object store; and

spawning, by the processor, remote procedure calls to each of the first object store and the second object store to provide a list of buckets of the respective object store.

13 . The computer-implemented method of claim 11 , wherein the first mapping is replicated using a consensus protocol.

14 . The computer-implemented method of claim 11 , wherein the first mapping is replicated at an application level or a virtual node level.

15 . The apparatus of claim 3 , wherein the instructions cause the apparatus to write the first mapping to a set of object stores using the consensus protocol, wherein the set of object stores comprises core members that run a distributed consensus service to provide fault tolerance.

16 . The non-transitory computer readable storage medium of claim 8 , wherein the instructions cause the processor to write the first mapping to a set of object stores using the consensus protocol, wherein the set of object stores comprises core members that run a distributed consensus service to provide fault tolerance.

17 . The computer-implemented method of claim 13 , further comprising replicating the first mapping to a set of object stores using the consensus protocol, wherein the set of object stores comprises core members that run a distributed consensus service to provide fault tolerance.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2023
From: SADAVARTE, MAYUR VIJAY; REDDY, ANOOP KANDI; MOGHE, DHEER; SADHANA KANNAN, FNU; MOORJANI, SARTHAK; KAMAT, CHINMAY DINESH; GUPTA, KARAN
To: NUTANIX, INC.
Reel/Frame 064358/0843 →
Priority Claims (1)
IN 202241052049 · Sep 12, 2022 · national
Continuity (1)
Related Publication 20240086368A1 · Mar 14, 2024
References Cited (43)
US 7653668B1 · Shelat et al. · 2010 [cited by applicant]
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 8863124B1 · Aron · 2014 [cited by applicant]
US 9009106B1 · Aron et al. · 2015 [cited by applicant]
US 9069708B2 · Gill et al. · 2015 [cited by applicant]
US 9336132B1 · Aron et al. · 2016 [cited by applicant]
US 9652265B1 · Narayanasamy et al. · 2017 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 12216549B2 · Yadav et al. · 2025 [cited by applicant]
US 12321908B2 · Annamalai et al. · 2025 [cited by applicant]
US 20080154987A1 · Kottomtharayil et al. · 2008 [cited by applicant]
US 20160292193A1 · Madanapalli et al. · 2016 [cited by applicant]
US 20170277872A1 · Mercury et al. · 2017 [cited by applicant]
US 20170279614A1 · Mercury et al. · 2017 [cited by applicant]
US 20200151114A1 · McHugh · 2020 [cited by examiner]
US 20210034760A1 · Banga · 2021 [cited by applicant]
US 20210397611A1 · Boutros et al. · 2021 [cited by applicant]
US 20220035769A1 · Bao · 2022 [cited by examiner]
US 20220138279A1 · Lepeska et al. · 2022 [cited by applicant]
US 20220210129A1 · Brett et al. · 2022 [cited by applicant]
US 20220269418A1 · Black · 2022 [cited by examiner]
Cano, Ignacio, et al. “Curator: Self-Managing Storage for Enterprise Clusters” (Mar. 27, 2017), from https://www.usenix.org/conference/nsdi17/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 17, 2019), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Google Cloud. “Bucket locations” Cloud Storage. Dec. 8, 2022. Retrieved from https://cloud.google.com/storage/docs/locations (accessed Oct. 13, 2023). [cited by applicant]
IBM. “Configuring the initial object store data sources by using the graphical user interface” FileNet P8 Platform. Dec. 16, 2022. Retrieved from https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=ccpeibugui-co… [cited by applicant]
IBM. “Creating the initial object store” FileNet P8 Platform. Dec. 16, 2022. Retrieved from https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=engine-creating-initial-object-store (accessed Oct. 13, 2023). [cited by applicant]
IBM. “Federating content” FileNet P8 Platform. Feb. 9, 2023. Retrieved from https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=infrastructure-federating-content (accessed Oct. 13, 2023). [cited by applicant]
IBM. “Getting started with IBM Cloud Object Storage” Product Guide Object Storage. Jan. 19, 2022. Retrieved from https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-st… [cited by applicant]
IBM. “Request forwarding” FileNet P8 Platform. Feb. 9, 2023. Retrieved from https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=infrastructure-request-forwarding (accessed Oct. 13, 2023). [cited by applicant]
Oracle. “Configure Object Storage cross-region replication for Disaster Recovery” Help Center. Oct. 12, 2022. Retrieved from https://docs.oracle.com/en/learn/object-replication-for-dr/index.html (accessed Oct. 13, 2023). [cited by applicant]
Oracle. “Object Storage” Oracle Cloud Infrastructure (OCI). Mar. 8, 2022. Retrieved from https://www.oracle.com/cloud/storage/object-storage/ (accessed Oct. 13, 2023). [cited by applicant]
Red Hat. “Chapter 3. Configuring Quay before deployment” Red Hat Customer Portal. Mar. 24, 2023. Retrieved from https://access.redhat. com/documentation/en-us/red_hat_quay/3.6/html/deploy_red_hat_quay_on_openshift_with_… [cited by applicant]
Red Hat. “Chapter 6. Content distribution with Red Hat Quay” Red Hat Customer Portal. Aug. 18, 2023. Retrieved from https://access.redhat.com/documentation/en-us/red_hat_quay/3.9/html/red_hat_quay_architecture/content-d… [cited by applicant]
Red Hat. “Chapter 9. Federated Object Gateway” Red Hat Customer Portal. Jul. 19, 2019. Retrieved from https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/1.3/html/object_gateway_guide_for_red_hat_enterpri… [cited by applicant]
Red Hat. “Manage Red Hat Quay” Red Hat Customer Portal. Jul. 15, 2019. Retrieved from https://access.redhat.com/documentation/en-us/red_hat_quay/3/html-single/manage_red_hat_quay/index (accessed Oct. 13, 2023). [cited by applicant]
Red Hat. “Use Red Hat Quay” Red Hat Customer Portal. Jan. 19, 2022. Retrieved from https://access.redhat.com/documentation/en-us/red_hat_quay/3.5/html-single/use_red_hat_quay/index (accessed Oct. 13, 2023). [cited by applicant]