Sharding Nedir?
İngilizce: Sharding
Sharding, büyük veri kümesini shard adı verilen bağımsız parçalara bölerek okuma ve yazma yükünü birden fazla sunucuya dağıtan ölçekleme tekniğidir.
Sharding Nedir?
Sharding, tek bir veritabanı sunucusunun kapasitesi yetmediğinde veriyi yatay olarak parçalara ayırma tekniğidir. Her parça, yani shard, veri kümesinin belirli bir bölümünü tutar. Böylece okuma ve yazma yükü birden fazla makineye dağıtılabilir.
Örneğin müşteri kayıtları müşteri ID’sine göre 4 shard’a bölünebilir. Bir kullanıcı profili okunurken uygulama önce hangi shard’a bakacağını belirler, sonra sorguyu yalnızca ilgili parçaya gönderir.
Shard Anahtarı ve Yaklaşımlar
- Hash tabanlı sharding: Anahtar hash’lenir ve shard seçimi dengeli dağıtılır.
- Range sharding: Tarih, ID veya bölge gibi aralıklara göre parçalama yapılır.
- Directory sharding: Hangi verinin hangi shard’da olduğu ayrı bir haritada tutulur.
- Resharding: Veri büyüdükçe shard sayısı veya dağılımı yeniden düzenlenir.
İş Dünyasında Kullanımı
Sharding, büyük pazar yeri, çok kiracılı SaaS, log analitiği ve yüksek hacimli mesajlaşma sistemlerinde tek veritabanı sınırını aşmak için kullanılır. MongoDB gibi bazı veritabanları sharding’i yerleşik özellik olarak sunar.
Bu teknik erken uygulanırsa gereksiz karmaşıklık getirir. Yanlış shard anahtarı sıcak nokta oluşturabilir; cross-shard sorgular yavaşlayabilir; yedekleme ve veri taşıma operasyonları zorlaşabilir. Replikasyon erişilebilirliği artırırken, sharding kapasiteyi yatay genişletmeye odaklanır.