Yandex va obrir el codi del DBMS distribuït YDB que admet SQL

Yandex ha publicat el codi font del DBMS distribuït YDB, que implementa suport per al dialecte SQL i les transaccions ACID. El SGBD es va crear des de zero i es va desenvolupar inicialment amb l'objectiu de garantir la tolerància a errors, la recuperació automàtica dels errors i l'escalabilitat. Cal assenyalar que Yandex ha llançat clústers YDB en funcionament, que inclouen més de 10 mil nodes, que emmagatzemen centenars de petabytes de dades i donen servei a milions de transaccions distribuïdes per segon. YDB s'utilitza en projectes Yandex com Market, Cloud, Smart Home, Alice, Metrica i Auto.ru. El codi està escrit en C/C++ i es distribueix sota la llicència Apache 2.0. Per familiaritzar-vos i iniciar-lo ràpidament, podeu utilitzar un contenidor Docker ja preparat.

Característiques del projecte:

  • Ús d'un model de dades relacionals amb taules. Per a les consultes i definir l'esquema de dades, s'utilitza el llenguatge YQL (YDB Query Language), que és un dialecte d'SQL adaptat per treballar amb grans bases de dades distribuïdes. Quan es crea un esquema d'emmagatzematge, s'admet una agrupació de taules en forma d'arbre, que recorda els directoris d'un sistema de fitxers. Es proporciona una API per treballar amb dades en format JSON.
    Yandex va obrir el codi del DBMS distribuït YDB que admet SQL
  • Suport per a l'accés a dades mitjançant consultes d'escaneig dissenyades per realitzar consultes analítiques ad-hoc a la base de dades, executades en mode de només lectura i retornant un flux grpc.
  • La interacció amb el SGBD i l'enviament de sol·licituds es realitza mitjançant la interfície de línia d'ordres, la interfície web integrada o l'SDK YDB, que proporciona biblioteques per a C++, C# (.NET), Go, Java, Node.js, PHP i Python.
  • La capacitat de crear configuracions tolerants a errors que continuen funcionant quan fallen discos, nodes, bastidors i fins i tot centres de dades individuals. YDB admet el desplegament i la replicació síncrona en tres zones de disponibilitat, mantenint la funcionalitat del clúster en cas de fallada d'una de les zones.
  • Recuperació automàtica dels errors amb una latència mínima per a les aplicacions i mantenir automàticament la redundància de dades especificada.
  • Creació automàtica d'índexs basats en la clau primària i la possibilitat de definir índexs secundaris per millorar l'eficiència de l'accés a columnes arbitràries.
  • Escalabilitat horitzontal. A mesura que la càrrega i la mida de les dades emmagatzemades creixen, el clúster es pot ampliar simplement connectant nous nodes. Els nivells de càlcul i d'emmagatzematge estan separats, cosa que us permet ampliar la vostra potència de càlcul i la vostra mida d'emmagatzematge per separat. El propi DBMS supervisa la distribució uniforme de dades i càrrega, tenint en compte els recursos de maquinari disponibles. És possible desplegar configuracions distribuïdes geogràficament que cobreixen diversos centres de dades en diferents parts del món.
  • Admet el model de coherència sòlida i les transaccions ACID quan es processen consultes que abasten diversos nodes i taules. Per millorar el rendiment, podeu desactivar selectivament la comprovació de coherència.
  • Replicació automàtica de dades, partició automàtica (particionament, fragmentació) quan augmenta la mida o la càrrega, i la càrrega automàtica i l'equilibri de dades entre nodes.
  • Emmagatzematge de dades directament en dispositius de bloc mitjançant el component PDisk natiu i la capa VDisk. DSProxy s'executa a sobre de VDisk, que analitza la disponibilitat i les característiques de rendiment dels discs per eliminar-los si es detecten problemes.
  • Arquitectura flexible que us permet crear diversos serveis a la part superior de YDB, inclosos dispositius de blocs virtuals i cues persistents. Idoneïtat per a diferents tipus de càrregues de treball, OLTP i OLAP (consultes analítiques).
  • Suport per a configuracions multiinquilí i sense servidor. Possibilitat d'autenticació del client. Els usuaris poden crear els seus clústers virtuals i bases de dades en una infraestructura compartida comuna, tenint en compte el consum de recursos a nivell de nombre de peticions i mida de dades, o llogant/reservant determinats recursos informàtics i espai d'emmagatzematge.
  • Possibilitat de configurar la vida útil dels registres per eliminar automàticament les dades obsoletes.

Font: opennet.ru

Afegeix comentari