IP Library › Granted Patent US 12,417,087
Granted Patent B2
US 12,417,087 · App. 17/936,499 · Granted Sep 16, 2025

Systems and methods for data migration

Inventors: Komal Krishna Pandamaneti (Frisco, TX); Sunitha Rani Gottipati (Mckinney, TX); Siva R. Vegesana (Frisco, TX); Lavanya Raja (Frisco, TX); Sairam Kommireddy (Frisco, TX); Maria Rabinowitz (Arlington, VA); Lavanya Sabapathy (Allen, TX); Ramakrishna Duggineni (Frisco, TX); Jason E. Lines (Prosper, TX); Srinivasulu Mupparaju (Little Elm, TX)
Assignee: Capital One Services, LLC
G06F8/65
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,417,087
App. No.
17/936,499
Granted
Sep 16, 2025
Kind
B2
Abstract

Systems and methods for migrating data from a legacy software program to a new software program. In some aspects, the system captures a snapshot of the current state of static data for multiple threads from the legacy software program. The system processes the static data for the multiple threads using the new software program to generate dynamic data for a period of time. During the same period of time, the legacy software program also produces dynamic data for the multiple threads. If there is a mismatch between dynamic data from the new and legacy software programs for at least one thread, the system generates metadata for the at least one thread to supplement static data for the at least one thread for processing by the new software program.

Claims (54)

1. A system for migrating data from a legacy software program to a new software program, the system comprising:

one or more processors; and

one or more non-transitory, computer-readable media comprising instructions that, when executed by the one or more processors, cause operations comprising:

receiving information for a plurality of threads to be processed by the new software program, the information including, for each thread, static data captured from the legacy software program at a particular time associated with the thread;

processing, using the new software program and while the new software program is executed in parallel with the legacy software program, the static data for each thread of the plurality of threads to generate dynamic data, from the new software program, during a time period subsequent to the particular time associated with the thread;

comparing, for each thread of the plurality of threads, the dynamic data from the new software program and corresponding dynamic data from the legacy software program;

based on the comparison for a particular thread of the plurality of threads, determining that the dynamic data from the new software program varies outside a threshold distance from the corresponding dynamic data from the legacy software program; and

ceasing further processing for the particular thread based on the dynamic data from the new software program varying outside the threshold distance from the corresponding dynamic data from the legacy software program.

2. The system of claim 1 , wherein the operations further comprises:

continue further processing for at least one other thread of the plurality of threads while ceasing further processing for the particular thread.

3. A method comprising:

receiving information for a plurality of threads to be processed by a new software program, the information including static data associated with the plurality of threads;

processing, using the new software program and in parallel with executing a legacy software program, the static data associated with the plurality of threads to generate dynamic data from the new software program;

comparing, for the plurality of threads, the dynamic data from the new software program and corresponding dynamic data from the legacy software program;

determining that the dynamic data from the new software program varies outside a threshold distance from corresponding dynamic data from the legacy software program; and

ceasing further processing, for a particular thread of the plurality of threads, based on the dynamic data from the new software program varying outside the threshold distance from the corresponding dynamic data from the legacy software program.

4. The method of claim 3 , further comprising:

generating metadata to supplement the static data.

5. The method of claim 3 , wherein the static data is captured from the legacy software program at a particular time.

6. The method of claim 5 , wherein processing the static data comprises:

processing the static data to generate the corresponding dynamic data, from the new software program, during a time period subsequent to the particular time.

7. The method of claim 3 , further comprising:

continue further processing for at least one other thread of the plurality of threads while ceasing further processing for the particular thread.

8. One or more non-transitory, computer-readable media comprising instructions that, when executed by one or more processors, cause operations comprising:

receiving information for a plurality of threads to be processed by a new software program, the information including static data associated with the plurality of threads;

processing, using the new software program and in parallel with executing a legacy software program, the static data associated with the plurality of threads to generate dynamic data from the new software program;

comparing, for the plurality of threads, the dynamic data from the new software program and corresponding dynamic data from the legacy software program;

determining that the dynamic data from the new software program varies outside a threshold distance from corresponding dynamic data from the legacy software program; and

