July 10, 2018


Main Memory Database Systems: An Overview

The types of databases a developer might typically work with are DRDB systems, Disk Resident Database Systems. This paper talks about taking that DRDB system and dumping its disk content directly into memory. Main Memory DBs show dramatic performance improvements since they avoid disk reads. This allows for further optimizations throughout the DBMS since the most expensive part of the system was removed.

The trade off with these systems is that main memory is volatile. The authors take precuations against this in several ways:

  1. Every so often, flush the “cold” data out to disk so memory is free for “hotter” data
  2. Replicate to disk every once in a while to save state, in the case of failover they can use this state to recreate the system
  3. Further reccomendations for improving the reliability of these systems target the machines they run on. Since the data is in memory a power outage can prove fatal. As a result, precautions are mentioned such as attaching battery packs and having back-up power generators nearby those machines.

The main type of optimization gained with Main Memory Database Systems is that it is following the pointers and indirections to the data as opposed to performing a disk seek, the latter is orders of magnitude faster than the former.

[1] Main Memory Database Systems: An Overview

© Evan J. Ercolano. Powered by Hugo and Hemingway.

Want to become a better programmer? Join the Recurse Center!