Yandex heeft de code geopend voor het door YDB gedistribueerde DBMS dat SQL ondersteunt

Yandex heeft de broncode gepubliceerd van de gedistribueerde DBMS YDB, die ondersteuning implementeert voor het SQL-dialect en ACID-transacties. Het DBMS is helemaal opnieuw gemaakt en in eerste instantie ontwikkeld met het oog op het garanderen van fouttolerantie, automatisch herstel na storingen en schaalbaarheid. Opgemerkt wordt dat Yandex werkende YDB-clusters heeft gelanceerd, waaronder meer dan 10 knooppunten, die honderden petabytes aan gegevens opslaan en miljoenen gedistribueerde transacties per seconde verwerken. YDB wordt gebruikt in Yandex-projecten als Market, Cloud, Smart Home, Alice, Metrica en Auto.ru. De code is geschreven in C/C++ en wordt gedistribueerd onder de Apache 2.0-licentie. Voor kennismaking en snelle lancering kunt u een kant-en-klare Docker-container gebruiken.

Kenmerken van het project:

  • Een relationeel datamodel met tabellen gebruiken. Voor query's en het definiëren van het gegevensschema wordt de YQL-taal (YDB Query Language) gebruikt, een dialect van SQL dat is aangepast voor het werken met grote gedistribueerde databases. Bij het maken van een opslagschema wordt een boomachtige groepering van tabellen ondersteund, die doet denken aan mappen in een bestandssysteem. Er is een API beschikbaar voor het werken met gegevens in JSON-formaat.
    Yandex heeft de code geopend voor het door YDB gedistribueerde DBMS dat SQL ondersteunt
  • Ondersteuning voor gegevenstoegang met behulp van scanquery's die zijn ontworpen om analytische ad-hocquery's op de database uit te voeren, uitgevoerd in de alleen-lezenmodus en een grpc-stream retourneren.
  • Interactie met het DBMS en het verzenden van verzoeken wordt uitgevoerd met behulp van de opdrachtregelinterface, de ingebouwde webinterface of de YDB SDK, die bibliotheken biedt voor C++, C# (.NET), Go, Java, Node.js, PHP en Python.
  • De mogelijkheid om fouttolerante configuraties te creëren die blijven werken wanneer individuele schijven, knooppunten, racks en zelfs datacenters uitvallen. YDB ondersteunt implementatie en synchrone replicatie in drie beschikbaarheidszones, waarbij de functionaliteit van het cluster behouden blijft in het geval van een storing in een van de zones.
  • Herstel automatisch van fouten met minimale latentie voor applicaties en behoud automatisch gespecificeerde gegevensredundantie.
  • Automatische creatie van indexen op basis van de primaire sleutel en de mogelijkheid om secundaire indexen te definiëren om de efficiëntie van de toegang tot willekeurige kolommen te verbeteren.
  • Horizontale schaalbaarheid. Naarmate de belasting en omvang van de opgeslagen gegevens toeneemt, kan het cluster worden uitgebreid door eenvoudigweg nieuwe knooppunten aan te sluiten. De reken- en opslaglagen zijn gescheiden, waardoor u uw rekenkracht en opslaggrootte afzonderlijk kunt uitbreiden. Het DBMS bewaakt zelf de uniforme verdeling van data en belasting, rekening houdend met de beschikbare hardwarebronnen. Het is mogelijk om geografisch verspreide configuraties in te zetten die meerdere datacenters in verschillende delen van de wereld bestrijken.
  • Ondersteunt het sterke 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 omvang of belasting toeneemt, en automatische belasting- en gegevensverdeling tussen knooppunten.
  • Gegevens rechtstreeks op blokapparaten opslaan met behulp van de native PDisk-component en VDisk-laag. DSProxy draait bovenop VDisk, dat de beschikbaarheid en prestatiekenmerken van schijven analyseert om deze te elimineren als er problemen worden gedetecteerd.
  • Flexibele architectuur waarmee u verschillende services bovenop YDB kunt creëren, inclusief virtuele blokapparaten en permanente wachtrijen. Geschiktheid voor verschillende soorten workloads, OLTP en OLAP (analytische queries).
  • Ondersteuning voor multitenant- en serverloze configuraties. Mogelijkheid tot clientauthenticatie. Gebruikers kunnen hun virtuele clusters en databases creëren in een gemeenschappelijke gedeelde infrastructuur, waarbij rekening wordt gehouden met het resourceverbruik op het niveau van het aantal verzoeken en de datagrootte, of door bepaalde computerbronnen en opslagruimte te huren/reserveren.
  • Mogelijkheid om de levensduur van records te configureren om verouderde gegevens automatisch te verwijderen.

Bron: opennet.ru

Voeg een reactie