IP Library › Granted Patent US 12,566,746
Granted Patent B2
US 12,566,746 · App. 18/528,072 · Granted Mar 3, 2026

Integrating change tracking of storage objects of a distributed object storage database into a distributed storage system

Inventor: Richard Parvin Jernigan, IV (Sewickley, PA)
Assignee: NetApp, Inc.
G06F16/2308G06F16/1805G06F16/182G06F16/22G06F16/2358G06F16/27G06F16/285H04L45/02H04L45/30
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,566,746
App. No.
18/528,072
Granted
Mar 3, 2026
Kind
B2
Abstract

In one embodiment, distributed data storage systems and methods integrate a change tracking manager with scalable databases. According to one embodiment, a computer implemented method comprises integrating change tracking of storage objects into the distributed object storage database that includes a first database of a first type and one or more chapter databases of a second type with the distributed object storage database supporting a primary lookup index and a secondary lookup index in order to locate a storage object. The method includes recording in a header of a chapter database a network topology for connecting a bucket having the chapter database to a first peer bucket when a new mirror to the first peer bucket is being established, and recording a first directive into the header of the chapter database to express a type of content to be mirrored from the bucket to the first peer bucket.

Claims (45)

1 . A computer implemented method performed by one or more processing resources of a distributed object storage database, the method comprising:

integrating change tracking of storage objects into the distributed object storage database that includes a first database of a first type and one or more chapter databases of a second type with the distributed object storage database supporting a primary lookup index that is sorted by name of storage objects and a secondary lookup index for each chapter database that includes pending work items to be sorted by a peer identity in order to locate a storage object;

recording an array of multiple directives into a header of a chapter database to describe pending work items from a bucket to one or more peer buckets to allow continual collective tracking of an overall replication state from the bucket to one or more peer buckets; and

sorting the pending work items in the header of each chapter database based on urgency of performing each pending work item and a recovery point objective (RPO) for each peer bucket to prioritize urgent pending work items.

2 . The computer implemented method of claim 1 , further comprising:

recording a first directive into the header of the chapter database to express a type of content to be mirrored from the bucket to a first peer bucket;

recording a second directive into the header of the chapter database to express a type of content to be cached from the bucket to a second peer bucket; and

recording a third directive into the header of the chapter database to express a type of content to be archived from the bucket to a third peer bucket.

3 . The computer implemented method of claim 1 , wherein the distributed object storage database continuously tracks changes of the storage objects that are stored in the distributed object storage database without using a separate transaction log database.

4 . The computer implemented method of claim 1 , wherein the header is a reserved space of less than 10 kilobits in the chapter database.

5 . The computer implemented method of claim 1 , further comprising:

recording in a header of a chapter database a network topology for connecting a bucket having the chapter database to a first peer bucket when a new mirror to the first peer bucket is being established.

6 . The computer implemented method of claim 1 , further comprising:

updating the header of each chapter database to determine which chapter databases among a large number of chapter databases within the bucket having urgent pending work items based on a recovery point objective (RPO); and

performing the urgent pending work items based on the RPO.

7 . A storage node comprising:

one or more processing resources; and

a non-transitory computer-readable medium coupled to the processing resource, having stored therein instructions, which when executed by the one or more processing resources cause the one or more processing resources to:

manage storage objects and continuously track changes of the storage objects in a distributed object storage database that includes one or more chapter databases with the distributed object storage database supporting a primary lookup index and a secondary lookup index for each chapter database that includes pending work items to be sorted by a peer identity in order to locate a record;

generate a chapter database header for each chapter database to provide a summary of pending work items to be performed;

recording an array of multiple directives into a header of a chapter database to describe pending work items from a bucket to one or more peer buckets to allow continual collective tracking of an overall replication state from the bucket to one or more peer buckets;

sorting the pending work items in the header based on urgency of performing each pending work item and a recovery point objective (RPO) for each peer bucket to prioritize urgent pending work items; and

update the chapter database header when work items are updated for the chapter database.

8 . The storage node of claim 7 , wherein the processing resource is configured to execute instructions to:

