Al contrario dei tradizionali database relazionali, che non sono stati ideati per far fronte alla scalabilità e agilità che le applicazioni moderne devono affrontare e non sono stati costruiti per sfruttare la potenza di archiviazione ed elaborazione a basso costo oggi disponibile, i database NoSQL sono sviluppati per rispondere risposta all’aumento dei volumi globali di dati e alla frequenza con cui vi si accede e aiutano a raggiungere i più elevati livelli di performance e uptime per i carichi di lavoro.
Altoros ha rilasciato i risultati di un benchmark sulle prestazioni dei tre più diffusi database NoSQL: Couchbase Server v6.6.0, MongoDB v4.2.11 e DataStax Enterprise v6.8.3 (Cassandra).
Le prestazioni relative dei database sono state valutate in termini di latenza e throughput che erano in grado di raggiungere.
La valutazione è stata condotta utilizzando tre diverse configurazioni di cluster, a 4, 10 e 20 nodi, e con quattro diversi workload.
Il report misura le prestazioni relative in termini di latenza e throughput che ogni database può raggiungere.
È stato usato come strumento predefinito per avere coerenza nella valutazione Yahoo! Cloud Serving Benchmark (YCSB) – specifica opensource e suite di programmi pensata per valutare le capacità di recupero e maintenance dei programmi informatici.
I workload del benchmark
Il primo workload è stato eseguito in una modalità di aggiornamento pesante, similmente a un’applicazione di trading azionario, invocando il 50% delle letture e degli aggiornamenti.
Il secondo workload ha eseguito una scansione a corto raggio che invoca il 95% delle letture e il 5% degli aggiornamenti, dove vengono interrogati brevi intervalli di record invece di record individuali. Come tale, il secondo carico di lavoro ha simulato le attività tipiche di un’applicazione di ecommerce.
Il terzo carico di lavoro è stato una query con una singola opzione di filtering a cui sono stati applicati un offset e un limite.
Infine, il quarto carico di lavoro è stata una query unificata con applicazione di raggruppamento e ordinamento.
Altoros ha definito le prestazioni dei database in base alla velocità con cui quest’ultimo elaborava le operazioni di base.
L’operazione di base è un’azione svolta da un esecutore del carico di lavoro, che guida più thread del client.
Ogni thread esegue una serie sequenziale di operazioni effettuando chiamate a un livello di interfaccia del database sia per caricare un database (la fase di carico) che per eseguire un carico di lavoro (la fase di transazione).
I thread regolano la velocità con cui generano le richieste in modo che Altoros possa controllare direttamente il carico offerto al database. Inoltre, i thread misurano la latenza e il throughput raggiunto delle loro operazioni e riportano queste misure al modulo di raccolta delle statistiche.
Come spiega Artsiom Yudovin, Lead Data Engineer di Altoros in una nota, sulla base dei test Couchbase scala meglio di MongoDB su cluster più grandi e utilizza una struttura peer-to-peer, consentendo l’accesso diretto ai nodi.
Diversamente, MongoDB ha relazioni master-slave, dove certe operazioni devono chiamare Mongoose, un Object Document Mapper, e un server di configurazione per accedere a un nodo.