Yandex, SQL'i destekleyen dağıtılmış DBMS YDB'nin kodunu açtı

Yandex, SQL lehçesi ve ACID işlemlerini destekleyen dağıtılmış YDB DBMS'nin kaynak metinlerini yayınladı. DBMS sıfırdan oluşturuldu ve başlangıçta hata toleransı, arıza durumunda otomatik kurtarma ve ölçeklenebilirlik sağlamak amacıyla geliştirildi. Yandex'in, yüzlerce petabayt veri depolayan ve saniyede milyonlarca dağıtılmış işleme hizmet veren, 10 binden fazla düğüm içeren çalışan YDB kümelerini başlattığı kaydedildi. YDB, Market, Cloud, Smart Home, Alice, Metrika ve Auto.ru gibi Yandex projelerinde kullanılmaktadır. Kod, C/C++ ile yazılmıştır ve Apache 2.0 lisansı altında dağıtılmıştır. Alışma ve hızlı başlatma için hazır bir Docker kapsayıcısı kullanabilirsiniz.

Projenin özellikleri:

  • İlişkisel veri modelini tablolarla kullanma. YQL (YDB Sorgu Dili), büyük dağıtılmış veritabanlarıyla çalışmak üzere uyarlanmış bir SQL lehçesi olan veri şemasını sorgulamak ve tanımlamak için kullanılır. Bir depolama şeması oluştururken, bir dosya sistemindeki dizinlere benzeyen ağaç benzeri tablo gruplaması desteklenir. JSON biçimindeki verilerle çalışmak için bir API sağlanmıştır.
    Yandex, SQL'i destekleyen dağıtılmış DBMS YDB'nin kodunu açtı
  • Veritabanına karşı analitik geçici sorgular gerçekleştirmek için tasarlanmış, salt okunur modda yürütülen ve bir grpc akışı döndüren tarama sorgularını kullanarak verilere erişim desteği.
  • DBMS ile etkileşim ve istek gönderme, komut satırı arabirimi, yerleşik web arabirimi veya C ++, C # (.NET), Go, Java, Node.js için kitaplıklar sağlayan YDB SDK kullanılarak gerçekleştirilir. PHP ve Python.
  • Tek tek diskler, düğümler, raflar ve hatta veri merkezleri arızalandığında çalışmaya devam eden hataya dayanıklı yapılandırmalar oluşturma yeteneği. YDB, bölgelerden birinin arızalanması durumunda kümenin sağlığını korurken, üç kullanılabilirlik bölgesinde devreye almayı ve senkronize çoğaltmayı destekler.
  • Uygulamalar için minimum gecikmeyle hatalardan otomatik olarak kurtulun ve verileri depolarken belirtilen fazlalığı otomatik olarak koruyun.
  • Birincil anahtar üzerinde dizinlerin otomatik olarak oluşturulması ve isteğe bağlı sütunlara erişimin verimliliğini artırmak için ikincil dizinler tanımlama yeteneği.
  • Yatay ölçeklenebilirlik. Depolanan verilerin yükü ve boyutu büyüdükçe, küme basitçe yeni düğümler bağlanarak genişletilebilir. Bilgi işlem ve depolama katmanları birbirinden ayrılarak işlem ve depolama ölçeklendirmesinin ayrı ayrı yapılmasına olanak tanır. DBMS'nin kendisi, mevcut donanım kaynaklarını hesaba katarak verilerin ve yükün tek tip dağılımını izler. Dünyanın farklı yerlerindeki birkaç veri merkezini kapsayan coğrafi olarak dağıtılmış yapılandırmaları devreye almak mümkündür.
  • Birden çok düğümü ve tabloyu kapsayan sorguları işlerken güçlü tutarlılık modeli ve ACID işlemleri için destek. Performansı artırmak için tutarlılık denetimini seçerek devre dışı bırakabilirsiniz.
  • Otomatik veri çoğaltma, boyut veya yük arttığında otomatik bölümleme (bölümleme, parçalama) ve düğümler arasında otomatik yük ve veri dengeleme.
  • Yerel PDisk bileşeni ve VDisk katmanını kullanarak verileri doğrudan blok cihazlarda depolama. VDisk'in yanı sıra, sorunlar algılanırsa diskleri dışlamak için disklerin kullanılabilirliğini ve performansını analiz eden DSProxy çalışır.
  • YDB üzerinde çeşitli hizmetler, sanal blok cihazlara kadar ve kalıcı kuyruklar (kalıcı kuyruk) oluşturmanıza izin veren esnek bir mimari. Farklı iş yükü türleri, OLTP ve OLAP (analitik sorgular) için uygulama uygunluğu.
  • Çok kullanıcılı (çok kiracılı) ve sunucusuz yapılandırma desteği. İstemcileri doğrulama yeteneği. Kullanıcılar, istek sayısı ve veri boyutu düzeyinde kaynak tüketimini dikkate alarak veya belirli bilgi işlem kaynaklarını ve depolama alanını kiralayarak/ayırtarak ortak bir paylaşımlı altyapıda kendi sanal kümelerini ve veritabanlarını oluşturabilirler.
  • Eski verilerin otomatik olarak silinmesi için kayıtların ömrünü ayarlama imkanı.

Kaynak: opennet.ru

Yorum ekle