IP Library Granted Patent US 12,468,681
Granted Patent B1
US 12,468,681 · App. 18/907,927 · Granted Nov 11, 2025

Live synchronization for database disaster recovery

Inventors: Matthias Walliczek (Wiesloch, DE); Jochen Wilhelm (Sandhausen, DE); Rouven Krebs (Römerberg, DE)
Assignee: SAP SE
G06F16/2358G06F16/275
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,468,681
App. No.
18/907,927
Granted
Nov 11, 2025
Kind
B1
Abstract

This disclosure describes systems, software, and computer implemented methods for synchronizing between a primary and a secondary computing system, including receiving instructions to perform a change to a primary computing system database; performing the change to the database; logging the change in a database log; receiving instructions to change the portion of the database stored in the cache memory; performing a change to a registry based on the change of the portion of the database; generating a sync message by: encoding the change to the registry in a message with an identifier of the registry changed; obtaining a log indicating previous database changes logged in the database change log since a prior sync message was sent; appending the previous database changes since the prior sync message was sent to the message; and encoding the sync message as an object.

Claims (61)

1 . A computer-implemented method comprising:

receiving instructions to perform a change to a persistent storage of a primary computing system, wherein the primary computing system comprises one or more registries, each registry maintaining a primary cache memory storing a copy of a portion of data stored in the persistent storage of the primary computing system;

performing the change to the data stored in the persistent storage of the primary computing system;

logging the change in a data change log;

receiving instructions to change the copy of the portion of the data stored in the primary cache memory;

performing a change to the copy of the portion of the data stored in the primary cache memory;

generating a sync message by:

encoding the change to the copy of the portion of the data in a message with an identifier of the registry changed;

obtaining a log indicating previous data changes logged in the data change log since a prior sync message was sent;

appending the previous data changes since the prior sync message to the sync message; and

encoding the sync message as an object; and

sending the sync message to a secondary computing system to provide instructions to change a secondary cache memory and a persistent storage of the secondary computing system.

2 . The method of claim 1 , wherein the persistent storage of the primary computing system and the persistent storage of the secondary computing system are databases managed by a landscape management service.

3 . The method of claim 1 , wherein logging the change in the data change log comprises logging the change and an identifier (ID) of a database object that is in the portion of the data being modified with the change.

4 . The method of claim 1 , wherein the secondary computing system comprises one or more registries, each registry maintaining a respective secondary cache memory storing a respective copy of a portion of the data.

5 . The method of claim 1 , wherein encoding the sync message as the object comprises assigning the sync message a serial number and formatting the sync message as a JavaScript Object Notation (JSON) object.

6 . The method of claim 1 , comprising:

decoding, by the secondary computing system, the sync message; and

updating the secondary cache memory of the secondary computing system and the secondary persistent storage of the secondary computing system according to the sync message.

7 . The method of claim 1 , wherein the primary cache memory and the secondary cache memory are random access memory (RAM) storages.

8 . A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations for building a terminology dictionary, the operations comprising:

receiving instructions to perform a change to a persistent storage of a primary computing system, wherein the primary computing system comprises one or more registries, each registry maintaining a primary cache memory storing a copy of a portion of data stored in the persistent storage of the primary computing system;

performing the change to the data stored in the persistent storage of the primary computing system;

logging the change in a data change log;

receiving instructions to change the copy of the portion of the data stored in the primary cache memory;

performing a change to the copy of the portion of the data stored in the primary cache memory;

generating a sync message by:

encoding the change to the copy of the portion of the data in a message with an identifier of the registry changed;

obtaining a log indicating previous data changes logged in the data change log since a prior sync message was sent;

appending the previous data changes since the prior sync message to the sync message; and

encoding the sync message as an object; and

sending the sync message to a secondary computing system to provide instructions to change a secondary cache memory and a persistent storage of the secondary computing system.

9 . The medium of claim 8 , wherein the persistent storage of the primary computing system and the persistent storage of the secondary computing system are databases managed by a landscape management service.

