AreonX
Ana Sayfa
Blog
Veri Tabanı Parçalama (Sharding) Mimarisi
30 Haziran 2026
Veri Tabanı Parçalama (Sharding) Mimarisi
Veri Tabanı Parçalama (Sharding) Mimarisi

Büyüyen ve kullanıcı sayısı hızla artan dijital platformlarda, veri tabanı sunucularının üzerine binen yük de aynı hızla katlanır. Başlangıçta tek bir güçlü sunucu tüm veri trafiğini rahatlıkla yönetebilirken, veri miktarı terabaytları aştığında ve saniyede on binlerce okuma/yazma (Read/Write) isteği gelmeye başladığında sistem tıkanır. Bu hantallığı aşmak için başvurulan geleneksel yöntem, mevcut sunucunun donanımını (RAM, CPU, NVMe diskler) yükseltmektir (Dikey Ölçekleme - Vertical Scaling). Ancak dikey ölçeklemenin hem donanımsal hem de mali bir üst sınırı vardır. Sistemlerin devasa veri yükleri altında ezilmesini engellemek ve yatayda sonsuz ölçeklenebilirlik sağlamak için geliştirilen en radikal mimari çözüm ise Veri Tabanı Parçalama (Sharding) yöntemidir.

Veriyi Yatay Dilimlere Ayırma Mantığı

Sharding, tek bir devasa veri tabanı tablosunun, belirli bir mantık çerçevesinde daha küçük, yönetilebilir ve birbirinden bağımsız parçalara (shard) bölünerek farklı fiziksel sunuculara dağıtılması işlemidir. Bu noktada karıştırılmaması gereken en önemli detay, parçalamanın dikey (bölümleme/partitioning) değil, yatay yapılmasıdır. Dikey bölümlemede bir tablonun sütunları (örneğin kullanıcı tablosunun kredi kartı bilgileri ayrı sunucuya, adres bilgileri ayrı sunucuya) ayrılırken; sharding işleminde tablonun satırları (verinin kendisi) bölünür.

Örneğin, 100 milyon kullanıcısı olan küresel bir platformda, kullanıcı tablosu tek bir merkezde tutulmaz. Bunun yerine, kullanıcıların benzersiz kimlik numaraları (ID) veya coğrafi konumları baz alınarak veri tabanı fiziksel olarak parçalanır. 1 ile 25 milyon arasındaki kullanıcılar Asya sunucusunda, 25 ile 50 milyon arasındakiler Avrupa sunucusunda saklanabilir. Böylece gelen her istek sadece ilgili küçük sunucu tarafından işlenir; tek bir sunucunun 100 milyon satır arasında arama yapma hantallığı ortadan kalkar ve veri tabanı sorgu süreleri milisaniyeler seviyesine çekilir.

Parçalama Anahtarı (Shard Key) Seçimi ve Mimari Zorluklar

Bir sharding mimarisinin başarılı olabilmesi ve sistemin dengeli çalışabilmesi, doğru bir Parçalama Anahtarı (Shard Key) seçimine bağlıdır. Shard key, gelen verinin hangi sunucuya yazılacağını veya hangi sunucudan okunacağını belirleyen yönlendirici parametredir (örneğin kullanıcı ID'si veya ülke kodu). Eğer shard key yanlış seçilirse, veri tabanında "Hotspot" adı verilen dengesiz yük dağılımları oluşur. Örneğin, tüm veriler rastgele dağılmak yerine tek bir sunucuya yığılabilir ve bu durum o sunucunun çökmesine, diğer sunucuların ise atıl kalmasına neden olur. Geliştiriciler bu riski minimize etmek için veriyi sunuculara matematiksel olarak eşit dağıtan özel Hash fonksiyonlarından (Hash-Based Sharding) yararlanırlar.

Her ne kadar sharding, büyük veri sistemlerine muazzam bir esneklik ve hız kazandırsa da, beraberinde ciddi yazılımsal ve mimari zorluklar da getirir. Veri tabanı fiziksel olarak bölündüğü için, farklı sunucularda bulunan iki ayrı tabloyu birbirine bağlayan "JOIN" sorgularını çalıştırmak inanılmaz derecede hantal ve maliyetli bir hale gelir. Ayrıca, ilişkisel veri tabanlarının en büyük gücü olan ACID tutarlılık garantisini, birden fazla sunucuya dağılmış parçalar üzerinde (Distributed Transactions) korumak yazılımsal karmaşıklığı hat safhaya çıkarır. Sharding; devasa ölçekteki sosyal medya platformları, küresel e-ticaret siteleri ve saniyede binlerce finansal işlemin aktığı merkeziyetsiz veri ağları için kaçınılmaz bir zorunlulukken, getirdiği bu mimari karmaşıklık nedeniyle ancak tüm dikey ölçekleme sınırları tüketildikten sonra devreye alınması gereken ileri düzey bir mühendislik operasyonudur.