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
