Azure SQL Hyperscale Gerçekten Distributed SQL mi?

Azure SQL Database Hyperscale, depolama, log ve sayfa sunumunu dağıtık katmanlara ayırırken yazma işlemlerini tek bir primary üzerinde yürütüyor. Bu nedenle “distributed SQL” tanımı çok yazıcılı yazma gerektiriyorsa Hyperscale farklı bir takas sunuyor.

Bulutta ölçeklenen ilişkisel veritabanı arayanlar için “distributed SQL” neredeyse bir kategori adı oldu. Azure SQL Database Hyperscale bu tanımın içine giriyor mu? Anna Hoffman’ın Azure SQL Dev Corner’daki yazısı soruyu etiket tartışmasından çıkarıp mimari düzeyde yanıtlıyor. Hyperscale dağıtık bir mimariye sahip, üzerinde ise tek yazıcılı (single-writer) bir SQL motoru çalışıyor. Veritabanı seçerken hangi gereksinimi nasıl tartacağınızı belirleyen de bu ayrım.

“Dağıtık” denince genelde ne kastediliyor?

Yazıya göre mimarlar distributed SQL derken aslında bir özellik demetini birlikte istiyor:

  • Gerçek işlemler (transaction), “eventually” değil.
  • Bir şeyler bozulduğunda bile üzerine akıl yürütülebilen tutarlılık.
  • Tam SQL desteği, alt kümesi değil.
  • Kurumsal düzeyde operasyon: yüksek erişilebilirlik, yedekleme ve geri yükleme, güvenlik, uyumluluk.
  • 10 TB’a gelindiğinde yeniden mimari kurmayı gerektirmeyen ölçek.
  • Bazı iş yükleri için birden fazla yazma düğümü.

Tanımların ayrıştığı yer sonuncusu, yani birden fazla yazıcı. Hyperscale’in nerede durduğunu anlamak için de önce neyi dağıttığına bakmak gerekiyor.

Hyperscale neyi dağıtıyor?

Hyperscale, tek bir SQL Server makinesinin üstlendiği dört işi ayrı katmanlara bölüyor. Compute replica’ları sorgu işlemcisini çalıştırıyor, log servisi kalıcılığı (durability) üstlenip log akışını dağıtıyor, page server’ların her biri verinin bir dilimine sahip oluyor, Azure Storage da uzun vadeli kopyayı tutup yedekleri snapshot olarak alıyor. Bu ayrıştırmanın kökeni, aynı yazarın daha önce ele aldığı Socrates araştırma makalesine dayanıyor.

Eskiden veri büyüklüğüyle birlikte ölçeklenen maliyetler böylece o bağdan kurtuluyor:

  • Depolama otomatik olarak büyüyor; üst sınır 128 TB.
  • Yedekler compute’a dokunmayan, neredeyse anlık snapshot’lar; geri yükleme süresi büyük ölçüde veritabanı boyutundan bağımsız.
  • Yeni bir replica eklemek veri kopyalamayı gerektirmiyor ve replica hiçbir zaman bayat (stale) sayfa okumuyor. Dört adede kadar yüksek erişilebilirlik replica’sı, bunun yanında her biri kendi compute boyutuna sahip 30’a kadar named replica kullanılabiliyor; raporlama, analitik veya AI iş yüklerini izole etmek için uygun.
  • Log 150 MB/s’e kadar çalışıyor, compute ise Premium-series donanımda 192 vCore’a kadar çıkıyor.

Yazma tarafı bilinçli olarak tek noktada

Hyperscale’de yazmaları kabul eden tek bir primary var ve yazı bunu bir tasarım kararı olarak anlatıyor, eksiklik olarak değil.

Tek yazıcı demek, yazma yolunda dağıtık commit protokolü yok, uygulamanızı etrafında kurgulamanız gereken bir çakışma çözümü (conflict resolution) yok, iki bölgenin aynı satırı güncellemeye çalışmasından doğan sürprizler yok demek. Karşılığında SQL Server motorunun işlem semantiğini ve uygulamanızın halihazırda kullandığı T-SQL yüzeyini alıyorsunuz: temporal tablolar, JSON, graph, vektörler, columnstore, saklı yordamlar ve diğerleri. Mevcut uygulamalarınız ve araçlarınız yeniden yazılmadan çalışmaya devam ediyor.

Yazarın formülasyonu şöyle: Hyperscale, üstünde tek yazıcılı bir SQL motoru bulunan dağıtık bir mimaridir. Etiketten çok bu ayrım işe yarıyor. Distributed SQL tanımınız mutlaka birden fazla yazıcı içeriyorsa Hyperscale size farklı bir takas sunuyor. Önceliğiniz işlemler, tutarlılık, SQL uyumluluğu, kurumsal operasyonlar, depolama ve okuma ölçeğiyse Hyperscale’i bu gereksinimlere göre değerlendirip yazma kapasitesini ayrı bir başlık olarak ele almak mantıklı.

Performans tarafında ne var?

Aurora da compute’u dağıtık bir depolama katmanından ayırıyor, yani AWS benzer bir mimari yolu izlemiş; doğal karşılaştırma noktası bu yüzden Aurora oluyor. Principled Technologies tam bu karşılaştırmayı yapmış, testin Microsoft tarafından ısmarlandığı da yazıda açıkça belirtiliyor.

Testte Hyperscale Premium-series ile Amazon Aurora PostgreSQL I/O-Optimized, 2,3 TB’lık bir veritabanı üzerinde HammerDB TPROC-C iş yüküyle karşılaştırılmış. 16 vCore seviyesinde Hyperscale, Aurora’ya kıyasla %52’ye kadar daha yüksek performans ve %51’e kadar daha iyi dolar başına performans vermiş, test edilen her eşzamanlılık seviyesinde önde çıkmış. Yazının kendi uyarısı da yerinde, sizin iş yükünüz bir benchmark değil; kendi testinizi yapın. Yöntem bilgisi kamuya açık.

Tek fiyat ve küçükten başlama imkanı

Hyperscale tek ve her şey dahil bir fiyatla sunuluyor, satın alınacak ayrı bir yazılım ya da ayrı bir I/O ücreti yok. Başlangıç noktası 10 GB, yani bu katman yalnızca “çok büyük veritabanları” için değil. Bob Ward’ın ifadesiyle “start here, stay here”, burada başlayıp burada kalabiliyorsunuz. Serverless tarafında otomatik duraklatma ve devam ettirme özelliği de önizlemede; kimsenin kullanmadığı bir dev/test veritabanının compute’u sıfıra kadar inebiliyor.

Özet

Hyperscale’i “distributed SQL mi, değil mi” ikilemine sıkıştırmak soruyu yanlış yerden kuruyor. Depolama, log, sayfa sunumu ve yedekleme gerçekten dağıtık, yazma yolu ise bilinçli biçimde tek noktada tutuluyor. Karar verirken en pratik yol, ihtiyaç listesini ikiye ayırmak: okuma ölçeği, depolama büyümesi, geri yükleme süresi ve SQL uyumluluğu bir tarafta, çok yazıcılı topoloji gereksinimi diğer tarafta.

Kaynaklar ve İleri Okuma

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← Agile Reservoir Modeling ile A...
→
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.