As the technology of flash memory solid-state drives (SSDs)
continues to advance, they are increasingly adopted in a wide
spectrum of storage systems to deliver higher throughput at
more affordable prices. For example, it has been shown that
flash memory SSDs can outperform disk drives in terms of
throughput, energy consumption, and cost-effectiveness for
database workloads [26,27]. Nevertheless, it is still true that
the price per unit capacity of flash memory SSDs is higher
than that of disk drives, and the market trend is likely to continue
for the foreseeable future. Therefore, for applications
dealing with large-scale data, it may be economically more
sensible to use flashmemory SSDs to supplement disk drives
rather than to replace them.
In this paper, we present a low-overhead strategy and its
implementation for using flash memory as an extended cache
for a recoverable database. This method is referred to as Flash
as Cache Extension or FaCE for short. Like any other caching
mechanism, the objective of FaCE is to provide the performance
of flash memory and the capacity of disk at as little
cost as possible. We set out to achieve this with the realization
that flashmemory has drastically different characteristics
(such as no overwriting, slow writes, and nonvolatility) than
DRAM buffer, and they must be dealt with carefully and
exploited effectively. There are a few existing approaches
that store frequently accessed data in flash memory drives by
using them as either faster disk drives or an extension to the
RAM buffer. The FaCE method we propose is in line with
the existing approaches using flash memory as an extension
to the DRAM buffer, but it is also different from them in
several ways.
First, the FaCE framework aims at flash write optimization
as well as disk access reduction. Unlike DRAM buffer
that yields almost uniform performance for both random and