Yandex нь SQL-ийг дэмждэг тархсан DBMS YDB кодыг нээсэн

Yandex нь SQL аялгуу болон ACID гүйлгээний дэмжлэгийг хэрэгжүүлдэг тархсан YDB DBMS-ийн эх бичвэрийг нийтлэв. DBMS нь эхнээс нь бүтээгдсэн бөгөөд алдааг тэсвэрлэх, алдаа гарсан тохиолдолд автоматаар сэргээх, өргөтгөх чадварыг хангах үүднээс анхлан боловсруулсан. Yandex нь 10 мянга гаруй зангилаа бүхий YDB кластеруудыг ажиллуулж, хэдэн зуун петабайт өгөгдлийг хадгалж, секундэд сая сая тараасан гүйлгээнд үйлчилдэг гэж тэмдэглэжээ. YDB нь Market, Cloud, Smart Home, Alice, Metrika, Auto.ru зэрэг Yandex төслүүдэд ашиглагддаг. Код нь C/C++ хэл дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг. Танилцах, хурдан эхлүүлэхийн тулд та бэлэн Docker контейнер ашиглаж болно.

Төслийн онцлогууд:

  • Хүснэгттэй харилцах өгөгдлийн загварыг ашиглах. YQL (YDB Query Language) нь өргөн тархсан мэдээллийн сантай ажиллахад зохицсон SQL хэлний аялгуу болох өгөгдлийн схемийг асууж, тодорхойлоход хэрэглэгддэг. Хадгалах схемийг үүсгэх үед файлын систем дэх лавлахтай төстэй хүснэгтүүдийн мод шиг бүлэглэлийг дэмждэг. JSON форматтай өгөгдөлтэй ажиллахад зориулагдсан API.
    Yandex нь SQL-ийг дэмждэг тархсан DBMS YDB кодыг нээсэн
  • Өгөгдлийн сангийн эсрэг аналитик түр зуурын асуулга хийх, зөвхөн унших горимд гүйцэтгэх, grpc урсгалыг буцаах зорилгоор скан хайлт ашиглан өгөгдөлд хандах дэмжлэг.
  • DBMS-тэй харилцах, хүсэлт илгээх нь командын мөрийн интерфейс, суурилагдсан вэб интерфэйс эсвэл C ++, C # (.NET), Go, Java, Node.js, PHP болон Python.
  • Бие даасан диск, зангилаа, тавиур, тэр ч байтугай өгөгдлийн төвүүд бүтэлгүйтсэн үед үргэлжлүүлэн ажиллах алдаатай тохиргоог бий болгох чадвар. YDB нь аль нэг бүс бүтэлгүйтсэн тохиолдолд кластерын эрүүл мэндийг хадгалахын зэрэгцээ ашиглах боломжтой гурван бүсэд байршуулах, синхрон хуулбарлахыг дэмждэг.
  • Аппликешнүүдэд хамгийн бага сааталтайгаар алдаа дутагдлыг автоматаар сэргээж, өгөгдлийг хадгалахдаа заасан нөөцийг автоматаар хадгална.
  • Үндсэн түлхүүр дээр автоматаар индекс үүсгэх, дурын баганад нэвтрэх үр ашгийг дээшлүүлэхийн тулд хоёрдогч индексийг тодорхойлох чадвар.
  • Хэвтээ өргөтгөх чадвар. Хадгалагдсан өгөгдлийн ачаалал, хэмжээ нэмэгдэхийн хэрээр шинэ зангилаануудыг холбох замаар кластерийг өргөжүүлж болно. Тооцоолох болон хадгалах давхаргууд нь тусгаарлагдсан бөгөөд тус тусад нь тооцоолох болон хадгалах хэмжээг нэмэгдүүлэх боломжийг олгодог. DBMS нь өөрөө байгаа техник хангамжийн нөөцийг харгалзан өгөгдөл, ачааллын жигд хуваарилалтыг хянадаг. Дэлхийн янз бүрийн хэсэгт хэд хэдэн дата төвийг хамарсан газарзүйн хувьд тархсан тохиргоог байрлуулах боломжтой.
  • Олон зангилаа, хүснэгтийг хамарсан асуулга боловсруулах үед хүчтэй тууштай загвар болон ACID гүйлгээг дэмжих. Гүйцэтгэлийг сайжруулахын тулд та тууштай байдлын хяналтыг сонгон идэвхгүй болгож болно.
  • Автомат өгөгдлийг хуулбарлах, хэмжээ эсвэл ачаалал ихсэх үед автоматаар хуваах (хуваах, хуваах), зангилаа хоорондын автомат ачаалал, өгөгдлийг тэнцвэржүүлэх.
  • Төрөлхийн PDisk бүрэлдэхүүн хэсэг болон VDisk давхарга ашиглан өгөгдлийг блок төхөөрөмж дээр шууд хадгалах. VDisk дээр DSProxy ажилладаг бөгөөд энэ нь дискний бэлэн байдал, гүйцэтгэлд дүн шинжилгээ хийдэг бөгөөд хэрэв асуудал илэрсэн бол тэдгээрийг оруулахгүй.
  • YDB, янз бүрийн үйлчилгээ, виртуал блок төхөөрөмж, байнгын дараалал (байнгын дараалал) хүртэл үүсгэх боломжийг олгодог уян хатан архитектур. Өөр өөр төрлийн ажлын ачаалал, OLTP болон OLAP (аналитик асуулга) програмын тохиромжтой байдал.
  • Олон хэрэглэгчийн (олон хэрэглэгчийн) болон сервергүй тохиргооны дэмжлэг. Үйлчлүүлэгчдийг баталгаажуулах чадвар. Хэрэглэгчид хүсэлтийн тоо, өгөгдлийн хэмжээ зэрэгт нөөцийн хэрэглээг харгалзан, эсвэл тодорхой тооцоолох нөөц, хадгалах зайг түрээслэх / нөөцлөх замаар нийтлэг дэд бүтцэд өөрсдийн виртуал кластер, мэдээллийн санг үүсгэж болно.
  • Хуучирсан өгөгдлийг автоматаар устгахын тулд бүртгэлийн ашиглалтын хугацааг тохируулах боломж.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх