È disponibile una nuova versione del database Tarantool 2.8, che offre una memorizzazione permanente dei dati con accesso alle informazioni dalla memoria volatile (in-memory database). Il database combina l'alta velocità di elaborazione delle richieste tipica dei sistemi NoSQL (ad esempio, Memcached e Redis) con l'affidabilità dei tradizionali database (Oracle, MySQL e PostgreSQL). Tarantool è scritto in C e consente la creazione di procedure memorizzate in Lua. Il codice è distribuito con licenza BSD.
Il database consente di lavorare in modo efficace con grandi volumi di dati sotto carichi elevati. Tra le caratteristiche di Tarantool c'è la possibilità di creare gestori in Lua (con LuaJIT integrato), l'uso del formato MessagePack per lo scambio di dati con il cliente, la presenza di due motori integrati (memorizzazione in RAM con scarico su uno storage permanente e storage su disco a due livelli basato su LSM-tree), supporto per chiavi secondarie, quattro tipi di indici (HASH, TREE, RTREE, BITSET), strumenti per la replicazione sincrona e asincrona in modalità master-master, supporto per l'autenticazione delle connessioni e gestione degli accessi, e la possibilità di elaborare query SQL.
Principali cambiamenti:
- Stabilizzazione MVCC (Multi-Version Concurrency Control) nel motore in-memory memtx.
- Supporto per la transazionalità nel protocollo binario IPROTO. Prima era necessario scrivere una procedura memorizzata in Lua per le transazioni.
- Supporto per la replicazione sincrona, che funziona collegata a singole tabelle.
- Meccanismo di failover automatico basato sul protocollo RAFT. In Tarantool era già stata implementata la replicazione WAL-based asincrona, ora non è più necessario monitorare manualmente il nodo master.
- Il commutatore automatico del nodo master è disponibile anche in caso di topologie con segmentazione (sharding) dei dati (si utilizza la libreria vshard, che distribuisce i dati sui server attraverso contenitori virtuali (bucket)).
- Miglioramento del framework per la creazione di applicazioni cluster Tarantool Cartridge quando si opera in ambienti virtuali. Tarantool Cartridge ora gestisce meglio i carichi.
- Accelerato il lavoro del ruolo Ansible per il deployment di cluster fino a 15-20 volte. Di conseguenza, la gestione di grandi cluster è diventata più semplice.
- È stato introdotto uno strumento per semplificare la migrazione dalle versioni precedenti >1.6 e < 1.10, disponibile tramite un'opzione aggiuntiva all'avvio. In precedenza, la migrazione doveva essere effettuata tramite il rilascio di una versione intermedia 1.10.
- Ottimizzazione della memorizzazione di piccole tuple completata.
- Il supporto per UUID è stato implementato in SQL e è stato migliorato il conversione dei tipi.
È importante notare che a partire dalla versione 2.10 ci sarà un cambiamento nella politica di rilascio. In caso di rilascio significativi che rompono la retrocompatibilità, il primo numero di versione verrà modificato, per i rilasci intermedi il secondo numero e per le correzioni il terzo (dopo 2.10 sarà rilasciata la versione 3.0.0).
Fonte: opennet.ru
