IP Library › Granted Patent US 10,353,895
Granted Patent B2
US 10,353,895 · App. 14/961,309 · Granted Jul 16, 2019

Atomic visibility switch for transactional cache invalidation

Inventors: Changgyoo Park (Seoul, KR); Yongjae Chuh (Seoul, KR); Juchang Lee (Seoul, KR); Norman May (Frankfurt, DE); Thomas Seufert (Oftersheim, DE); Hannes Jakschitsch (Walldorf, DE)
Assignee: SAP SE
G06F16/24539G06F16/2282G06F16/2308G06F16/2379G06F16/24552
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 10,353,895
App. No.
14/961,309
Granted
Jul 16, 2019
Kind
B2
Abstract

Disclosed herein are systems, methods, and computer program products for providing transaction-consistent snapshots of data stored in or associated with a database. An embodiment operates by receiving, at a source database, an update request to update data associated with a table stored at the source database, and modifying a value of a modification-in-progress data structure corresponding to the table to indicate that a modification is in progress for the table. The embodiment includes updating a value of a commit identification counter and a table time stamp associated with the table to indicate that cached data having a time stamp older than the updated time stamp are invalid. The embodiment further includes modifying the value of the modification-in-progress counter to indicate completion of table modification.

Claims (48)

1. A method, comprising:

receiving, by one or more computing devices, at a source database, an update request to update data associated with a table stored at the source database;

modifying, by the one or more computing devices, a modification-in-progress data structure corresponding to the table to indicate that a modification is in progress for the table;

updating, by the one or more computing devices, data in the table based on the update request;

updating, by the one or more computing devices, a commit identification data structure to reflect that the source database has been updated;

updating, by the one or more computing devices, the value of a source table time stamp corresponding to the table based on the commit identification data structure;

modifying, by the one or more computing devices, the value of the modification-in-progress data structure to indicate that no modification is in progress for the table upon updating the value of the source table time stamp; and

responding, by the one or more computing devices, to a request from a cache node holding a cached copy of the table with an indication that the cached copy is invalid based on either the modification-in-progress data structure indicating that a modification is in progress for the table, or the value of the source table time stamp being more recent than a time stamp corresponding to the cached copy of the table.

2. The method of claim 1 , wherein modifying the modification-in-progress data structure comprises selecting the modification-in-progress data structure corresponding to the table from a plurality of modification-in-progress data structures corresponding to respective tables from a plurality of tables stored at the source database.

3. The method of claim 1 , further comprising:

transmitting an update comprising a subset of data in the table to the cache node.

4. The method of claim 1 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cache node further comprises a cache key associated with the cached entity, the method further comprising:

directing a request for data associated with the table to the cache node if the cache key matches a request key associated with the request.

5. The method of claim 1 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cache node comprises a time stamp associated with the cached entity, further comprising:

directing a request for data associated with the table to the cache node if the cache key matches a request key associated with the request based on a comparison of the time stamp associated with the cached entity to the source table time stamp.

6. The method of claim 1 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cached entity further comprises a copy of a subset of data in another table stored at the source database.

7. The method of claim 1 , further comprising:

writing a commit log to a non-volatile storage device.

8. A system comprising:

a memory; and

at least one processor coupled to the memory and configured to:

receive, at a source database, an update request to update data associated with a table stored at the source database;

modify a modification-in-progress data structure corresponding to the table to indicate that a modification is in progress for the table;

update data in the table based on the update request;

update a commit identification data structure to reflect that the source database has been updated;

update the value of a source table time stamp corresponding to the table based on the commit identification data structure;

modify the value of the modification-in-progress data structure to indicate that no modification is in progress for the table upon updating the value of the source table time stamp; and

respond to a request from a cache node holding a cached copy of the table with an indication that the cached copy is invalid based on either the modification-in-progress data structure indicating that a modification is in progress for the table, or the value of the source table time stamp being more recent than a time stamp corresponding to the cached copy of the table.

9. The system of claim 8 , wherein modifying the modification-in-progress data structure comprises selecting the modification-in-progress data structure corresponding to the table from a plurality of modification-in-progress data structures corresponding to respective tables from a plurality of tables stored at the source database.

10. The system of claim 8 , the at least one processor further configured to:

transmit an update comprising a subset of data in the table to the cache node.

11. The system of claim 8 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cache node further comprises a cache key associated with the cached entity, and the at least one processor is further configured to:

direct a request for data associated with the table to the cache node if the cache key matches a request key associated with the request.

12. The system of claim 8 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cache node comprises a time stamp associated with the cached entity, and the at least one processor is further configured to:

direct a request for data associated with the table to the cache node if the cache key matches a request key associated with the request based on a comparison of the time stamp associated with the cached entity to the source table time stamp.

13. The system of claim 8 , wherein the cache node comprises a cached entity including a copy of a subset of data in the table and wherein the cached entity further comprises a copy of a subset of data in another table stored at the source database.

14. The system of claim 8 , wherein the at least one processor is further configured to write a commit log to a non-volatile storage device.

15. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

receiving, by one or more computing devices, at a source database, an update request to update data associated with a table stored at the source database;

modifying, by the one or more computing devices, a modification-in-progress data structure corresponding to the table to indicate that a modification is in progress for the table;

updating, by the one or more computing devices, data in the table based on the update request;

updating, by the one or more computing devices, a commit identification data structure to reflect that the source database has been updated;

updating, by the one or more computing devices, the value of a source table time stamp corresponding to the table based on the commit identification data structure;

modifying, by the one or more computing devices, the value of the modification-in-progress data structure to indicate that no modification is in progress for the table upon updating the value of the source table time stamp; and

responding, by the one or more computing devices, to a request from a cache node holding a cached copy of the table with an indication that the cached copy is invalid based on either the modification-in-progress data structure indicating that a modification is in progress for the table, or the value of the source table time stamp being more recent than a time stamp corresponding to the cached copy of the table.

16. The non-transitory computer-readable device of claim 15 , wherein modifying the modification-in-progress data structure comprises selecting the modification-in-progress data structure corresponding to the table from a plurality of modification-in-progress data structures corresponding to respective tables from a plurality of tables stored at the source database.

17. The non-transitory computer-readable device of claim 15 , the operations further comprising:

transmitting an update comprising a subset of data in the table to the cache node.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037263 FRAME: 0208. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded May 6, 2019
From: PARK, CHANGGYOO; CHUH, YONGJAE; LEE, JUCHANG; MAY, NORMAN; SEUFERT, THOMAS; JAKSCHITSCH, HANNES
To: SAP SE
Reel/Frame 049095/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: PARK, CHANGGYOO; CHUH, YONGJAE; LEE, JUCHANG; MAY, NORMAN; SEUFERT, THOMAS; JAKSCHITSCH, HANNES
To: SAP GLOBAL IP GROUP, SAP SE
Reel/Frame 037263/0208 →
Continuity (2)
Provisional Application 62259405 · Nov 24, 2015
Related Publication 20170147638A1 · May 25, 2017
Cited By (2)
US 12,579,110 US 12,632,422