Yandex heeft de broncode van zijn DBMS «YDB» vrijgegeven

Dat maakte onlangs het nieuws bekend Yandex heeft de broncode van zijn DBMS vrijgegeven, «YDB», die ondersteuning voor het SQL-dialect en ACID-transacties implementeert.

de DBMS is vanaf de grond opgebouwd en in eerste instantie ontwikkeld met het oog op het waarborgen van fouttolerantie, automatische failover en schaalbaarheid. Opgemerkt moet worden dat Yandex werkende YDB-clusters heeft gelanceerd, waaronder meer dan 10 duizend knooppunten, die honderden petabytes aan gegevens opslaan en miljoenen gedistribueerde transacties per seconde bedienen.

Belangrijkste nieuwigheden van YDB

Van de kenmerken die zich onderscheiden van YDB is de gebruik van het relationele datamodel met YQL-tabellen (YDB Query Language) wordt gebruikt om het gegevensschema te doorzoeken en te definiëren, namelijk: een dialect van SQL aangepast om te werken met grote gedistribueerde databases. Bij het maken van een opslagschema wordt een boomachtige groepering van tabellen ondersteund, die lijkt op de mappen van een bestandssysteem. Er is een API voorzien voor het werken met gegevens in JSON-formaat.

De mogelijkheid om fouttolerante configuraties te creëren die blijven functioneren wanneer schijven, nodes, racks en zelfs individuele datacenters defect raken. YDB ondersteunt synchrone implementatie en replicatie over drie beschikbaarheidszones, terwijl de status van het cluster behouden blijft in het geval van een storing in een van de zones.

Ondersteuning voor gegevenstoegang met behulp van scanquery's, ontworpen om ad-hoc analytische query's op de database uit te voeren, uitgevoerd in de alleen-lezen modus en het retourneren van een grpc-stroom.

Daarnaast valt het ook op gegevens rechtstreeks opslaan op blokapparaten met behulp van de PDisk-component native en de VDisk-laag. Naast VDisk wordt DSProxy uitgevoerd, dat de beschikbaarheid en prestaties van schijven analyseert om ze uit te sluiten als er problemen worden gedetecteerd.

Van de andere mogelijkheden die opvallen:

  • 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.

Tenslotte het moet worden opgemerkt dat YDB wordt gebruikt in Yandex-projecten, de code is geschreven in C/C++ en wordt gedistribueerd onder de Apache 2.0-licentie, u kunt de broncode zien, evenals meer details erover In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.