Un test confronta le performance di FTS su Lucene++, SQLite e Xapian

Scritto da: -

LuceneQual è l’effettivo consumo di memoria dei database, utilizzando le funzionalità della Full-Text Search (FTS)? Michal Hruby – un programmatore attivo su progetti come Zeitgeist e Synapse – ha cercato di rispondere, ripetendo il benchmark di Mathias Hasselmann con tre prodotti: Lucene++, SQLite e Xapian. I risultati fanno riflettere.

Hruby ha utilizzato la stessa distribuzione di Hasselmann, ovvero Ubuntu 12.04 (Precise Pangoline) Beta 2, con due diversi archivi di dati: uno da 17.251 e l’altro da 12.1587 record. Per la precisione, entrambi gli archivi contenevano informazioni su dei film. I picchi di memoria del benchmark premiano Lucene++, con 1,4MiB e 3.1MiB.

SQLite ha totalizzato 2,5MiB/2,6MiB, mentre Xapian 1,4Mib/5,2MiB: i risultati dei picchi non sono molto significativi e, per confermare la superiorità di Lucene++ occorre, dare un’occhiata all’intero processo. Hruby ha utilizzato Massif Visualizer di Milian Wolff, dimostrando che Xapian non mantiene una cache della prima richiesta.

Non ancora soddisfatto, Hruby ha pensato di modificare il benchmark di Hasselmann per includere una ricerca tra le wildcard in aggiunta alle richieste standard. L’intenzione era soprattutto quella di verificare le performance di Xapian, che secondo Hruby assumerebbe un comportamento inusuale. Il risultato ha confermato questa tesi.

Se Lucene++ si ferma a 4,6MiB di picco ed SQLite a 7,3Mib, Xapian raggiunge i 442,2MiB: un consumo di memoria decisamente eccessivo. Il benchmark si riferisce soltanto all’archivio più grande, utilizzando T* come wildcard — con un limite di 10.000 risultati a richiesta per ogni database. Il comportamento di Xapian è incomprensibile.

Le prove di Hruby assegnano i risultati più confortanti a Lucene++, un porting in C++ di Lucene realizzato da Alan Wright per Spotify — il popolare servizio di musica in streaming, tuttora inaccessibile dall’Italia. Sarebbe opportuno da domandarsi se molte applicazioni non gioverebbero dell’utilizzo di Lucene++, al posto di SQLite.

Via | Michal Hruby

Vota l'articolo:
3.00 su 5.00 basato su 5 voti.  
 
 

© 2004-2014 Blogo.it, alcuni diritti riservati sotto licenza Creative Commons.
Per informazioni pubblicitarie e progetti speciali su Blogo.it contattare la concessionaria esclusiva Populis Engage.

Ossblog.it fa parte del Canale Blogo Tecnologia ed è un supplemento alla testata Blogo.it registrata presso il Tribunale di Milano n. 487/06, P. IVA 04699900967.