Download - Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Transcript
Page 1: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

ἑκατόνby Niko Neugebauer

Page 2: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 3: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 4: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

HekAton

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

• Targeted to improve OLTP performance, 100 Times

Page 5: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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?

Page 6: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 7: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

New generation DBHekaton

Page 8: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 9: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 10: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Hekaton

• Highly scalable concurrency control mechanism

• Lock-free data structures

Page 11: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Hekaton

• ACID compliant

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

• There are customers who are using it NOW

Page 12: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Integrated into the DataBase Engine

Hekaton

Page 13: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Particular Features

• Snapshot_Isolation ONLY

• No support for LOB data types

• No Triggers

• AlwaysOn Support

Page 14: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 15: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 16: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

HEKATONIt actually looks like a …

Page 17: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

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

Page 18: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

T-SQL

Stored Procs:

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

• Atomic blocks

• Can’t reference non-hekaton tables

Page 19: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

T-SQL Programability

• Create procedure dbo.HekatonNow • WITH NATIVE_COMPILATION

BEGIN

select name from dbo.Hekaton;

END

GO

Page 20: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Details

• Uses StreamInsight

• No actual updates, but deletes & inserts

Page 21: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

UTils

• Migration from the normal DB tables to Hekaton

• Stored Procedures Migration to Hekaton

Page 22: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

WHEN ?Next major version of SQL Server

Page 23: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

BUT

• Isn’t it too fast ?

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

Page 24: Ἑ κατόν by Niko Neugebauer. Niko Neugebauer PASS EvangelistPASS Evangelist SQL Server MVPSQL Server MVP SQLPort () founder & leaderSQLPort.

Thank you