record a network topology for a link between a first bucket and a mirrored second bucket of the distributed object storage database in the chapter database header for the first bucket when a new mirror is established to the second bucket.

9 . The storage node of claim 7 , wherein the one or more processing resources is configured to execute instructions to:

add directive information into the chapter database header for a first bucket for each link from the first bucket to one or more peer buckets of the distributed object storage database.

10 . The storage node of claim 7 , wherein each chapter database of the distributed object storage database to independently record its own state regarding which peer buckets are to be updated and to provide semantics for each peer link for caching, for archival, for mirroring, or for migration, wherein the distributed object storage database continuously tracks changes of the storage objects that are stored in the distributed object storage database without using a separate transaction log database.

11 . The storage node of claim 7 , wherein the one or more processing resources is configured to execute instructions to:

update the header of each chapter database to determine which chapter databases among a large number of chapter databases within a first bucket having urgent pending work items based on a recovery point objective (RPO) having an intentional time-delay.

12 . The storage node of claim 11 , wherein the one or more processing resources is configured to execute instructions to:

perform the urgent pending work items based on the RPO having the intentional time-delay; and

delay the non-urgent pending work items based on the RPO to eliminate processing of pending work items that are transient in existing a shorter time period than the intentional time-delay of the RPO.

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

manage storage objects and continuously track changes of the storage objects in a distributed object storage database that includes one or more chapter databases with the distributed object storage database supporting a primary lookup index and a secondary lookup index for each chapter database that includes pending work items to be sorted by a peer identity in order to locate a record;

recording an array of multiple directives into a header of a chapter database to describe pending work items from a bucket to one or more peer buckets to allow continual collective tracking of an overall replication state from the bucket to one or more peer buckets; and

sorting the pending work items in the header based on urgency of performing each pending work item and a recovery point objective (RPO) for each peer bucket to prioritize urgent pending work items.

14 . The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processing resources are configured to execute the set of instructions to:

update the header of the chapter database when work items are updated for the chapter database.

15 . The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processing resources are configured to execute the set of instructions to:

initially assign a first processing resource to the pending work items of the header of a chapter database of the bucket; and

dynamically assign a second processing resource to the pending work items of the header of the chapter database of the bucket in response to changes in the pending work items of the header of the chapter database of the bucket.

16 . The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processing resources are configured to execute the set of instructions to:

add directive information into the header of the chapter database for the bucket for each link from the bucket to one or more peer buckets.

17 . The non-transitory computer-readable storage medium of claim 13 , wherein each chapter database to independently record its own state regarding which peer buckets are to be updated and to provide semantics for each peer link for caching, for archival, for mirroring, or for migration, wherein the distributed object storage database continuously tracks changes of the storage objects that are stored in the distributed object storage database without using a separate transaction log database.

