Ho uno script ruby che legge una tabella enorme (~ 20m righe), esegue alcune elaborazioni e lo invia a Solr per scopi di indicizzazione. Questo è stato un grosso collo di bottiglia nel nostro processo. Sto pensando di velocizzare le cose qui e mi piacerebbe raggiungere un qualche tipo di parallelismo. Sono confuso sulla natura multithreading di Ruby. I nostri server hanno ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
. Da this blog post e this question at StackOverflow è visibile che Ruby non ha un approccio "reale" multi-threading. I nostri server hanno più core, quindi usare parallel gem sembra un altro approccio per me.Ruby Parallel/Multithread Programmazione per leggere un enorme database
Quale approccio devo seguire? Inoltre, qualsiasi input su sistemi di lettura parallela del database sarebbe molto apprezzato.
Come si accede al database? Puoi mostrarci un codice? –
Io uso mysql gem per recuperare N (~ 500) record alla volta usando il limite di MySQL, i parametri di offset. I batch li elaborano e li alimentano in batch a Solr. Sono necessarie più informazioni? –