, , Joy Arulraj, Andrew Pavlo, and Krishna Teja Malladi
it into the NVM buer based on whether it was recently
accessed. Kwon et al. present a multi-tier le-system that
does not cache NVM-resident data on DRAM and bypasses
DRAM while performing synchronous write operations [
34
].
Although these buer management policies work well in
their target environment, they do not generalize to other
NVM technologies, storage hierarchies, and workloads.
We address this problem by introducing a taxonomy for
data migration optimizations that subsumes the specic tech-
niques employed in previous systems. We illustrate that the
buer management policy must be tailored based on device
and workload characteristics. Given this, we make the case
for an adaptation mechanism in the buer manager, called
adaptive data migration, that achieves a near-optimal buer
management policy for an arbitrary workload and storage
hierarchy without requiring any manual tuning. Prior re-
search on NVM-aware storage management has not tackled
the problem of designing a multi-tier storage system for a tar-
get workload and system cost budget [11, 24, 32, 34, 45, 56].
We present a storage system recommender to address this
problem. In summary, we make the following contributions:
•
We introduce a taxonomy for NVM-aware data migra-
tion optimizations and present a policy for managing a
multi-tier storage hierarchy (Section 3).
•
We introduce an adaptation mechanism in the buer
manager that achieves a near-optimal policy for an arbi-
trary workload and storage hierarchy without requiring
any manual tuning (Section 4).
•
We introduce a recommendation system for designing
a multi-tier storage hierarchy for a target workload and
system cost budget (Section 5).
•
We demonstrate that the NVM-aware buer manager
and storage system designer improve throughput and
reduce cost across dierent transaction and analytical
processing workloads (Section 6).
2 BACKGROUND
We now provide an overview of buer management in DBMSs.
We then make the case for the introduction of NVM in the
storage hierarchy.
2.1 Buer Management
The buer manager partitions the available memory into
a set of xed-size slots, which is collectively termed as a
buer. The higher-level components of the DBMS, such as
the query execution engine, need not concern themselves
with whether a page is in the buer or not. They only need
to request the buer manager to retrieve a page. If a page
requested by another component is not present in the buer,
the buer manager transparently retrieves the page from
non-volatile storage.
The buer manager maintains transient meta-data about
each page in the in-memory buer. This meta-data includes
the number of active references made to the page and whether
the page has been modied since it was brought into the
buer from storage. If a page requested by another compo-
nent is already present in the buer, then it increments the
number of active references to the page and returns the ad-
dress of the slot containing the page. Otherwise, the buer
manager chooses a slot for replacement based on the replace-
ment policy (e.g., least recently used) [
43
]. If the page selected
for replacement contains any modications, the buer man-
ager propagates those changes to the corresponding page
on non-volatile storage. It then copies the requested page
from storage into the replacement slot and returns the slot’s
address.
The buer manager does not have complete autonomy
over when and what pages are ushed to non-volatile stor-
age [
9
,
25
]. It coordinates with the DBMS’s log manager to
ensure that the changes made by a transaction are durable
when it is committed, and that the changes made by transac-
tions that were not committed at the time of a system failure
are reversed during recovery. These constraints are referred
to as the durability and failure atomicity properties.
If a transaction modies a block and then commits, and
the buer manager has not yet written the updated block
to durable storage, then a failure will leave the block in its
old invalid state, thereby violating the durability property.
On the other hand, if the buer manager decides to write a
modied block belonging to an active transaction, it violates
the atomicity property. To prevent such scenarios, the buer
manager refrains from making autonomous replacement
decisions.
Since the contents of the DRAM buer are lost after a
system failure, the log manager records information needed
to recover from a failure on durable storage. Before updating
a page, the DBMS writes its old contents to the log (i.e., the
before image of the page). Similarly, when a page is about
to be evicted from the buer pool, its current contents are
recorded in the log (i.e., the after image of the page). During
recovery, the DBMS uses the information in the log to restore
the database to a transactionally consistent state. To bound
the amount of time taken to replay the log during recovery,
the DBMS periodically takes checkpoints at runtime [41].
2.2 Non-Volatile Memory DBMSs
A DBMS’s performance is constrained by the speed with
which it can retrieve data from and persist data (e.g., pages
containing log records) on disk [
26
]. As illustrated in Fig-
ure 1a, the buer manager copies pages from SSD to DRAM
2
评论