Un recente studio di Altoros fornisce un’analisi comparativa delle prestazioni di tre 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. Inoltre, la valutazione è stata condotta utilizzando tre diverse configurazioni di cluster – 4, 10 e 20 nodi – così come quattro diversi carichi di lavoro.
NoSQL comprende un’ampia varietà di tecnologie database, sviluppate in risposta all’aumento dei volumi globali di dati e alla frequenza con cui vi si accede. Al contrario, i tradizionali database relazionali non sono stati progettati per far fronte alle sfide di scalabilità e agilità che le applicazioni moderne devono affrontare, né sono stati costruiti per sfruttare la potenza di archiviazione ed elaborazione poco costosa oggi disponibile. I sistemi NoSQL di nuova generazione aiutano a raggiungere i più elevati livelli di performance e uptime per i carichi di lavoro.
Questo report misura le prestazioni relative in termini di latenza e throughput che ogni database può raggiungere. Yahoo! Cloud Serving Benchmark (YCSB), specifica open-source e suite di programmi pensata per valutare le capacità di recupero e maintenance dei programmi informatici, è stato usato come strumento predefinito per avere coerenza nella valutazione.
Il primo carico di lavoro viene eseguito in una modalità di aggiornamento pesante, simile a un’applicazione di trading azionario, invocando il 50% delle letture e degli aggiornamenti.
Il secondo carico di lavoro esegue 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 simula le attività tipiche di un’applicazione e-commerce.
Il terzo carico di lavoro rappresenta una query con una singola opzione di filtering a cui vengono applicati un offset e un limite.
Infine, il quarto carico di lavoro è una query unificata con applicazione di raggruppamento e ordinamento.
Per il report, 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.
“Sulla base dei nostri 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” ha commentato Artsiom Yudovin, Lead Data Engineer di Altoros.