Mi stavo chiedendo perché il mio database CouchDB stava crescendo velocemente così ho scritto un po 'test script. Questo script modifica un attributo di un documento CouchDB 1200 volte e prende la dimensione del database dopo ogni modifica. Dopo aver eseguito questi 1200 passi di scrittura, il database esegue un compaction step e la dimensione del db viene misurata di nuovo. Alla fine lo script traccia la dimensione del database rispetto ai numeri di revisione. L'analisi comparativa viene eseguito due volte:Perché i miei database CouchDB crescono così in fretta?
- La prima volta che viene utilizzato il numero predefinito di revisione del documento (= 1000) (_revs_limit).
- La seconda volta il numero di revisioni del documento è impostato su 1.
La prima esecuzione produce il seguente grafico
first run http://i46.tinypic.com/xayydw.png
La seconda esecuzione produce questa trama
second run http://i50.tinypic.com/2l92l8w.png
Per me questo è un comportamento abbastanza inaspettato. Nella prima fase mi sarei aspettato una crescita lineare poiché ogni cambiamento produce una nuova revisione. Quando vengono raggiunte le 1000 revisioni, il valore della dimensione deve essere costante mentre le revisioni precedenti vengono scartate. Dopo la compattazione, le dimensioni dovrebbero diminuire in modo significativo.
Nella seconda esecuzione la prima revisione dovrebbe comportare determinate dimensioni del database che vengono quindi mantenute durante le seguenti fasi di scrittura poiché ogni nuova revisione porta alla cancellazione di quella precedente.
Potrei capire se c'è un po 'di overhead necessario per gestire i cambiamenti ma questo comportamento di crescita mi sembra strano. Qualcuno può spiegare questo fenomeno o correggere le mie supposizioni che portano a aspettative sbagliate?
Ho capito che la compattazione richiede alcuni secondi mentre il mio script registra la dimensione del database immediatamente dopo aver richiesto la compattazione. Ho aggiunto un po 'di attesa al mio script e ora il calo delle dimensioni dopo che la compattazione è stata registrata correttamente come previsto. Questo non cambia molto sul problema principale (la rapida crescita), ma dovrebbe essere notato qui. – konrad