MySQL Kümesi - MySQL Cluster

MySQL Kümesi
Geliştirici (ler)Oracle
İlk sürümKasım 2004
Kararlı sürüm
8.0 / 14 Ocak 2020; 10 ay önce (2020-01-14) [1]
İşletim sistemiÇapraz platform[hangi? ]
Uyguningilizce
TürRDBMS
LisansGNU Genel Kamu Lisansı (sürüm 2, bağlantı istisnası ) veya ticari EULA
İnternet sitesi[2]

MySQL Kümesi sağlayan bir teknolojidir hiçbir şey paylaşılmamış için kümeleme ve otomatik parçalama MySQL veritabanı Yönetim sistemi. Neredeyse doğrusal ölçeklenebilirliğe izin verirken, düşük gecikmeyle yüksek kullanılabilirlik ve yüksek verim sağlayacak şekilde tasarlanmıştır.[3] MySQL Kümesi, NDB veya MySQL için NDBCLUSTER depolama motoru ("NDB", Network Database).

Mimari

MySQL Kümesi, dağıtılmış, çok yöneticili bir ASİT uyumlu mimari tek hata noktası. MySQL Cluster otomatik kullanır parçalama (bölümleme) ticari donanım üzerinde okuma ve yazma işlemlerini ölçeklendirmek için ve SQL ve Non-SQL (NoSQL) aracılığıyla erişilebilir API'ler

Çoğaltma

Dahili olarak MySQL Cluster kullanır eşzamanlı çoğaltma aracılığıyla iki aşamalı tamamlama Verileri işledikten sonra verilerin birden çok düğüme yazılmasını garanti etmek için mekanizma. (Bu, genellikle "MySQL Replication" olarak anılanın tersidir. asenkron.) İki nüsha (olarak bilinir kopyalar) kullanılabilirliği garanti etmek için veriler gereklidir. MySQL Cluster, kullanıcı tarafından belirtilen replikaların ve veri düğümlerinin sayısından otomatik olarak "düğüm grupları" oluşturur. Güncellemeler, veri kaybına karşı koruma sağlamak ve düğümler arasında hızlı yük devretmeyi desteklemek için düğüm grubu üyeleri arasında eşzamanlı olarak çoğaltılır.

Kümeler arasında eşzamansız olarak çoğaltma yapmak da mümkündür; bu bazen "MySQL Küme Çoğaltma" veya "coğrafi çoğaltma" olarak adlandırılır. Bu genellikle veri merkezleri arasında kümeleri çoğaltmak için kullanılır. felaket kurtarma veya verileri fiziksel olarak bir dizi kullanıcıya daha yakın konumlandırarak ağ gecikmesinin etkilerini azaltmak için. Standart MySQL replikasyonunun aksine, MySQL Cluster'ın coğrafi replikasyonu, iyimser eşzamanlılık kontrolü ve çatışma tespiti ve çözümü için bir mekanizma sağlamak için Epochs kavramı,[4] veri merkezleri arasında aktif / aktif kümelemenin etkinleştirilmesi.

MySQL Cluster 7.2'den başlayarak, veri merkezleri arasında eşzamanlı çoğaltma desteği, Çoklu Site Kümeleme özelliğiyle destekleniyordu.[5]

Yatay veri bölümleme (otomatik parçalama)

MySQL Cluster, herhangi bir uygulama veya SQL düğümü tarafından yapılan güncellemelerin, kümeye erişen diğer tüm düğümler tarafından anında kullanılabilir olmasını ve her bir veri düğümü yazma işlemlerini kabul edebilmesini sağlayan, tamamen dağıtılmış çok ana veritabanı olarak uygulanır.

MySQL Cluster (NDB) tablolarındaki veriler otomatik olarak bölümlenmiş sistemdeki tüm veri düğümlerinde. Bu, hash algoritmasına dayalı olarak yapılır. birincil anahtar üzerinde masa ve sonuna kadar şeffaftır uygulama. İstemciler kümedeki herhangi bir düğüme bağlanabilir ve sorgulara, bir sorguyu karşılamak veya bir işlemi gerçekleştirmek için gereken doğru parçalara otomatik olarak erişebilir. MySQL Cluster, parçalar arası sorguları ve işlemleri destekleyebilir.

