
Se usate un sistema basato su Debian avrete notato una certe lentezza durante la lettura del database dei pacchetti installati.
La causa è la lettura delle migliaia di file .list presenti in /var/lib/dpkg/info/. Per velocizzare le operazioni è stato più volte ipotizzata l’idea di passare ad un database. Luca Bruno non essendo stato ascoltato dai mantainer ha deciso di fare da sé con Tdpkg.
Si tratta di una libreria che intercetta le chiamate di dpkg caricata attraverso LD_PRELOAD. Tdpkg può funzionare sia con un db tokyocabinet che è più rapido oppure con sqlite che gestisce meglio la concorrenza. Quanto migliorano le prestazioni? Secondo l’autore si passa dai 14 secondi a soli 2 secondi.
Un ottimo risultato. Per provare dovrete compilare la libreria ed aggiungere un alias:
alias dpkg="LD_PRELOAD=/path/to/libtdpkg.so dpkg
Via | Lethalman
go
16 mar 2010 - 14:55 - #1Mah… mi sembra troppo bello per essere vero….
G,G
16 mar 2010 - 15:35 - #2Bella storia, spero che le principali distribuzioni possano avvantaggiarsene al più presto, secondo me le differenze di tempi sono plausibili, e potrebbero essere anche maggiori su sistemi con hd lenti come il mio portatile :-)
detto ciò trattandosi di dpkg un pacchetto lo potevano pure fare, certo a compilare non è che caschi il mondo però… :-P
d4n
16 mar 2010 - 15:58 - #3Se funziona veramente come dice mi sa che il team di Debian farebbe bene a dargli un’occhiata :D
rdf
16 mar 2010 - 16:04 - #4zOMG winregistry
Mag1
16 mar 2010 - 17:19 - #5Perchè non l’hanno ascoltato? Bisogna sempre farsi riconoscere…eh.
ekerazha
16 mar 2010 - 17:21 - #6Questa è una mia vecchia battaglia, ho cercato per anni di convincere i dev di Arch ad utilizzare per pacman un database sqlite, invece rimangono fedeli al sistema composto da migliaia di directory (una per ogni pacchetto) con dentro i canonici 3 file di testo, dalla lentezza imbarazzante (specie su alcuni filesystem come XFS).
Mag1
16 mar 2010 - 17:58 - #7Rimangono fedeli con quale motivazione?
ekerazha
16 mar 2010 - 18:37 - #8Idiozie varie, del tipo non vogliono che pacman (il gestore dei pacchetti) dipenda da librerie esterne… e dicono che sarebbe meno sicuro perchè se si corrompe un file del database composto da migliaia di file, sarebbe comunque un danno lieve, mentre se si corrompe il file del database sqlite perdi tutto (peccato che il database si possa anche riparare… e comunque basterebbe crearne in automatico una copia di backup).
giabboonno
16 mar 2010 - 19:09 - #9ekerazha, hai provato a fare una cosa simile a questo tdpkg? in teoria sembra una cosa abbastanza semplice, un wrapper e quando viene chiamato dpkg allora si tira su questa lib che scrive nel database tokyohotel o sqlite3.
credo sia possibile anche per arch, si dovrebbe capire poi se diventa piu veloce sul serio…
ekerazha
16 mar 2010 - 19:13 - #10Avevo iniziato a fare un pacman basato su sqlite ma il problema è che il database che viene scaricato dal sito di Arch è comunque nel formato “classico”, quindi non avrebbe senso, dovrebbero mettere loro a disposizione il database in versione sqlite.
loverdrive
16 mar 2010 - 19:47 - #11ekerazha, quello del db in arch è una cosa che interesserebbe anche a me.. ma lo so come sono testardi i devel di arch!
d4n
16 mar 2010 - 19:48 - #12Alla luce di quello che dice ekerazha sembra che il problema sia più di “lavoro grosso” da fare per cambiare sistema. Comunque ti puoi ritenere fortunato, ci sono dev di certi team che neanche rispondono alle email in cui vengono dati consigli o vengono chieste spiegazioni per determinate scelte.
ekerazha
16 mar 2010 - 19:55 - #13A dire il vero era stato nel loro forum e quando hanno iniziato a non saper più cosa rispondere per giustificare le loro posizioni, hanno chiuso il thread.
lordalbert
16 mar 2010 - 20:03 - #14d4n, a chi ti riferisici?
Cmq ci sono anche molti devel che ti rispondono “non hai il diritto di lamentarti, è software libero, visto che non paghi non puoi dire nulla” (solitamente detta da devel debian)
loverdrive
16 mar 2010 - 20:06 - #15ekerazha, per quel che li conosco, è abbastanza tipico dei devel di arch.
Mi chiedo solo se esista mai un team di sviluppatori un po’ più aperti, che accetti i consigli quando dimostrano di essere sensati e apportano migliorie significative.
d4n
16 mar 2010 - 21:25 - #16@lordalbert
Scusa se ti rispondo con “Si dice il peccato ma non il peccatore” ma non voglio screditare il lavoro di tanti altri che invece sono molto gentili e aperti. Poi a me sta frase “non hai il diritto di lamentarti, è software libero, visto che non paghi non puoi dire nulla” mi pare una corbelleria proprio un modo di ragionare anti democratico se il software è libero anche il mio pensiero lo è quindi critico quanto mi pare.
Le lamentele servono a migliorare se poi si è così ottusi da non capirlo mi sa che si fà meglio a smettere di fare lo sviluppatore e dedicarsi ad altro. Se io sviluppo un tool e ho anche 1 utente che critica qualcosa lo ascolto vedo cosa dice e vaglio perchè non è detto che dica solo fesserie.
Dado star
16 mar 2010 - 21:35 - #17Beh se la mettete così non c’è da sorprendersi che linux sia allo 0,000000x % di share. Un bello schifo, sono gli sviluppatori (più anziani?) il vero cancro del FOSS.
lordalbert
16 mar 2010 - 22:34 - #18@d4n: La pensiamo allo stesso modo. Ed è per quello che io i nomi li ho fatti :)
Non voglio certo generalizzare, ma molti ripetono quella frase. E la mia non era una critica, avevo solo segnalato che c’erano delle dipendenze non risolte in uno dei repository.
fabrixx2
17 mar 2010 - 00:27 - #19Bello, lo provo subito grazie :)
p.s.:Chiudi le virgolette alla fine dell’alias
d4n
17 mar 2010 - 11:34 - #20@lordalbert hihihihihi si l’avevo intuito a me quella risposta manda su tutte le furie, è come quelli che dicono “Linux è fico a priori” però se lo critichi ti dicono e ma non rompere è gratis. C’è incoerenza. A mia vista negli ultimi anni si stà perdendo di vista il concetto di comunità e di libertà sopratutto di espressione e di pensiero. Certe volte torna sempre molto forte la tentazione di farmi la mia distribuzione, però poco dopo lascio perdere :D