  Although significant recent progress has been made in improving the
multi-core scalability of high throughput transactional database systems,
modern systems still fail to achieve scalable throughput for workloads
involving frequent access to highly contended data. Most of this inability to
achieve high throughput is explained by the fundamental constraints involved in
guaranteeing ACID --- the addition of cores results in more concurrent
transactions accessing the same contended data for which access must be
serialized in order to guarantee isolation. Thus, linear scalability for
contended workloads is impossible. However, there exist flaws in many modern
architectures that exacerbate their poor scalability, and result in throughput
that is much worse than fundamentally required by the workload.
  In this paper we identify two prevalent design principles that limit the
multi-core scalability of many (but not all) transactional database systems on
contended workloads: the multi-purpose nature of execution threads in these
systems, and the lack of advanced planning of data access. We demonstrate the
deleterious results of these design principles by implementing a prototype
system, ORTHRUS, that is motivated by the principles of separation of database
component functionality and advanced planning of transactions. We find that
these two principles alone result in significantly improved scalability on
high-contention workloads, and an order of magnitude increase in throughput for
a non-trivial subset of these contended workloads.