Kullanıcılar kendi bölümleme şemalarını tanımlayabilir. Bu, geliştiricilerin, yüksek çalışan işlemlerle erişilen tüm satırlarda ortak olan bir alt anahtara göre bölümleme yaparak uygulamalara "dağıtım bilinci" eklemelerine olanak tanır. Bu, işlemleri tamamlamak için kullanılan verilerin aynı parça üzerinde yerelleştirilmesini ve böylece ağ atlamalarının azaltılmasını sağlar.

Hibrit depolama

MySQL Cluster, tek bir makinenin kapasitesinden daha büyük veri kümelerinin depolanmasına ve birden çok makinede erişilmesine olanak tanır.

MySQL Cluster tüm indekslenmiş dağıtılmış bellekteki sütunlar. İndekslenmemiş sütunlar da dağıtılmış bellekte tutulabilir veya disk bellek içi ile sayfa önbelleği. Dizine alınmamış sütunların diskte depolanması, MySQL Kümesinin, kümelenmiş makinelerin toplam belleğinden daha büyük veri kümelerini depolamasına izin verir.

MySQL Cluster yazıyor Yeniden yap tüm veri değişiklikleri için günlükleri diske kaydetmenin yanı sıra verileri düzenli olarak diske yönlendirmeyi kontrol edin. Bu, tam bir küme kesintisinden sonra kümenin diskten tutarlı bir şekilde kurtarılmasını sağlar. Yinele günlükleri yazılırken asenkron işlem gerçekleştirme ile ilgili olarak, tam küme başarısız olursa bazı az sayıda işlem kaybedilebilir, ancak bu, yukarıda tartışılan coğrafi çoğaltma veya çok bölgeli kümeleme kullanılarak hafifletilebilir. Geçerli varsayılan zaman uyumsuz yazma gecikmesi 2 saniyedir ve yapılandırılabilir. Normal tek nokta hata senaryoları, küme içindeki eşzamanlı veri çoğaltması nedeniyle herhangi bir veri kaybına neden olmaz.

Bellekte bir MySQL Kümesi tablosu tutulduğunda, küme Redo kayıtlarını ve denetim noktalarını yazmak için yalnızca disk depolamaya erişir. Bu yazmalar sıralı olduğundan ve sınırlı rasgele erişim modelleri dahil edildiğinden, MySQL Kümesi, geleneksel disk tabanlı önbelleğe alma RDBMS'ye kıyasla sınırlı disk donanımıyla daha yüksek yazma verim oranlarına ulaşabilir. Bellek içi tablo verilerinin diskine bu kontrol işaretlemesi, disk tabanlı kalıcılık gerekmiyorsa devre dışı bırakılabilir (tablo bazında).

Hiçbir şey paylaşılmadı

MySQL Cluster, tek hata noktası. Kümenin doğru ayarlanması koşuluyla, herhangi bir tek düğüm, sistem veya donanım, kümenin tamamı arızalanmadan arızalanabilir. Paylaşılan disk (SAN ) gerekli değil. Düğümler arasındaki ara bağlantılar standart olabilir Ethernet, Gigabit Ethernet, InfiniBand veya SCI ara bağlantılar.

SQL ve NoSQL API'leri

MySQL Kümesi, tabloları MySQL Sunucusu yerine veri düğümlerinde depoladığından, veritabanına erişmek için birden fazla arabirim mevcuttur:

MySQL Küme Yöneticisi

Ticari MySQL Cluster CGE'nin bir parçası olan MySQL Cluster Manager, çevrimiçi ölçeklendirme, yükseltmeler, yedekleme / geri yükleme ve yeniden yapılandırma dahil olmak üzere ortak yönetim görevlerini otomatikleştirerek MySQL Cluster CGE veritabanının oluşturulmasını ve yönetimini basitleştirmek için tasarlanmış bir araçtır. MySQL Cluster Manager, MySQL Server uygulama düğümleri ve yönetim düğümlerinin yanı sıra MySQL Cluster veri düğümlerini de izler ve otomatik olarak kurtarır.

Uygulama

