Rilis DBMS terdistribusi TiDB 3.0

Tersedia rilis DBMS terdistribusi TiDB 3.0dikembangkan di bawah pengaruh teknologi Google kunci pas и F1. TiDB termasuk dalam kategori sistem hybrid HTAP (Hybrid Transactional/Analytical Processing) yang mampu menyediakan transaksi real-time (OLTP) dan memproses kueri analitik. Proyek ini ditulis dalam Go dan didistribusikan oleh berlisensi di bawah Apache 2.0.

Fitur TDB:

  • Dukungan untuk SQL dan penyediaan antarmuka klien yang kompatibel dengan protokol MySQL, yang membuatnya mudah untuk mengadaptasi aplikasi yang ada yang ditulis untuk MySQL ke TiDB, dan juga memungkinkan Anda menggunakan pustaka klien umum. Selain protokol MySQL, Anda dapat menggunakan API berbasis JSON dan konektor Spark untuk mengakses DBMS.
  • Dari fitur SQL, indeks, fungsi agregat, GROUP BY, ORDER BY, ekspresi DISTINCT, penggabungan (LEFT JOIN / RIGHT JOIN / CROSS JOIN), tampilan, fungsi jendela, dan subkueri didukung. Peluang yang diberikan cukup untuk mengatur pekerjaan dengan TiDB dari aplikasi web seperti PhpMyAdmin, Gogs dan WordPress;
  • Peningkatan skala dan ketahanan: Daya penyimpanan dan pemrosesan dapat ditingkatkan hanya dengan menambahkan node baru. Data didistribusikan ke seluruh node dengan redundansi untuk memungkinkan operasi berlanjut jika node individu gagal. Kegagalan ditangani secara otomatis.
  • Sistem menjamin konsistensi dan terlihat seperti satu DBMS besar untuk perangkat lunak klien, meskipun faktanya data dari banyak node sebenarnya digunakan untuk menyelesaikan transaksi.
  • Untuk menyimpan data secara fisik pada node, backend yang berbeda dapat digunakan, misalnya, mesin penyimpanan lokal GoLevelDB dan BoltDB atau mesin penyimpanan terdistribusi kami sendiri TiKV.
  • Kemampuan untuk mengubah skema penyimpanan secara asinkron, memungkinkan Anda menambahkan kolom dan indeks dengan cepat tanpa menghentikan pemrosesan operasi yang sedang berlangsung.

Utama inovasi:

  • Pekerjaan telah dilakukan untuk meningkatkan produktivitas. Dalam pengujian Sysbench, rilis 3.0 2.1 kali lebih cepat daripada cabang 1.5 saat melakukan operasi pemilihan dan pembaruan, dan dalam pengujian TPC-C sebesar 4.5 kali. Pengoptimalan telah memengaruhi berbagai jenis kueri, termasuk subkueri IN, DO, dan NOT EXISTS, operasi penggabungan tabel (JOIN), penggunaan indeks, dan banyak lagi;
    Rilis DBMS terdistribusi TiDB 3.0Rilis DBMS terdistribusi TiDB 3.0

  • Menambahkan mesin penyimpanan TiFlash baru yang memungkinkan kinerja lebih tinggi dalam memecahkan masalah analitis (OLAP) berkat penyimpanan berbentuk kolom. TiFlash melengkapi penyimpanan TiKV yang ditawarkan sebelumnya, yang menyimpan data baris dalam format kunci/nilai dan lebih ideal untuk tugas pemrosesan transaksi (OLTP). TiFlash bekerja berdampingan dengan TiKV dan data terus direplikasi ke TiKV seperti sebelumnya menggunakan protokol Raft untuk menentukan konsensus, namun untuk setiap kelompok replika Raft dibuat replika tambahan yang digunakan di TiFlash. Pendekatan ini memungkinkan pembagian sumber daya yang lebih baik antara tugas OLTP dan OLAP, dan juga membuat data transaksi tersedia secara instan untuk kueri analitis;

    Rilis DBMS terdistribusi TiDB 3.0

  • Pengumpul sampah terdistribusi telah diterapkan, yang secara signifikan dapat meningkatkan kecepatan pengumpulan sampah dalam kelompok besar dan meningkatkan stabilitas;
  • Implementasi eksperimental Kontrol Akses Berbasis Peran (RBAC) telah ditambahkan. Dimungkinkan juga untuk mengatur hak akses untuk operasi ANALYZE, USE, SET GLOBAL dan SHOW PROCESSLIST;
  • Menambahkan kemampuan untuk menggunakan ekspresi SQL untuk mengekstrak kueri lambat dari log;
  • Mekanisme untuk memulihkan tabel yang terhapus dengan cepat telah diterapkan, memungkinkan Anda memulihkan data yang terhapus secara tidak sengaja;
  • Format pencatatan log telah disatukan;
  • Menambahkan dukungan untuk mode penguncian pesimis, yang membuat pemrosesan transaksi lebih mirip dengan MySQL;
  • Menambahkan dukungan untuk fungsi jendela (fungsi jendela atau fungsi analitis) yang kompatibel dengan MySQL 8.0. Fungsi jendela memungkinkan Anda melakukan penghitungan untuk setiap baris kueri menggunakan baris lainnya. Tidak seperti fungsi agregat, yang menciutkan kumpulan baris yang dikelompokkan menjadi satu baris, fungsi jendela digabungkan berdasarkan konten “jendela”, yang mencakup satu atau lebih baris dari kumpulan hasil. Di antara fungsi jendela yang diterapkan:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK dan ROW_NUMBER;

  • Menambahkan dukungan eksperimental untuk tampilan (VIEW);
  • Sistem partisi telah ditingkatkan, kemampuan untuk mendistribusikan data menjadi beberapa bagian berdasarkan rentang nilai atau hash telah ditambahkan;
  • Kerangka kerja untuk mengembangkan plugin telah ditambahkan, misalnya, plugin telah disiapkan untuk menggunakan daftar putih IP atau memelihara log audit;
  • Dukungan eksperimental telah disediakan untuk fungsi "EXPLAIN ANALYZE" untuk membangun rencana eksekusi untuk kueri SQL (SQL Plan Management);
  • Menambahkan perintah next_row_id untuk mendapatkan ID baris berikutnya;
  • Menambahkan fungsi bawaan baru JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE, dan NAME_CONST.

Sumber: opennet.ru

Tambah komentar