US 12,001,404 B2
Techniques for replication checkpointing during disaster recovery
Satish Kumar Kashi Visvanathan, San Jose, CA (US); Viggnesh Venugopal, Santa Clara, CA (US); Victor Vladimir Golosovker, Union City, CA (US); and Ravi Lingappa Shamanna, Milpitas, CA (US)
Assigned to ORACLE INTERNATIONAL CORPORATION, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Apr. 20, 2023, as Appl. No. 18/304,161.
Claims priority of provisional application 63/352,992, filed on Jun. 16, 2022.
Claims priority of provisional application 63/357,526, filed on Jun. 30, 2022.
Claims priority of provisional application 63/412,243, filed on Sep. 30, 2022.
Claims priority of provisional application 63/378,486, filed on Oct. 5, 2022.
Prior Publication US 2023/0409534 A1, Dec. 21, 2023
Int. Cl. G06F 16/182 (2019.01); G06F 9/50 (2006.01); G06F 11/14 (2006.01); G06F 11/20 (2006.01); G06F 16/11 (2019.01); G06F 16/174 (2019.01); G06F 16/176 (2019.01); G06F 16/178 (2019.01); G06F 16/185 (2019.01); G06F 16/22 (2019.01); G06F 16/23 (2019.01); G06F 16/27 (2019.01); G06F 21/60 (2013.01); G06F 21/62 (2013.01); H04L 9/08 (2006.01); H04L 9/14 (2006.01); H04L 9/32 (2006.01)
CPC G06F 16/1844 (2019.01) [G06F 9/505 (2013.01); G06F 11/1417 (2013.01); G06F 11/1451 (2013.01); G06F 11/1464 (2013.01); G06F 11/2023 (2013.01); G06F 11/2028 (2013.01); G06F 16/128 (2019.01); G06F 16/1756 (2019.01); G06F 16/1774 (2019.01); G06F 16/178 (2019.01); G06F 16/185 (2019.01); G06F 16/2246 (2019.01); G06F 16/2365 (2019.01); G06F 16/27 (2019.01); G06F 21/602 (2013.01); G06F 21/6218 (2013.01); H04L 9/0819 (2013.01); H04L 9/14 (2013.01); H04L 9/3228 (2013.01); G06F 2201/84 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving, by a computing system, a request for a file system replication between a source file system and a target file system, the source file system and the target file system being in different regions;
creating, by a first processing thread of the computing system, a first checkpoint in a first key range after fulfilling a predetermined requirement for processing first binary tree (B-tree) key-value pairs in the first key range;
requesting, by the first processing thread of the computing system, a lock to update a central record after creating the first checkpoint in the first key range;
creating, by a second processing thread of the computing system, a second checkpoint in a second key range after fulfilling the predetermined requirement for processing second B-tree key-value pairs in the second key range, wherein the processing the first B-tree key-value pairs in the first key range by the first processing thread is performed in parallel with the processing the second B-tree key-value pairs in the second key range by the second processing thread;
requesting, by the second processing thread of the computing system, the lock to update the central record after creating the second checkpoint in the second key range; and
granting, by the computing system, the lock to the first processing thread to update the central record, the request by the first processing thread being earlier than the request by the second processing thread, the lock being configured to prevent the second process thread from updating the central record.