US 12,443,448 B1
System and method for improved data migration between an RDBMS source and RDBMS target
Akshay Deodhar, Bangalore (IN); Amit Kumar Bhagat, Bangalore (IN); Ashish Vicky, Bangalore (IN); Kishore V, Chennai (IN); Naresh Kulkarni, Bangalore (IN); Avinash Balpande, Princeton Junction, NJ (US); Parham Darbandi Tehrani, Montreal (CA); and Kapil Sharma, Montreal (CA)
Assigned to MORGAN STANLEY SERVICES GROUP INC., New York, NY (US)
Filed by MORGAN STANLEY SERVICES GROUP INC., New York, NY (US)
Filed on Feb. 10, 2025, as Appl. No. 19/049,359.
Int. Cl. G06F 9/50 (2006.01); G06F 16/25 (2019.01)
CPC G06F 9/5016 (2013.01) [G06F 9/5038 (2013.01); G06F 16/25 (2019.01); G06F 2209/503 (2013.01)] 9 Claims
OG exemplary drawing
 
1. A method of dynamically optimize allocation and utilization of system resources to efficiently transfer data between a source Relational Database Management System (“RDBMS”) and a target RDBMS, the method comprising:
i) collecting metadata regarding object data from the source RDBMS;
ii) calculating, on an object-level basis, a necessary amount of resources needed to perform a parallel reading objects from the source RDBMS based upon a volume of data to be read;
iii) calculating on an object-level basis, a necessary amount of resources needed to perform a parallel writing of objects to the target RDBMS;
iv) creating an index, on an object-level basis, of tables to be transferred from the source RDBMS, with the tables being ordered for processing and transfer on a heaviest to lightest basis;
on a first pass,
a) executing parallel reads of object-level table data from the source RDBMS based upon the ordering in the index; and
b) if sufficient resources are available, transferring the tables on a parallel write basis to the target DBMS, and
c) if sufficient resources are not available for a particular table identified in the index, marking the particular table as having a pending status for processing in a subsequent pass and skipping the particular table by advancing to a next heaviest table listed in the index;
v) performing DataFrame transformation on source DataFrames for objects of the source RDBMS to be transferred to the target RDBMS; and
repeating steps “a)” through “c)” and “v)” until all data that can be transferred to the target RDBMS has been transferred.