IP Library Granted Patent US 9,442,948
Granted Patent B2
US 9,442,948 · App. 13/160,697 · Granted Sep 13, 2016

Resource-specific control blocks for database cache

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 9,442,948
App. No.
13/160,697
Granted
Sep 13, 2016
Kind
B2
Abstract

A system includes reception of an instruction to load a page from a database datastore into a database cache, allocation of the page within the cache, determination of a resource type associated with the page, and allocation of a control block for the page within the cache based on the determined resource type, wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated control block in a case that the resource type is a second resource type.

Claims (83)

1. A method for a database system, comprising:

receiving an instruction to load a page from a database datastore into a database cache;

allocating the page within the cache;

after the receiving of the instruction to load the page from the database datastore into the database cache, associating the page in the database cache with a resource type and determining the resource type associated with the page; and

after the determining of the resource type associated with the page, allocating a control block for the page within the cache based on the determined resource type,

wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated control block in a case that the resource type is a second resource type; and

wherein the allocating a control block for the page within the cache based on the determined resource type comprises:

allocating a control block that is for the page and includes information that is:

used for cache management.

2. A method according to claim 1 , wherein if the resource type is the first resource type, the allocated control block for the page within the cache comprises a first plurality of data members,

wherein if the resource type is the second resource type, the allocated control block for the page within the cache comprises a second plurality of data members, and

wherein the first plurality of data members is not identical to the second plurality of data members.

3. A method according to claim 1 , wherein a size of the allocated control block if the resource type is the first resource type is different than a size of the allocated control block if the resource type is the second resource type.

4. A method according to claim 1 , wherein the allocated control block in a case that the resource type is a third resource type is different from the allocated control block in a case that the resource type is the first resource type or the second resource type.

5. A method according to claim 1 , wherein the allocated control block comprises a vector member if the determined resource type is columnar and does not comprise a vector member if the determined resource type is row-based.

6. A method according to claim 1 , wherein the allocated control block comprises an array of pointers to control blocks of one or more child converter pages and a pointer to a control block of a parent converter page if the determined resource type is a converter inner page.

7. A method according to claim 1 , wherein the allocated control block comprises a pointer to a control block of a converter leaf page if the determined resource type is a data page.

8. A non-transitory computer-readable medium storing program code, the program code executable by a computer, the program code comprising:

code to receive an instruction to load a page from a database datastore into a database cache;

code to allocate the page within the cache;

code to, after receiving the instruction to load the page from the database datastore into the database cache, associate the page in the database cache with a resource type and determine the resource type associated with the page; and

code to, after determining the resource type associated with the page, allocate a control block for the page within the cache based on the determined resource type,

wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated control block in a case that the resource type is a second resource type; and

wherein the allocate a control block for the page within the cache based on the determined resource type comprises:

allocate a control block that is for the page and includes information that is: used for cache management.

9. A medium according to claim 8 , wherein if the resource type is the first resource type, the allocated control block for the page within the cache comprises a first plurality of data members,

wherein if the resource type is the second resource type, the allocated control block for the page within the cache comprises a second plurality of data members, and

wherein the first plurality of data members is not identical to the second plurality of data members.

10. A medium according to claim 9 , wherein a size of the allocated control block if the resource type is the first resource type is different than a size of the allocated control block if the resource type is the second resource type.

11. A medium according to claim 8 , wherein the allocated control block in a case that the resource type is a third resource type is different from the allocated control block in a case that the resource type is the first resource type or the second resource type.

12. A medium according to claim 8 , wherein the allocated control block comprises a vector member if the determined resource type is columnar and does not comprise a vector member if the determined resource type is row-based.

13. A medium according to claim 8 , wherein the allocated control block comprises an array of pointers to control blocks of one or more child converter pages and a pointer to a control block of a parent converter page if the determined resource type is a converter inner page.

14. A medium according to claim 8 , wherein the allocated control block comprises a pointer to a control block of a converter leaf page if the determined resource type is a data page.

15. A system comprising:

a datastore storing a plurality of converter pages and a plurality of data pages;

a database cache;

a memory storing processor-executable process steps; and

a processor to execute the processor-executable process steps to cause the system to:

receive an instruction to load a page from the datastore into the cache;

allocate the page within the cache;

after receiving the instruction to load the page from the database datastore into the database cache, associate the page in the database cache with a resource type and determine the resource type associated with the page; and

after determining the resource type associated with the page, allocate a control block for the page within the cache based on the determined resource type,

wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated control block in a case that the resource type is a second resource type; and

wherein the allocate a control block for the page within the cache based on the determined resource type comprises:

allocate a control block that is for the page and includes information that is: used for cache management.

16. A system according to claim 15 , wherein if the resource type is the first resource type, the allocated control block for the page within the cache comprises a first plurality of data members,

wherein if the resource type is the second resource type, the allocated control block for the page within the cache comprises a second plurality of data members, and

