Multi-writer in-memory non-copying database (MIND) system and method
First Claim
1. A 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 system for an application program to manage memory comprising:
- 1) a non-transitory computer memory; and
2) a programmable processor in electronic communication with the memory, the processor configured to execute one or more modules comprising;
(a) connecting, by the processor, 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, by the processor, 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, by the processor, a file segment of the data repository that corresponds to the referenced object;
(e) mapping, by the processor, the found file segment into the main memory;
(f) restarting, by the processor, the application program at the interrupt location; and
(g) using, by the processor, 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.
3 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.
-
Citations
47 Claims
-
1. A 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 system for an application program to manage memory comprising:
-
1) a non-transitory computer memory; and 2) a programmable processor in electronic communication with the memory, the processor configured to execute one or more modules comprising; (a) connecting, by the processor, 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, by the processor, 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, by the processor, a file segment of the data repository that corresponds to the referenced object; (e) mapping, by the processor, the found file segment into the main memory; (f) restarting, by the processor, the application program at the interrupt location; and (g) using, by the processor, 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 (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A non-transitory machine-readable medium encoded with a plurality of processor executable instructions for:
-
(a) connecting to a data repository of an object-oriented database (OODB) accessed by an application program, the application program associated with an operating system, 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 is 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 (47)
-
Specification