ScyllaDB è un database NoSQL distribuito, compatibile con Apache Cassandra, progettato per offrire elevate prestazioni, bassa latenza e scalabilità lineare. Basato su C++, sfrutta un'architettura completamente asincrona e una gestione delle risorse altamente ottimizzata.
Funzionalità di Base
- Compatibilità con Cassandra: ScyllaDB supporta il protocollo CQL (Cassandra Query Language) e l'interfaccia client.
- Architettura peer-to-peer: tutti i nodi sono uguali e cooperano per fornire una distribuzione uniforme dei dati.
- Sharding automatico: i dati sono suddivisi automaticamente tra i core CPU, migliorando il parallelismo.
- Consistenza configurabile: è possibile bilanciare tra disponibilità e coerenza secondo il modello CAP.
- Replica e tolleranza ai guasti: supporta la replica automatica dei dati e la gestione delle partizioni di rete.
CREATE TABLE utenti (
id UUID PRIMARY KEY,
nome TEXT,
email TEXT
);
Funzionalità Avanzate
- Seastar Framework: utilizza un framework asincrono che consente l'eliminazione dei lock e una gestione fine delle CPU.
- Alternator: un'API compatibile con DynamoDB per semplificare la migrazione delle applicazioni cloud-native.
- Autotuning: ottimizza automaticamente l'uso delle risorse hardware (memoria, I/O, CPU).
- Materialized Views: supporta viste materializzate per ottimizzare le query su diversi pattern di accesso.
- Secondary Indexes: consente query efficienti su colonne non chiave.
CREATE MATERIALIZED VIEW utenti_per_email AS
SELECT * FROM utenti
WHERE email IS NOT NULL AND id IS NOT NULL
PRIMARY KEY (email, id);
Monitoraggio e Strumenti
- Scylla Manager: per operazioni automatizzate come il backup, il repair e l'upgrade.
- Scylla Monitoring Stack: basata su Prometheus e Grafana, consente il monitoraggio dettagliato delle metriche.
Grazie alla sua architettura moderna e all'attenzione alle performance, ScyllaDB è una soluzione adatta a casi d'uso mission-critical come IoT, adtech, fintech e gaming.