Multi-writer in-memory non-copying database (MIND) system and method
First Claim
1. A method for an application program to access an object-oriented database (OODB), the application program being one of a portfolio management application and a trade order management system (TOMS) application, the application program being associated with an operating system, the method comprising:
- (a) connecting to a data repository of the database, the data repository including a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium, wherein the database is not stored in a main memory of a computer connecting to the data repository, the file segments including objects directly interconnected by memory pointers, wherein each object has an associated stored time stamp, the time stamp indicating at least one of a time when the object first appeared in the data repository and a time when the object became invalid, wherein the data in the data repository is not copied into main memory from the data repository when needed by the application program, and wherein the database is one of a portfolio management database and a TOMS database;
(b) registering a fault handler with the operating system, the fault handler associated with the data repository;
(c) catching, by the fault handler, a segmentation fault issued for an object referenced by the application program and resident in the data repository, the segmentation fault issued at an interrupt location in the application program;
(d) finding a file segment of the data repository that corresponds to the referenced object;
(e) mapping the found file segment into the main memory;
(f) restarting the application program at the interrupt location; and
(g) using a plurality of writing processes to simultaneously update a plurality of objects in the data repository, wherein each writing process writes to one object at a time, and wherein the objects in the data repository are divided into a plurality of genera, and wherein each genera has its own transaction log and lock object.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention relate to memory management methods and systems for object-oriented databases (OODB). In an embodiment, a database includes a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium and not in main memory. An application program connects to the database with a plurality of writing processes to simultaneously write to an in-memory database, each writing process updating its own disk-based logfile, such that the effective disk writing speed is substantially increased and lock conflicts reduced.
103 Citations
30 Claims
-
1. A method for an application program to access an object-oriented database (OODB), the application program being one of a portfolio management application and a trade order management system (TOMS) application, the application program being associated with an operating system, the method comprising:
-
(a) connecting to a data repository of the database, the data repository including a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium, wherein the database is not stored in a main memory of a computer connecting to the data repository, the file segments including objects directly interconnected by memory pointers, wherein each object has an associated stored time stamp, the time stamp indicating at least one of a time when the object first appeared in the data repository and a time when the object became invalid, wherein the data in the data repository is not copied into main memory from the data repository when needed by the application program, and wherein the database is one of a portfolio management database and a TOMS database; (b) registering a fault handler with the operating system, the fault handler associated with the data repository; (c) catching, by the fault handler, a segmentation fault issued for an object referenced by the application program and resident in the data repository, the segmentation fault issued at an interrupt location in the application program; (d) finding a file segment of the data repository that corresponds to the referenced object; (e) mapping the found file segment into the main memory; (f) restarting the application program at the interrupt location; and (g) using a plurality of writing processes to simultaneously update a plurality of objects in the data repository, wherein each writing process writes to one object at a time, and wherein the objects in the data repository are divided into a plurality of genera, and wherein each genera has its own transaction log and lock object. - View Dependent Claims (2)
-
-
3. A method for an application program to manage memory associated with an object-oriented database (OODB) accessed by the application program, the application program associated with an operating system, the method comprising:
-
(a) connecting to a data repository of the database, the data repository including a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium, wherein the database is not stored in a main memory of a computer connecting to the data repository; (b) registering a fault handler with the operating system, the fault handler associated with the data repository; (c) catching, by the fault handler, a segmentation fault issued for an object referenced by the application program and resident in the data repository, the segmentation fault issued at an interrupt location in the application program; (d) finding a file segment of the data repository that corresponds to the referenced object; (e) mapping the found file segment into the main memory; (f) restarting the application program at the interrupt location; and (g) using a plurality of writing processes to simultaneously update a plurality of objects in the data repository, wherein each writing process writes to one object at a time, and wherein the objects in the data repository are divided into a plurality of genera, and wherein each genera has its own transaction log and lock object, and wherein file segments in the data repository are not copied into the main memory from the data repository when needed by the application program and are instead read, updated, deleted or modified directly in the data repository by the application program. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer system for an application program to manage memory associated with an object-oriented database (OODB) accessed by the application program, the application program associated with an operating system, the computer system for an application program to manage memory comprising:
-
an application and database server, the server including a secondary storage, the secondary storage including a data repository; (b) means for connecting to the data repository of the database, the data repository including a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium, wherein the database is not stored in a main memory of a computer connecting to the data repository; (c) means for registering a fault handler with the operating system, the fault handler associated with the data repository; (d) means for catching, by the fault handler, a segmentation fault issued for an object referenced by the application program and resident in the data repository, the segmentation fault issued at an interrupt location in the application program; (e) means for finding a file segment of the data repository that corresponds to the referenced object; (f) means for mapping the found file segment into the main memory; (g) means for restarting the application program at the interrupt location; and (h) means for using a plurality of writing processes to simultaneously update a plurality of objects in the data repository, wherein each writing process writes to one object at a time, and wherein the objects in the data repository are divided into a plurality of genera, and wherein each genera has its own transaction log and lock object, and wherein file segments in the data repository are not copied into the main memory from the data repository when needed by the application program and are instead read, updated, deleted or modified directly in the data repository by the application program. - View Dependent Claims (28)
-
-
29. An object-oriented database (OODB), comprising:
-
(a) a data repository including a plurality of memory-mapped file segments stored on at least one nonvolatile memory medium; (b) the file segments including objects directly interconnected by memory pointers; (c) each object having an associated stored time stamp, the time stamp indicating at least one of a time when the object first appeared in the data repository and a time when the object became invalid; and (d) the data in the data repository not being copied into a main memory of a computer accessing the data, wherein the database is not stored in the main memory, wherein the data repository has an associated fault handler, the fault handler registered by an application program with an operating system associated with the application program, wherein the fault handler is configured to catch a segmentation fault issued for an object referenced by the application program and resident in the data repository, the segmentation fault issued at an interrupt location in the application program, wherein a file segment of the data repository that corresponds to the referenced object is mapped into the main memory, wherein the application program is restarted at the interrupt location, wherein a plurality of writing processes simultaneously update a plurality of objects in the data repository, and each writing process writes to one object, and wherein the objects in the data repository are divided into a plurality of genera, and wherein each genera has its own transaction log and lock object. - View Dependent Claims (30)
-
Specification