Tdpkg 1.0, velocizzare dpkg

pubblicato: martedì 16 marzo 2010 da Lpt on fire!


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

1 stelle2 stelle3 stelle4 stelle5 stelle (nessun voto)
condividi condividi 20 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Profilo di go

    go

    16 mar 2010 - 14:55 - #1
    0 punti
    Up Down

    Mah… mi sembra troppo bello per essere vero….

  • G,G

    16 mar 2010 - 15:35 - #2
    0 punti
    Up Down

    Bella 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

  • Profilo di d4n

    d4n

    16 mar 2010 - 15:58 - #3
    0 punti
    Up Down

    Se funziona veramente come dice mi sa che il team di Debian farebbe bene a dargli un’occhiata :D

  • rdf

    16 mar 2010 - 16:04 - #4
    0 punti
    Up Down

    zOMG winregistry

  • Mag1

    16 mar 2010 - 17:19 - #5
    0 punti
    Up Down

    Perchè non l’hanno ascoltato? Bisogna sempre farsi riconoscere…eh.

  • Profilo di ekerazha

    ekerazha

    16 mar 2010 - 17:21 - #6
    0 punti
    Up Down

    Questa è 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 - #7
    0 punti
    Up Down

    Rimangono fedeli con quale motivazione?

  • Profilo di ekerazha

    ekerazha

    16 mar 2010 - 18:37 - #8
    0 punti
    Up Down

    Idiozie 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 - #9
    0 punti
    Up Down

    ekerazha, 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…

  • Profilo di ekerazha

    ekerazha

    16 mar 2010 - 19:13 - #10
    0 punti
    Up Down

    Avevo 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 - #11
    0 punti
    Up Down

    ekerazha, quello del db in arch è una cosa che interesserebbe anche a me.. ma lo so come sono testardi i devel di arch!

  • Profilo di d4n

    d4n

    16 mar 2010 - 19:48 - #12
    0 punti
    Up Down

    Alla 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.

  • Profilo di ekerazha

    ekerazha

    16 mar 2010 - 19:55 - #13
    0 punti
    Up Down

    A 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 - #14
    0 punti
    Up Down

    d4n, 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 - #15
    0 punti
    Up Down

    ekerazha, 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.

  • Profilo di d4n

    d4n

    16 mar 2010 - 21:25 - #16
    0 punti
    Up Down

    @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 - #17
    0 punti
    Up Down

    Beh 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
    0 punti
    Up Down

    @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 - #19
    0 punti
    Up Down

    Bello, lo provo subito grazie :)

    p.s.:Chiudi le virgolette alla fine dell’alias

  • Profilo di d4n

    d4n

    17 mar 2010 - 11:34 - #20
    0 punti
    Up Down

    @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

PUBBLICITÀ
L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito su tutti i blog di Blogo e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento

Network Blogo