Yandex пусна изходния код на своята СУБД «YDB»

Наскоро новината съобщи това Yandex пусна изходния код на своята СУБД, «YDB», който реализира поддръжка за SQL диалект и ACID транзакции.

СУБД е построен от основите и първоначално е разработен с оглед осигуряване на отказоустойчивост, автоматично преминаване при отказ и мащабируемост. Трябва да се отбележи, че Yandex стартира работещи YDB клъстери, включително повече от 10 хиляди възли, които съхраняват стотици петабайта данни и обслужват милиони разпределени транзакции в секунда.

Основни новости на YDB

От характеристиките, които се открояват от YDB е използване на релационния модел на данни с YQL таблици (YDB Query Language) се използва за запитване и дефиниране на схемата на данните, която е диалект на SQL, адаптиран за работа с големи разпределени бази данни. При създаване на схема за съхранение се поддържа дървовидно групиране на таблици, което наподобява директориите във файлова система. Предоставен е API за работа с данни във формат JSON.

The способност за създаване на устойчиви на грешки конфигурации които продължават да функционират, когато дискове, възли, стелажи и дори отделни центрове за данни се повредят. YDB поддържа синхронно разгръщане и репликация в три зони за наличност, като същевременно поддържа състоянието на клъстера в случай на повреда на една от зоните.

Поддръжка за достъп до данни използващи заявки за сканиране, предназначени да изпълняват ad-hoc аналитични заявки към базата данни, изпълнявани в режим само за четене и връщащи grpc поток.

Освен това също се откроява съхраняване на данни директно на блокови устройства с помощта на компонента PDisk native и VDisk слой. В допълнение към VDisk работи DSProxy, който анализира наличността и производителността на дисковете, за да ги изключи, ако бъдат открити проблеми.

От други функции които се открояват:

  • Гъвкава архитектура, която ви позволява да изграждате различни услуги върху YDB, чак до виртуални блокови устройства и постоянни опашки. Подходящ за различни видове натоварване: OLTP и OLAP (аналитични заявки).
  • Поддръжка за многопотребителски (много наематели) и конфигурации без сървър.
  • Възможност за удостоверяване на клиенти. Потребителите могат да създават свои собствени виртуални клъстери и бази данни в обща споделена инфраструктура, като вземат предвид потреблението на ресурси по отношение на броя на заявките и размера на данните, или чрез наемане/резервиране на определени изчислителни ресурси и място за съхранение.
  • Възможност за регулиране на полезния живот на записите за автоматично изтриване на остарели данни.
  • Взаимодействието с СУБД и подаването на заявки се извършва с помощта на интерфейса на командния ред, интегрирания уеб интерфейс или YDB SDK, който предоставя библиотеки за C++, C# (.NET), Go, Java, Node.js, PHP и Python.
  • Автоматично се възстановява от повреди с минимално забавяне на приложенията и автоматично поддържа определена резервираност при съхранение на данни.
  • Автоматично създаване на индекси на първичния ключ и възможност за дефиниране на вторични индекси за подобряване на ефективността на произволен достъп до колони.
  • Хоризонтална мащабируемост. Тъй като натоварването и размерът на съхраняваните данни нарастват, клъстерът може да бъде разширен просто чрез свързване на нови възли. Нивата за изчисление и съхранение са отделни, което ви позволява да мащабирате изчисленията и съхранението поотделно. Самата СУБД следи за равномерното разпределение на данните и натоварването, като взема предвид наличните хардуерни ресурси. Възможно е да се реализират географски разпределени конфигурации, които покриват множество центрове за данни в различни части на света.
  • Поддръжка за силен модел на последователност и ACID транзакции при обработка на заявки, които обхващат множество възли и таблици. За да подобрите производителността, можете избирателно да деактивирате проверката за последователност.
  • Автоматично репликация на данни, автоматично разделяне (разделяне, разделяне) при увеличаване на размера или натоварването и автоматично балансиране на натоварването и данните между възлите.

И накрая, трябва да се отбележи, че YDB се използва в проекти на Yandex, кодът е написан на C/C++ и се разпространява под лиценза Apache 2.0, можете да видите изходния код, както и повече подробности за него В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.