Uitgave van de gedistribueerde DBMS TiDB 3.0

Beschikbaar release van een gedistribueerd DBMS TiDB 3.0, ontwikkeld onder invloed van technologieën van Google Spanner en F1. TiDB valt onder de categorie hybride HTAP-systemen (Hybrid Transactional/Analytical Processing) die zowel real-time transacties (OLTP) kunnen uitvoeren als analytische query's kunnen verwerken. Het project is geschreven in de Go-taal en wordt verspreid onder de Apache 2.0-licentie.

Kenmerken van TiDB:

  • Ondersteuning van SQL en het aanbieden van een clientinterface die compatibel is met het MySQL-protocol, wat de aanpassing van bestaande MySQL-applicaties voor TiDB vergemakkelijkt en het gebruik van populaire clientbibliotheken mogelijk maakt. Naast het MySQL-protocol kan ook een JSON-gebaseerde API en een connector voor Spark worden gebruikt om met de DBMS te communiceren.
  • De SQL-functionaliteiten omvatten indexering, aggregatiefuncties, GROUP BY-, ORDER BY- en DISTINCT-expressies, joins (LEFT JOIN / RIGHT JOIN / CROSS JOIN), views, windowfuncties en subquery's. De geboden mogelijkheden zijn voldoende voor het functioneren van web-applicaties zoals PhpMyAdmin, Gogs en WordPress;
  • De mogelijkheid van horizontale schaalbaarheid en het waarborgen van fouttolerantie: de opslagcapaciteit en rekenkracht kunnen eenvoudig worden vergroot door extra knooppunten aan te sluiten. Gegevens worden verspreid over knooppunten met redundantie, waardoor de werking kan worden voortgezet in het geval van een uitval van afzonderlijke knooppunten. Fouten worden automatisch afgehandeld.
  • Het systeem garandeert consistentie en verschijnt voor clientsoftware als één grote DBMS, ondanks dat voor het uitvoeren van transacties gegevens van verschillende knooppunten worden aangetrokken.
  • Voor de fysieke opslag van gegevens op knooppunten kunnen verschillende backends worden gebruikt, zoals lokale opslagengines GoLevelDB en BoltDB of de eigen engine voor gedistribueerde opslag TiKV.
  • De mogelijkheid voor asynchrone wijziging van het opslagschema, waardoor het mogelijk is om kolommen en indexen on-the-fly toe te voegen zonder de verwerking van huidige operaties te stoppen.

Belangrijkste vernieuwingen:

  • Er is gewerkt aan prestatieverbeteringen. In de Sysbench-test verslaat versie 3.0 tak 2.1 met een factor van 1.5 voor select- en update-operaties, en in de TPC-C-test met 4.5. Optimalisaties hebben verschillende soorten query's aangeraakt, inclusief subquery's 'IN', 'DO' en 'NOT EXISTS', JOIN-operaties, indexgebruik en nog veel meer;
    Uitgave van de gedistribueerde DBMS TiDB 3.0 Uitgave van de gedistribueerde DBMS TiDB 3.0
  • Een nieuwe opslagengine TiFlash is toegevoegd, die hogere prestaties levert bij analytische taken (OLAP) door kolom-georiënteerde opslag. TiFlash is een aanvulling op de eerder aangeboden TiKV opslag, die gegevens in rijen opslaat in een sleutel/waarde-formaat en meer geoptimaliseerd is voor transactieverwerkingstaken (OLTP). TiFlash werkt samen met TiKV, en de gegevens blijven zoals voorheen worden gerepliceerd in TiKV met behulp van het Raft-protocol voor consensusbepaling, maar voor elke Raft-replicagroep wordt een extra replica aangemaakt die wordt gebruikt in TiFlash. Deze aanpak maakt een beter scheiden van bronnen tussen OLTP- en OLAP-taken mogelijk en stelt transactiegegevens direct beschikbaar voor analytische aanvragen.

    Uitgave van de gedistribueerde DBMS TiDB 3.0
  • Er is een gedistribueerde garbage collector geïmplementeerd, die de snelheid van garbage collection in grote clusters aanzienlijk verbetert en de stabiliteit van het systeem verhoogt.
  • Een experimentele implementatie van role-based access control (RBAC) is toegevoegd. Daarnaast is het mogelijk gemaakt om toegangsrechten in te stellen voor de ANALYZE-, USE-, SET GLOBAL- en SHOW PROCESSLIST-bewerkingen.
  • De mogelijkheid om SQL-expressies te gebruiken voor het selecteren uit het logboek van trage aanvragen is toegevoegd.
  • Een mechanisme voor snel herstel van verwijderde tabellen is geïmplementeerd, waarmee per ongeluk verwijderde gegevens kunnen worden hersteld.
  • Het formaat van de geschreven logs is geharmoniseerd.
  • Ondersteuning voor de pessimistische vergrendelmodus is toegevoegd, wat de verwerking van transacties dichter bij MySQL brengt.
  • Ondersteuning voor raamfuncties (window-functions of analytische functies), compatibel met MySQL 8.0, is toegevoegd. Raamfuncties stellen de gebruiker in staat om berekeningen voor elke rij van de aanvraag uit te voeren met behulp van andere rijen. In tegenstelling tot aggregatiefuncties, die een gegroepeerden set rijen tot één rij samenvoegen, voeren raamfuncties aggregaties uit op basis van de inhoud van een 'venster', dat één of meer rijen uit de resultaatset bevat. Tot de geïmplementeerde raamfuncties behoren:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK en ROW_NUMBER.
  • Experimentele ondersteuning voor weergaven (VIEW) is toegevoegd.
  • Het partitioneringssysteem is verbeterd, met de mogelijkheid om gegevens op secties te verdelen op basis van waardenbereiken of hashes.
  • Er is een framework toegevoegd voor het ontwikkelen van plugins, bijvoorbeeld er zijn al plugins voorbereid voor het gebruik van een IP-whitelist of het bijhouden van auditlogs;
  • Experimentële ondersteuning is geboden voor de functie 'EXPLAIN ANALYZE' voor het opstellen van een planningsplan voor SQL-query's (SQL Plan Management);
  • De next_row_id-commando is toegevoegd om de identificatie van de volgende rij te verkrijgen;
  • Nieuwe ingebouwde functies zijn toegevoegd: JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE en NAME_CONST.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster