IP Library › Granted Patent US 12,730,576
Granted Patent B2
US 12,730,576 · App. 18/497,932 · Granted Sep 8, 2026

Inter-cloud shared content data management

Inventors: Chaitanya Sudhir Karlekar (San Ramon, CA); Ajaykrishna Raghavan (Santa Clara, CA); Aman Nijhawan (Seattle, WA); Mohammed Asif (San Jose, CA)
Assignee: Nutanix, Inc.
G06F3/0641G06F3/0604G06F3/0634G06F3/067
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,730,576
App. No.
18/497,932
Filed
Oct 30, 2023
Granted
Sep 8, 2026
Kind
B2
Art Unit
2137
USPC
711/154
Abstract

Methods, systems, and computer program products for multi-cloud shared data management. A first storage facility on a first cloud is established and a second storage facility on a second cloud established. The first cloud and the second cloud comprise at least respective first deduplication metadata and second deduplication metadata. In response to receipt of a request to store a content object comprising at least one candidate deduplication chunk, an inter-cloud deduplication protocol is initiated. The inter-cloud deduplication protocol determines whether or not a candidate deduplication chunk of a data item is already stored at either the first cloud or the second cloud. In the event that the candidate deduplication chunk of the data item deemed to have been already stored then, rather than storing a further copy of the bit sequence corresponding to the candidate deduplication chunk, instead, merely referring to the location of the already stored candidate deduplication chunk.

Claims (50)

1 . A non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a processor cause the processor to perform acts comprising:

receiving a request to store a content object on a first storage facility on a first cloud of a data warehouse spanning the first storage facility on the first cloud and a second storage facility on a second cloud, wherein the first cloud comprises at least a first controller, the first storage facility, and first deduplication metadata, the request to store the content object is received by the first controller, the content object comprises at least one candidate deduplication chunk. and the second cloud comprises at least a second controller, the second storage facility, and second deduplication metadata;

responsive to receipt of the request to store the content object comprising the at least one candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a first message to the second controller on the second cloud as part of an inter-cloud deduplication protocol, wherein the inter-cloud deduplication protocol exchanges one or more messages between the first controller on the first cloud and the second controller on the second cloud to determine whether a candidate deduplication chunk of a data item is already stored in the second storage facility on the second cloud;

receiving, at the first controller on the first cloud, a second message from the second controller on the second cloud as part of the inter-cloud deduplication protocol, wherein the second message indicates that the candidate deduplication chunk of the data item is already stored in the second storage facility on the second cloud; and

storing, by the first controller on the first cloud, a reference to a second location at the second public cloud as an already stored location of a bit sequence corresponding to the candidate deduplication chunk in response to the second message from the second controller on the second cloud.

2 . The non-transitory computer readable medium of claim 1 , wherein the acts further comprise:

responsive to receipt of a request at the first controller to store a second content object comprising at least one second candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a third message to the second controller on the second cloud as part of the inter-cloud deduplication protocol to determine whether a second candidate deduplication chunk of a second data item is already stored in the second storage facility on the second public cloud; and

wherein a fourth message is sent to a third controller to determine whether the second candidate deduplication chunk of the second data item is already stored in a third storage facility on the third cloud, the data warehouse further spans the third storage facility on the third cloud, the third cloud comprises at least a third controller, the third storage facility, and third deduplication metadata.

3 . The non-transitory computer readable medium of claim 2 , wherein the fourth message is sent to the third controller on the third cloud by the second controller on the second cloud.

4 . The non-transitory computer readable medium of claim 2 , wherein the fourth message is sent to the third controller on the third cloud using a protocol different from the inter-cloud deduplication protocol.

5 . The non-transitory computer readable medium of claim 1 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of generating a map entry in data item metadata to map a data unit to a physical storage location, wherein the data unit is a deduplicated data unit in deduplication metadata, the data item metadata and the deduplication metadata are different data structures, and the data item metadata and the deduplication metadata are distributed over a plurality of computing nodes.

