Come ridurre la dimensione di un boltdb

Questo post parte da questa risposta ad una domanda posta sul repository ufficiale di boltdb.

Nella domanda si chiede come ridurre la dimensione di un database bolt dopo aver cancellato un certo numero di buckets al suo interno.

La risposta ci conduce alla riflessione che per ridurre la dimensione di un database bolt non è sufficiente cancellarne i buckets, bensì è necessario eseguire una copia uno a uno dei buckets rimasti nel db in un altro bolt file.

Nella risposta si suggerisce di scrivere un programma che iteri per ogni buckets copiandolo in un nuovo db file. Questa opzione la lascerò per un articolo successivo dove scriverò uno script che esegua una copia di tutti i buckets presenti in un boltdb in un altro.

Per ora utilizzeremo boltcopy, uno script in Go che permette di copiare i buckets da un boltdb file ad uno nuovo, ma che ha come limitazione quello di non supportare buckets annidati.

Come ridurre la dimensione di un boltdb file con boltcopy

Anzitutto è necessario installare lo script Go e per farlo usiamo il seguente comando

				
					go install https://github.com/jessepeterson/boltcopy@latest
				
			

Rechiamoci ora nella cartella /home/go/bin dove troveremo un binary file chiamato boltcopy pronto per essere invocato con questo comando

				
					./boltcopy my-database.boltdb my-new-database.boltdb
				
			

Attendiamo che il programma effettui la copia. Il tempo dipende in base alla dimensione del database di partenza.

Ricordiamo che questa operazione è da eseguire successivamente all’eliminazione di buckets dal nostro boltdb. Per gestire con semplicità questa operazione possiamo utilizzare boltbrowser, un altro programma scritto in Go che permette di visualizzare ed editare i buckets contenuti nel nostro database.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come aggiungere e rimuovere utenti su Debian

Debian, così come tutte le altre distribuzioni Linux, è un sistema operativo multiutente. Ogni utente può avere differenti livelli di permission e specifici settaggi per

Partners