Access frontier for demand loading pages in object-oriented databases
First Claim
1. A method for loading pages from a persistent object system comprising the steps of:
- a) for each pointer in a page initializing a corresponding page;
b) for each corresponding page pointer not pointing to an initialized page, creating a page table entry for the corresponding page pointer and marking the page pointed to by the corresponding page pointer as inaccessible;
c) marking the corresponding page as inaccessible;
d) on dereferencing a pointer in the page that causes a fault, for each pointer not pointing to an initialized page in the page pointed to by the dereferencing pointer, initializing a corresponding page;
e) for each corresponding page pointer not pointing to an initialized page, creating a page table entry for the corresponding page pointer and marking the page pointed by the corresponding page pointer as inaccessible;
f) marking the page pointed to by the dereferencing pointer as accessible; and
g) managing two or more dereferencing operations arising concurrently on two or more threads through a lock and synchronization mechanism.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and article of manufacture for providing access frontier page(s) around all accessible memory pages loaded from an object-oriented database to prevent simultaneous access by multiple threads to an initializing page. On initializing the root pages from an object-oriented database including bringing them into memory and swizzling pointers in the pages, access frontier pages corresponding to each swizzled pointer are initialized and marked as inaccessible. All pointers contained in these access frontier pages that do not point to either an initialized and accessible page such as a root page or another access frontier page have page table entries created for them and are marked inaccessible. Any dereference of a pointer that causes a fault must be an access to an object on an access frontier page. A page fault interrupt handling routine proceeds, for each of the uninitialized pages pointed to by pointers on the faulted access frontier page, to convert it into an access frontier page by initializing a corresponding page from the object-oriented database, including bringing in the page and swizzling pointers in the page, and setting up inaccessible page table entries for pointers that do not point to other frontier pages or accessible and initialized pages, and marking the page inaccessible. The faulted page is marked accessible thereafter and surrounded by access frontier pages.
15 Citations
8 Claims
-
1. A method for loading pages from a persistent object system comprising the steps of:
-
a) for each pointer in a page initializing a corresponding page;
b) for each corresponding page pointer not pointing to an initialized page, creating a page table entry for the corresponding page pointer and marking the page pointed to by the corresponding page pointer as inaccessible;
c) marking the corresponding page as inaccessible;
d) on dereferencing a pointer in the page that causes a fault, for each pointer not pointing to an initialized page in the page pointed to by the dereferencing pointer, initializing a corresponding page;
e) for each corresponding page pointer not pointing to an initialized page, creating a page table entry for the corresponding page pointer and marking the page pointed by the corresponding page pointer as inaccessible;
f) marking the page pointed to by the dereferencing pointer as accessible; and
g) managing two or more dereferencing operations arising concurrently on two or more threads through a lock and synchronization mechanism. - View Dependent Claims (2, 3, 4)
-
-
5. An article of manufacture comprising a computer usable medium having computer readable program code means therein for loading pages from a persistent object system, the computer readable program code means in said computer program product comprising:
-
computer readable code means for causing a computer to, for each pointer in a page, initialize a corresponding page;
computer readable code means for causing a computer to, for each corresponding page pointer not pointing to an initialized page, create a page table entry for the corresponding page pointer and marking the page pointed to by the corresponding page pointer as inaccessible;
computer readable code means for causing a computer to mark the corresponding page as inaccessible;
computer readable code means for causing a computer to, on dereferencing a pointer in the page that causes a fault and for each pointer not pointing to an initialized page in the page pointed to by the dereferencing pointer, initialize a corresponding page;
computer readable code means for causing a computer to, for each corresponding page pointer not pointing to an initialized page, create a page table entry for the corresponding page pointer and marking the page pointed by the corresponding page pointer as inaccessible;
computer readable code means for causing a computer to mark the page pointed to by the dereferencing pointer as accessible; and
computer readable code means for causing a computer to manage two or more dereferencing operations arising concurrently on two or more threads through a lock and synchronization mechanism. - View Dependent Claims (6, 7, 8)
-
Specification