Master / Slave Replication yerine Galera Cluster kullanmanın sakıncaları nelerdir?


13

Normal Master / Slave Replication yerine Galera Cluster kullanmanın sakıncaları nelerdir? Galera'nın 0 köle gecikme süresi, Senkron çoğaltma ve hiçbir Tek hata noktası çok çekici görünüyor, o zaman Galera kümesi neden yaygın değil?

Yanıtlar:


16

Çünkü diğer optimizasyonlarda olduğu gibi her iş yüküne uymuyor.

Galera, yüksek bir işlem oranıyla veya işlemler birçok satırı güncellediğinde bunalmış olabilir. Ayrıca, küme eşitlenirken uygulamalarınızın COMMIT üzerinde gecikmeler yaşamasına da neden olabilir.

Galera diğer düğümleri de senkronize olarak güncellemez. Sadece çalışma setlerini senkronize olarak iletir. Bu şekilde, biraz eşzamanlı modda standart çoğaltma gibidir. Bu nedenle, başka bir küme düğümünden eski verileri okuma şansı hala düşüktür. Çalışma kümesinin kuyruğu veritabanını güncelleyene kadar SELECT'i zorlamaya ayarlayabileceğiniz bir seçenek vardır, ancak bu SELECT üzerinde gecikmeleriniz olduğu anlamına gelir. Ve hatta SELECT üzerinde bir kilitlenme şansı bile var, bu da sezgisel görünüyor.

Galera mükemmeldir, ancak herkese uyan tek boyutlu bir teknoloji değildir. Eşzamansız çoğaltmayı kullanmak için hala iyi nedenler vardır.


Teşekkürler Bill, btw Bir süredir Percona sunumlarınızı okuyorum.
Sam

3
Başka bir dezavantaj, bir donör düğümünün kendisinin kapalı olması ve kümeye eklenen herhangi bir düğüme kopyalamak için (xtrabackup, rsync, mysqldump aracılığıyla) yeni düğüm senkronize olana kadar kümedeki kalan düğümleri bırakarak kopyalamak için kullanılır. Küçük veya orta ölçekli DB'ler için böyle bir dezavantaj değil.
RolandoMySQLDBA

1
@RolandoMySQLDBA xtrabackup gibi SST yöntemleri donörü kilitlemekten kesinlikle kaçınır. Her ne kadar veri tabanı büyükse, vericinin performansı düşmüş olduğu doğru olsa da.
jynus

3
@jynus, sorun verici düğüme kilitlenmiyor , ancak alıcı düğümün SST devam ederken herhangi bir sorgu için çevrimdışı ve kullanılamıyor olması. Bu nedenle, kümeyi sorgu yükü dengeleme için kullanıyorsanız, alıcı düğüme gidecek olan sorguların SST bitene kadar diğer düğümlere gönderilmesi gerekir.
Bill Karwin

2
Başka birinin bakması durumunda, Bill'in bahsettiği seçenek wsrep_causal_reads... SET GLOBAL wsrep_causal_reads = 'ON';tüm yazma setleri tamamlanana kadar beklemeyi seçmek için AÇIK olarak ayarlanmıştır .
Luke Cousins

2

Galera'nın bazı dezavantajları şunlardır:

  • Depolama motoru desteği: InnoDB / XtraDB ile sınırlıdır (artı MyISAM için deneysel destek)
  • İşletim sistemi desteği: yalnızca Linux / Unix benzeri İşletim Sistemleri

Ayrıca dikkat edilmesi gereken bazı sınırlamalar da vardır, ancak belki de çözülebilir:

  • Varsayılan olarak (Toplam Sipariş Yalıtımı) DDL işlemleri tamamlanıncaya kadar tüm kümeyi engeller
  • Her tablonun tek veya çok sütunlu, açık bir birincil anahtarı olmalıdır
  • Kilitleme: bazı açık kilitleme türleri desteklenmez.

Daha fazla bilgi için Codership (ve burada DDL'yi engelleme hakkında), MariaDB ve Percona'daki ayrıntılara bakın .

DÜZENLEME: Ayrıca, bazılarının Galera gibi sıkıca bağlanmış veritabanı kümelerinin, ağ katmanının doğal olarak güvenilmezliğinden kaynaklanan sorunlar nedeniyle coğrafi dağıtılmış düğümlere sahip olmaması gerektiğini savunduğunu unutmayın. Bunun yerine, bu durumlarda asenkron çözümler kullanılmalıdır. Bkz: MySQL'in Yüksek Kullanılabilirliği: Galera Tabanlı Çoğaltma Kötüye Kullanımı ile Coğrafi Düğüm Dağıtımı . Yine de Galera blog devletleri olduğunu (2015):

Coğrafi olarak dağıtılmış veritabanı kümeleri oluşturma durumu güçlüdür. Çoğaltma için Galera yaklaşımı ve üründeki belirli özellikler, birden çok veri merkezine yayılan Galera kümeleri oluşturmayı ve birden çok kullanıcının zaten üretimde olan kümeleri oluşturmayı pratik hale getirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.