Structure and method for sharing large databases
First Claim
1. A memory management method for use in a business intelligence system having a general purpose operating system and one or more applications accessing data, the data comprising original data stored in a data repository, the method comprising the steps of:
- a) translating the original data from the data repository to a newly created compacted database having a format required by the one or more applications for which the compacted database is being prepared;
b) loading the compacted database into a shared memory;
c) computing a base address of the compacted database in the shared memory;
d) preparing a translation object for each of the one or more applications;
e) creating and storing within the translation object, a pointer object to a data location in the compacted database, comprising an offset to the data location so that the base address and the offset to the data location taken together give access to values equivalent to those in the original data;
f) retrieving data from the compacted database loaded in the shared memory; and
g) accessing data within the compacted database using the translation object and the pointer object.
4 Assignments
0 Petitions
Accused Products
Abstract
The invention provides an application programming mechanism and technique that makes referencing data look as if the data is dynamically allocated by the process. The invention also provides a mechanism whereby persisted data is shared across all processes on the same computer that access it. Small, process specific structures are created on demand as the program accesses the persisted data and makes use of the underlying memory mapping and linking technologies inherent in modern operation systems. The technique is especially useful in large data repositories where it simplifies the sharing of data between instances of an application, and also permits sharing of data between different applications. It allows for the data to be highly referenced internally while not requiring the extra memory used by pointer swizzling at runtime.
5 Citations
16 Claims
-
1. A memory management method for use in a business intelligence system having a general purpose operating system and one or more applications accessing data, the data comprising original data stored in a data repository, the method comprising the steps of:
-
a) translating the original data from the data repository to a newly created compacted database having a format required by the one or more applications for which the compacted database is being prepared; b) loading the compacted database into a shared memory; c) computing a base address of the compacted database in the shared memory; d) preparing a translation object for each of the one or more applications; e) creating and storing within the translation object, a pointer object to a data location in the compacted database, comprising an offset to the data location so that the base address and the offset to the data location taken together give access to values equivalent to those in the original data; f) retrieving data from the compacted database loaded in the shared memory; and g) accessing data within the compacted database using the translation object and the pointer object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16)
-
-
14. A system for the creation of a database accessible from one or more applications, the applications being capable of being used by one or more users, the system comprising one or more computers, and an associated data repository containing original data, each computer including software for:
-
a) translating original data from a data repository to a newly created compacted database having a format required by the one or more applications for which the compacted database is being prepared; b) loading the compacted database into a shared memory; c) computing a base address of the compacted database in shared memory; d) preparing a translation object for each of the one or more applications; e) creating and storing within the translation object, a pointer object to a data location in the compacted database, comprising an offset to the data location so that the base address and the offset to the data location taken together give access to values equivalent to those in the original data; f) retrieving data from the compacted database loaded in the shared memory; and g) accessing data within the compacted database using the translation object and the pointer object.
-
-
15. A memory management system for use in a business intelligence system having a general purpose operating system and one or more applications accessing data, the data comprising original data stored in a data repository, the system comprising:
-
a) means for translating original data from a data repository to a newly created compacted database having a format required by the one or more applications for which the compacted database is being prepared; b) means for loading the compacted database into a shared memory; c) means for computing a base address of the compacted database in the shared memory; d) means for preparing a translation object for each of the one or more applications; e) means for creating and storing within the translation object, when data are required, a pointer object to a data location in the compacted database, comprising an offset to the data location so that the base address and the offset to the data location taken together give access to values equivalent to those in the original data; f) means for retrieving data from the compacted database loaded in the shared memory; and g) means for accessing data within the compacted database using the translation object and the pointer object.
-
Specification