Alibaba, PostgreSQL tabanlı dağıtılmış bir DBMS olan PolarDB'nin kodunu açtı.

Çin'in en büyük BT şirketlerinden biri olan Alibaba, PostgreSQL tabanlı dağıtılmış DBMS PolarDB'nin kaynak kodunu açtı. PolarDB, PostgreSQL'in yeteneklerini, farklı küme düğümleri arasında dağıtılan küresel veritabanının tamamı bağlamında ACID işlemlerine yönelik bütünlük ve destek ile dağıtılmış veri depolama araçlarıyla genişletir. PolarDB ayrıca bir veya daha fazla düğümün arızalanmasının ardından bilgileri kurtarmak için dağıtılmış SQL sorgu işlemeyi, hata toleransını ve yedekli veri depolamayı da destekler. Depolama alanınızı genişletmeniz gerekiyorsa kümeye yeni düğümler ekleyebilirsiniz. Kod Apache 2.0 lisansı altında açıktır.

PolarDB iki bileşenden oluşur: uzantılar ve PostgreSQL için bir dizi yama. Yamalar, PostgreSQL çekirdeğinin yeteneklerini genişletir ve uzantılar, dağıtılmış işlem yönetimi mekanizması, küresel hizmetler, dağıtılmış bir SQL sorgu işlemcisi, ek meta veriler, kümeyi yönetmeye, kümeyi dağıtmaya ve basitleştirmeye yönelik araçlar gibi PostgreSQL'den ayrı olarak uygulanan bileşenleri içerir. Mevcut sistemlerin buna taşınması.

Yamalar, PostgreSQL çekirdeğine, farklı izolasyon seviyeleri için çoklu sürümü (MVCC, Çoklu Sürüm eşzamanlılık kontrolü) kullanarak verilere paralel erişimi kontrol etmeye yönelik mekanizmanın dağıtılmış bir sürümünü ekler. PolarDB'nin işlevlerinin çoğu, PostgreSQL'e bağımlılığı azaltan ve PolarDB'ye dayalı çözümlerin güncellenmesini ve uygulanmasını basitleştiren uzantılara dahil edilmiştir (PostgreSQL'in yeni sürümlerine geçişi ve PostgreSQL ile tam uyumluluğun korunmasını kolaylaştırır). Kümeyi yönetmek için PostgreSQL-XC ve PostgreSQL-XL'deki benzer yardımcı programı temel alan pgxc_ctl araç seti kullanılır.

Bir kümede üç temel bileşen vardır: veritabanı düğümleri (DN), küme yöneticisi (CM) ve işlem yönetimi hizmeti (TM). Ek olarak bir proxy yük dengeleyici kullanılabilir. Her bileşen ayrı bir işlemdir ve farklı bir sunucuda çalıştırılabilir. Veritabanı düğümleri, istemcilerden gelen SQL sorgularına hizmet eder ve aynı zamanda diğer veritabanı düğümlerinin katılımıyla dağıtılmış sorgu yürütmenin koordinatörleri olarak görev yapar. Küme yöneticisi, her veritabanı düğümünün durumunu izler, küme yapılandırmasını saklar ve düğümleri yönetmek, yedeklemek, yük dengelemek, güncellemek, başlatmak ve durdurmak için araçlar sağlar. İşlem yönetimi hizmeti, tüm küme genelinde genel bütünlüğün korunmasından sorumludur.

Alibaba, PostgreSQL tabanlı dağıtılmış bir DBMS olan PolarDB'nin kodunu açtı.

PolarDB, verilerin farklı düğümlerde depolandığında tüm düğümler için ortak bir depolama alanı kullanılmadan dağıtıldığı ve her düğümün kendisiyle ilişkili veri kısmından sorumlu olduğu ve ilgili sorguları gerçekleştirdiği, Paylaşılan-hiçbir şey dağıtılmamış bilgi işlem mimarisini temel alır. verilere. Her tablo, birincil anahtara dayalı karma kullanılarak parçalara (parçalama) bölünür. İstek farklı düğümlerde bulunan verileri kapsıyorsa atomikliği, tutarlılığı, izolasyonu ve güvenilirliği (ACID) sağlamak için dağıtılmış bir işlem yürütme mekanizması ve bir işlem koordinatörü etkinleştirilir.

Hata toleransını sağlamak için her segment en az üç düğüme kopyalanır. Kaynaklardan tasarruf etmek için verilerin tamamı yalnızca iki kopya içerir ve bunlardan biri, geri yazma günlüğünün (WAL) depolanmasıyla sınırlıdır. Tam kopyalara sahip iki düğümden biri lider olarak seçilir ve isteklerin işlenmesine katılır. İkinci düğüm, söz konusu veri segmenti için yedek görevi görür ve üçüncüsü, lider düğümün seçiminde yer alır ve iki düğümün tam kopyalarla arızalanması durumunda bilgileri geri yüklemek için kullanılabilir. Küme düğümleri arasındaki veri çoğaltma, potansiyel olarak güvenilmez düğümlere sahip bir ağda tutarlı bir fikir birliği tanımı sağlayan Paxos algoritması kullanılarak düzenlenir.

PolarDB DBMS'nin tüm işlevselliğinin üç sürümde ortaya çıkmasının planlandığı belirtiliyor: İlk sürümde çoğaltma, yüksek kullanılabilirlik ve küme yönetimine yönelik araçlar yayınlanacak. İkinci sürüm, düğümler arası ACID'yi ve dağıtılmış SQL yürütmeyi destekleyen dağıtılmış bir işlem yürütme sistemine sahip olacak. Üçüncü sürüm, PostgreSQL için bir eklenti ve optimum performansa ulaşmak için segmentlerin uyarlanabilir yerleştirilmesi ve yeni düğümler ekleyerek kümeyi genişletme yeteneği de dahil olmak üzere düğümler arasında esnek veri dağıtımına yönelik araçlar içerecek.

Kaynak: opennet.ru

Yorum ekle