2. OLTP na rozdrożu…
Klasyczna architektura
• Wolne HDD, drogie SSD,
tani RAM
• Prędkośd CPU zamarła
(od kilku lat 3-4 GHz)
• Dosyd słaba skalowalnośd
(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
ἑκατόν
3. In-Memory OLTP
• Zoptymalizowane pod pamięd 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
5. 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);
6. Natywna kompilacja procedur
• Do DLL
• Przy każdym restarcie rekompilacja obiektów do DLL
• C:Program FilesMicrosoft SQL Server
MSSQL11.MSSQLSERVERMSSQLDATAxtp
• XTP_P - procedury
• XTP_T - tabele
8. 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
9. Transakcje
• Semantyka podobna do
READ_COMMITED_SNAPSHOT / SNAPSHOT
• Wiersze są wersjonowane
• Optymistyczna współbieżnośd
• Brak locków, zamiast tego mechanizm
wykrywania konfliktów
• Pierwszy zapis wygrywa
• Sugerowane krótkie transakcje
10. 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
13. Migracja do Memory-Based Tables
• Configure Management Data Warehouse.
• Configure data collection.
• Generate AMR Reports to identify performance-critical
tables and stored procedures.
14. Migracja do Memory-Based Tables
• Oszacowanie zapotrzebowania na RAM
• Niewspierane elementy T-SQL
• Partycjonowanie tabel
17. 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
18. 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