MySQL Kümesi, üç farklı düğüm türü (işlem) kullanır:

  • Veri düğümü (ndbd / ndbmtd süreci): Bu düğümler verileri depolar. Tablolar, yük dengeleme, çoğaltma, yük devretme ve kendi kendini iyileştirmeyi de şeffaf bir şekilde işleyen veri düğümleri arasında otomatik olarak parçalanır.
  • Yönetim düğümü (ndb_mgmd süreci): Kümenin yapılandırılması ve izlenmesi için kullanılır. Yalnızca bir küme düğümünü başlatmak veya yeniden başlatmak için gereklidirler. Hakem olarak da yapılandırılabilirler, ancak bu zorunlu değildir (MySQL Sunucuları bunun yerine hakem olarak yapılandırılabilir).[6]
  • Uygulama düğümü veya SQL düğümü (mysqld işlemi): Veri depolama ve geri alma gerçekleştirmek için tüm veri düğümlerine bağlanan bir MySQL sunucusu (mysqld). Bu düğüm türü isteğe bağlıdır; Veri düğümlerini doğrudan NDB API aracılığıyla, C ++ API'yi yerel olarak veya yukarıda açıklanan ek NoSQL API'lerinden birini kullanarak sorgulamak mümkündür.

Genel olarak, her düğümün ayrı bir fiziksel ana bilgisayarda, VM'de veya bulut örneğinde çalışması beklenir (Yönetim Düğümlerini MySQL Sunucuları ile birlikte konumlandırmak çok yaygındır). En iyi uygulama için, tek bir fiziksel ana bilgisayarda aynı düğüm grubu içindeki düğümleri birlikte konumlandırmamanız önerilir (bu, tek bir hata noktasını temsil eder).

Versiyonlar

MySQL Cluster sürüm numaraları artık MySQL Server'ınkine bağlı değildir - örneğin, MySQL 5.7'deki sunucu bileşenini temel almasına / içermesine rağmen en son sürüm MySQL Cluster 7.5'tir.

MySQL Cluster'ın daha yüksek sürümleri, daha düşük sürümlerin tüm özelliklerini ve bazı yeni özellikleri içerir.

Eski sürümler (artık geliştirme aşamasında değil):

  • Ndb, MySQL 5.1.X kaynak ağacına dahildir
  • MySQL 5.1.A tabanlı MySQL Cluster 6.2
İlk "telekomünikasyon" veya "taşıyıcı sınıfı sürüm" sürümü. 255 düğümü, çevrimiçi tablo değişikliğini, çoğaltma gecikmesini ve aktarım hızı geliştirmelerini vb. Destekler.
  • MySQL 5.1.B'ye dayalı MySQL Kümesi 6.3
Sıkıştırılmış yedekleme + LCP, döngüsel çoğaltma desteği, çakışma algılama / çözme, tablo optimizasyonu vb. İçerir.
  • MySQL 5.1.C tabanlı MySQL Cluster 7.0
Çok iş parçacıklı veri düğümleri (ndbmtd), İşlemsel DDL, Windows desteği içerir.
  • MySQL 5.1.D tabanlı MySQL Cluster 7.1
ClusterJ ve ClusterJPA konektörlerini içerir

Şu anda mevcut sürümler:

  • MySQL 5.5 tabanlı MySQL Cluster 7.2
Uyarlanabilir Sorgu Yerelleştirme (JOIN işlemlerini veri düğümlerine iter), Memcached API, basitleştirilmiş Aktif / Aktif Coğrafi çoğaltma, çoklu site kümeleme, veri düğümü ölçeklenebilirliği geliştirmeleri, birleştirilmiş kullanıcı ayrıcalıklarını içerir.[7]
  • MySQL 5.6 tabanlı MySQL Cluster 7.3
İçin destek içerir yabancı anahtar kısıtlamalar, Node.js / JavaScript API ve otomatik yükleyici.[8]
  • MySQL 5.6 tabanlı MySQL Cluster 7.4
Gelişmiş çakışma algılama ve çözme, iyileştirilmiş düğüm yeniden başlatma süreleri, yeni Event API içerir.[9]
  • MySQL 5.7 tabanlı MySQL Cluster 7.5
