Yandex heeft de broncode van zijn DBMS «YDB» vrijgegeven

Onlangs werd bekendgemaakt dat Yandex de broncode van zijn DBMS, "YDB" , heeft vrijgegeven. Deze database biedt ondersteuning voor de SQL-dialect en ACID-transacties.

Het DBMS is volledig vanaf de grond af opgebouwd en in eerste instantie ontwikkeld met als doel fouttolerantie , automatisch herstel na storingen en schaalbaarheid te garanderen. Het is vermeldenswaard dat Yandex operationele YDB-clusters heeft gelanceerd, met meer dan 10 nodes, die honderden petabytes aan data opslaan en miljoenen gedistribueerde transacties per seconde verwerken.

Belangrijkste nieuwigheden van YDB

Een van de belangrijkste kenmerken van YDB is het gebruik van een relationeel datamodel met tabellen. YQL ( YDB Query Language) wordt gebruikt om het dataschema op te vragen en te definiëren; het is een variant van SQL die is aangepast voor het werken met grote, gedistribueerde databases . Bij het creëren van een opslagschema wordt een boomstructuur van tabellen ondersteund, vergelijkbaar met de mappen in een bestandssysteem. Er is een API beschikbaar voor het werken met gegevens in JSON-formaat.

Ook noemenswaardig is het vermogen om fouttolerante configuraties te creëren die blijven functioneren wanneer schijven, knooppunten, racks en zelfs individuele datacenters uitvallen. YDB ondersteunt synchrone implementatie en replicatie over drie beschikbaarheidszones, terwijl de clustergezondheid behouden blijft in geval van een zonestoring.

Compatibiliteit met gegevenstoegang via scanquery's, ontworpen om ad-hoc analytische query's op de database uit te voeren, uitgevoerd in alleen-lezenmodus en een gRPC-flow retournerend.

Bovendien onderscheidt het zich door het direct opslaan van data op blokapparaten met behulp van de native PDisk-component en de VDisk-laag. Naast VDisk draait DSProxy, dat de beschikbaarheid en prestaties van schijven analyseert en deze uitsluit als er problemen worden gedetecteerd.

Andere opvallende kenmerken zijn onder meer:

  • Een flexibele architectuur waarmee u verschillende services bovenop YDB kunt bouwen, tot aan virtuele blokapparaten en aanhoudende wachtrijen. Geschiktheid voor verschillende soorten werklast: OLTP en OLAP (analytische query's).
  • Ondersteuning voor configuraties voor meerdere gebruikers (multi-tenant) en serverloze configuraties.
  • Mogelijkheid om klanten te authenticeren. Gebruikers kunnen hun eigen virtuele clusters en databases maken op een gemeenschappelijke gedeelde infrastructuur, rekening houdend met het resourceverbruik in termen van aantal verzoeken en gegevensomvang, of door bepaalde computerbronnen en opslagruimte te huren/reserveren.
  • Mogelijkheid om de gebruiksduur van de records aan te passen voor het automatisch verwijderen van verouderde gegevens.
  • Interactie met het DBMS en het indienen van verzoeken gebeurt met behulp van de opdrachtregelinterface, de geïntegreerde webinterface of de YDB SDK, die bibliotheken biedt voor C++, C# (.NET), Go, Java, Node.js, PHP en Python.
  • Herstel automatisch van storingen met minimale vertraging naar applicaties en handhaaf automatisch gespecificeerde redundantie bij het opslaan van gegevens.
  • Automatische creatie van indexen op de primaire sleutel en de mogelijkheid om secundaire indexen te definiëren om de efficiëntie van willekeurige kolomtoegang te verbeteren.
  • Horizontale schaalbaarheid. Naarmate de belasting en omvang van de opgeslagen gegevens toeneemt, kan het cluster eenvoudig worden uitgebreid door nieuwe knooppunten aan te sluiten. Compute- en storage-lagen zijn gescheiden, zodat u compute en storage afzonderlijk kunt schalen. Het DBMS bewaakt zelf de gelijkmatige verdeling van gegevens en belasting, rekening houdend met de beschikbare hardwarebronnen. Het is mogelijk om geografisch verspreide configuraties te implementeren die meerdere datacenters in verschillende delen van de wereld bestrijken.
  • Ondersteuning voor een sterk consistentiemodel en ACID-transacties bij het verwerken van query's die meerdere knooppunten en tabellen omvatten. Om de prestaties te verbeteren, kunt u consistentiecontrole selectief uitschakelen.
  • Automatische gegevensreplicatie, automatische partitionering (partitionering, sharding) wanneer de grootte of belasting toeneemt, en automatische belasting en gegevensverdeling tussen knooppunten.

Tot slot is het belangrijk te vermelden dat YDB wordt gebruikt in Yandex-projecten, dat de code is geschreven in C/C++ en wordt gedistribueerd onder de Apache 2.0-licentie. De broncode en meer informatie hierover zijn te vinden via de volgende link.


Voeg dit toe als voorkeursbron in Google.