IP Library › Granted Patent US 12,242,504
Granted Patent B2
US 12,242,504 · App. 18/161,551 · Granted Mar 4, 2025

Mechanism for backfilling records dropped during transfer from distributed node system

Inventors: Srinath Gomathinathan Ramasubramanian (Redmond, WA); Prasanna Kumar Padmanabhan (Bellevue, WA); David Wang (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/27G06F16/2379
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,242,504
App. No.
18/161,551
Granted
Mar 4, 2025
Kind
B2
Abstract

A method for backfilling records dropped by a distributed node system during a transfer to an external database includes initially determining whether an attempt to transfer a data record failed or succeeded. In response to determining that the transfer succeeded, the data record is appended at its original location include a first transfer status identifier. In response to determining that the transfer failed, the data record is appended to include a second transfer status identifier and queued copy of the data record is created by copying the data record to a delayed re-try queue. The method further includes verifying that the transfer status identifier of the queued copy is identical to the transfer status identifier of a newest version of the data record within the distributed node system and, responsive to the verification, attempting a subsequent transfer of the queued copy of the data record to the external database.

Claims (37)

1. A distributed node system comprising:

a node configured to:

attempt a transfer of a data record residing on the node to an external database;

in response to determining that the transfer succeeded, append the data record on the node to include a first transfer status identifier indicative of successful transfer;

in response to determining that the transfer failed, append the data record on the node to include a second transfer status identifier indicative of failed transfer and create a queued copy of the data record by copying the data record to a delayed re-try queue; and

a backfill processor configured to attempt a subsequent transfer of the queued copy of the data record to the external database in response to confirming that the transfer status identifier of the queued copy is identical to the transfer status identifier of a newest version of the data record within the distributed node system.

2. The distributed node system of claim 1 , wherein the backfill removes the queued copy of the data record from the delayed re-try queue without transferring the queued copy to the external database in response to confirming that the transfer status identifier of the queued copy is not identical to the transfer status identifier of the newest version of the data record.

3. The distributed node system of claim 1 , wherein the distributed node system lacks read access to the external database.

4. The distributed node system of claim 1 , wherein the node determines whether the transfer attempt succeeded or failed based on feedback received from the external database and without reading data out of the external database.

5. The distributed node system of claim 4 , wherein the node attempts to re-transfer the data record one or more additional times in response to the feedback and prior to adding the data record to the delayed re-try queue.

6. The distributed node system of claim 1 , wherein the distributed node system includes a plurality of nodes tasked with storing a plurality of data records, wherein different versions of each record of the plurality of records are stored on different nodes of the plurality.

7. The distributed node system of claim 1 , wherein the distributed node system implements logic to track and identify a newest copy of each of the data records at each point in time.

8. The distributed node system of claim 1 , wherein the node attempts to transfer the data record in response to receiving a notification that the data record has been updated.

9. The distributed node system of claim 1 , wherein different versions of a same record have identical filenames within the distributed node system.

10. A method of backfilling records dropped by a distributed node system during a transfer to an external database, the method comprising:

attempting to transfer a data record from a given node of the distributed node system to an external database;

determining whether the transfer succeeded or failed;

in response to determining that the transfer succeeded, appending the data record on the given node to include a first transfer status identifier;

in response to determining that the transfer failed appending the data record on the given node to include a second transfer status identifier and creating a queued copy of the data record by copying the data record to a delayed re-try queue; and

in response to confirming that the transfer status identifier of the queued copy is identical to the transfer status identifier of a newest version of the data record within the distributed node system, attempting a subsequent transfer of the queued copy of the data record to the external database.

11. The method of claim 10 , further comprising:

in response to confirming that the transfer status identifier of the queued copy is not identical to the transfer status identifier of the newest version of the data record, removing the queued copy of the data record from the delayed re-try queue without transferring the queued copy to the external database.

12. The method of claim 10 , wherein the distributed node system lacks read access to the external database.

13. The method of claim 10 , wherein determining whether the transfer failed or succeeded is based on feedback from the external database and without reading data out of the external database.

14. The method of claim 13 , further comprising: attempting transfer of the data record to the external database one or more additional times in response to receiving the feedback and prior to creating the queued copy of the data record.

15. The method of claim 10 , wherein the distributed node system includes a plurality of nodes tasked with storing a plurality of data records, wherein different versions of each record of the plurality of records are stored on different nodes of the plurality.

16. The method of claim 10 , wherein the distributed node system implements logic to track and identify a newest copy of each of the data records at each point in time.

17. The method of claim 10 , wherein different versions of a same record have identical filenames.

18. One or more tangible computer-readable storage media encoding computer-executable instructions for executing a compute process comprising:

attempting to transfer a data record from a given node of the distributed node system to an external database;

determining whether the transfer succeeded or failed;

in response to determining that the transfer succeeded, appending the data record on the given node to include a first transfer status identifier;

in response to determining that the transfer failed appending the data record on the given node to include a second transfer status identifier and creating a queued copy of the data record by copying the data record to a delayed re-try queue; and

in response to confirming that the transfer status identifier of the queued copy is identical to the transfer status identifier of a newest version of the data record within the distributed node system, attempting a subsequent transfer of the queued copy of the data record to the external database.

19. The one or more tangible computer-readable storage media of claim 18 , wherein the computer process further comprises:

in response to confirming that the transfer status identifier of the queued copy is not identical to the transfer status identifier of the newest version of the data record, removing the queued copy of the data record from the delayed re-try queue without transferring the queued copy to the external database.

20. The one or more tangible computer-readable storage media of claim 18 , wherein determining whether the transfer failed or succeeded is based on feedback from the external database and without reading data out of the external database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2023
From: RAMASUBRAMANIAN, SRINATH GOMATHINATHAN; PADMANABHAN, PRASANNA KUMAR; WANG, DAVID
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 062787/0611 →
Continuity (1)
Related Publication 20240256563A1 · Aug 1, 2024
References Cited (30)
US 7197638B1 · Grawrock et al. · 2007 [cited by applicant]
US 8713312B2 · Stefan et al. · 2014 [cited by applicant]
US 9152642B2 · Harrison et al. · 2015 [cited by applicant]
US 10033702B2 · Ford et al. · 2018 [cited by applicant]
US 10506038B1 · Patel et al. · 2019 [cited by applicant]
US 10691653B1 · Aiken · 2020 [cited by examiner]
US 10880366B1 · Chen et al. · 2020 [cited by applicant]
US 11102313B2 · Straub · 2021 [cited by applicant]
US 11157631B1 · Whelton · 2021 [cited by applicant]
US 11157954B1 · Belanger et al. · 2021 [cited by applicant]
US 20030101446A1 · McManus · 2003 [cited by examiner]
US 20050028046A1 · Mcardle · 2005 [cited by applicant]
US 20150100545A1 · Ikegami · 2015 [cited by examiner]
US 20180060381A1 · Cook et al. · 2018 [cited by applicant]
US 20180113862A1 · Glover · 2018 [cited by examiner]
US 20190043043A1 · Saraniecki · 2019 [cited by examiner]
US 20210218745A1 · Firnkorn et al. · 2021 [cited by applicant]
US 20210382636A1 · Perumal · 2021 [cited by examiner]
US 20220369102A1 · Casati · 2022 [cited by applicant]
CN 111143745A · 2020 [cited by applicant]
CN 112561506A · 2021 [cited by applicant]
CN 108156208B · 2022 [cited by applicant]
CN 114020207A · 2022 [cited by applicant]
CN 115391170A · 2022 [cited by applicant]
Avvaru et al., Method and System for Synchronous Data Replication, 2021 (Year: 2021). [cited by examiner]
“Distributed Database Concepts”, Retrieved From: https://docs.oracle.com/database/121/ADMIN/ds_concepts.htm#ADMIN028, Retrieved On: Dec. 28, 2022, 40 Pages. [cited by applicant]
“Understanding the Storage Path Failover Sequence in VMware ESXi Native Multipathing (1027963)”, Retrieved From: https://kb.vmware.com/s/article/1027963, Mar. 31, 2021, 5 Pages. [cited by applicant]
Lev-Ari, “QuiCK: A Queuing System in CloudKit”, In Proceedings of the International Conference on Management of Data, Jun. 20, 2021, pp. 2517-2529. [cited by applicant]
Tindel, et al., “Backfilling an Amazon DynamoDB Time to Live (TTL) attribute with Amazon EMR”, Retrieved From: https://aws.amazon.com/blogs/database/backfilling-an-amazon-dynamodb-time-to-live-ttl-attribute-with-amazon-… [cited by applicant]
Zheng, et al., “Wharf: Sharing Docker Images in a Distributed File System”, In Proceedings of the ACM Symposium on Cloud Computing, Oct. 11, 2018, 12 Pages. [cited by applicant]