Veröffentlichung der DBMS Tarantool 2.8

Die neue Version von Tarantool DBMS 2.8 ist verfügbar und ermöglicht die dauerhafte Speicherung von Daten mit Zugriff aus dem Arbeitsspeicher (In-Memory-Datenbank). Das DBMS kombiniert die hohe Geschwindigkeit der Anfrageverarbeitung, die für NoSQL-Systeme typisch ist (z. B. Memcached und Redis), mit der Zuverlässigkeit traditioneller DBMS (Oracle, MySQL und PostgreSQL). Tarantool ist in C geschrieben und ermöglicht die Erstellung von Stored Procedures in Lua. Der Code wird unter der BSD-Lizenz veröffentlicht.

Das DBMS ermöglicht eine effiziente Verarbeitung großer Datenmengen unter hoher Last. Zu den Besonderheiten von Tarantool gehört die Möglichkeit, Handler in Lua zu erstellen (LuaJIT ist integriert), die Verwendung des MessagePack-Formats für den Datenaustausch mit dem Client, das Vorhandensein zweier integrierter Engines (Speicherung im RAM mit Persistierung auf einem Speichermedium und ein zweistufiger, speicherbasierter LSM-tree) sowie die Unterstützung von Sekundärschlüsseln, vier Typen von Indizes (HASH, TREE, RTREE, BITSET), Hilfsmittel für synchrone und asynchrone Replikation im Master-Master-Modus, Unterstützung der Authentifizierung von Verbindungen und Zugriffskontrolle sowie die Möglichkeit, SQL-Anfragen zu verarbeiten.

Hauptänderungen:

  • Stabilisierung von MVCC (Multiversion Concurrency Control) im In-Memory-Engine memtx.
  • Unterstützung von Transaktionen im binären Protokoll IPROTO. Früher musste eine Stored Procedure in Lua geschrieben werden, um Transaktionen durchzuführen.
  • Unterstützung der synchronen Replikation, die an konkrete Tabellen gebunden ist.
  • Mechanismus für das automatische Failover zu einem Backup-Knoten basierend auf dem RAFT-Protokoll. In Tarantool wurde seit langem asynchrone WAL-basierte Replikation implementiert, jetzt muss der Master-Knoten nicht mehr manuell überwacht werden.
  • Automatisches Umschalten des Master-Knotens ist auch bei topologisch segmentierten (Sharding) Daten verfügbar (es wird die vshard-Bibliothek verwendet, die Daten über Server mit virtuellen Buckets verteilt).
  • Verbesserung des Frameworks zum Aufbau clusterbasierter Anwendungen Tarantool Cartridge beim Arbeiten in virtuellen Umgebungen. Tarantool Cartridge bewältigt nun höhere Lasten besser.
  • Die Arbeit der Ansible-Rolle zur Bereitstellung eines Clusters wurde um das 15- bis 20-Fache beschleunigt. Damit ist die Arbeit mit großen Clustern einfacher geworden.
  • Es gibt ein Tool zur vereinfachten Migration von alten Versionen >1.6 und <1.10, das über eine zusätzliche Option beim Start verfügbar ist. Früher musste die Migration über die Bereitstellung einer Zwischenversion 1.10 erfolgen.
  • Es wurde eine Optimierung der Speicherung kleiner Tupel vorgenommen.
  • In SQL wurde die Unterstützung von UUIDs implementiert und die Typumwandlung verbessert.

Es ist erwähnenswert, dass ab Version 2.10 eine neue Richtlinie für die Erstellung von Versionen eingeführt wird. Bei größeren Releases mit inkompatiblen Änderungen wird die erste Ziffer der Version geändert, bei Zwischenversionen die zweite und bei Korrekturversionen die dritte (nach 2.10 wird die Version 3.0.0 veröffentlicht).

Quelle: opennet.ru

60GB SSD 8Gb DDR4