Ölçeklenebilir Depolama Sistemleri
Ölçeklenebilir depolama sistemleri, tek bir sunucunun kapasite, verim ve kullanılabilirlik sınırlarının ötesine geçmek ve bireysel düğüm arızalarını gizlemek amacıyla verileri birçok makineye yaymaktadır.
Tanım
Ölçeklenebilir bir depolama sistemi, verileri bir makine kümesi genelinde depolamakta, kapasite ve verim için bölümlendirmekte ve dayanıklılık ile kullanılabilirlik için çoğaltmaktadır; böylece toplu sistem, bireysel düğüm arızalarına tolerans gösterirken düğüm sayısıyla birlikte ölçeklenmektedir.
Kapsam
Bu konu, ticari kümeler için tasarlanmış dağıtık dosya sistemlerini, dağıtık anahtar-değer ve geniş sütunlu depolama sistemlerini ve verileri ölçekli olarak bölümlendirmek ve konumlandırmak için kullanılan yapısal-katman tekniklerini (tutarlı hashleme ve dağıtık hash tabloları) kapsamaktadır. Ayrıca, veri bölümlendirmeyi (sharding), dayanıklılık için replikasyonu ve güçlü tutarlılığa sahip depolama sistemlerini yüksek kullanılabilirliğe sahip depolama sistemlerinden ayıran tutarlılık ve kullanılabilirlik ödünleşimlerini de ele almaktadır.
Temel sorular
- Veriler, geniş ve değişen bir düğüm kümesi genelinde nasıl bölümlendirilmekte ve konumlandırılmaktadır?
- Sık düğüm arızalarına rağmen dayanıklılık ve kullanılabilirlik nasıl sağlanmaktadır?
- Ölçeklenebilir bir depolama sistemi hangi tutarlılık garantilerini sağlayabilmekte ve bunun maliyeti nedir?
Temel kuramlar
- Küme dosya sistemleri
- Google Dosya Sistemi gibi sistemler, büyük dosyaları ticari sunucular arasında çoğaltılmış parçalar halinde depolamakta, büyük sıralı erişim için optimize etmekte ve arızaları istisna yerine norm olarak ele almaktadır.
- Dağıtık yapılandırılmış depolama sistemleri
- Bigtable ve Dynamo gibi geniş sütunlu ve anahtar-değer depolama sistemleri, verileri düğümler arasında anahtara göre bölümlendirmekte ve çoğaltmakta, sorgu ifade gücü ve tutarlılığı yatay ölçeklenebilirlik ve kullanılabilirlik karşılığında takas etmektedir.
- Tutarlı hashleme ve dağıtık hash tabloları
- Tutarlı hashleme, anahtarları ve düğümleri bir halka üzerine eşlemekte, böylece bir düğümün eklenmesi veya çıkarılması yalnızca küçük bir anahtar kesirini hareket ettirmektedir; Chord gibi dağıtık hash tabloları ise logaritmik yönlendirme ile ölçeklenebilir, merkezi olmayan anahtar araması sağlamaktadır.
Klinik önem
Ölçeklenebilir depolama, bulut platformlarının ve büyük web hizmetlerinin kalıcı temelini oluşturmaktadır: nesne depolama sistemleri, veritabanları ve analitik işlem hatları, bölümlendirme ve replikasyon seçimlerinin sistemin dayanıklılık ve tutarlılık garantilerini belirlediği dağıtık dosya sistemleri ve anahtar-değer depolama sistemleri üzerine kuruludur.
Tarihçe
Chord (2001) gibi eşler arası dağıtık hash tabloları, ölçeklenebilir merkezi olmayan arama yeteneğini göstermiştir; Google'ın Dosya Sistemi (2003) ve Bigtable (2006-2008), küme ölçeğinde yapılandırılmış veri depolamasını sergilemiştir; ve Amazon'un Dynamo'su (2007) yüksek kullanılabilirliğe sahip anahtar-değer depolamasını yaygınlaştırmış, böylece modern ölçeklenebilir depolama ve NoSQL ortamının temellerini atmıştır.
Tartışmalar
- Depolamada güçlü tutarlılık ve yüksek kullanılabilirlik tartışması
- Güçlü tutarlılığa sahip depolama sistemleri uygulama mantığını basitleştirmekte ancak bölümlendirmeler altında kullanılabilirlikten ödün vermek zorunda kalmaktadır; Dynamo gibi yüksek kullanılabilirliğe sahip depolama sistemleri ise geçici farklılıkları kabul etmekte ve çakışma çözümünü uygulamaya bırakmaktadır; doğru seçim, verinin eskiliğe toleransına bağlıdır.
Öne çıkan isimler
- Sanjay Ghemawat
- Werner Vogels
- Ion Stoica
- Hari Balakrishnan
İlgili konular
Temel eserler
- ghemawat2003
- decandia2007
- stoica2001
Sıkça sorulan sorular
- Tutarlı hashleme hangi sorunu çözmektedir?
- Veriler, anahtarların hashlenmesiyle düğümler arasında bölümlendirildiğinde, bir düğüm eklendiğinde veya çıkarıldığında basit hashleme neredeyse her şeyi yeniden karıştırmaktadır. Tutarlı hashleme, anahtarları ve düğümleri bir halka üzerinde düzenleyerek böyle bir değişikliğin yalnızca küçük, sınırlı bir anahtar kesirini yeniden konumlandırmasını sağlamaktadır; bu durum, esnek ve sürekli değişen kümeler için hayati öneme sahiptir.