6 . The non-transitory computer readable medium of claim 5 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of performing a scan of the data item metadata for the data unit, wherein an in-use state is set in the deduplication metadata for the data unit when the map entry is detected for the data unit in the data item metadata, a not-in-use state and a deletion state are set for the data unit in the deduplication metadata when the map entry is not detected in the data item metadata for the data unit, and the data unit is deleted from the physical storage location based at least in part on a result of the scan when the data unit is determined to correspond to the not-in-use state and the deletion state.

7 . The non-transitory computer readable medium of claim 1 , wherein deduplication of the candidate deduplication chunk of a data item is managed without implementing a reference count value of the candidate deduplication chunk and the first storage facility on the first cloud and the second storage facility on the second cloud are blob storage facilities.

8 . The non-transitory computer readable medium of claim 1 , wherein the data warehouse was created using a graphical user interface having at least a first field for identifying the first cloud, a second field for identifying the second cloud, and a third field for identifying a plug-in for implementing the inter-cloud deduplication protocol.

9 . A method comprising:

receiving a request to store a content object on a first storage facility on a first cloud of a data warehouse spanning the first storage facility on the first cloud and a second storage facility on a second cloud, wherein the first cloud comprises at least a first controller, the first storage facility, and first deduplication metadata, the request to store the content object is received by the first controller, the content object comprises at least one candidate deduplication chunk, and the second cloud comprises at least a second controller, the second storage facility, and second deduplication metadata;

responsive to receipt of the request to store the content object comprising the at least one candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a first message to the second controller on the second cloud as part of an inter-cloud deduplication protocol, wherein the inter-cloud deduplication protocol exchanges one or more messages between the first controller on the first cloud and the second controller on the second cloud to determine whether a candidate deduplication chunk of a data item is already stored in the second storage facility on the second cloud;

receiving, at the first controller on the first cloud, a second message from the second controller on the second cloud as part of the inter-cloud deduplication protocol, wherein the second message indicates that the candidate deduplication chunk of the data item is already stored in the second storage facility on the second cloud; and

storing, by the first controller on the first cloud, a reference to a second location at the second cloud as an already stored location of a bit sequence corresponding to the candidate deduplication chunk in response to the second message from the second controller on the second cloud.

10 . The method of claim 9 , further comprising:

responsive to receipt of a request at the first controller to store a second content object comprising at least one second candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a third message to the second controller on the second cloud as part of the inter-cloud deduplication protocol to determine whether a second candidate deduplication chunk of a second data item is already stored in the second storage facility on the second cloud; and

wherein a fourth message is sent to a third controller on a third cloud to determine whether the second candidate deduplication chunk of the second data item is already stored in a third storage facility on the third cloud, the data warehouse further spans the third storage facility on the third cloud, the third cloud comprises at least a third controller, the third storage facility, and third deduplication metadata.

11 . The method of claim 10 , wherein the fourth message is sent to the third controller on the third cloud by the second controller on the second cloud.

12 . The method of claim 10 , wherein the fourth message is sent to the third controller on the third cloud using a protocol different from the inter-cloud deduplication protocol.

13 . The method of claim 9 , further comprising generating a map entry in data item metadata to map a data unit to a physical storage location, wherein the data unit is a deduplicated data unit in deduplication metadata, and wherein the data item metadata and the deduplication metadata are different data structures, and the data item metadata and the deduplication metadata are distributed over a plurality of computing nodes.

14 . The method of claim 13 , further comprising performing a scan of the data item metadata for the data unit, wherein an in-use state is set in the deduplication metadata for the data unit when the map entry is detected for the data unit in the data item metadata, a not-in-use state and a deletion state are set for the data unit in the deduplication metadata when the map entry is not detected in the data item metadata for the data unit, and the data unit is deleted from the physical storage location based at least in part on a result of the scan when the data unit is determined to correspond to the not-in-use state and the deletion state.

