@@ -8,12 +8,15 @@ Document: https://tisunion.github.io/PrimeBackup/
88
99## Features
1010
11- - Only stores files with changes with the hash-based file pool. Supports unlimited number of backup
12- - Comprehensive backup operations, including backup/restore, list/delete, import/export, etc
11+ - Hash-based, compressed file pool deduplication. Only new or changed data is stored, with no hard limit on backup count
12+ - Optional CDC (content-defined chunking) for large, locally edited files to improve deduplication across backups
13+ - Safe restore workflow: confirmation + countdown, automatic pre-restore backup, recycle-bin rollback, and data verification
14+ - Comprehensive backup operations, including backup/restore, list/delete, import/export, comments/tags, etc.
1315- Smooth in-game interaction, with most operations achievable through mouse clicks
14- - Highly customizable backup pruning strategies, similar to the strategy use by [ PBS] ( https://pbs.proxmox.com/docs/prune-simulator/ )
15- - Crontab jobs, including automatic backup, automatic pruning, etc.
16- - Supports use as a command-line tool. Manage the backups without MCDR
16+ - Rich database toolkit: overview statistics, integrity validation, orphan cleanup, file deletion, and hash/compression method migration
17+ - Highly customizable backup pruning strategies, similar to the strategy used by [ PBS] ( https://pbs.proxmox.com/docs/prune-simulator/ )
18+ - Scheduled jobs for automatic backup creation and backup pruning, support fixed intervals and crontab expressions
19+ - Provides a command-line tool if you want to manage backups without MCDR. Also supports mounting as a filesystem via FUSE
1720
1821![ !!pb command] ( docs/img/pb_welcome.png )
1922
@@ -29,18 +32,22 @@ See the document: https://tisunion.github.io/PrimeBackup/
2932
3033## How it works
3134
32- Prime Backup maintains a custom file pool to store the backup files . Every file in the pool is identified with the hash value of its content.
33- With that, Prime Backup can deduplicate files with same content, and only stores 1 copy of them, greatly reduces the burden on disk usage.
35+ Prime Backup maintains a custom file pool to store backup data . Every stored object is identified by a hash of its content.
36+ With that, Prime Backup can deduplicate files with the same content, and only stores 1 copy of them, greatly reducing disk usage
3437
35- Besides that, Prime Backup also supports compression on the stored files, which reduces the disk usage further more
38+ Prime Backup also supports compression on stored data to further reduce disk usage
3639
37- PrimeBackup is capable of storing various of common file types, including regular files, directories, and symbolic links. For these 3 types:
40+ For large and locally edited files, Prime Backup can optionally use CDC (Content-Defined Chunking) for better deduplication.
41+ The file is split into content-defined chunks. Each chunk is hashed and reused across backups when unchanged, only new chunks are stored
3842
39- - Regular file: Prime Backup calculates its hash values first. If the hash does not exist in the file pool,
40- Prime backup will (compress and) store its content into a new blob in the file pool.
41- The file status, including mode, uid, mtime etc., will be stored in the database
42- - Directory: Prime Backup will store its information in the database
43- - Symlink: Prime Backup will store the symlink itself, instead of the linked target
43+ Prime Backup stores common file types, including regular files, directories, and symbolic links. For these 3 types:
44+
45+ - Regular file: Prime Backup calculates hashes (and size)
46+ If CDC is enabled, it stores the file as a chunked blob that references chunks; chunks are deduplicated and compressed individually
47+ Otherwise, it stores a direct blob; the whole file is deduplicated and compressed as a single unit
48+ File metadata such as mode, uid, and mtime are stored in the database
49+ - Directory: Prime Backup stores its information in the database
50+ - Symlink: Prime Backup stores the symlink itself instead of the linked target
4451
4552## Thanks
4653
0 commit comments