Yandex mengeluarkan kod sumber DBMSnya «YDB»

Baru-baru ini diumumkan bahawa Yandex telah mengeluarkan kod sumber untuk DBMSnya, "YDB" , yang melaksanakan sokongan untuk dialek SQL dan transaksi ACID.

DBMS dibina dari bawah ke atas dan pada mulanya dibangunkan dengan matlamat untuk memastikan toleransi kesalahan , pemulihan automatik daripada kegagalan dan kebolehskalaan. Perlu diingatkan bahawa Yandex melancarkan kluster YDB operasi, termasuk lebih daripada 10 nod, menyimpan ratusan petabait data dan mengendalikan berjuta-juta transaksi teragih sesaat.

Kebaharuan utama YDB

Salah satu ciri utama YDB ialah penggunaan model data hubungan dengan jadual. YQL ( YDB Query Language) digunakan untuk membuat pertanyaan dan mentakrifkan skema data; ia merupakan dialek SQL yang disesuaikan untuk berfungsi dengan pangkalan data yang besar dan teragih . Apabila mencipta skema storan, pengelompokan jadual seperti pokok disokong, serupa dengan direktori dalam sistem fail. API disediakan untuk berfungsi dengan data dalam format JSON.

Turut perlu diberi perhatian ialah keupayaannya untuk mencipta konfigurasi toleran ralat yang terus berfungsi apabila cakera, nod, rak dan juga pusat data individu gagal. YDB menyokong penggunaan segerak dan replikasi merentasi tiga zon ketersediaan sambil mengekalkan kesihatan kluster sekiranya berlaku kegagalan zon.

Keserasian dengan akses data melalui pertanyaan imbasan, direka bentuk untuk melaksanakan pertanyaan analitik ad-hoc pada pangkalan data, dilaksanakan dalam mod baca sahaja dan mengembalikan aliran grpc.

Tambahan pula, ia juga menonjol kerana menyimpan data secara langsung pada peranti blok menggunakan komponen PDisk asli dan lapisan VDisk. Selain VDisk, DSProxy menjalankan, yang menganalisis ketersediaan dan prestasi cakera untuk mengecualikannya jika masalah dikesan.

Ciri-ciri penting lain termasuk:

  • Seni bina fleksibel yang membolehkan anda membina pelbagai perkhidmatan di atas YDB, sehingga ke peranti blok maya dan baris gilir yang berterusan. Kesesuaian untuk jenis beban kerja yang berbeza: OLTP dan OLAP (pertanyaan analitikal).
  • Sokongan untuk konfigurasi berbilang pengguna (berbilang penyewa) dan tanpa pelayan.
  • Keupayaan untuk mengesahkan pelanggan. Pengguna boleh mencipta kluster dan pangkalan data maya mereka sendiri pada infrastruktur yang dikongsi bersama, mempertimbangkan penggunaan sumber dari segi bilangan permintaan dan saiz data, atau dengan menyewa/menempah sumber pengkomputeran dan ruang storan tertentu.
  • Kemungkinan untuk melaraskan hayat berguna rekod untuk pemadaman automatik data usang.
  • Berinteraksi dengan DBMS dan menyerahkan permintaan dilakukan menggunakan antara muka baris arahan, antara muka web bersepadu atau YDB SDK, yang menyediakan perpustakaan untuk C++, C# (.NET), Go, Java, Node.js, PHP dan Python.
  • Pulih secara automatik daripada kegagalan dengan kelewatan minimum kepada aplikasi dan secara automatik mengekalkan lebihan yang ditentukan semasa menyimpan data.
  • Penciptaan indeks automatik pada kunci utama dan keupayaan untuk menentukan indeks sekunder untuk meningkatkan kecekapan akses lajur sewenang-wenangnya.
  • Skala mendatar. Apabila beban dan saiz data yang disimpan bertambah, kluster boleh dikembangkan hanya dengan menyambungkan nod baharu. Pengiraan dan peringkat storan adalah berasingan, membolehkan anda membuat skala pengiraan dan storan secara berasingan. DBMS sendiri memantau pengagihan data dan beban yang sekata, dengan mengambil kira sumber perkakasan yang tersedia. Adalah mungkin untuk melaksanakan konfigurasi yang diedarkan secara geografi yang meliputi berbilang pusat data di bahagian yang berlainan di dunia.
  • Sokongan untuk model ketekalan yang kukuh dan transaksi ACID apabila memproses pertanyaan yang merangkumi berbilang nod dan jadual. Untuk meningkatkan prestasi, anda boleh melumpuhkan semakan konsistensi secara terpilih.
  • Replikasi data automatik, pembahagian automatik (pembahagian, pembahagian) apabila saiz atau beban bertambah, dan beban automatik dan pengimbangan data antara nod.

Akhir sekali, perlu diingatkan bahawa YDB digunakan dalam projek Yandex, kod tersebut ditulis dalam C/C++ dan diedarkan di bawah lesen Apache 2.0. Anda boleh mendapatkan kod sumber, serta maklumat lanjut mengenainya, di pautan berikut.


Tambahkan sebagai sumber pilihan dalam Google