15 . The method of claim 9 , wherein deduplication of the candidate deduplication chunk of a data item is managed without implementing a reference count value of the candidate deduplication chunk and the first storage facility on the first cloud and the second storage facility on the second cloud are blob storage facilities.

16 . The method of claim 9 , wherein the data warehouse was created using a graphical user interface having at least a first field for identifying the first cloud, a second field for identifying the second cloud, and a third field for identifying a plug-in for implementing the inter-cloud deduplication protocol.

17 . A system comprising:

a storage medium having stored thereon a sequence of instructions; and

a processor that executes the sequence of instructions to cause the processor to perform acts comprising,

receiving a request to store a content object on a first storage facility on a first cloud of a data warehouse spanning the first storage facility on the first cloud and a second storage facility on a second cloud, wherein the first cloud comprises at least a first controller, the first storage facility, and first deduplication metadata, the request to store the content object is received by the first controller, the content object comprises at least one candidate deduplication chunk, and the second cloud comprises at least a second controller, the second storage facility, and second deduplication metadata;

responsive to receipt of the request to store the content object comprising the at least one candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a first message to the second controller on the second cloud as part of initiating an inter-cloud deduplication protocol, wherein the inter-cloud deduplication protocol exchanges one or more messages between the first controller on the first public cloud and the second controller the second storage facility on the second publie-cloud to determine whether a candidate deduplication chunk of a data item is already stored in the second storage facility on the second cloud;

receiving, at the first controller on the first cloud, a second message from the second controller on the second cloud as part of the inter-cloud deduplication protocol, wherein the second message indicates that the candidate deduplication chunk of the data item is already stored in the second storage facility on the second cloud; and

storing, by the first controller on the first cloud, a reference to a second location at the second publie-cloud as an already stored location of a bit sequence corresponding to the candidate deduplication chunk in response to the second message from the second controller on the second cloud.

18 . The system of claim 17 , wherein the acts further comprise:

responsive to receipt of a request at the first controller to store a second content object comprising at least one second candidate deduplication chunk:

transmitting, by the first controller on the first cloud, a third message to the second controller on the second cloud as part of the inter-cloud deduplication protocol to determine whether a second candidate deduplication chunk of a second data item is already stored in the second storage facility on the second cloud; and

wherein a fourth message is sent to a third controller on a third cloud to determine whether the second candidate deduplication chunk of the second data item is already stored in a third storage facility on the third cloud, the data warehouse further spans the third storage facility on the third cloud, the third cloud comprises at least a third controller, the third storage facility, and third deduplication metadata.

19 . The system of claim 18 , wherein the fourth message is sent to the third controller on the third cloud by the second controller on the second cloud.

20 . The system of claim 18 , wherein the fourth message is sent to the third controller on the third cloud using a protocol different from the inter-cloud deduplication protocol.

21 . The system of claim 17 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of generating a map entry in data item metadata to map a data unit to a physical storage location, wherein the data unit is a deduplicated data unit in deduplication metadata, and wherein the data item metadata and the deduplication metadata are different data structures, and the data item metadata and the deduplication metadata are distributed over a plurality of computing nodes.

22 . The system of claim 21 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of performing a scan of the data item metadata for the data unit, wherein an in-use state is set in the deduplication metadata for the data unit when the map entry is detected for the data unit in the data item metadata, a not-in-use state and a deletion state are set for the data unit in the deduplication metadata when the map entry is not detected in the data item metadata for the data unit, and the data unit is deleted from the physical storage location based at least in part on a result of the scan when the data unit is determined to correspond to the not-in-use state and the deletion state.

23 . The system of claim 17 , wherein deduplication of the candidate deduplication chunk of a data item is managed without implementing a reference count value of the candidate deduplication chunk and the first storage facility on the first cloud and the second storage facility on the second cloud are blob storage facilities.