Continuity (3)
Continuation 17728708 · Apr 25, 2022
Provisional Application 63275135 · Nov 3, 2021
Related Publication 20240104081A1 · Mar 28, 2024
References Cited (52)
US 6353834B1 · Wong · 2002 [cited by examiner]
US 6704885B1 · Salas-Meza · 2004 [cited by examiner]
US 6728879B1 · Atkinson · 2004 [cited by applicant]
US 9286612B2 · Frankland · 2016 [cited by examiner]
US 9767187B2 · Hoyne et al. · 2017 [cited by applicant]
US 9916134B2 · Charisius · 2018 [cited by examiner]
US 10146833B1 · Muniswamy Reddy · 2018 [cited by examiner]
US 10896200B1 · Krishnan · 2021 [cited by examiner]
US 11341171B2 · Mack · 2022 [cited by applicant]
US 11868334B2 · Jernigan, IV · 2024 [cited by applicant]
US 12079193B2 · Jernigan, IV · 2024 [cited by applicant]
US 20040103206A1 · Hsu · 2004 [cited by examiner]
US 20080022054A1 · Hertzberg et al. · 2008 [cited by applicant]
US 20100198888A1 · Blomstedt et al. · 2010 [cited by applicant]
US 20100333116A1 · Prahlad · 2010 [cited by examiner]
US 20110065082A1 · Gal et al. · 2011 [cited by applicant]
US 20110072022A1 · Tardif · 2011 [cited by applicant]
US 20130295535A1 · Levy et al. · 2013 [cited by applicant]
US 20130318229A1 · Bakre · 2013 [cited by examiner]
US 20160292049A1 · Kandukuri · 2016 [cited by examiner]
US 20160350440A1 · Vaishnav et al. · 2016 [cited by applicant]
US 20170078715A1 · Chao · 2017 [cited by applicant]
US 20180089183A1 · Schwartz et al. · 2018 [cited by applicant]
US 20200068038A1 · Xing · 2020 [cited by examiner]
US 20200311054A1 · Hicks et al. · 2020 [cited by applicant]
US 20200365258A1 · Langer et al. · 2020 [cited by applicant]
US 20210165760A1 · De Schrijver et al. · 2021 [cited by applicant]
US 20210191904A1 · Lee et al. · 2021 [cited by applicant]
US 20210326319A1 · Jernigan, IV et al. · 2021 [cited by applicant]
US 20220245092A1 · Jujjuri et al. · 2022 [cited by applicant]
US 20220317882A1 · Vijayan et al. · 2022 [cited by applicant]
US 20220391372A1 · Oliva et al. · 2022 [cited by applicant]
US 20230004543A1 · Jernigan, IV et al. · 2023 [cited by applicant]
US 20230135583A1 · Jernigan, IV · 2023 [cited by applicant]
US 20240411744A1 · Jernigan, IV · 2024 [cited by applicant]
WO 9905586A2 · 1999 [cited by applicant]
WO WO2000050999A1 · 2000 [cited by examiner]
WO WO0235799A2 · 2002 [cited by examiner]
WO WO2011054376A1 · 2011 [cited by examiner]
WO 2018128825A1 · 2018 [cited by applicant]
Haroun Benkaouha, “A stable storage in MANET: Replication or distributed storage”, Journal of Computational Science, vol. 45, Sep. 2020, pp. 1-9. [cited by examiner]
P. Agarwal et al., “Performance analysis by topology indexed lookup tables”, 2005 IEEE International Symposium on Circuits and Systems (ISCAS), May 2005, pp. 1-4. [cited by examiner]
Notice of Allowance mailed on May 14, 2024 for U.S. Appl. No. 17/728,709, filed Apr. 25, 2022, 08 pages. [cited by applicant]
Anonymous., “Shard (Database Architecture)—Wikipedia,” Wikipedia the Free Encyclopedia, Nov. 2, 2021, Retrieved from the Internet: URL: https://en.wikipedia.org/w/index.php?title=Shard_database_architecture&oldid=10… [cited by applicant]
Buckets overview—Amazon Simple Storage Service (S3), User guide, Retrieved from the Internet URL: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html [retrieved on Aug. 21, 2023], 06 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2022/048712, mailed on Feb. 10, 2023, 15 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 6, 2023 for U.S. Appl. No. 17/728,709, filed Apr. 25, 2022, 10 pages. [cited by applicant]
Non-Final Office Action mailed on May 25, 2023 for U.S. Appl. No. 17/728,708, filed Apr. 25, 2022, 34 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 31, 2023 for U.S. Appl. No. 17/728,708, filed Apr. 25, 2022, 9 pages. [cited by applicant]
Qin L., et al., “An Adaptive Load Balancing Algorithm in Object-Based Storage Systems,” 2006 International Conference on Machine Learning and Cybernetics, 2006, pp. 297-302. [cited by applicant]
Won Y., et al., “Efficient Index Lookup for De-duplication Backup System,” 2008 IEEE International Symposium on Modeling, Analysis and Simulation of Computers and Telecommunication Systems, 2008, pp. 1-3. [cited by applicant]
Non-Final Office Action mailed on Apr. 10, 2025 for U.S. Appl. No. 18/809,930, filed Aug. 20, 2024, 17 pages. [cited by applicant]