SORU
10 EKİM 2008, Cuma


MySQL için Ölçekleme çözümleri (Replikasyon, Kümeleme)

startup şimdi bizim veritabanı çözümleri Ölçekleme düşünüyoruz çalışıyorum. İşler MySQL cluster, replication MySQL cluster replication olan MySQL, (ver. biraz kafa karıştırıcı (en azından benim için) 5.1.6) olan, bir MySQL cluster sürümü uyumsuz. MySQL manuel ama zor birini ya da diğerini kullanmak için zaman belirlemek için. cluster FAQ, kendi içinde bazı farklılıkları açıklar.

Bu çözümler arasındaki farkları bilen ve artıları ve eksileri nelerdir, ve her kullanımdan tavsiye edersiniz insanlar, herhangi bir tavsiye seviniriz.

CEVAP
12 EKİM 2008, Pazar


Kullanılabilir seçenekler okumada ÇOK yapıyorum. Ben de tavsiye ederim Yüksek Performans MySQL 2. Baskı, elime aldım.

Bu bir araya toplamaya çalıştım:

Kümeleme

Genel anlamda kümelenme bir sunucu olarak dışında bir uygulama gibi görünen pek çok sunucu arasında yükü dağıtmak.

MySQL NDB Cluster

MySQL NDB Cluster bir dağıtılmış, bellek, paylaşılan bir şey saklama altyapısı ile uyumlu çoğaltma ve otomatik veri partioning (pardon ödünç kelimenin tam anlamıyla Yüksek Performans kitap, ama onlar koymak çok güzel. Bazı uygulamalar için yüksek performanslı bir çözüm olabilir, ama web uygulama genellikle iyi çalışmaz.

En önemli sorun olduğunu ötesinde çok basit sorgular (dokunma sadece tek bir tablo), küme olur genellikle aramak için veri üzerinde çeşitli düğümler, izin, ağ gecikmesi sürünme ve önemli ölçüde yavaşlamasına tamamlanma süresi sorguları için. Uygulama bir bilgisayar kümedeki davranır beri, veri getirmek için düğüm olan bunu söyleyebilir mi.

Buna ek olarak, bellek gereksinimi çok büyük veritabanları için uygulanabilir değildir.

Continuent Sequoia

This MySQL sunucusu üzerinde bir katman olarak davranan MySQL için başka bir kümeleme çözümü vardır. Senkron çoğaltma, yük dengeleme ve yerine çalışma mevcuttur. Ayrıca istekleri her zaman en son kopyadan verileri, otomatik olarak taze verilere sahip bir düğüm seçerek elde etmenizi sağlar.

Üzerinde good things biraz okudum, ve genel olarak oldukça umut verici görünüyor.

Federasyon

Federasyon kümeleme benzer, burada da çekiştirdi. MySQL Federe depolama motoru ile Federasyon bulunmaktadır. NDB küme çözümü ve benzeri basit sorgular sadece - ama daha da kötüsü karışık olanlar için küme ile çalışır, ağ gecikmesi çok daha yüksek olduğundan).

Çoğaltma ve Yük Dengeleme

MySQL yerleşik farklı sunucularda veritabanı çoğaltma oluşturmak için kapasitesine sahiptir. Bu birçok şeyi sunucular, sıcak yedekler, test sunucuları oluşturma ve başarısızlık arasındaki yük bölme için kullanılabilir.

Çoğaltma temel Kur bir ana sunucu çoğunlukla yazar ve bir veya daha fazla köle sadece okur taşıma içerir. Daha gelişmiş bir varyasyon yazar da birkaç sunucu aynı zamanda yazılı olmasından ölçek sağlar master-master yapılandırma.

Her yapılandırma artıları ve eksileri vardır, ama onlar tüm pay bir sorun çoğaltma lag - MySQL çoğaltma uyumsuz olduğu, tüm düğümler her zaman en taze verilere sahip. Bu uygulama çoğaltma farkında olmak ve beklendiği gibi çalışması için, çoğaltma duyarlı sorgular dahil etmek gerekir. Bazı uygulamalar için bu bir sorun olmayabilir, ama her zaman gerekirse en taze veri işler biraz karıştı.

Çoğaltma bazı yük düğümler arasında yük bölmek dengeleme gerektirir. Bu uygulama kodu bazı değişiklikler kadar basit olabilir, ya da özel yazılım ve donanım çözümleri kullanarak.

Sharding ve partioning

Sharding veritabanı çözümleri ölçek yaygın olarak kullanılan yaklaşımdır. Daha küçük parçaları içine veri bölme ve farklı sunucu düğümleri etrafında onları yayıldı. Bu uygulama, veri depolama için değiştirilmesi gereken bilgileri nerede bulacağını bilmek gerektiği gibi verimli bir şekilde çalışması için dikkat etmeniz gerekir.

Soyutlama çerçeveler veri sharding, Hibernate Shards, Hazırda bekleme ORM bir uzantısı gibi başa yardımcı olmak için vardır ne yazık ki Java. ( PHP kullanıyorum). HiveDB da shard yeniden dengeleme destekleyen bir çözümdür.

Diğerleri

Sfenks

Sphinx test aramaları çok daha fazla için kullanılabilecek bir tam metin arama motoru. Birçok sorguları için MySQL (özellikle gruplama ve sıralama için) çok daha hızlı ve ve sharding ile kullanmak çok yararlı hale getiren sonuçları - paralel toplu olarak uzak sistemleri sorgulayabilirsiniz.

Genel Sfenks diğer Ölçekleme çözümler kullanılmalıdır mevcut donanım ve altyapıya daha fazla almak için. Dezavantajı tekrar uygulama kodu akıllıca kullanmak Sfenks farkında olmak gerekir.

Özet

Ölçekleme çözümler gerektiren uygulama ihtiyaçlarına bağlı olarak değişir. Çoğu için, bizim için ve web uygulamaları, çoğaltma (muhtemelen multi-master) bir yük dengeleyici yük dağıtımı ile gitmek için yol olduğunu düşünüyorum. Belirli sorun alanları Sharding (büyük tablo) da yatay ölçek için güçlü olmak için.

Ayrıca Sequoia Continuent ve eğer gerçekten uygulama yasasında değişiklik en az miktarda gerektirecek beri bu sözler ne yapabilir görmek için bir şans vereceğim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Grace Su

    Grace Su

    6 Ocak 2006
  • The Onion

    The Onion

    14 Mart 2006
  • thetrollska

    thetrollska

    2 EKİM 2009