10 . The medium of claim 8 , wherein logging the change in the data change log comprises logging the change and an identifier (ID) of a database object that is in the portion of the data being modified with the change.

11 . The medium of claim 8 , wherein the secondary computing system comprises one or more registries, each registry maintaining a respective secondary cache memory storing a respective copy of a portion of the data.

12 . The medium of claim 8 , wherein encoding the sync message as the object comprises assigning the sync message a serial number and formatting the sync message as a JavaScript Object Notation (JSON) object.

13 . The medium of claim 8 , the operations comprising:

decoding, by the secondary computing system, the sync message; and

updating the secondary cache memory of the secondary computing system and the persistent storage of the secondary computing system according to the sync message.

14 . The medium of claim 8 , wherein the primary cache memory and the secondary cache memory are random access memory (RAM) storages.

15 . A system, comprising:

one or more computers; and

a computer-readable storage device coupled to the one or more computers and having instructions stored thereon which, when executed by the one or more computer, cause the one or more computers to perform operations for building a terminology dictionary, the operations comprising:

receiving instructions to perform a change to a persistent storage of a primary computing system, wherein the primary computing system comprises one or more registries, each registry maintaining a primary cache memory storing a copy of a portion of data stored in the persistent storage of the primary computing system;

performing the change to the data stored in the persistent storage of the primary computing system;

logging the change in a data change log;

receiving instructions to change the copy of the portion of the data stored in the primary cache memory;

performing a change to the copy of the portion of the data stored in the primary cache memory;

generating a sync message by:

encoding the change to the copy of the portion of the data in a message with an identifier of the registry changed;

obtaining a log indicating previous data changes logged in the data change log since a prior sync message was sent;

appending the previous data changes since the prior sync message to the sync message; and

encoding the sync message as an object; and

sending the sync message to a secondary computing system to provide instructions to change a secondary cache memory and a persistent storage of the secondary computing system.

16 . The system of claim 15 , wherein the persistent storage of the primary computing system and the persistent storage of the secondary computing system are databases managed by a landscape management service.

17 . The system of claim 15 , wherein logging the change in the data change log comprises logging the change and an identifier (ID) of a database object that is in the portion of the data being modified with the change.

18 . The system of claim 15 , wherein the secondary computing system comprises one or more registries, each registry maintaining a respective secondary cache memory storing a respective copy of a portion of the data.

19 . The system of claim 15 , wherein encoding the sync message as the object comprises assigning the sync message a serial number and formatting the sync message as a JavaScript Object Notation (JSON) object.

20 . The system of claim 15 , the operations comprising:

decoding, by the secondary computing system, the sync message; and

updating the secondary cache memory of the secondary computing system and the persistent storage of the secondary computing system according to the sync message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: WALLICZEK, MATTHIAS; WILHELM, JOCHEN; KREBS, ROUVEN
To: SAP SE
Reel/Frame 068813/0778 →
References Cited (13)
US 9251017B2 · Bogdanov · 2016 [cited by examiner]
US 10198330B2 · Boshev et al. · 2019 [cited by applicant]
US 10261872B2 · Boshev et al. · 2019 [cited by applicant]
US 10275346B2 · Boshev et al. · 2019 [cited by applicant]
US 10402229B2 · Dimitrov et al. · 2019 [cited by applicant]
US 11269775B2 · Krebs et al. · 2022 [cited by applicant]
US 11675809B2 · Stolze · 2023 [cited by examiner]
US 12124474B2 · Sonawane · 2024 [cited by examiner]
US 20130179480A1 · Agarwal · 2013 [cited by examiner]
US 20160182631A1 · Anglin · 2016 [cited by examiner]
US 20180137015A1 · Boshev · 2018 [cited by examiner]
US 20180217869A1 · Dimitrov et al. · 2018 [cited by applicant]
US 20200310928A1 · Neichev et al. · 2020 [cited by applicant]