Query engine
Buffer pool
Query engine
Buffer pool
1
10
100
1000
10000
100000
1000000
1990 1995 2000 2005 2010
US$ per GB of PC class memory Source: www.jcmit.com/memoryprice.htm
0
2
4
6
8
10
2004 2005 2006 2007 2008 2009Co
res
per
sock
et
Year of introduction
No of cores/socket over time
Mainstream
High end
Shrinking memory prices More and more cores
Integrated into
SQL Server
• Integrated queries &
transactions
• Integrated HA and
backup/restore
• Familiar manageability
and development
experience
Main-Memory
Optimized
• Optimized for in-
memory data
• Indexes (hash, range)
exist only in memory
• No buffer pool
• Stream-based storage
(log and checkpoints)
Designed for High
Concurrency
• Multi-version optimistic
concurrency control with
full ACID support
• Core engine using lock-
free algorithms
• No lock manager, latches
or spinlocks
T-SQL Compiled to
Machine Code
• T-SQL compiled to
machine code via C
code generator and VC
• Invoking a procedure is
just a DLL entry-point
• Aggressive optimizations
@ compile-time
Steadily declining
memory price Many-core processors Stalling CPU clock rate Total Cost of Ownership
Hardware trends Business Driver
90,150 Susan Beijing
50, ∞ Jane Prague
100, 200 John Paris
70, 90 Susan Brussels
200, ∞ John Beijing
Timestamps Name Chain ptrs City Range index
on City Hash index
on Name
J S
Rows are multi-versioned
Each row version has a valid time range indicated by two timestamps
A version is visible if transaction read time falls within version’s valid time
Row format
BW
-
tree
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
0 6 12 18 24
Thro
ugh
pu
t (t
x/se
c)
Mill
ion
s
# Threads
MV/O
1V/L
Work load 80% read-only txns (10 reads/txn)
20% update txns (10 reads+ 2 writes/txn)
Serializable isolation level
Processor: 2 sockets, 12 cores
1V/L thruput limited by lock thrashing
Standard locking but optimized
for main memory
5X
SQL Components Hekaton
Storage
engine
Compiler
Runtime
SQL Components
Security
Metadata
Query optimizer
Query processor
Storage
Query interop
Storage, log
High availability
Transactions
Query optim.
Metadata
SQL ServerSQL Server
1 2 3 4 5 6
Number of cores 2 4 6 8 10 12
SQL with contention 984 1,363 1,645 1,876 2,118 2,312
SQL without contention 1,153 2,157 3,161 4,211 5,093 5,834
Interop 1,518 2,936 4,273 5,459 6,701 7,709
Native 7,078 13,892 20,919 26,721 32,507 36,375
-
5,000
10,000
15,000
20,000
25,000
30,000
35,000
40,000
Tran
sact
ion
s P
er
Seco
nd
System throughput
Throughput improvements Converting table but using interop:
3.3X higher throughput
Converting table and stored procedure:
15.7X higher throughput
Application: HTTPS session state Current max throughput: 15,000 requests/sec Throughput with Hekaton: 250,000 requests/sec
Application: rapid ingestion of inventory data from retailers Current max ingestion rate: 7,450 rows/sec Hekaton ingestion rate: 126,665 rows/sec Enables moving to continuous, online ingestion from once-a-day batch ingestion