Un’analisi comparativa fra i popolari database NoSQL MongoDB e Couchbase. Per Avalon le prestazioni di Couchbase 4.5 sono migliori.
La società texana Avalon Consulting ha pubblicato nei giorni scorsi i risultati di un’analisi comparativa molto approfondita, condotta su due noti database NoSQL: MongoDB 3.2 e Couchbase Server 4.5. L’analisi è stata condotta essenzialmente per confrontare la performance delle due tecnologie, intesa come capacità di mantenere una bassa latenza e un throughput elevato all’aumentare dei carichi di lavoro. Ricordiamo che il tempo di latenza è quello che intercorre fra il momento in cui arriva l’input al database e quello in cui è disponibile il suo output. Il throughput, a propria volta, è la quantità di dati trasmessi in una unità di tempo.
I risultati sembrano a favore di Couchbase, che nel passaggio alla nuova versione 4.5 ha incrementato le proprie prestazioni in misura notevole. Merito, secondo Avalon, di N1QL – il nuovo motore per l’esecuzione di query basato su un linguaggio dichiarativo per JSON – e dei Global Secondary Indexes (GSIs) di Couchbase.
Va detto che in passato test analoghi hanno prodotto risultati diversi. Per esempio, nel marzo 2015 la United Software Associates aveva assegnato la palma a MongoDB (versione 3.0.1), nel confronto con Cassandra (2.12) e Couchbase (3.0.2). Tuttavia la simulazione aveva riguardato una configurazione giudicata da InformationWeek troppo favorevole a MongoDB (scala ridotta, single-server). E d’altra parte MongoDB contesta i benchmark di Avalon, chiaramente sponsorizzati da Couchbase.
Avalon si è servita di YCSB (Yahoo! Cloud Serving Benchmark), uno strumento open source largamente utilizzato per questo tipo di misurazioni. Nel modello di YCSB gli scenari di test sono definiti workload. Ogni workload si caratterizza per una serie di parametri quali la percentuale di operazioni di lettura e aggiornamento, il numero totale di transazioni, il numero di record utilizzati ecc. Alcuni workload sono pensati per misurare la velocità di lettura dei dati, altri quella di accesso e riscrittura, altri ancora quella di scansione all’interno di intervalli specifici. YCSB permette di eseguire una serie di workload predefinitivi ed eventualmente di configurarne altri, personalizzati.
Per il test di Avalon sono stati eseguiti due workload di YCSB A e E, ciascuno su una base di 150 milioni di record. Il primo ha lo scopo di misurare la velocità di accesso ai dati, in uno scenario in cui la distribuzione fra lettura e aggiornamento è pari al 50%. In altri termini, metà delle operazioni sono in lettura, metà in aggiornamento. Il secondo scenario prevede una distribuzione diversa: 95% quei, 5% inserimento. La prova è stata eseguita su istanze EC2 di AWS e ripetuta tre volte, per ridurre al minimo eventuali discrepanze nei risultati delle misurazioni.
Analisi come quella di Avalon vanno ripetute periodicamente, dal momento che le tecnologie NoSQL conoscono una rapida evoluzione. I risultati di un analogo test comparativo, condotto da da Veronika Abramova, Jorge Bernardino e Pedro Furtado e sempre basato su YCSB, sono apparsi due anni fa sull’International Journal of Database Management Systems. MongoDB, allora nella versione 2.4.6, fu confrontato con nove prodotti: Cassandra, HBase, Oracle, Redis, Scalaris, Tarantool, Voldemort, Elasticsearch e OrientDB. I database più performanti risultarono Tarantool e Redis (l’articolo è disponibile qui).