Record each snapshot's new chunk size when its backup runs (closes #311)
check / check (push) Waiting to run
check / check (push) Waiting to run
snapshot list worked out NEW CHUNK SIZE from the snapshot's file rows. A file's row is shared by every snapshot that lists it and rewritten when the file changes, so a snapshot whose change was a modified file showed 0 B, and older snapshots' figures moved after later backups. The scanner now totals the size of the chunks it stores that were not stored before (the chunks chunk_count counts), the backup writes that total to a new snapshots column, new_chunk_size, and snapshot list reads it. Judgement call: the figure is fixed when the backup runs, so removing an earlier snapshot no longer raises a later snapshot's figure. Model: opus-5-5
This commit is contained in:
@@ -135,7 +135,9 @@ type ScannerConfig struct {
|
||||
// are counted per file: BytesScanned is the size of the new and changed
|
||||
// files, BytesSkipped that of the unchanged ones. FilesFailed counts the
|
||||
// new and changed files that phase 2 could not store; FilesScanned
|
||||
// includes them and BytesScanned does not.
|
||||
// includes them and BytesScanned does not. ChunksCreated counts the
|
||||
// chunks that were not already stored, and NewChunkSize is their total
|
||||
// size.
|
||||
type ScanResult struct {
|
||||
FilesScanned int
|
||||
FilesSkipped int
|
||||
@@ -145,6 +147,7 @@ type ScanResult struct {
|
||||
BytesSkipped int64
|
||||
BytesDeleted int64
|
||||
ChunksCreated int
|
||||
NewChunkSize int64
|
||||
BlobsCreated int
|
||||
BlobsUploaded int
|
||||
BytesUploaded int64
|
||||
@@ -1866,11 +1869,12 @@ func (s *Scanner) processFileStreaming(
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateChunkStats counts a chunk that was not already stored. The scan
|
||||
// result's file counts, BytesScanned and BytesSkipped are not touched
|
||||
// here: the scan phase counts each file once.
|
||||
// updateChunkStats counts a chunk that was not already stored, and its
|
||||
// size. The scan result's file counts, BytesScanned and BytesSkipped are
|
||||
// not touched here: the scan phase counts each file once.
|
||||
func (s *Scanner) updateChunkStats(chunkSize int64, result *ScanResult) {
|
||||
result.ChunksCreated++
|
||||
result.NewChunkSize += chunkSize
|
||||
|
||||
if s.progress != nil {
|
||||
s.progress.GetStats().ChunksCreated.Add(1)
|
||||
|
||||
Reference in New Issue
Block a user