IP Library Granted Patent US 7,290,113
Granted Patent B2
US 7,290,113 · App. 10/944,444 · Granted Oct 30, 2007

Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system

Assignee: Progress Software Corporation
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 7,290,113
App. No.
10/944,444
Granted
Oct 30, 2007
Kind
B2
Abstract

An apparatus and method provide virtual memory mapping and transaction management in an object-oriented database system having a database for permanently storing data, a cache memory for temporarily storing data, and a processing unit which runs application programs which request data using virtual addresses. The system performs data transfers in response to memory faults resulting from requested data not being available at specified virtual addresses and performs mapping of data in cache memory. The database includes pointers containing persistent addresses, which pointers are relocated between persistent addresses and virtual addresses. When a data request is made, either for read or write, from a client computer in a system, other client computers in the system are queried to determine if the requested data is cached and/or locked in a manner inconsistent with the requested use, and the inconsistent caching is downgraded or the transfer delayed until such downgrading can be performed.

Claims (28)

1. An apparatus for using virtual memory to manage data in a data storage system, the data storage system comprising a first data store configured to temporarily store data and a second data store configured to permanently store data, the apparatus comprising:

a receiving module configured to receive a persistent address;

a virtual address module configured to map the persistent address to a virtual address; and

a fault handler configured:

to determine whether data associated with the virtual address is stored in the first data store;

if data associated with the virtual address is not stored in the first data store, to request the data from the second data store; and

if data associated with the virtual address is stored in the first data store, to map into virtual memory a page that contains the data associated with the virtual address; and

the data storage system further comprising:

a client computer associated with the first data store, wherein the client computer comprises a virtual address map, and wherein the virtual address module is further configured to use the virtual address map to map the persistent address to the virtual address; and

a server computer associated with the second data store.

2. The apparatus of claim 1 , wherein the first data store comprises a cache.

3. The apparatus of claim 1 , wherein the second data store comprises a database.

4. The apparatus of claim 3 , wherein the database comprises a plurality of objects.

5. The apparatus of claim 1 , wherein the fault handler is further configured to transmit, if data associated with the virtual address is not stored in the first data store, data received from the second data store to the first data store.

6. The apparatus of claim 5 , further comprising a locking module configured to lock the transmitted data when the transmitted data is used in a transaction.

7. The apparatus of claim 6 , wherein the locking module is further configured to unlock the transmitted data after the transaction has committed.

8. A method for using virtual memory to manage data in a data storage system, the data storage system comprising a first data store configured to temporarily store data, a second data store configured to permanently store data, a client computer associated with the first data store and comprising a virtual address map, and a server computer associated with the second data store, the method comprising:

receiving a persistent address;

mapping the persistent address to a virtual address using the virtual address map to map the persistent address to the virtual address;

determining, using a fault handler, whether data associated with the virtual address is stored in the first data store;

if data associated with the virtual address is not stored in the first data store, requesting the data from the second data store; and

if data associated with the virtual address is stored in the first data store, mapping into virtual memory a page that contains the data associated with the virtual address.

9. The method of claim 8 , wherein the first data store comprises a cache.

10. The method of claim 8 , wherein the second data store comprises a database.

11. The method of claim 10 , wherein the database comprises a plurality of objects.

12. The method of claim 8 , further comprising transmitting, if data associated with the virtual address is not stored in the first data store, data received from the second data store to the first data store.

13. The method of claim 12 , further comprising locking the transmitted data when the transmitted data is used in a transaction.

14. The method of claim 13 , further comprising unlocking the transmitted data after the transaction has committed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2015
From: PROGRESS SOFTWARE CORPORATION
To: METATOMIX, INC.
Reel/Frame 036218/0282 →
CHANGE OF NAME Recorded Jul 30, 2015
From: METATOMIX, INC.
To: OBJECTSTORE, INC.
Reel/Frame 036233/0463 →
Continuity (4)
Continuation 0980025700 · Mar 6, 2001
Division 0845602500 · May 31, 1995
Division 0767487400 · Mar 22, 1991
Related Publication 20050120080A1 · Jun 2, 2005