发明名称 Multi-writer in-memory non-copying database (MIND) system and method
摘要 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.
申请公布号 US8769350(B1) 申请公布日期 2014.07.01
申请号 US201113237240 申请日期 2011.09.20
申请人 Advent Software, Inc. 发明人 Ro Kwang T.;Andersen Brian L.;McGrogan Stephen K.
分类号 G06F11/00 主分类号 G06F11/00
代理机构 K&L Gates LLP 代理人 Glazier Stephen C.;K&L Gates LLP
主权项 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.
地址 San Francisco CA US