This document discusses approaches to scaling in-memory databases on multicore hardware. There are two main approaches: employing a symmetric database engine where a single process uses multiple threads across cores to access shared memory, and employing a partitioned database engine where the database is divided into partitions managed by dedicated cores. A challenge is that cache coherency limits scalability as it does not scale to thousands of cores. The document recommends a software-hardware co-design approach, avoiding centralized critical sections, leveraging hardware message passing, and using techniques like optimistic concurrency control to improve scalability on high core count systems.