Upload
wlodek-bielski
View
620
Download
5
Embed Size (px)
DESCRIPTION
Citation preview
In-Memory OLTPPierwsze wrażenia
Wlodek BielskiBImasters / ACTION [email protected]
OLTP na rozdrożu…
Klasyczna architektura• Wolne HDD, drogie SSD,
tani RAM• Prędkość CPU zamarła
(od kilku lat 3-4 GHz)• Dosyć słaba skalowalność
(Internal Blocking, Locking,Latching)
In-Memory OLTP• Dane przechowywane w RAM,
HDD tylko jako backup• Oszczędne korzystanie
z cykli procesora• Rezygnacja z mechanizmów
blokowania
ἑκατόν
In-Memory OLTP
• Zoptymalizowane pod pamięć RAM tabele i indeksy
• Natywna kompilacja logiki w procedurach składowanych
• Struktury danych bez latch’y i locków• Pełna integracja z innymi komponentami
Trwałe vs nietrwałe tabele
• Non-durable – sesje ASP
CREATE TABLE DDL
CREATE TABLE [Customer]( [CustomerID] INT NOT NULL
PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1000000), [Name] NVARCHAR(250) NOT NULL
INDEX [IName] HASH WITH (BUCKET_COUNT = 1000000), [CustomerSince] DATETIME NULL)WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
Natywna kompilacja procedur
• Do DLL• Przy każdym restarcie rekompilacja obiektów do DLL
• C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\xtp
• XTP_P - procedury• XTP_T - tabele
Tworzenie Memory-Optimized TableCREATE TABLE DDL
Table DLL wyprodukowana
Table DLL załadowana
Ograniczenia
• Maks. rozmiar wiersza 8060 bajtów• Maks. rozmiar tabeli 512 GB• Brak triggerów DML• Brak XML / typów danych CLR• Brak LOB – nvarchar(max)• Brak obsługi „out of memory”• Brak ALTER TABLE, FOREIGN KEY, CHECK• Brak możliwości dodania/usunięcia indeksu
Transakcje
• Semantyka podobna do READ_COMMITED_SNAPSHOT / SNAPSHOT
• Wiersze są wersjonowane• Optymistyczna współbieżność• Brak locków, zamiast tego mechanizm
wykrywania konfliktów• Pierwszy zapis wygrywa• Sugerowane krótkie transakcje
Zmiany w T-SQL DDL
• ALTER DATABASE• CREATE DATABASE• CREATE PROC WITH NATIVE_COMPILATION
• CREATE TABLE MEMORY_OPTIMIZED, DURABILITY
• CREATE TYPE MEMORY_OPTIMIZED
Za to nie ma…• ALTER_TABLE, CREATE/DROP INDEX, sp_rename• FOREIGN KEY, CHECK CONSTRAINT
MEMORY_OPTIMIZED_DATA
DemoNowa baza – tylko In-Memory
Migracja - Narzędzie AMR
Migracja do Memory-Based Tables
• Configure Management Data Warehouse.• Configure data collection.• Generate AMR Reports to identify performance-critical
tables and stored procedures.
Migracja do Memory-Based Tables
• Oszacowanie zapotrzebowania na RAM• Niewspierane elementy T-SQL• Partycjonowanie tabel
DemoIstniejąca baza - dostosowanie
Wnioski i rekomendacje
• Odpowiedź na trend rynkowy• 80/20, względnie 95/5
In-Memory OLTP: Konkurencja
• SAP HANA– OLTAP - OLAP i OLTP w jednym– Silnik + platforma + usługi– MaxDB + TREX + P*Time
• Oracle Exadata– Appliance– In-Memory, o ile flash cache = RAM
• IBM BLU (DB2 10.5)– „Big Data, Lightning Fast, Ultra Easy”– W tej chwili bardziej OLAP - odczyt
Więcej informacji?
• Whitepaper Kalen Delaney• MSDN: In-Memory OLTP (In-Memory Optimization)• Channel 9: TechEd 2013 North America (Sunil Agarwal)– Overview (+BWin)– App Dev Deep Dive– Management Deep Dive
• Channel 9: TechEd 2013 Europe (Jos de Bruijn)– Overview– Developer Deep Dive– DBA Deep Dive
BImasters
• Business Intelligence Consultant• Database Developer