Daha büyük veri kümeleri için destek (düğüm başına 128 TB'tan fazla), optimize edilmiş okuma tabloları aracılığıyla geliştirilmiş okuma ölçeklenebilirliği, iyileştirilmiş SQL desteği içerir.[10]
  • MySQL 8.0 tabanlı MySQL Cluster 8.0[11]

Gereksinimler

Değerlendirme amacıyla, MySQL Cluster'ı tek bir fiziksel sunucu üzerinde çalıştırmak mümkündür. Üretim dağıtımları için minimum sistem gereksinimleri 3 x bulut sunucusu / ana bilgisayar içindir:

  • 2 × Veri Düğümleri
  • 1 × Uygulama / Yönetim Düğümü

veya

  • 2 × Veri Düğümü + Uygulama
  • 1 × Yönetim Düğümü

Aşağıdaki konfigürasyonlar:

Yüksek performanslı, üretim dereceli kümelerin dağıtımına ilişkin ipuçları ve öneriler şurada bulunabilir: MySQL Küme Değerlendirme Kılavuzu ve MySQL Küme Veritabanının Performansını Optimize Etme Kılavuzu.

Tarih

MySQL AB MySQL Cluster'ın arkasındaki teknolojiyi Alzato, küçük girişim şirketi tarafından başlatıldı Ericsson. NDB başlangıçta için tasarlandı telekom pazarı, onunla yüksek kullanılabilirlik ve yüksek performans gereksinimleri.[12]

NDB depolama motorunu temel alan MySQL Kümesi, o zamandan beri MySQL ilk sürümü MySQL 4.1'de olan ürün.

Destek

MySQL Cluster, GPLv 2 lisans. MySQL Enterprise Security ve MySQL Enterprise Audit'e ek olarak MySQL Cluster Manager, MySQL Enterprise Monitor gibi açık kaynaklı olmayan eklentileri de içeren MySQL Cluster CGE'nin bir parçası olarak ticari destek mevcuttur.

Ayrıca bakınız

  • Galera Kümesi, MySQL ve MariaDB için işlem veritabanları için genel bir eşzamanlı çoklu ana çoğaltma kitaplığı. [1]
  • Percona XtraDB Cluster, ayrıca Galera replikasyon kitaplığı ile çoklu master'ı destekleyen MySQL'in bir kombinasyonudur.

Referanslar

  1. ^ Ocklin, Bernd. "Ndb Cluster 8.0 Genel Olarak Kullanılabilir". mysqlhighavailability.com.
  2. ^ CGE Kümesi. MySQL. Erişim tarihi: 2013-09-18.
  3. ^ Oracle Corporation. "MySQL Küme Karşılaştırmaları: Oracle ve Intel Dakikada 1 Milyar Yazma Elde Ediyor". mysql.com. Alındı 24 Haziran 2013.
  4. ^ MySQL :: MySQL 5.6 Referans Kılavuzu :: 17.6.11 MySQL Küme Çoğaltma Çatışma Çözümü. Dev.mysql.com. Erişim tarihi: 2013-09-18.
  5. ^ Veri Merkezlerinde Veritabanlarını Eşzamanlı Olarak Çoğaltmak - Deli misiniz? (Oracle'ın MySQL Blogu). Blogs.oracle.com (2011-10-03). Erişim tarihi: 2013-09-18.
  6. ^ Jon Stephens, Mike Kruckenberg, Roland Bouman (2007): "MySQL 5.1 Küme DBA Sertifikasyon Çalışma Kılavuzu", s. 86
  7. ^ MySQL Cluster 7.2'nin yeni özellikleri, MySQL Geliştirici Bölgesi
  8. ^ MySQL Cluster 7.3 artık Genel Olarak Kullanılabilir - genel bakış, MySQL Cluster 7.3 Özet
  9. ^ MySQL Cluster 7.4 GA: 200 Milyon QPS, Aktif-Aktif Coğrafi Çoğaltma ve daha fazlası, MySQL Cluster 7.4 Özet
  10. ^ MySQL Cluster 7.5 Artık GA!, Oracle'ın MySQL Blogu, 18 Ekim 2016
  11. ^ "MySQL :: MySQL 8.0 Referans Kılavuzu :: 22.1.4 NDB Kümesindeki Yenilikler". dev.mysql.com.
  12. ^ Todd R. Weiss (14 Ekim 2003). "MySQL, veri yönetim sistemi satıcısı Alzato'yu alıyor". Computerworld.com. Alındı 5 Kasım 2012.

Dış bağlantılar

MySQL

Diğer