24 . The system of claim 17 , wherein the data warehouse was created using a graphical user interface having at least a first field for identifying the first cloud, a second field for identifying the second cloud, and a third field for identifying a plug-in for implementing the inter-cloud deduplication protocol.

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 Oct 30, 2023
From: KARLEKAR, CHAITANYA SUDHIR; RAGHAVAN, AJAYKRISHNA; NIJHAWAN, AMAN; ASIF, MOHAMMED
To: NUTANIX, INC.
Reel/Frame 065396/0720 →
Continuity (1)
Related Publication 20250138740A1 · May 1, 2025
References Cited (90)
US 5812773A · Norin · 1998 [cited by applicant]
US 7003560B1 · Mullen · 2006 [cited by examiner]
US 7039008B1 · Howes et al. · 2006 [cited by applicant]
US 8396841B1 · Janakiraman · 2013 [cited by examiner]
US 8527544B1 · Hayes et al. · 2013 [cited by applicant]
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8577850B1 · Genda · 2013 [cited by examiner]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8849767B1 · Zheng et al. · 2014 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 8863124B1 · Aron · 2014 [cited by applicant]
US 8904120B1 · Killamsetti et al. · 2014 [cited by applicant]
US 8997097B1 · Aron et al. · 2015 [cited by applicant]
US 9009106B1 · Aron et al. · 2015 [cited by applicant]
US 9052936B1 · Aron et al. · 2015 [cited by applicant]
US 9122641B1 · Gunda · 2015 [cited by examiner]
US 9128626B2 · Chacko · 2015 [cited by applicant]
US 9256374B1 · Aron et al. · 2016 [cited by applicant]
US 9256456B1 · Aron · 2016 [cited by applicant]
US 9256475B1 · Aron et al. · 2016 [cited by applicant]
US 9354912B1 · Aron et al. · 2016 [cited by applicant]
US 9389887B1 · Aron et al. · 2016 [cited by applicant]
US 9424267B2 · Bagal et al. · 2016 [cited by applicant]
US 9575784B1 · Aron et al. · 2017 [cited by applicant]
US 9619257B1 · Aron et al. · 2017 [cited by applicant]
US 9652265B1 · Narayanasamy et al. · 2017 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 9805054B2 · Davis et al. · 2017 [cited by applicant]
US 10613761B1 · Zhao · 2020 [cited by examiner]
US 10635639B2 · Khot et al. · 2020 [cited by applicant]
US 10700991B2 · Khinvasara et al. · 2020 [cited by applicant]
US 11164115B1 · Todd et al. · 2021 [cited by applicant]
US 20080097991A1 · Ishikawa et al. · 2008 [cited by applicant]
US 20090271402A1 · Srinivasan et al. · 2009 [cited by applicant]
US 20100333116A1 · Prahlad · 2010 [cited by examiner]
US 20110055471A1 · Thatcher et al. · 2011 [cited by applicant]
US 20110191522A1 · Condict et al. · 2011 [cited by applicant]
US 20130091102A1 · Nayak · 2013 [cited by applicant]
US 20130339319A1 · Woodward et al. · 2013 [cited by applicant]
US 20140006363A1 · Constantinescu et al. · 2014 [cited by applicant]
US 20140143213A1 · Tal et al. · 2014 [cited by applicant]
US 20150142749A1 · Broll et al. · 2015 [cited by applicant]
US 20160070652A1 · Sundararaman et al. · 2016 [cited by applicant]
US 20160321290A1 · Luthra et al. · 2016 [cited by applicant]
US 20170039218A1 · Prahlad et al. · 2017 [cited by applicant]
US 20170228247A1 · Aron et al. · 2017 [cited by applicant]
US 20180081821A1 · Beaverson et al. · 2018 [cited by applicant]
US 20190245918A1 · Xu · 2019 [cited by examiner]
US 20200026781A1 · Khot · 2020 [cited by examiner]
US 20200034451A1 · Danilov et al. · 2020 [cited by applicant]
US 20200133544A1 · Slater · 2020 [cited by examiner]
US 20220083250A1 · Gupta · 2022 [cited by examiner]
US 20240045839A1 · Haggerty et al. · 2024 [cited by applicant]
US 20240289345A1 · Kotni et al. · 2024 [cited by applicant]
US 20250252101A1 · Shah et al. · 2025 [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” (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” (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]
Poitras, Steven. “The Nutanix Bible” (Sep. 4, 2015), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 12, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 8, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 25, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 8, 2019), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jul. 9, 2019), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Feb. 3, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Aug. 1, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 30, 2021), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 9, 2022), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Cano, I. et al., “Curator: Self-Managing Storage for Enterprise Clusters”, [cited by applicant]
“Citrix XenDesktop 7.1 on Microsoft Hyper-V Server 2012 R2 on Nutanix Virtual Computing Platform—Solution Design,” Citrix Validated Solutions, Prepared by: Citrix APAC Solutions, dated Jun. 25, 2014. [cited by applicant]
Li, M., et al., “CDStore: Toward Reliable, Secure, and Cost-Efficient Cloud Storage via Convergent Dispersal,” dated 2015, USENIX Annual Technical Conference. [cited by applicant]
Naresh, V., et al., “Content based Hash Indexing Approach to Handle Data Deduplication over Cloud Data,” International Journal of Advances in Engineering and Management (IJAEM) vol. 4, Issue Jun. 6, 2022, pp. 879-885. [cited by applicant]
Abu-Libdeh, H., et al., “RACS: A Case for Cloud Storage Diversity,” SoCC'10, Jun. 10-11, 2010, Indianapolis, Indiana, USA. Copyright 2010 ACM 978-1-4503-0036-0/10/06. [cited by applicant]
Papaioannou, T., et al., “Scalia: An Adaptive Scheme for Efficient Multi-Cloud Storage,” SC12, Nov. 10-16, 2012, Salt Lake City, Utah, USA 978-1-4673-0806-9. [cited by applicant]
Lalitha, B. et al., “Implementing deduplication technique for RDF files with enhanced security using multi cloud servers,” 2017 International Conference on Energy, Communication, Data Analytics and Soft Computing (ICECD… [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Apr. 27, 2023), from https://www.nutanixbible.com/pdf/classic.pdf (Publication date based on updated doc publication date; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (May 21, 2024), from https://www.nutanixbible.com/pdf/classic.pdf (Publication date based on updated doc publication date; first publication date unknown). [cited by applicant]
Wikipedia. “Data deduplication”. Mar. 11, 2017. 6 pages. [cited by applicant]
Wikipedia. “Reference counting”. Feb. 7, 2017. 9 pages. [cited by applicant]
U.S. Appl. No. 15/071,488, filed Mar. 16, 2016. 46 pages. [cited by applicant]
U.S. Appl. No. 13/207,375, filed Aug. 10, 2011. 45 pages. [cited by applicant]
Kotla, R., et al., “SafeStore: A Durable and Practical Storage System,” dated Jun. 2007, USENIX Annual, USENIX Association Technical Conference. [cited by applicant]
Fu, Y., et al., “Distributed Data Deduplication for Big Data: A Survey,” ACM Comput. Surv., vol. 58, No. 3, Article 66. Publication date: Sep. 2025. [cited by applicant]
Sirenko, A., “CreateVolume (StorageClass) Parameters,” github, URL: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md, dated May 14, 2025. [cited by applicant]
Amin, S., et al., “Best practices for Amazon RDS for SQL Server with Amazon EBS io2 Block Express volumes up to 64 TiB,” AWS Database Blog, URL: https://aws.amazon.com/blogs/database/best-practices-for-amazon-rds-for-sq… [cited by applicant]