ceasing further processing, for a particular thread of the plurality of threads, based on the dynamic data from the new software program varying outside the threshold distance from the corresponding dynamic data from the legacy software program.

9. The one or more non-transitory, computer-readable media of claim 8 , wherein the operations further comprise:

generating metadata to supplement the static data.

10. The one or more non-transitory, computer-readable media of claim 8 , wherein the static data is captured from the legacy software program at a particular time.

11. The one or more non-transitory, computer-readable media of claim 10 , wherein the static data is processed to generate the dynamic data, from the new software program, during a time period subsequent to the particular time.

12. The one or more non-transitory, computer-readable media of claim 8 , wherein the dynamic data from the new software program and the corresponding dynamic data from the legacy software program are for a particular time period.

13. The one or more non-transitory, computer-readable media of claim 8 , wherein further comprising:

processing, using the new software program, supplemented static data for the particular thread to generate updated dynamic data.

14. The one or more non-transitory, computer-readable media of claim 8 , wherein the information comprises batch information for the plurality of threads.

15. The one or more non-transitory, computer-readable media of claim 14 ,

wherein the batch information includes input data and output data captured from the legacy software program, and

wherein the input data includes the static data.

16. The one or more non-transitory, computer-readable media of claim 8 , wherein the operations further comprise:

continue further processing for at least one other thread of the plurality of threads while ceasing further processing for the particular thread.

17. The method of claim 3 , further comprising:

processing, using the new software program, supplemented static data for the particular thread to generate updated dynamic data.

18. The method of claim 17 , wherein the updated dynamic data is generated during a time period subsequent to a particular time associated with the particular thread.

19. The method of claim 4 , wherein the metadata is generated before the static data is processed.

20. The method of claim 4 , wherein the metadata is generated for the particular thread.

21. The method of claim 4 , wherein processing the static data comprises:

processing, using the new software program, the static data and the metadata for the particular thread to generate the dynamic data from the new software program.

22. The method of claim 7 , wherein the at least one other thread is multiple other threads.

23. The method of claim 3 ,

wherein the particular thread is a first thread of the plurality of threads, and

wherein the method further comprises:

continue processing for a second thread, of the plurality of threads, that partially overlaps with processing for the first thread.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2022
From: PANDAMANETI, KOMAL KRISHNA; GOTTIPATI, SUNITHA RANI; VEGESANA, SIVA R.; RAJA, LAVANYA; KOMMIREDDY, SAIRAM; RABINOWITZ, MARIA; SABAPATHY, LAVANYA; DUGGINENI, RAMAKRISHNA; LINES, JASON E.; MUPPARAJU, SRINIVASULU
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 061253/0212 →
Continuity (1)
Related Publication 20240111510A1 · Apr 4, 2024
References Cited (18)
US 8204809B1 · Wise · 2012 [cited by applicant]
US 8571974B1 · Coleman · 2013 [cited by applicant]
US 11442725B1 · Chawda et al. · 2022 [cited by applicant]
US 11561868B1 · Poornachandran et al. · 2023 [cited by applicant]
US 11593103B1 · Chawda et al. · 2023 [cited by applicant]
US 11853753B1 · Chawda et al. · 2023 [cited by applicant]
US 20070208574A1 · Zheng et al. · 2007 [cited by applicant]
US 20090037896A1 · Grechanik · 2009 [cited by examiner]
US 20130173596A1 · Roediger et al. · 2013 [cited by applicant]
US 20140013337A1 · Neft · 2014 [cited by applicant]
US 20180077080A1 · Gazier et al. · 2018 [cited by applicant]
US 20190324731A1 · Zhou · 2019 [cited by examiner]
US 20210232390A1 · Hwang · 2021 [cited by applicant]
US 20210392080A1 · Shen et al. · 2021 [cited by applicant]
US 20230107637A1 · Ghosh · 2023 [cited by examiner]
US 20230266970A1 · Aiyer et al. · 2023 [cited by applicant]
US 20240103492A1 · Dauber · 2024 [cited by examiner]
Everton de Vargas Agilar, A Systematic Mapping Study on Legacy System Modernization, 2016, ksiresearch.org (Year: 2016). [cited by examiner]