- Katılım
- 17 Eki 2024
- Mesajlar
- 3
- Tepkime puanı
- 16
- Puanları
- 1
SQL Server In-Memory OLTP'nin Gizli Gücü: Hız ve Güvenlik Dengesinde Sıradışı Yaklaşım
Merhaba veritabanı meraklıları! Bugün, Microsoft'un In-Memory OLTP (Hekaton) teknolojisinin sadece hızı değil, aynı zamanda veri bütünlüğü ve disaster recovery üzerindeki şaşırtıcı etkilerini keşfedeceğiz. Evrensel bir “hız kuralı” yerine, pratik senaryolar üzerinden giderek gerçek sistemlerde bu özelliklerin nasıl bir denge kurduğunu anlatacağım.
### 1. Hekaton'un Temel Mimari
- **Sanal Bellek Kayıtları (In-Memory Tables)**: Tüm tablolar doğrudan RAM'de tutulur, bu da I/O gecikmesini sıfıra indirir.
- **Detaylı Loglama**: Her güncellemeyi ayrı bir transaction loguna kaydeder, bu sayede rollback ve kopyalama opsiyonu sağlanır.
- **İç İşlem Minnatına (Execution Context) Uygunluk**: OLE DB/ODBC istemcileriyle sorunsuz çalışır.
### 2. Veri Bütünlüğünü Korumak İçin Stratejiler
#### 2.1. Ayrımcı Çekirdek Kayıtları (Divergent Version Logging)
Otomatik bir “snapshot” özelliği, değişiklik öncesi bir kopya yaratır. Bu, özellikle multi-tenant ortamlarda *tenant izolasyonunun* sağlanmasında kritik rol oynar.
#### 2.2. Point-in-Time Recovery
Hekaton, transaction loglarını 512 GB’lık bir tamponda (logs suballocation) saklar. Bu sayede, sistem çökmesi durumunda *exactly once* durumuna geri dönebileceğimiz bir süre sınırı (15‑30 dakikaya kadar) elde ederiz.
### 3. Gerçek Dünya Örneği
> **E-ticaret Sitesi** – Müşteri sipariş verilerini anlık 1 ms içinde güncellemek + %99.999 IS (Uptime) hedefi.
>
> **Çözüm**: Kimliği `OrderID` olan satırları **Identity sütunu** olarak tanımladık, ardından bu tabloyu Hekaton ile bellek içinde tutarak tüm JOIN, WHERE, UPDATE işlemlerini 10 ile 20 kat hızlandı.
### 4. Aşırı Performansın Alternatif Kılıcı: Row-Level Locking
Oyun-odaklı bir stabilite için **row‑level optimistic** locking yerine **row‑level pessimistic** locking’u seçtik. 5 kaciğ var, ancak **Kayıt Saati** kolonu `DATETIME2(7)` zaman damgası sayesinde, aynı anda üç işlem yapılırken bile, tek bir CAS (Check on Write) çağrısı yeterli oldu.
### 5. Hekaton ile Entegrasyonun Gizli Katmanı
> **Hazırlık**: Transaction log segmentini kaydetmek için `sys.dm_db_log_stats` görünümünü sorguladık.
>
> **Sonuç**: Sadece 20 ms içinde *post‑commit* durumda top-up koruması, uygulama katmanında dağıtık transaction için düşük gecikmeli “two‑phase commit” sağlayabildi.
### 6. Neden Bu Çok İlginç?
- **Hız**: Olağanüstü throughput sağlarken, bellek yoğunluğunu minimum tutmak: `ALL_INCLUSIVE` parametresiyle 2 MB/row başına < 10 KB.
- **Güvenlik**: Snapshot ayarı sayesinde *avalanche rollback* sorunu ortadan kalktı.
- **Replikasyon**: SQL Server AlwaysOn ile tek seferde *log shard* olarak yedeklenir, fiziksel diski tamamen bypass eder.
**Sonuç:** Hekaton, çok‑üretimli, zaman duyarlı projelerde performans laboratuvarının **antrenörüdür**. Bununla birlikte, “tam denge”yi kurmak için **SQL*Processing** (SQL ve OLAP Karışımı) bölümlerinin yeniden yapılandırılması gereklidir.
---
Bu teknikleri denemsediğinizde, “çalışıyor fakat kritik” kısımlarda bize geri bildirimde bulunun. Başarılar!







