Appunti di Matteo


Nuovi databases, couchdb vs mongodb parte 1

Il gusto di riscoprire il moderno

Ultimamente c’è molto fermento nel mondo dei database, hanno fatto capolino dei nuovi tipi di databases non relazionali, ce ne sono di tipo document oriented oppure di tipo key/value etc..
Questi database sono ottimizzati per garantire elevate prestazioni in termini di mole di dati,velocità, scalabilità ed accessi concorrenti, oltre ad offrire la possibilità di inserire strutture dati complesse e senza uno schema sql prefissato. Ah dimenticavo, ovviamente non si interrogano con SQL.
Se volete approfondire c’è una cosa fantastica chimata “google”.

Per i miei test ho deciso di prendere in esame couchdb mongodb e tokyo cabinet

Ho bisogno di dati, molti dati.

Per verificare le mirabolanti performances necessito di una valanga di dati, ho quindi scaricato il file più cicciotto che ho trovato su freedb .
E’ il databse free di tutti (o comunque molti) cd pubblicati, con titolo autore etc e titoli canzoni. La struttura di dati che voglio inserire è questa:

Dopo aver fatto gli script di importazione (couch_import.rb mongo_import.rb tokyo_import.rb)
ed aver importato circa 2.5 milioni di records scopro che tokyo non supporta le strutture di dati nestate, per ottenerle bisogno serializzare i dati via yaml o mashall dump oppure, credo, mediante uno script in LUA, e quindi decido di lasciar perdere.
Sarà per la prossima volta, caro il mio Mikio Hirabayashi san.

Note sull’importazione: non ho effettuato benchmark sulla velocità di inserimento dato che per couchdb e tokyo non ho usato data mapper come ho fatto con mongodb (usando mongomapper). Couchdb ha inserito 2094308 documenti in ben 9.5 GB, mongodb ha inserito 2751036 documenti in 2.45 GB.

Voglio sviluppare una mini app che permetta la ricerca e la navigazione dei CD con i due db, ci si rivede quì!



teo: Aug 23, 2009 00:00:00 GMT
tags: couchdb, mongodb, ruby
blog comments powered by Disqus
Ultimi post


Tags



Progetti su github


Curriculum

matteo parmiLa mia fantastica ed entusiasmante carriera professionale. Curriculum via googledocs, aggiornato a bassa frequenza.


fatto con: webby, blueprint css e jquery