Яндэкс адкрыў код размеркаванай СКБД YDB, якая падтрымлівае SQL

Кампанія Яндэкс апублікавала зыходныя тэксты размеркаванай СКБД YDB, якая рэалізуе падтрымку дыялекту SQL і ACID-транзакцый. СКБД створана з нуля і першапачаткова развіваецца з аглядкай на забеспячэнне адмоваўстойлівасці, аўтаматычнага аднаўлення пры збоях і маштабаванасці. Адзначаецца, што кампаніяй Яндэкс запушчаны працоўныя кластары YDB, якія ўключаюць больш за 10 тысяч вузлоў, якія захоўваюць сотні петабайт дадзеных і абслугоўваюць мільёны размеркаваных транзакцый у секунду. YDB выкарыстоўваецца ў такіх праектах Яндэкс, як Маркет, Воблака, Разумны Дом, Аліса, Метрыка і Auto.ru. Код напісаны на мовах C/C++ і распаўсюджваецца пад ліцэнзіяй Apache 2.0. Для азнаямлення і хуткага запуску можна выкарыстоўваць гатовы Docker-кантэйнер.

Асаблівасці праекта:

  • Выкарыстанне рэляцыйнай мадэлі даных з табліцамі. Для запытаў і азначэнні схемы дадзеных выкарыстоўваецца мова YQL (YDB Query Language), які ўяўляе сабой дыялект SQL, адаптаваны для працы з вялікімі размеркаванымі базамі дадзеных. Пры стварэнні схемы захоўвання падтрымліваецца дрэвападобная групоўка табліц, якая нагадвае каталогі ў файлавай сістэме. Прадастаўляецца API для працы з дадзенымі ў фармаце JSON.
    Яндэкс адкрыў код размеркаванай СКБД YDB, якая падтрымлівае SQL
  • Падтрымка доступу да дадзеных з выкарыстаннем скан запытаў, прызначаных для выканання аналітычных ad-hoc запытаў над БД, выкананых у рэжыме толькі для чытання і якія вяртаюць струмень grpc.
  • Узаемадзеянне з СКБД і адпраўка запытаў ажыццяўляецца пры дапамозе інтэрфейсу каманднага радка, убудаванага web-інтэрфейсу або набору YDB SDK, які прадстаўляе бібліятэкі для моў C++, З# (.NET), Go, Java, Node.js, PHP і Python.
  • Магчымасць стварэння адмоваўстойлівых канфігурацый, якія працягваюць працу пры выхадзе са строю асобных дыскаў, вузлоў, стоек і нават датацэнтраў. YDB падтрымлівае разгортванне і сінхронную рэплікацыю ў трох зонах даступнасці з захаваннем працаздольнасці кластара ў выпадку выхаду са строю адной з зон.
  • Аўтаматычнае аднаўленне пасля збояў з мінімальнымі затрымкамі для прыкладанняў і аўтаматычнае падтрыманне зададзенай надмернасці пры захоўванні дадзеных.
  • Аўтаматычнае стварэнне індэксаў па першасным ключы і магчымасць вызначэння другасных індэксаў для павышэння эфектыўнасці доступу да адвольных калонак.
  • Гарызантальная маштабаванасць. Па меры росту нагрузкі і памеру захоўваемых дадзеных кластар можна пашыраць простым падлучэннем новых вузлоў. Узроўні для вылічэнняў і захоўванні падзелены, што дазваляе паасобна нарошчваць вылічальную магутнасць і памер сховішча. СКБД сама сочыць за раўнамерным размеркаваннем дадзеных і нагрузкі з улікам наяўных апаратных рэсурсаў. Магчыма разгортванне тэрытарыяльна размеркаваных канфігурацый, якія ахопліваюць некалькі датацэнтраў у розных частках свету.
  • Падтрымка мадэлі строгай несупярэчлівасці і ACID-транзакцый пры апрацоўцы запытаў, якія ахопліваюць некалькі вузлоў і табліц. Для падвышэння прадукцыйнасці магчыма выбарачнае адключэнне кантролю несупярэчлівасці.
  • Аўтаматычная рэплікацыя дадзеных, аўтаматычнае секцыянаванне (партыцыраванне, шардзіраванне) пры павелічэнні памеру або нагрузкі і аўтаматычнае балансаванне нагрузкі і дадзеных паміж вузламі.
  • Захоўванне дадзеных непасрэдна на блокавых прыладах, выкарыстоўваючы ўласны кампанент PDisk і праслойку VDisk. Па-над VDisk выконваецца DSProxy, які аналізуе даступнасць і характарыстыкі працы дыскаў, для іх выключэння ў выпадку выяўлення праблем.
  • Гнуткая архітэктура, якая дазваляе ствараць па-над YDB, розныя сэрвісы, аж да віртуальных блокавых прылад і персістэнтных чэргаў (persistent queue). Прыдатнасць прымянення для розных відаў нагрузкі, OLTP і OLAP (аналітычныя запыты).
  • Падтрымка шматкарыстальніцкіх (multitenant) і бессерверных канфігурацый. Магчымасць аўтэнтыфікацыі кліентаў. Карыстальнікі могуць ствараць свае віртуальныя кластары і БД у агульнай сумеснай інфраструктуры з улікам спажывання рэсурсаў на ўзроўні колькасці запытаў і памеру дадзеных або арандуючы/рэзервуючы пэўныя вылічальныя рэсурсы і аб'ём у сховішча.
  • Магчымасць налады часу жыцця запісаў для аўтаматычнага выдалення састарэлых дадзеных.

Крыніца: opennet.ru

Дадаць каментар