Yandex merilis kode sumber DBMS-nya «YDB»

Baru-baru ini tersiar kabar itu Yandex merilis kode sumber DBMS-nya, «YDB», yang mengimplementasikan dukungan untuk dialek SQL dan transaksi ACID.

DBMS dibangun dari bawah ke atas dan pada awalnya dikembangkan dengan tujuan memastikan toleransi kesalahan, failover otomatis, dan skalabilitas. Perlu dicatat bahwa Yandex meluncurkan klaster YDB yang berfungsi, termasuk lebih dari 10 ribu node, yang menyimpan ratusan petabyte data dan melayani jutaan transaksi terdistribusi per detik.

Hal baru utama dari YDB

Salah satu fitur yang menonjol dari YDB adalah penggunaan model data relasional dengan tabel YQL (Bahasa Kueri YDB) digunakan untuk membuat kueri dan mendefinisikan skema data, yaitu dialek SQL yang diadaptasi untuk bekerja dengan database terdistribusi besar. Saat membuat skema penyimpanan, pengelompokan tabel seperti pohon didukung, yang menyerupai direktori sistem file. API disediakan untuk bekerja dengan data dalam format JSON.

Itu kemampuan untuk membuat konfigurasi yang toleran terhadap kesalahan yang terus berfungsi ketika disk, node, rak, dan bahkan pusat data individu gagal. YDB mendukung penyebaran dan replikasi sinkron di tiga Availability Zone sambil mempertahankan status cluster jika terjadi kegagalan salah satu zona.

Dukungan Akses Data menggunakan kueri pemindaian, dirancang untuk melakukan kueri analitik ad-hoc pada database, dijalankan dalam mode hanya-baca dan mengembalikan aliran grpc.

Selain itu, itu juga menonjol menyimpan data langsung di perangkat blok menggunakan komponen PDsk asli dan lapisan VDisk. Selain VDisk, DSProxy berjalan, yang menganalisis ketersediaan dan kinerja disk untuk mengecualikannya jika masalah terdeteksi.

Dari fitur lainnya yang menonjol:

  • Arsitektur fleksibel yang memungkinkan Anda membangun berbagai layanan di atas YDB, hingga perangkat blok virtual dan antrian persisten. Kesesuaian untuk berbagai jenis beban kerja: OLTP dan OLAP (kueri analitik).
  • Dukungan untuk konfigurasi multi-pengguna (multi-penyewa) dan tanpa server.
  • Kemampuan untuk mengotentikasi klien. Pengguna dapat membuat klaster dan basis data virtual mereka sendiri pada infrastruktur bersama yang umum, dengan mempertimbangkan konsumsi sumber daya dalam hal jumlah permintaan dan ukuran data, atau dengan menyewa/memesan sumber daya komputasi dan ruang penyimpanan tertentu.
  • Kemungkinan untuk menyesuaikan masa manfaat catatan untuk penghapusan otomatis data usang.
  • Berinteraksi dengan DBMS dan mengirimkan permintaan dilakukan dengan menggunakan antarmuka baris perintah, antarmuka web terintegrasi, atau YDB SDK, yang menyediakan pustaka untuk C++, C# (.NET), Go, Java, Node.js, PHP, dan Python.
  • Secara otomatis pulih dari kegagalan dengan penundaan minimal untuk aplikasi dan secara otomatis mempertahankan redundansi yang ditentukan saat menyimpan data.
  • Pembuatan indeks secara otomatis pada kunci utama dan kemampuan untuk menentukan indeks sekunder untuk meningkatkan efisiensi akses kolom arbitrer.
  • Skalabilitas horisontal. Seiring bertambahnya beban dan ukuran data yang disimpan, cluster dapat diperluas hanya dengan menghubungkan node baru. Tingkat komputasi dan penyimpanan terpisah, memungkinkan Anda menskalakan komputasi dan penyimpanan secara terpisah. DBMS sendiri memonitor pemerataan data dan beban, dengan mempertimbangkan sumber daya perangkat keras yang tersedia. Dimungkinkan untuk menerapkan konfigurasi terdistribusi secara geografis yang mencakup beberapa pusat data di berbagai belahan dunia.
  • Dukungan untuk model konsistensi yang kuat dan transaksi ACID saat memproses kueri yang menjangkau beberapa node dan tabel. Untuk meningkatkan kinerja, Anda dapat menonaktifkan pemeriksaan konsistensi secara selektif.
  • Replikasi data otomatis, partisi otomatis (partisi, sharding) ketika ukuran atau beban meningkat, dan beban otomatis dan penyeimbangan data antar node.

Akhirnya, perlu dicatat bahwa YDB digunakan dalam proyek Yandex, kode ditulis dalam C/C++ dan didistribusikan di bawah lisensi Apache 2.0, Anda dapat melihat kode sumber, serta detail lebih lanjut tentangnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.