  Data management systems have traditionally been designed to support either
long-running analytics queries or short-lived transactions, but an increasing
number of applications need both. For example, online games, socio-mobile apps,
and e-commerce sites need to not only maintain operational state, but also
analyze that data quickly to make predictions and recommendations that improve
user experience. In this paper, we present Minuet, a distributed, main-memory
B-tree that supports both transactions and copy-on-write snapshots for in-situ
analytics. Minuet uses main-memory storage to enable low-latency transactional
operations as well as analytics queries without compromising transaction
performance. In addition to supporting read-only analytics queries on
snapshots, Minuet supports writable clones, so that users can create branching
versions of the data. This feature can be quite useful, e.g. to support complex
"what-if" analysis or to facilitate wide-area replication. Our experiments show
that Minuet outperforms a commercial main-memory database in many ways. It
scales to hundreds of cores and TBs of memory, and can process hundreds of
thousands of B-tree operations per second while executing long-running scans.
