Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

Mevcut dağıtılmış bir DBMS'nin yayınlanması TiDB 3.0, Google teknolojilerinin etkisi altında geliştirildi İngiliz anahtarı и F1. TiDB, hem gerçek zamanlı işlemler (OLTP) sağlama hem de analitik sorguları işleme kapasitesine sahip hibrit HTAP (Hibrit İşlemsel/Analitik İşleme) sistemleri kategorisine aittir. Proje Go dilinde yazılmıştır ve tarafından dağıtıldı Apache 2.0 altında lisanslanmıştır.

TiDB'nin özellikleri:

  • MySQL için yazılan mevcut uygulamaların TiDB'ye uyarlanmasını kolaylaştıran ve aynı zamanda ortak istemci kitaplıklarının kullanımına olanak tanıyan, SQL desteği ve MySQL protokolüyle uyumlu bir istemci arayüzünün sağlanması. DBMS'ye erişmek için MySQL protokolüne ek olarak JSON tabanlı bir API ve Spark için bir bağlayıcı kullanabilirsiniz.
  • SQL özellikleri; dizinleri, toplama işlevlerini, GROUP BY, ORDER BY, DISTINCT ifadelerini, birleştirmeleri (LEFT JOIN / RIGHT JOIN / CROSS JOIN), görünümleri, pencere işlevlerini ve alt sorguları destekler. Sağlanan yetenekler, PhpMyAdmin gibi web uygulamaları için TiDB ile çalışmayı organize etmek için yeterlidir, Gogs ve WordPress;
  • Yatay ölçeklenebilirlik ve hata toleransı: Depolama boyutu ve işlem gücü, yalnızca yeni düğümlerin bağlanmasıyla artırılabilir. Veriler, yedeklilik ile düğümler arasında dağıtılır ve bireysel düğümlerin arızalanması durumunda operasyonun devam etmesine olanak tanır. Arızalar otomatik olarak ele alınır.
  • Sistem tutarlılığı garanti eder ve istemci yazılımı için büyük bir DBMS gibi görünür; buna rağmen aslında işlemi tamamlamak için birçok düğümden gelen veriler çekilir.
  • Verileri düğümlerde fiziksel olarak depolamak için farklı arka uçlar kullanılabilir; örneğin yerel depolama motorları GoLevelDB ve BoltDB veya kendi dağıtılmış depolama motorumuz TiKV.
  • Depolama şemasını eşzamansız olarak değiştirme yeteneği, devam eden işlemlerin işlenmesini durdurmadan anında sütun ve dizin eklemenize olanak tanır.

Ana yenilikler:

  • Verimliliğin artırılmasına yönelik çalışmalar yapıldı. Sysbench testinde sürüm 3.0, seçme ve güncelleme işlemlerini gerçekleştirirken 2.1 dalına göre 1.5 kat, TPC-C testinde ise 4.5 kat daha hızlıdır. Optimizasyonlar, IN, DO ve NOT EXISTS alt sorguları, tablo birleştirme (JOIN) işlemleri, dizin kullanımı ve çok daha fazlası dahil olmak üzere çeşitli sorgu türlerini etkilemiştir;
    Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesiDağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

  • Sütunlu depolama sayesinde analitik sorunların (OLAP) çözümünde daha yüksek performans sağlayan yeni bir TiFlash depolama motoru eklendi. TiFlash, verileri anahtar/değer formatında satır bazında depolayan ve işlem işleme görevleri (OLTP) için daha ideal olan, daha önce sunulan TiKV depolamayı tamamlıyor. TiFlash, TiKV ile yan yana çalışır ve veriler, fikir birliğini belirlemek için Raft protokolünü kullanmadan önce olduğu gibi TiKV'ye kopyalanmaya devam eder, ancak her bir Raft kopyası grubu için, TiFlash'ta kullanılan ek bir kopya oluşturulur. Bu yaklaşım, OLTP ve OLAP görevleri arasında daha iyi kaynak paylaşımına olanak tanır ve aynı zamanda işlem verilerinin analitik sorgular için anında kullanılabilir olmasını sağlar;

    Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

  • Büyük kümelerdeki çöp toplama hızını önemli ölçüde artırabilen ve kararlılığı artırabilen dağıtılmış bir çöp toplayıcı uygulandı;
  • Rol Tabanlı Erişim Denetiminin (RBAC) deneysel bir uygulaması eklendi. ANALİZ, KULLANIM, GLOBAL AYARLAMA ve PROSES LİSTESİNİ GÖSTER işlemleri için erişim haklarını ayarlamak da mümkündür;
  • Günlükten yavaş sorguları çıkarmak için SQL ifadelerini kullanma yeteneği eklendi;
  • Yanlışlıkla silinen verileri geri yüklemenize olanak tanıyan, silinen tabloları hızlı bir şekilde geri yüklemeye yönelik bir mekanizma uygulanmıştır;
  • Kaydedilen günlüklerin formatı birleştirildi;
  • İşlem sürecini MySQL'e daha benzer hale getiren kötümser kilitleme modu desteği eklendi;
  • MySQL 8.0 ile uyumlu pencere işlevleri (pencere işlevleri veya analitik işlevler) için destek eklendi. Pencere işlevleri, diğer satırları kullanarak her sorgu satırı için hesaplamalar yapmanızı sağlar. Gruplandırılmış bir satır kümesini tek bir satıra daraltan toplama işlevlerinin aksine, pencere işlevleri, sonuç kümesinden bir veya daha fazla satırı içeren bir "pencerenin" içeriğine göre toplanır. Uygulanan pencere işlevleri arasında:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK ve ROW_NUMBER;

  • Görünümler için deneysel destek eklendi (VIEW);
  • Bölümleme sistemi iyileştirildi, verileri bir dizi değer veya karma temelinde bölümlere dağıtma yeteneği eklendi;
  • Eklenti geliştirmek için bir çerçeve eklendi; örneğin, bir IP beyaz listesinin kullanılması veya bir denetim günlüğünün tutulması için eklentiler zaten hazırlanmıştır;
  • Bir SQL sorgusu için yürütme planı oluşturmaya yönelik “EXPLAIN ANALYZE” fonksiyonuna (SQL Plan Yönetimi) deneysel destek sağlanmıştır;
  • Sonraki satırın kimliğini almak için next_row_id komutu eklendi;
  • Yeni yerleşik işlevler JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE ve NAME_CONST eklendi.

Kaynak: opennet.ru

Yorum ekle