wherein the first plurality of data members is not identical to the second plurality of data members.

17. A system according to claim 16 , wherein a size of the allocated control block if the resource type is the first resource type is different than a size of the allocated control block if the resource type is the second resource type.

18. A system according to claim 15 , wherein the allocated control block in a case that the resource type is a third resource type is different from the allocated control block in a case that the resource type is the first resource type or the second resource type.

19. A system according to claim 15 , wherein the allocated control block comprises a vector member if the determined resource type is columnar and does not comprise a vector member if the determined resource type is row-based.

20. A system according to claim 15 , wherein the allocated control block comprises an array of pointers to control blocks of one or more child converter pages and a pointer to a control block of a parent converter page if the determined resource type is a converter inner page.

21. A system according to claim 15 , wherein the allocated control block comprises a pointer to a control block of a converter leaf page if the determined resource type is a data page.

22. A method according to claim 1 , wherein the control block for the page is allocated within the cache when the page is allocated within the cache.

23. A method according to claim 1 , wherein the page allocated within the cache stores a type of data; and

wherein the determining a resource type associated with the page comprises:

determining a resource type that refers to the type of data stored in the page allocated within the cache.

24. A method according to claim 1 , wherein the control block for the page allocated within the cache in a case that the resource type associated with the page allocated within the cache is a first resource type includes information that is specific to the first resource type associated with the page allocated within the cache; and

wherein the control block for the page allocated within the cache in a case that the resource type associated with the page allocated within the cache is a second resource type includes information that is specific to the second resource type associated with the page allocated within the cache.

25. A method according to claim 1 , wherein the control block for the page allocated within the cache in a case that the resource type associated with the page allocated within the cache is a first resource type includes information that is specific to the first resource type associated with the page allocated within the cache; and

wherein the control block for the page allocated within the cache in a case that the resource type associated with the page allocated within the cache is a second resource type includes information that is: (i) specific to the second resource type associated with the page allocated within the cache and (ii) different than the information that is included in the control block for the page allocated within the cache in the case that the resource type associated with the page allocated within the cache is the first resource type.

26. A method according to claim 22 , wherein the page allocated within the cache stores a type of data; and

wherein the determining a resource type associated with the page comprises:

determining a resource type that refers to the type of data stored in the page allocated within the cache.

27. A method according to claim 26 , wherein in a case that the resource type associated with the page allocated within the cache is a first resource type, the control block that is allocated within the cache when the page is allocated within the cache includes information that is specific to the first resource type associated with the page allocated within the cache; and

wherein in a case that the resource type associated with the page allocated within the cache is a second resource type, the control block that is allocated within the cache when the page is allocated within the cache includes information that is specific to the second resource type associated with the page allocated within the cache.

28. A method according to claim 26 , wherein in a case that the resource type associated with the page allocated within the cache is a first resource type, the control block that is allocated within the cache when the page is allocated within the cache includes information that is specific to the first resource type associated with the page allocated within the cache; and

wherein in a case that the resource type associated with the page allocated within the cache is a second resource type, the control block that is allocated within the cache when the page is allocated within the cache includes information that is: (i) specific to the second resource type associated with the page allocated within the cache and (ii) different than the information that is included in the control block for the page allocated within the cache in the case that the resource type associated with the page allocated within the cache is the first resource type.

29. A method for a database system, comprising:

receiving an instruction to load a page from a database datastore into a database cache;

allocating the page within the cache;

associating the page in the database cache with a resource type;

determining a resource type associated with the page; and

allocating a control block for the page within the cache based on the determined resource type,

wherein the allocated control block in a case that the resource type is a first resource type is different from the allocated control block in a case that the resource type is a second resource type; and

wherein the allocated control block includes at least one of: (i) a read/write lock for the contents of the page, (ii) an I/O lock and (iii) an in memory lock flag.

30. A method according to claim 29 , wherein the allocated control block includes a read/write lock for the contents of the page.

31. A method according to claim 29 , wherein the allocated control block includes a flag indicating whether or not the page has been modified.

32. A method according to claim 29 , wherein the allocated control block includes least recently used information used to implement page replacement policies for freeing cache space.

33. A method according to claim 29 , wherein the allocated control block includes a read/write lock for the contents of the page, a flag indicating whether or not the page has been modified and least recently used information used to implement page replacement policies for freeing cache space.

34. A method according to claim 29 , wherein the allocated control block includes an I/O lock.

35. A method according to claim 29 , wherein the allocated control block includes an in memory lock flag.

36. A method according to claim 1 , wherein the allocated control block includes least recently used information used to implement page replacement policies for freeing cache space.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2012
From: RAMSAY, CHRISTOPHER L.; DZIEDZIC, SARA; MAHONEY, MICHAEL
To: DEPUY SPINE, INC.
Reel/Frame 028529/0962 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2011
From: SCHRETER, IVAN
To: SAP AG
Reel/Frame 026447/0115 →