IP Library Granted Patent US 12,500,949
Granted Patent B2
US 12,500,949 · App. 18/598,041 · Granted Dec 16, 2025

Asynchronous distributed de-duplication for replicated content addressable storage clusters

Inventors: Gia Datuashvili (Cupertino, CA); Alexander Kesselman (Sunnyvale, CA); Alexandre Drobychev (San Jose, CA)
Assignee: Google LLC
H04L67/1095G06F16/1748G06F16/178G06F16/184G06F16/2365G06F16/24556G06F16/27
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,500,949
App. No.
18/598,041
Granted
Dec 16, 2025
Kind
B2
Abstract

A method is performed by a device of a group of devices in a distributed data replication system. The method includes storing an index of objects in the distributed data replication system, the index being replicated while the objects are stored locally by the plurality of devices in the distributed data replication system. The method also includes conducting a scan of at least a portion of the index and identifying a redundant replica(s) of the at least one of the objects based on the scan of the index. The method further includes de-duplicating the redundant replica(s), and updating the index to reflect the status of the redundant replica.

Claims (43)

1 . A computer-implemented method in a distributed data storage system comprising a plurality of storage clusters, the method comprising:

receiving, by a first storage cluster, a request for an object;

identifying, by the first storage cluster, locations of the object stored by a storage system by querying a global index stored in the first storage cluster, the locations including at least one first location and at least one replica location;

determining, by the first storage cluster, which of the identified locations to use to read the object based on one or more criteria;

retrieving the object from the determined location; and

transmitting the retrieved object to a requesting client,

wherein the global index is replicated in the plurality of storage clusters.

2 . The method of claim 1 , wherein the one of the one or more criteria is network resources.

3 . The method of claim 2 , wherein the network resources comprise bandwidth consumption.

4 . The method of claim 2 , wherein determining which of the locations to use to read the object minimizes the network resources.

5 . The method of claim 1 , wherein the one of the one or more criteria is geographic location of the first location and the least one replica location.

6 . The method of claim 5 , wherein determining which of the locations to use to read the object comprises selecting a closest geographic location of the stored object to a geographic location of a client requesting the object.

7 . The method of claim 1 , wherein the first location comprises a portion of the data store that is stored within a first storage cluster and the replica location comprises a second storage cluster different from the first storage cluster.

8 . The method of claim 1 , further comprising sending the retrieved object to a client that requested the object.

9 . A system, comprising:

a plurality of storage clusters, each storage cluster comprising:

a plurality of object replicas;

a global index identifying storage locations of the object replicas across the plurality of storage clusters;

one or more memory; and

one or more processors in communication with the memory and configured to:

receive a request for an object;

identify locations of the object stored by a storage system by querying the global index stored in the storage cluster, the locations including at least one first location and at least one replica location;

determine which of the locations to use to read the object based on one or more criteria;

retrieve the object from the determined location; and

transmitting the retrieved object to a requesting client,

wherein the global index is replicated in the plurality of storage clusters.

10 . The system of claim 9 , wherein the one of the one or more criteria is based on network resources.

11 . The system of claim 10 , wherein the network resources comprise bandwidth consumption.

12 . The system of claim 10 , wherein determining which of the locations to use to read the object minimizes the network resources.

13 . The system of claim 9 , wherein the one of the one or more criteria is based on geographic location of the first location and the least one replica location.

14 . The system of claim 13 , wherein determining which of the locations to use to read the object comprises selecting a closest geographic location of the stored object to a geographic location of a client requesting the object.

15 . The system of claim 9 , wherein the first location comprises a portion of the data store that is stored within a first storage cluster and the replica location comprises a second storage cluster different from the first storage cluster.

16 . The system of claim 9 , wherein the one or more processors are further configured to send the retrieved object to a client that requested the object.

17 . A non-transitory computer-readable medium storing instructed executable by one or more processors in a distributed data storage system comprising a plurality of storage clusters, cause the one or more processors to perform a method, comprising:

receiving, by a first storage cluster, a request for an object;

identifying, by the first storage cluster, locations of the object stored by a storage system by querying a global index stored in the first storage cluster, the locations including at least one first location and at least one replica location;

determining, by the first storage cluster, which of the identified locations to use to read the object based on one or more criteria; and

retrieving the object from the determined location; and

transmitting the retrieved object to a requesting client,

wherein the global index is replicated in the plurality of storage clusters.

