In-Memory OLTP Engine Çalışma Mekanizması Part – I

Serdar BAYRAK

Updated on:

Microsoft,In-Memory Table OLTP Engine özelliğini 2014 yılında yayınlandı.
En büyük avantajı, data’nın, buffer pool içinde cache’lenmesi en büyük avantajıdır.

In-Memory OLTP Engine temelde 3 amacı vardır.

1-) Data Page’ler memory’nin içerisine yüklendiğinde disk üzerinde depolanmaz.

2-) In-Memory Çalışma Mekanizması latch ve lock mekanizmasından özgürdür.

3-) Büyük ve yoğun iş yükü olan OLTP sistemleri için, yüzlerce hatta binlerce eş zamanlı(concurrency) olarak kullanıcıların işlem yapmasını destekler.

Data’ları, ayrı bir FILESTREAM-based filegroup içinde depolar.
Bu yapı bir tablo oluşturulduktan sonra, tablo içerisindeki dataların manipülasyonunu DLL ile sağlar.

SCHEMA_AND_DATA opsiyonu ile tablo içerisindeki dataların tamamen durable olmasını sağlar. Böylece dataların kurtarılması için izin verir. Bunun için tablo oluşturulurken en az 1 PK(Primary Key) olmalıdır. In-Memory tablo’da yapılan işlemler transaction log içerisinde depolanır. Buda bize Sql Server’ın restart yada crash olması durumunda data kaybını önler.

SCHEMA_ONLY opsiyonu ile ise transaction log içine bilgiler yazılmadığı için herhangi bir beklenmeyen crash yada restart durumunda data kaybı olacaktır. Bu opsiyonda PK gerekli değildir.

Memory Optimized tablonun hakkında önemli bilgiler:

1-)Memory-optimized tablo en fazla 8 indeksi destekler.
2-)Memory-optimized tablo, AlwaysOn Failover Clusters and Availability Groups, Log 3-)Shipping ve SQL Failover Cluster için desteklenir.
4-)Fakat SQL Failover Cluster için,failover sonrası tüm data memory içine tekrardan yükleneceği için failover süresini artırır.
5-)(n)varchar(max) ve varbinary(max) data tiplerini destekler fakat xml, clr, (n)text, and image data tiplerini desteklemez.

In-Memory OLTP, bir row-versioning sistemdir. Data modifiye olurken yeni version üretir ve her row yaşam süresi içerisinde silinirken ve oluşturulurken 2 Timestamp’a (BeginTs and EndTs) sahiptir.
Diğer tablo yapıları ile kıyaslandığında daha hızlı ve verimli yapıdadır. Aşağıdaki örnekte diğer tablolar ile kıyaslama örneklerini inceleyebilirsiniz.

Eğer In-Memory Database crash olursa (Recovery Mode) maalesef bu database kurtarılamaz.

In-Memory Tablonun oluşturulması için PART-II kısmından devam ediniz.

Yorum yapın