3.1. Veri Bölümleme / Sharding
Bölümleme (sharding), bir veri kümesini düğümler arasında böler; böylece tek bir makine verinin tamamını tutmaz — ya da onun darboğazına girmez. Seçtiğiniz bölümleme şeması, alt akıştaki her şeyi belirler: aralık bölümleme verimli taramalar sağlar ama sıcak noktaları davet eder, hash bölümleme yükü eşit dağıtır ama yerelliği yok eder ve herhangi bir şema, düğümlerin katılıp ayrılmasını tam bir yeniden karıştırma olmadan atlatmak zorundadır. Bu bölüm, bu ödünleşimleri, yeniden dengelemenin standart yanıtı olarak consistent hashing’i ve bölümlemenin sessizce yarattığı ikincil indeks problemini kapsar.
İncelenen Konular
Section titled “İncelenen Konular”- 3.1.1. Anahtar Aralığı Bölümleme: Avantajlar ve Aralık Taramaları: Anahtarları verimli taramalar için sıralı tutan, ama hot-spot riski taşıyan aralık bölümlemeyi kapsar.
- 3.1.2. Hash Bölümleme: Düzgün Dağılım: Yükü düzgün dağıtan ama aralık-tarama yerelliğini feda eden hash bölümlemeyi açıklar.
- 3.1.3. Çarpıklık ve Hot-Spot Problemleri: Gerçek Dünya Senaryoları: Gerçek dünya çarpıklık ve hot-spot senaryolarını ve onları hafifleten salting tekniklerini analiz eder.
- 3.1.4. Consistent Hashing ve Sanal Düğümler (vnodes): Consistent hashing ve sanal düğümleri, tam bir yeniden karıştırma olmadan yeniden dengelemenin standart yanıtı olarak tanıtır.
- 3.1.5. Dinamik Yeniden Dengeleme: Sıfır Kesinti Stratejileri: Düğümler cluster’a katılıp ayrılırken bölümleri taşımak için sıfır kesinti stratejilerini kapsar.
- 3.1.6. Colocated Join’ler: İlgili Verileri Aynı Shard’a Yerleştirmek: İlgili verileri aynı shard’a yerleştirerek join’lerin ağı geçmek yerine yerel kalmasını sağlamayı açıklar.
- 3.1.7. Bölümlenmiş Veride İkincil İndeksler: Local ve Global: Yerel (belge-bölümlü) ve global (terim-bölümlü) ikincil indeksleri ve okuma/yazma maliyetlerini karşılaştırır.