Yandex mengeluarkan kod sumber DBMSnya «YDB»

Baru-baru ini berita itu menyahkannya Yandex mengeluarkan kod sumber DBMSnya, «YDB», yang melaksanakan sokongan untuk dialek SQL dan transaksi ACID.

DBMS dibina dari bawah ke atas dan pada mulanya dibangunkan dengan fokus ke arah memastikan toleransi kesalahan, failover automatik dan kebolehskalaan. Perlu diingatkan bahawa Yandex melancarkan kluster YDB yang berfungsi, termasuk lebih daripada 10 ribu nod, yang menyimpan ratusan petabait data dan melayani berjuta-juta transaksi yang diedarkan sesaat.

Kebaharuan utama YDB

Antara ciri yang menonjol daripada YDB ialah penggunaan model data hubungan dengan jadual YQL (YDB Query Language) digunakan untuk membuat pertanyaan dan mentakrifkan skema data, iaitu dialek SQL yang disesuaikan untuk berfungsi dengan pangkalan data teragih yang besar. Apabila mencipta skema storan, kumpulan jadual seperti pokok disokong, yang menyerupai direktori sistem fail. API disediakan untuk bekerja dengan data dalam format JSON.

The keupayaan untuk mencipta konfigurasi toleran kesalahan yang terus berfungsi apabila cakera, nod, rak, dan juga pusat data individu gagal. YDB menyokong penggunaan segerak dan replikasi merentas tiga Zon Ketersediaan sambil mengekalkan keadaan kluster sekiranya berlaku kegagalan salah satu zon.

Sokongan Akses Data menggunakan pertanyaan imbasan, direka untuk melaksanakan pertanyaan analitikal ad-hoc pada pangkalan data, dilaksanakan dalam mod baca sahaja dan mengembalikan strim grpc.

Selain itu, ia juga menyerlah menyimpan data terus pada peranti blok menggunakan komponen PDisk asli dan lapisan VDisk. Selain VDisk, DSProxy berjalan, yang menganalisis ketersediaan dan prestasi cakera untuk mengecualikannya jika masalah dikesan.

Daripada ciri lain yang menonjol:

  • 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.

Akhirnya, perlu diingatkan bahawa YDB digunakan dalam projek Yandex, kod itu ditulis dalam C/C++ dan diedarkan di bawah lesen Apache 2.0, anda boleh melihat kod sumber, serta butiran lanjut mengenainya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.