Design of Flash-Based DBMS: An In-Page Logging Approach on Sigmod 2007.

Log-structured scheme is used to convert any random write to sequential write. While in SSDs complete sequential write is not necessary, this paper propose in page logging to better use SSDs random performance.

Because of the erase-before-write limitation of flash memory, any in-place update has to be redirect to a free space. If the update size is smaller than one page, then the rest of data in the page need to be copied to the new location. This is very costly when the workload consists a lot of small random writes.

Sequential logging approach (Log-structured) changes the write to log records The log records written sequentially to a storage medium regardless of the locations of changes in order to minimize the seek latency.

One serious concern with this style of logging, however, is that whenever a data page is to be read from database, the current version of the page has to be re-created by applying the changes stored in the log to the previous version of the page. Since log records belonging to the data page may be scattered and can be found only by scanning the log, it may be very costly to re-create the current page from the database.

Since flash memory comes with no mechanical component, there is no considerable performance penalty arising from scattered writes.

This paper co-locate a data page and its log records in the same physical location of flash memory, typically in the same erase unit.

in-page-logging

When a page is read from flash, the current version is computed on the fly.

compute-on-the-fly