Недавно је објављено да је Јандекс објавио изворни код за свој систем управљања базама података (DBMS), „YDB“ , који имплементира подршку за SQL дијалекат и ACID трансакције.
СУБ је изграђен од темеља и првобитно развијен са циљем да обезбеди толеранцију на грешке , аутоматски опоравак од кварова и скалабилност. Вреди напоменути да је Јандекс покренуо оперативне YDB кластере, укључујући више од 10 чворова, чувајући стотине петабајта података и обрађујући милионе дистрибуираних трансакција у секунди.
Главне новине ИДБ-а
Једна од кључних карактеристика YDB-а је употреба релационог модела података са табелама. YQL ( YDB Query Language) се користи за упите и дефинисање шеме података; то је дијалект SQL-а прилагођен за рад са великим, дистрибуираним базама података . Приликом креирања шеме складиштења, подржано је груписање табела у облику стабла, слично директоријумима у систему датотека. Обезбеђен је API за рад са подацима у JSON формату.
Такође је вредна пажње његова способност да креира конфигурације отпорне на грешке које настављају да функционишу када дискови, чворови, регали, па чак и појединачни центри података откажу. YDB подржава синхроно распоређивање и репликацију у три зоне доступности, уз одржавање здравља кластера у случају квара зоне.
Компатибилност са приступом подацима путем упита за скенирање, дизајнираних за извршавање ад-хок аналитичких упита на бази података, извршаваних у режиму само за читање и враћајући grpc ток.
Штавише, истиче се и по директном складиштењу података на блок уређајима користећи изворну PDisk компоненту и VDisk слој. Поред VDisk-а, покреће се и DSProxy, који анализира доступност и перформансе дискова како би их искључио ако се открију проблеми.
Остале значајне карактеристике укључују:
- Флексибилна архитектура која вам омогућава да изградите различите услуге на врху ИДБ-а, све до виртуелних блок уређаја и упорних редова. Погодност за различите врсте оптерећења: ОЛТП и ОЛАП (аналитички упити).
- Подршка за конфигурације са више корисника (више закупаца) и без сервера.
- Могућност аутентификације клијената. Корисници могу креирати сопствене виртуелне кластере и базе података на заједничкој заједничкој инфраструктури, узимајући у обзир потрошњу ресурса у смислу броја захтева и величине података, или изнајмљивањем/резервисањем одређених рачунарских ресурса и простора за складиштење.
- Могућност подешавања корисног века трајања записа за аутоматско брисање застарелих података.
- Интеракција са ДБМС-ом и подношење захтева се врши коришћењем интерфејса командне линије, интегрисаног веб интерфејса или ИДБ СДК, који обезбеђује библиотеке за Ц++, Ц# (.НЕТ), Го, Јава, Ноде.јс, ПХП и Питхон.
- Аутоматски се опоравља од кварова са минималним кашњењем апликација и аутоматски одржава одређену редундантност приликом складиштења података.
- Аутоматско креирање индекса на примарном кључу и могућност дефинисања секундарних индекса ради побољшања ефикасности произвољног приступа колонама.
- Хоризонтална скалабилност. Како расте оптерећење и величина ускладиштених података, кластер се може проширити једноставним повезивањем нових чворова. Нивои за рачунање и складиштење су одвојени, што вам омогућава да засебно скалирате рачунање и складиштење. Сам ДБМС прати равномерну дистрибуцију података и оптерећења, узимајући у обзир расположиве хардверске ресурсе. Могуће је имплементирати географски распоређене конфигурације које покривају више центара података у различитим деловима света.
- Подршка за јак модел конзистентности и АЦИД трансакције приликом обраде упита који обухватају више чворова и табела. Да бисте побољшали перформансе, можете селективно да онемогућите проверу доследности.
- Аутоматска репликација података, аутоматско партиционисање (партиционисање, дељење) када се величина или оптерећење повећа, и аутоматско балансирање оптерећења и података између чворова.
На крају, вреди напоменути да се YDB користи у Yandex пројектима, код је написан у C/C++ и дистрибуиран је под Apache 2.0 лиценцом. Изворни код, као и више детаља о њему, можете пронаћи на следећем линку.