De nieuwe versie van de database Tarantool 2.8 is beschikbaar, die continue gegevensopslag met informatie-uitvoer uit het RAM mogelijk maakt (in-memory database). De database combineert de hoge snelheid van queryverwerking, typisch voor NoSQL-systemen (zoals Memcached en Redis), met de betrouwbaarheid van traditionele databases (Oracle, MySQL en PostgreSQL). Tarantool is geschreven in C en biedt de mogelijkheid om opgeslagen procedures te maken in Lua. De code wordt verspreid onder de BSD-licentie.
De database laat efficiënt werken met grote hoeveelheden gegevens onder hoge belasting. Kenmerken van Tarantool zijn de mogelijkheid om handlers te maken in Lua (LuaJIT is ingebouwd), het gebruik van het MessagePack-formaat voor gegevensuitwisseling met de client, de aanwezigheid van twee ingebouwde engines (storage in RAM met uitschrijven naar een permanente opslag en een twee-niveau schijfopslag op basis van LSM-tree), ondersteuning voor secundaire sleutels, vier soorten indexen (HASH, TREE, RTREE, BITSET), middelen voor zowel synchrone als asynchrone replicatie in master-master modus, ondersteuning voor authenticatie van verbindingen en toegangscontrole, en de mogelijkheid om SQL-queries te verwerken.
Belangrijkste wijzigingen:
- Stabilisatie van MVCC (Multi-Version Concurrency Control) in de in-memory engine memtx.
- Ondersteuning voor transacties in het binaire IPROTO-protocol. Voorheen was het nodig om een opgeslagen procedure in Lua te schrijven voor een transactie.
- Ondersteuning voor synchrone replicatie, die werkt op basis van afzonderlijke tabellen.
- Een mechanisme voor automatische failover naar een reserve-knooppunt op basis van het RAFT-protocol. Tarantool heeft al lang asynchrone WAL-gebaseerde replicatie geïmplementeerd, nu hoeft er niet handmatig op de master-knooppunt te worden gelet.
- Automatische overschakeling van de master-knooppunt is ook beschikbaar in het geval van een topologie met gegevenspartitionering (sharding) (de vshard-bibliotheek wordt gebruikt, die gegevens over servers verdeelt met behulp van virtuele manden (buckets)).
- Verbetering van het framework voor het bouwen van clusterapplicaties Tarantool Cartridge bij het werken in virtuele omgevingen. Tarantool Cartridge kan nu beter omgaan met belasting.
- De prestaties van de Ansible-rol voor het implementeren van een cluster zijn 15-20 keer versneld. Hierdoor is het werken met grote clusters eenvoudiger geworden.
- Er is een tool voor vereenvoudigde migratie van oudere versies >1.6 en < 1.10, die beschikbaar is via een extra optie bij de start. Voorheen moest migratie plaatsvinden door het uitrollen van de tussentijdse versie 1.10.
- Er is een optimalisatie doorgevoerd voor de opslag van kleine tuples.
- SQL ondersteunt UUID en de typeconversie is verbeterd.
Merk op dat vanaf versie 2.10 de nieuwe beleid voor releasevorming zal worden ingevoerd. Bij significante releases met inbreuken op de achterwaartse compatibiliteit zal het eerste cijfer van de versie wijzigen, bij tussentijdse releases het tweede cijfer en bij correcties het derde (na 2.10 zal release 3.0.0 worden uitgebracht).
Bron: opennet.ru
