Lindorm çok alanlı dağıtım, veri merkezi veya şehir ölçeğinde olağanüstü durum kurtarma sağlamak üzere çoğaltmaları alanlar arasında yayarak çalışır. Her tablo için güçlü veya nihai tutarlılık seçilebilir. Yük devretme otomatiktir.
Özellikler
Sunucu arızalarına, ağ kesintilerine veya şehir ölçeğinde afetlere karşı dayanıklılık gerektiren iş yükleri için çok alanlı dağıtım şunları sunar:
Veri merkezi veya şehir ölçeğinde olağanüstü durum kurtarma.
Hem güçlü hem de nihai veri tutarlılığı desteği.
Manuel müdahale olmadan otomatik arıza algılama ve yük devretme.
Sınırlamalar
HBase istemcisi gibi açık kaynak kodlu istemciler çok alanlı dağıtımı desteklemez.
Çok alanlı dağıtım yalnızca LindormTable için geçerlidir. İkincil dizinler, dinamik sütunlar ve joker karakterli sütunlar gibi LindormTable özellikleri desteklenir; ancak arama dizinleri ve sütun tabanlı dizinler gibi motora bağımlı özellikler desteklenmez.
Soğuk depolama ve sıcak-soğuk veri ayrımı desteklenmez.
Çok alanlı dağıtımın çalışma mekanizması
Çok alanlı bir dağıtımda, her geniş tablo bölümünün tüm alanlarda bağımsız bir çoğaltması bulunur. Lindorm, çoğaltmalar arasındaki eşitlemeyi uzlaşma protokolü aracılığıyla yönetir ve bu süreçte en az iki çoğaltmadan gelen verileri kullanır. İşlem öncesi günlük (WAL) kayıtları C Alanı'ndaki LindormDFS üzerinde saklanır. A Alanı arızalandığında, C Alanı'ndaki WAL verileri B Alanı'na geri yükler.
Lindorm, güçlü ve nihai olmak üzere iki tutarlılık düzeyini destekler. Gereksinimlerinize uygun olacak şekilde her tabloyu yapılandırabilirsiniz.
Güçlü tutarlılık
Güçlü tutarlılık modunda tüm okuma ve yazma işlemleri birincil bölümden geçer. İkincil bölümlere veriler uzlaşma protokolü üzerinden aktarılır. Okuma işlemleri her zaman en son yazılan veriyi döndürür.
Birincil alandaki tüm sunucular kapatılırsa veya alan erişilemez hale gelirse, Lindorm otomatik olarak ikincil bir alanı terfi ettirir. Bu geçiş kısa bir süre alır.
Nihai tutarlılık
Nihai tutarlılık modunda hem birincil hem de ikincil bölümlerde okuma ve yazma yapılabilir. Veriler alanlar arasında eşzamansız olarak, genellikle 100 ms içinde senkronize edilir.
İstemciler kendilerine en yakın alandan okuma ve yazma işlemi yapar. Okuma ve yazma istemcileri aynı alandaysa her zaman en güncel veriyi görürler. Bir alan erişilemez olduğunda, Lindorm istekleri bekleme süresi olmaksızın doğrudan erişilebilir bir alana yönlendirir; bu sayede gecikme süresi artışları önlenir.
Doğru tutarlılık düzeyinin seçimi
Yeni tablolar varsayılan olarak nihai tutarlılık düzeyine sahiptir ve bu düzey çoğu iş yükü için uygundur:
Son 100 ms içinde yazılan veriler genellikle okunabilir durumdadır.
İstemciler kendilerine en yakın alandan okuma ve yazma işlemi yapabilir.
Geçici kesintiler veya sunucu kapatmaları sırasında yerel bölümler erişilebilir kalır.
Aşağıdaki durumlarda güçlü tutarlılığı tercih edin:
Yazma sonrası anında okuma tutarlılığı gerekiyorsa.
Increment ve CheckAndPut gibi atomik işlemler kullanılıyorsa.
Tabloda ikincil dizinler bulunuyorsa.
Not Güçlü tutarlılık modunda tüm okuma işlemleri birincil bölüm üzerinden gerçekleşir ve çoğaltmalara dağıtılamaz. Birincil alan arızalandığında ikincil bir alanın terfi edilmesi zaman alır.
Mimari karşılaştırması
Geleneksel birincil/ikincil olağanüstü durum kurtarma
Geleneksel birincil/ikincil olağanüstü durum kurtarma yaklaşımında, iki ayrı örnek farklı alanlarda konuşlandırılır. Lindorm Tunnel Service (LTS), verileri çift yönlü olarak senkronize eder. Birincil örnek veya alan arızalandığında, ikincil örneğe manuel olarak geçiş yapmanız gerekir.
Bu yaklaşımın birkaç dezavantajı vardır:
Güçlü veri tutarlılığı yoktur. Örnekler arası senkronizasyon eşzamansızdır. Yük devretme sırasında ikincil örnekte en güncel veriler bulunmayabilir. Increment ve CheckAndPut gibi atomik işlemler sırasız sonuçlara veya geri almaya neden olabilir. Birincil alandaki ağ sorunları, kurtarma tamamlanana kadar ikincil örneğin eksik kalmasına yol açar.
Kaynak kullanımı düşüktür. İkincil örnek, yalnızca yük devretme süreçleri dışında boşta bekler.
Manuel yük devretme gereklidir. Birincil örneği izlemeniz ve kendi yük devretme mantığınızı uygulamanız gerekir.
Çok alanlı dağıtım bu sorunları ortadan kaldırır.
Özellik karşılaştırması
Aşağıdaki tabloda çok alanlı dağıtım, birincil/ikincil olağanüstü durum kurtarma ve Paxos/Raft tabanlı protokoller karşılaştırılmıştır.
| Özellik | Çok alanlı yüksek kullanılabilirlik dağıtımı | Birincil/ikincil olağanüstü durum kurtarma | Paxos veya Raft tabanlı uzlaşma protokolü | |
|---|---|---|---|---|
| Güçlü tutarlılık | Nihai tutarlılık | |||
| Veri kaybı (RPO) | 0 | < 100 ms | < 1 sn | 0 |
| Hizmet kurtarma süresi (RTO) | 1 dakika | 10 ila 30 sn | Yük devretme süresine bağlıdır | 30 saniye ila 3 dakika |
| Erişim yanıt süresi | Birincil alandaki verilere erişilir. Okuma ve yazma işlemleri alanlar arasında gerçekleşebilir. | En yakın alandaki verilere erişilir. Okuma ve yazma işlemleri birden fazla alana yayılarak gecikme süresi artışlarını azaltır. | Birincil alandaki verilere erişilir. Okuma ve yazma işlemleri alanlar arasında gerçekleşebilir. | Birincil alandaki verilere erişilir. Okuma ve yazma işlemleri alanlar arasında gerçekleşebilir. |
| Kullanım kolaylığı | İş uygulamalarını etkilemez. | İş uygulamalarını etkilemez. | Uygulama değişiklikleri gerektirir. Yönetimini sizin yaptığınız harici bir senkronizasyon bağlantısı kullanılır. | İş uygulamalarını etkilemez. |
| Günlükler için minimum alan sayısı | 3 | 2 | 2 | 3 |
| Veriler için minimum alan sayısı | 2 | 2 | 2 | 3 |
Alternatiflerle karşılaştırıldığında çok alanlı dağıtım, daha esnek veri erişimi, daha kısa kurtarma süresi ve daha yüksek kullanım kolaylığı sunar.
Not Lindorm, tutarlılık düzeyinden bağımsız olarak tüm geniş tablolar için arıza algılama ve yük devretme işlemlerini otomatik olarak yönetir. Tek bir örneğe bağlanmanız yeterlidir; ara katman gerekmez. İş yükünüz güçlü tutarlılık gerektirmiyorsa daha düşük gecikme süresi için nihai tutarlılığı kullanın. İş yükünüz güçlü tutarlılık gerektiriyorsa tablo tutarlılık düzeyini güçlü olarak ayarlayın.
Çok alanlı Lindorm örneği satın alma
Çok alanlı bir örnek satın almak için Lindorm konsolunda bir örnek oluşturun.
Çok alanlı Lindorm örneği kullanma
Tablo oluşturma ve tutarlılık düzeyini yapılandırma
Not HBase API ve HBase Shell veri tutarlılığını garanti etmez. HBase API veya HBase Shell aracılığıyla oluşturulan tablolar varsayılan olarak nihai tutarlılık düzeyine sahiptir. CONSISTENCY niteliğini aşağıda açıklandığı şekilde değiştirin.
Lindorm-cli kullanarak LindormTable'a bağlanın. Lindorm-cli kullanarak LindormTable'a bağlanma ve kullanma.
-
Tablo için CONSISTENCY niteliğini yapılandırın.
Güçlü tutarlılığa sahip bir tablo oluşturun: ``
CREATE TABLE dt ( p1 INT, p2 INT, c1 VARCHAR, c2 BIGINT, PRIMARY KEY(p1) ) WITH (CONSISTENCY='strong');``Nihai tutarlılığa sahip bir tablo oluşturun: ``
CREATE TABLE dt2 ( p1 INT, p2 INT, c1 VARCHAR, c2 BIGINT, PRIMARY KEY(p1) ) WITH (CONSISTENCY='eventual');``Bir tabloyu nihai tutarlılığa geçirin: ``
ALTER TABLE dt SET CONSISTENCY='eventual';``Bir tabloyu güçlü tutarlılığa geçirin: ``
ALTER TABLE dt2 SET CONSISTENCY='strong';``
Geniş tabloya veri yazma
Çok alanlı bir örneğe veri yazma işlemi, tek alanlı bir örnekle aynı şekilde yapılır. Lindorm-cli kullanarak LindormTable'a bağlanma ve kullanma.
Geniş tabloya veri içe aktarma
API aracılığıyla veri içe aktarmak için Lindorm konsolundaki örnek uç noktasını kullanın. Süreç çok alanlı örnekler için aynıdır.
BulkLoad kullanarak her alanda bir veri kopyasını içe aktarın. Yardım için teknik destek ile iletişime geçin.