This paper presents FaCE, which is
a new low-overhead caching strategy that uses flash memory
as an extension to the RAM buffer of database systems.
FaCE aims at improving the transaction throughput as well
as shortening the recovery time from a system failure. To
achieve the goals, we propose two novel algorithms for flash
cache management, namely multi-version FIFO replacement
and group second chance.Thiswas possible due to flashwrite
optimization as well as disk access reduction obtained by the
FaCE caching methods. In addition, FaCE takes advantage
of the nonvolatility of flash memory to fully support database
recovery by extending the scope of a persistent database
to include the data pages stored in the flash cache. We have
implemented FaCE in the PostgreSQL open-source database
server and demonstrated its effectiveness for TPC-C benchmarks
in comparison with existing caching methods such as
Lazy Cleaning and Linux Bcache.