Binuksan ng Yandex ang code para sa isang ipinamahagi na DBMS YDB na sumusuporta sa SQL

Nai-publish ng Yandex ang source code ng ipinamahagi na DBMS YDB, na nagpapatupad ng suporta para sa SQL dialect at mga transaksyon sa ACID. Ang DBMS ay nilikha mula sa simula at sa simula ay binuo na may isang mata upang matiyak ang fault tolerance, awtomatikong pagbawi mula sa mga pagkabigo at scalability. Napansin na ang Yandex ay naglunsad ng gumaganang mga kumpol ng YDB, kabilang ang higit sa 10 libong mga node, na nag-iimbak ng daan-daang mga petabytes ng data at naghahatid ng milyun-milyong ipinamamahaging mga transaksyon sa bawat segundo. Ginagamit ang YDB sa mga proyektong Yandex gaya ng Market, Cloud, Smart Home, Alice, Metrica at Auto.ru. Ang code ay nakasulat sa C/C++ at ipinamahagi sa ilalim ng lisensya ng Apache 2.0. Para sa familiarization at mabilis na paglulunsad, maaari kang gumamit ng handa na Docker container.

Mga Tampok ng Proyekto:

  • Paggamit ng relational data model na may mga talahanayan. Para sa mga query at pagtukoy sa schema ng data, ginagamit ang wikang YQL (YDB Query Language), na isang dialect ng SQL na inangkop para sa pagtatrabaho sa malalaking distributed database. Kapag gumagawa ng schema ng imbakan, sinusuportahan ang isang parang punong pagpapangkat ng mga talahanayan, na parang mga direktoryo sa isang file system. Ang isang API ay ibinigay para sa pagtatrabaho sa data sa JSON na format.
    Binuksan ng Yandex ang code para sa isang ipinamahagi na DBMS YDB na sumusuporta sa SQL
  • Suporta para sa pag-access ng data gamit ang mga query sa pag-scan na idinisenyo upang magsagawa ng mga analytical na ad-hoc na query sa database, na isinasagawa sa read-only na mode at nagbabalik ng grpc stream.
  • Ang pakikipag-ugnayan sa DBMS at pagpapadala ng mga kahilingan ay isinasagawa gamit ang command line interface, built-in na web interface o ang YDB SDK, na nagbibigay ng mga library para sa C++, C# (.NET), Go, Java, Node.js, PHP at Python.
  • Ang kakayahang lumikha ng fault-tolerant na mga configuration na patuloy na gumagana kapag nabigo ang mga indibidwal na disk, node, rack at maging ang mga data center. Sinusuportahan ng YDB ang pag-deploy at sabay-sabay na pagtitiklop sa tatlong availability zone, na pinapanatili ang functionality ng cluster kung sakaling mabigo ang isa sa mga zone.
  • Awtomatikong makabawi mula sa mga pagkabigo na may kaunting latency para sa mga application at awtomatikong mapanatili ang tinukoy na redundancy ng data.
  • Awtomatikong paglikha ng mga index batay sa pangunahing key at ang kakayahang tukuyin ang mga pangalawang index upang mapabuti ang kahusayan ng pag-access sa mga arbitrary na column.
  • Pahalang na scalability. Habang lumalaki ang pag-load at laki ng nakaimbak na data, maaaring palawakin ang cluster sa pamamagitan lamang ng pagkonekta ng mga bagong node. Ang compute at storage tier ay pinaghihiwalay, na nagbibigay-daan sa iyong palawakin ang iyong computing power at storage size nang hiwalay. Ang DBMS mismo ay sinusubaybayan ang pare-parehong pamamahagi ng data at load, na isinasaalang-alang ang mga magagamit na mapagkukunan ng hardware. Posibleng mag-deploy ng mga configuration na ipinamahagi sa heograpiya na sumasaklaw sa ilang data center sa iba't ibang bahagi ng mundo.
  • Sinusuportahan ang matatag na modelo ng pagkakapare-pareho at mga transaksyon sa ACID kapag nagpoproseso ng mga query na sumasaklaw sa maraming node at talahanayan. Para mapahusay ang performance, maaari mong piliing i-disable ang consistency checking.
  • Awtomatikong pagtitiklop ng data, awtomatikong paghati (paghahati, pagbabahagi) kapag tumataas ang laki o pag-load, at awtomatikong pag-load at pagbabalanse ng data sa pagitan ng mga node.
  • Direktang pag-iimbak ng data sa mga block device gamit ang native na bahagi ng PDisk at VDisk layer. Ang DSProxy ay tumatakbo sa ibabaw ng VDisk, na sinusuri ang pagkakaroon at mga katangian ng pagganap ng mga disk upang maalis ang mga ito kung may nakitang mga problema.
  • Flexible na arkitektura na nagbibigay-daan sa iyong gumawa ng iba't ibang serbisyo sa itaas ng YDB, kabilang ang mga virtual block device at patuloy na mga pila. Angkop para sa iba't ibang uri ng mga workload, OLTP at OLAP (analytical query).
  • Suporta para sa multitenant at walang server na mga configuration. Posibilidad ng pagpapatunay ng kliyente. Ang mga user ay maaaring gumawa ng kanilang mga virtual na cluster at database sa isang karaniwang nakabahaging imprastraktura, na isinasaalang-alang ang pagkonsumo ng mapagkukunan sa antas ng bilang ng mga kahilingan at laki ng data, o sa pamamagitan ng pagrenta/pagreserba ng ilang partikular na mapagkukunan ng computing at espasyo sa imbakan.
  • Kakayahang i-configure ang haba ng buhay ng mga tala upang awtomatikong alisin ang hindi napapanahong data.

Pinagmulan: opennet.ru

Magdagdag ng komento