18 . The non-transitory computer-readable medium of claim 17 , wherein the one or more criteria is based on network resources.

19 . The non-transitory computer-readable medium of claim 18 , wherein the network resources comprise bandwidth consumption.

20 . The non-transitory computer-readable medium of claim 18 , wherein determining which of the locations to use to read the object minimizes the network resources.

Assignments (2)
CHANGE OF NAME Recorded Mar 12, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 066793/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2024
From: DATUASHVILI, GIA; KESSELMAN, ALEXANDER; DROBYCHEV, ALEXANDRE
To: GOOGLE INC.
Reel/Frame 066716/0513 →
Continuity (4)
Continuation 16390613 · Apr 22, 2019
Continuation 14995171 · Jan 13, 2016
Continuation 14265298 · Apr 29, 2014
Related Publication 20240251012A1 · Jul 25, 2024
References Cited (129)
US 5551027A · Choy et al. · 1996 [cited by applicant]
US 5812773A · Norin · 1998 [cited by applicant]
US 5897664A · Nesheim et al. · 1999 [cited by applicant]
US 6192365B1 · Draper et al. · 2001 [cited by applicant]
US 6438562B1 · Gupta et al. · 2002 [cited by applicant]
US 7200604B2 · Forman et al. · 2007 [cited by applicant]
US 7441014B1 · Bulkowski · 2008 [cited by examiner]
US 7529899B2 · Deguchi et al. · 2009 [cited by applicant]
US 7584338B1 · Bricker et al. · 2009 [cited by applicant]
US 7647329B1 · Fischman · 2010 [cited by examiner]
US 7653668B1 · Shelat · 2010 [cited by examiner]
US 7669023B2 · Murase · 2010 [cited by applicant]
US 7747584B1 · Jernigan, IV · 2010 [cited by examiner]
US 7783604B1 · Yueh · 2010 [cited by applicant]
US 7814074B2 · Anglin et al. · 2010 [cited by applicant]
US 7814149B1 · Stringham · 2010 [cited by applicant]
US 7814499B2 · Straube et al. · 2010 [cited by applicant]
US 7822939B1 · Veprinsky et al. · 2010 [cited by applicant]
US 7840537B2 · Gokhale et al. · 2010 [cited by applicant]
US 7870105B2 · Arakawa et al. · 2011 [cited by applicant]
US 7870409B2 · Murase · 2011 [cited by applicant]
US 7873809B2 · Kano · 2011 [cited by applicant]
US 7908436B1 · Srinivasan et al. · 2011 [cited by applicant]
US 7921077B2 · Ting et al. · 2011 [cited by applicant]
US 7930306B2 · Scholtes et al. · 2011 [cited by applicant]
US 7949622B2 · Sellamanickam et al. · 2011 [cited by applicant]
US 7962706B2 · Davis · 2011 [cited by applicant]
US 7984022B2 · Cannon et al. · 2011 [cited by applicant]
US 7984026B2 · Iitsuka · 2011 [cited by applicant]
US 7996371B1 · Deshmukh · 2011 [cited by applicant]
US 8108353B2 · Balachandran et al. · 2012 [cited by applicant]
US 8135918B1 · Yueh · 2012 [cited by applicant]
US 8190835B1 · Yueh · 2012 [cited by applicant]
US 8204866B2 · Chaudhuri et al. · 2012 [cited by applicant]
US 8346730B2 · Srinivasan et al. · 2013 [cited by applicant]
US 8484162B2 · Prahlad et al. · 2013 [cited by applicant]
US 8548953B2 · Wong et al. · 2013 [cited by applicant]
US 8645333B2 · Balachandran et al. · 2014 [cited by applicant]
US 8788466B2 · Anglin et al. · 2014 [cited by applicant]
US 8793226B1 · Yadav et al. · 2014 [cited by applicant]
US 9563683B2 · Abercrombie et al. · 2017 [cited by applicant]
US 9747322B2 · Drobychev et al. · 2017 [cited by applicant]
US 9817865B2 · Chambliss et al. · 2017 [cited by applicant]
US 9928248B2 · Akirav et al. · 2018 [cited by applicant]
US 11650837B2 · Martin · 2023 [cited by examiner]
US 11853263B2 · Shvachko · 2023 [cited by examiner]
US 11960452B2 · Memon · 2024 [cited by examiner]
US 12038879B2 · Huang · 2024 [cited by examiner]
US 20020078174A1 · Sim · 2002 [cited by examiner]
US 20040122958A1 · Wardrop · 2004 [cited by applicant]
US 20040133606A1 · Miloushev · 2004 [cited by examiner]
US 20040148397A1 · Aronoff et al. · 2004 [cited by applicant]
US 20050076336A1 · Cutrell · 2005 [cited by examiner]
US 20050076339A1 · Merril · 2005 [cited by examiner]
US 20050138306A1 · Panchbudhe · 2005 [cited by examiner]
US 20050177603A1 · Shavit · 2005 [cited by applicant]
US 20050193024A1 · Beyer et al. · 2005 [cited by applicant]
US 20050203910A1 · Taguchi · 2005 [cited by examiner]
US 20060015544A1 · Kodama · 2006 [cited by applicant]
US 20060047999A1 · Passerini et al. · 2006 [cited by applicant]
US 20060168154A1 · Zhang · 2006 [cited by examiner]
US 20070022087A1 · Bahar et al. · 2007 [cited by applicant]
US 20070288533A1 · Srivastava · 2007 [cited by examiner]
US 20080144079A1 · Pandey et al. · 2008 [cited by applicant]
US 20080155386A1 · Jensen · 2008 [cited by examiner]
US 20080182592A1 · Cha · 2008 [cited by examiner]
US 20080201454A1 · Soffer · 2008 [cited by examiner]
US 20080256143A1 · Reddy et al. · 2008 [cited by applicant]
US 20080275984A1 · Ullmann · 2008 [cited by examiner]
US 20080294660A1 · Patterson et al. · 2008 [cited by applicant]
US 20080294696A1 · Frandzel · 2008 [cited by applicant]
US 20080301087A1 · Bernard · 2008 [cited by applicant]
US 20090144422A1 · Chatley et al. · 2009 [cited by applicant]
US 20090204636A1 · Li et al. · 2009 [cited by applicant]
US 20090313312A1 · Colbeck et al. · 2009 [cited by applicant]
US 20100005151A1 · Gokhale · 2010 [cited by applicant]
US 20100082558A1 · Anglin et al. · 2010 [cited by applicant]
US 20100161554A1 · Datuashvili et al. · 2010 [cited by applicant]
US 20100257403A1 · Virk · 2010 [cited by examiner]
US 20100325476A1 · Zhang · 2010 [cited by applicant]
US 20110040728A1 · Akirav et al. · 2011 [cited by applicant]
US 20130254248A1 · Chang · 2013 [cited by examiner]
US 20140304240A1 · Zunger · 2014 [cited by examiner]
CN 1461438A · 2003 [cited by applicant]
CN 1726446A · 2006 [cited by applicant]
CN 101080710A · 2007 [cited by applicant]
JP 2002132563A · 2002 [cited by applicant]
JP 2004289843A · 2004 [cited by applicant]
JP 2005504455A · 2005 [cited by applicant]
JP 2006185041A · 2006 [cited by applicant]
JP 2007199920A · 2007 [cited by applicant]
JP 2008158661A · 2008 [cited by applicant]
WO 02087136A2 · 2002 [cited by applicant]
WO 2007067480A1 · 2007 [cited by applicant]
WO 2008005212A2 · 2008 [cited by applicant]
WO 2008115770A1 · 2008 [cited by applicant]
Google Inc., Notice of Allowance, CA 2747746, Nov. 27, 2014, 1 pg. [cited by applicant]
Google Inc., Final Decision for Rejection, JP 2011-542576, Nov. 26, 2013, 2 pgs. [cited by applicant]
Google Inc., Notification on the Grant of Patent Right for Invention, CN 200980156970.8, Apr. 14, 2014, 1 pg. [cited by applicant]
Google Inc., Notice of Grounds of Rejection, JP 2014-061617, Dec. 9, 2014, 5 pgs. [cited by applicant]
Austin, Grid Enabling Data De-Duplication, 2nd IEEE International Conference on e-Science and Grid Computing, e-Science, 2006, 6 pgs. [cited by applicant]
Geer, Reducing the Storage Burden via Data Deduplication, IEEE Computer Society, vol. 41, No. 12, Dec. 2008, pp. 15-17. [cited by applicant]
Google Inc., International Search Report and Written Opinion, PCT/US2009/069234, Mar. 24, 2010, 9 pgs. [cited by applicant]
Google Inc., Notification of the First Office Action, CN 200980156970.8, Nov. 21, 2012, 6 pgs. [cited by applicant]
Google Inc., Office Action CA 2747746, Aug. 23, 2013, 2 pgs. [cited by applicant]
Google Inc., Patent Examination Report No. 1, AU 2009330073, Jul. 12, 2012 2 pgs. [cited by applicant]
Guy, Implementation of the Dicus Replicated File System, Proc. Summer USENIX Conference, Jun. 30, 1990, pp. 63-71. [cited by applicant]
Marks, Analysis: Using Data-De-duplication to cut storage requirements, Apr. 6, 2007, 4 pgs. [cited by applicant]
Nath, Evaluating the Usefulness of Content Addressable Storage for High-Performance Data Intensive Application, HPDC'08, Boston, MA Jun. 23-27, 2008, 10 pgs. [cited by applicant]
Wang, The Research of Web page De-duplication Based on Web Pages Reshipment Statement, 2009 1st Int'l Workshop on Database Technology and Applications, IEEE Computer Society, Apr. 25, 2009, pp. 271-274. [cited by applicant]
Wiesmann, Database Replication Techniques: a Three Parameter Classification, Proc. 19th IEEE Symposium, Nurnberg, Germany, Oct. 16, 2000, pp. 206-215. [cited by applicant]
Google Inc., CN App. No. 201410306908.5, Notification for Patent Registration Formalities, Jun. 30, 2017, 6 pgs. [cited by applicant]
Google Inc., International Search Report and Written Opinion, PCT/US2009/069234, Mar. 24, 2010, 14 pgs. [cited by applicant]
Google Inc., Notice of Grounds of Rejection, JP 2014-061617, Sep. 8, 2015, 2pgs. [cited by applicant]
Google, Communication pursuant to Article 94(3) EPC, EP Application 09799831.4, Jul. 18, 2016, 6pgs. [cited by applicant]
Mandagere, Implementation of the Ficus Replicated File Syste, Proc. of the Summer Usenix Conference, Jun. 30, 1990, pp. 63-71. [cited by applicant]
Google Inc., International Preliminary Report on Patentability, PCT/US2009/069234, Jun. 29, 2011, 6pgs. [cited by applicant]
Nath, P. et al.: “Evaluating the Usefulness of Content Addressable Storage for High-Performance Data Intensive Applications”, HPDC'08, Jun. 23-27, 2008, Boston, MA, 10 pages. [cited by applicant]
Marks, H.: “Analysis: Using Data De-duplication to cut storage requirements”, http://www.scaleoutadvantage.techweb.com/news/str.sub.--nwc20070406.sub.-- -analysis.jhtml, 4 pages. [cited by applicant]
Austin, J. et al.: “Grid Enabling Data De-Duplication”, Second IEEE International Conference on e-Science and Grid Computing, e-Science 2006, 6 pages. [cited by applicant]
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, corresponding to PCT/US2009/069234, mailed Mar. 25, 2010, 14 pages. [cited by applicant]
Richard G. Guy et al., “Implementation of the Ficus Replicated File System”, Proceedings of the Summer USENIX Conference, Jun. 30, 1990, pp. 63-71, XP002234187. [cited by applicant]
David Geer, “Reducing the Storage Burden via Data Deduplication”, IEEE Computer Society, vol. 41, No. 12, Dec. 2008, pp. 15-17, XP011249422. [cited by applicant]
Min-Yan Wang et al.,“The Research of Web Page De-duplication Based on Web Pages Reshipment Statement”, 2009 First International Workshop on Database Technology and Applications, IEEE Computer Society, Apr. 25, 2009, pp.… [cited by applicant]
Matthias Wiesmann et al., “Database Replication Techniques: a Three Parameter Classification”, Proceedings the 19.sup.th IEEE Symposium on Nurnberg, Oct. 16, 2000, pp. 206-215, XP010523961. [cited by applicant]
Pre Examination Report for Brazilian Patent Application No. PI0922990-6 dated Jul. 8, 2019. [cited by applicant]
Office Action for Brazilian Patent Application No. PI0922990-6 dated Jan. 21, 2020. [cited by applicant]
Office Action for Brazilian Patent Application No. PI0922990-6 dated May 12, 2020. 3 pages. [cited by applicant]
Random House Webster's College Dictionary, 1485 (2nd Random House ed. 1999). [cited by applicant]