IP Library Granted Patent US 8,412,887
Granted Patent B2
US 8,412,887 · App. 13/460,785 · Granted Apr 2, 2013

Wait-free parallel data cache

Inventor: Ivan Schreter (Malsch, DE)
Assignee: SAP AG
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 8,412,887
App. No.
13/460,785
Granted
Apr 2, 2013
Kind
B2
Abstract

A system and method for managing a data cache in a central processing unit (CPU) of a database system. A method executed by a system includes the processing steps of adding an ID of a page p into a page holder queue of the data cache, executing a memory barrier store-load operation on the CPU, and looking-up page p in the data cache based on the ID of the page p in the page holder queue. The method further includes the steps of, if page p is found, accessing the page p from the data cache, and adding the ID of the page p into a least-recently-used queue.

Claims (33)

1. A method for managing a data cache in a central processing unit (CPU) of a database system, the method comprising:

locking a least-recently-used (LRU) queue of the data cache;

selecting a number of pages from the LRU queue;

marking a set of the selected number of pages with an expiration flag;

unlocking the LRU queue;

loading a list of used pages from the selected number of pages that have been marked for expiration;

for each page p in the selected number of pages, removing the expiration flag if the page p is contained in the list of used pages and removing this page from a list of the selected number of pages; and

locking the LRU queue and removing pages with an expiration flag from the LRU queue.

2. A method in accordance with claim 1 , further comprising, if a page p is modified, writing the page p to a secondary storage.

3. A method in accordance with claim 1 , further comprising locking a free list queue of the data cache.

4. A method in accordance with claim 3 , further comprising adding the selected number of pages to the free list queue of the data cache.

5. A method in accordance with claim 4 , further comprising unlocking the free list queue.

6. A computer program product comprising a machine-readable non-transitory medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

lock a least-recently-used (LRU) queue of a data cache in a central processing unit (CPU) of a database system;

select a number of pages from the LRU queue;

mark a set of the selected number of pages with an expiration flag;

unlock the LRU queue;

load a list of used pages from the selected number of pages that have been marked for expiration;

for each page p in the selected number of pages, remove the expiration flag if the page p is contained in the list of used pages and removing this page from a list of the selected number of pages; and

lock the LRU queue and removing pages with an expiration flag from the LRU queue.

7. The computer program product in accordance with claim 6 , further comprising instructions to cause the at least one programmable processor to write the page p to a secondary storage if a page p is modified.

8. The computer program product in accordance with claim 6 , further comprising instructions to cause the at least one programmable processor to lock a free list queue of the data cache.

9. The computer program product in accordance with claim 8 , further comprising instructions to cause the at least one programmable processor to adding the selected number of pages to the free list queue of the data cache.

10. The computer program product in accordance with claim 9 , further comprising instructions to cause the at least one programmable processor to unlock the free list queue.

11. A method for managing a data cache in a central processing unit (CPU) of a database system, the method comprising:

locking a least-recently-used (LRU) queue of the data cache;

selecting a number of pages from the LRU queue to be marked with an expiration flag;

unlocking the LRU queue;

for each page p in the selected number of pages that have been marked with the expiration flag, removing the expiration flag if the page p is contained in the list of used pages and removing this page from a list of the selected number of pages; and loading the selected number of pages into the data cache in the CPU; and locking the LRU queue; and removing any pages with an expiration flag from the LRU queue.

12. The method in accordance with claim 11 , further comprising, if a page p is modified, writing the page p to a secondary storage apart from the data cache.

13. The method in accordance with claim 11 , further comprising locking a free list queue of the data cache.

14. The method in accordance with claim 13 , further comprising adding the selected number of pages to the free list queue of the data cache.

15. The method in accordance with claim 14 , further comprising unlocking the free list queue.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: SCHRETER, IVAN
To: SAP AG
Reel/Frame 028396/0921 →
Continuity (3)
Continuation 12897679 · Oct 4, 2010
Division 11784831 · Apr 9, 2007
Related Publication 20120215986A1 · Aug 23, 2012