15

Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 2: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 3: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

Query engine

Buffer pool

Query engine

Buffer pool

Page 4: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 5: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 6: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 7: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 8: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 9: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 10: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 11: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 12: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage
Page 13: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 14: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage

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

Page 15: Query engine Buffer pool - microsoft.com€¦ · SQL Components Hekaton Storage engine Compiler Runtime Security Metadata Query optimizer Query processor Storage Query interop Storage