Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL...

Post on 05-Jan-2016

220 views 0 download

Transcript of Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL...

ἑκατόνby Niko Neugebauer

Niko Neugebauer

• PASS Evangelist

• SQL Server MVP

• SQLPort (http://www.sqlport.com) founder & leader

• BITuga (http://www.bituga.pt) co-founder

• 15+ years in IT

HeKATONHEK-A-TON, HEK-A-TON, HEK-A-TON

HekAton

• ἑκατόν – means 100 in Greek

• Targeted to improve OLTP performance, 100 Times

Conceptionally?

• Imagine that you have a number of CPU steps to perform a typical OLTP action

• Optimize it 100 times by removing obstacles like latches and parallelize it

• Yes, you will need start from the bottom and from the very beginning?

Hardware Trends

• Look at the CPU speed increase

• Look at the Memory Prices

• You can’t buy a SQL Server Enterprise License for a price of a TB

• Think, think, think

New generation DBHekaton

History

Sybase SQL Server 1.0

• 1980 (1989)

• Hardware Expensive

• CPU Bound

• Pages 8K

SQL Server 11.0

• 2012

• Hardware Cheap

• IO & Memory Bound

• Pages 8K

Hekaton

• In-Memory Database

• Multi-Core Awareness and Optimizations

• xVelocity compression algorithm (hint: ColumnStore)

• No Pages (no more splits, allocations, etc)

• No Locks, No Latches + different Concurrency Control

• StreamInsight (no more 8K’s)

• Hash Index (no more b-trees)

• Existing T-SQL can be reused

Hekaton

• Highly scalable concurrency control mechanism

• Lock-free data structures

Hekaton

• ACID compliant

• Optimized for extreme Transaction Processing scenarios like • Financial Services• Online Gambling

• There are customers who are using it NOW

Integrated into the DataBase Engine

Hekaton

Particular Features

• Snapshot_Isolation ONLY

• No support for LOB data types

• No Triggers

• AlwaysOn Support

features

• Durable Tables

• Non-Durable Tables

• TempDB is used inside of the Hekaton, in-memory

• Shares memory with Buffer Pool, but has its own space

Architecture

• Different space allocation for memory buffer

• The very same transaction log, but with fewer writes

• Different filegroups

• Different treatment for Indexes

• A lot of new, different stuff

HEKATONIt actually looks like a …

Programability

• Create table dbo.Hekaton(• Id int primary key hash with (bucketcount =

65535),• Nome varchar(50)

) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA );

GO

T-SQL

Stored Procs:

• Uses C as internal intermediate presentation, and then compiles into native code

• Atomic blocks

• Can’t reference non-hekaton tables

T-SQL Programability

• Create procedure dbo.HekatonNow • WITH NATIVE_COMPILATION

BEGIN

select name from dbo.Hekaton;

END

GO

Details

• Uses StreamInsight

• No actual updates, but deletes & inserts

UTils

• Migration from the normal DB tables to Hekaton

• Stored Procedures Migration to Hekaton

WHEN ?Next major version of SQL Server

BUT

• Isn’t it too fast ?

• – No, there is no such concept as too fast. (as long as it does not create other problems)

Thank you