Commit Graph
258 Commits
Author SHA1 Message Date
Kenneth Skovhede 254b637dfd Updated the block size to the real expected default 100kb.
Default activated the file path cache, after the memory issue was resolved.
2013-03-22 22:55:53 +01:00
Kenneth Skovhede c34023139f Refactored the database to store the remote volume id instead of the filename for each block, which reduces required storage space for the local database 2013-03-22 21:56:00 +01:00
Kenneth Skovhede 0e89e90461 Description syntax fix 2013-03-16 12:30:44 +01:00
Kenneth Skovhede ed7ed5e6c2 Fixed a bug that caused 8x larger memory to be used than what was specified 2013-03-16 12:30:29 +01:00
Kenneth Skovhede 0a80b04352 Made it possible to deactivate all cache tables 2013-03-16 10:37:57 +01:00
Kenneth Skovhede 6d2e39bb38 Added support code to work with the file-change-monitor 2013-03-15 22:04:07 +01:00
Kenneth Skovhede 1a2034b265 Added error handling to the restore handler 2013-03-15 21:16:44 +01:00
Kenneth Skovhede 7bc6c2b6ff Rewrote the way the restore operation uses file lists for partial restore 2013-03-15 21:16:29 +01:00
Kenneth Skovhede ac90565c39 Cleaned up some unused code 2013-03-15 21:15:51 +01:00
Kenneth Skovhede f6a8511d77 Refactored the hash lookup.
Added hash lookup for metadata.
Added optional path-based lookup, which are disabled because they use a lot of memory.
2013-03-15 21:14:00 +01:00
Kenneth Skovhede 1231dc24da Made the hash memory requirement configurable 2013-03-11 20:45:48 +01:00
Kenneth Skovhede b7531b3766 Added double lookup for block and file hash, this reduces the execution time to half. 2013-03-11 20:13:40 +01:00
Kenneth Skovhede 11e863eb78 Fixed a bug with the hash lookup table, much faster now 2013-03-10 23:01:17 +01:00
Kenneth Skovhede f055dfd2b4 Optimized block queries 2013-03-10 20:33:30 +01:00
Kenneth Skovhede 5863292f11 Added hash prefix lookup to reduce database pressure 2013-03-10 14:27:13 +01:00
Kenneth Skovhede f6d963ddb9 Added extra convenience method 2013-03-10 14:25:45 +01:00
Kenneth Skovhede 513fc9b3d2 Reduced a bottleneck related to storing metadata, and added an option to avoid storing metadata 2013-03-09 13:25:50 +01:00
Kenneth Skovhede aca4ed95cc More work on the block hash.
Rewrote the backup and restore to work within a transaction as that speeds things up a lot.
Rewrote the backup procedure to generate the file list from the database, instead of on-the-fly as that is more efficient.
Re-arranged the database to use less storage on large sets of unchanged files.
2013-03-08 22:24:54 +01:00
Kenneth Skovhede a7f0c3de0b Merge branch 'master' into sandboxes/Kenneth/ForestHash 2013-03-08 12:25:53 +01:00
Kenneth Skovhede 4f4e29638c Fixed a problem where not supplying the tempdir option could cause a non-default value to be used. 2013-03-08 12:25:35 +01:00
kenneth@hexad.dk e170d781f0 Resynced trunk into ForestHash
git-svn-id: https://duplicati.googlecode.com/svn/sandboxes/Kenneth/ForestHash@1536 59da171f-624f-0410-aa54-27559c288bec
2013-02-27 20:57:58 +00:00
kenneth@hexad.dk be0d503951 Implemented file-extension based rules for disabling compression for already compressed files
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1535 59da171f-624f-0410-aa54-27559c288bec
2013-02-27 20:54:22 +00:00
kenneth@hexad.dk a0521da54d Initial version of the new block-based storage format.
Still needs a work over in terms of error handling, progress reporting, warning output, refactoring etc.
Also misses the volume reuse/reclaim algorithms.
But it passes the unit tests now, with and without a local database.

git-svn-id: https://duplicati.googlecode.com/svn/sandboxes/Kenneth/ForestHash@1526 59da171f-624f-0410-aa54-27559c288bec
2013-02-12 21:43:14 +00:00
kenneth@hexad.dk 6a0c6b583e Merged r1500 into trunk, reintegrated branch sandboxes/Aaron/issue331
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1512 59da171f-624f-0410-aa54-27559c288bec
2013-01-22 19:20:19 +00:00
kenneth@hexad.dk f8dc5bbafd Added the "Password" type to argument types for simplified handling of password masking.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1509 59da171f-624f-0410-aa54-27559c288bec
2013-01-22 09:28:43 +00:00
kenneth@hexad.dk 4a5a1dec41 Update issue #236
Updated to fix incorrect reporting of default options --tempdir and --volsize

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1508 59da171f-624f-0410-aa54-27559c288bec
2013-01-21 11:43:41 +00:00
kenneth@hexad.dk 9a1a1b70c2 Fixed a wrong type on the disable-filetime-check option
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1505 59da171f-624f-0410-aa54-27559c288bec
2013-01-19 12:22:09 +00:00
kenneth@hexad.dk b0b5267d46 Merged r1484 into trunk
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1485 59da171f-624f-0410-aa54-27559c288bec
2012-11-27 09:53:45 +00:00
kenneth@hexad.dk 93705d5b81 Updated some informative strings, thanks to feedback from Phillip
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1483 59da171f-624f-0410-aa54-27559c288bec
2012-11-20 09:07:20 +00:00
kenneth@hexad.dk ca53afe000 Merged r1464 and r1465 into trunk
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1466 59da171f-624f-0410-aa54-27559c288bec
2012-10-08 18:48:36 +00:00
kenneth@hexad.dk 1330690187 Update issue #711
Status: Fixed

Now correctly parsing the "auto" option for USN and Snapshots

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1461 59da171f-624f-0410-aa54-27559c288bec
2012-10-06 12:46:04 +00:00
kenneth@hexad.dk 23515674fd Added --backup-name to help when constructing emails and running scripts
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1445 59da171f-624f-0410-aa54-27559c288bec
2012-08-27 18:43:58 +00:00
kenneth@hexad.dk a4bbe8db1d Added some comments to the main file processing loop
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1443 59da171f-624f-0410-aa54-27559c288bec
2012-08-23 07:15:15 +00:00
kenneth@hexad.dk 806f9fcad5 Fixed a bug introduced with r1437 that could cause backups to generate infinite set of empty volumes.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1441 59da171f-624f-0410-aa54-27559c288bec
2012-08-23 07:07:52 +00:00
kenneth@hexad.dk fa97957296 Fixed a bug introduced with r1381 that could cause incomplete backups.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1437 59da171f-624f-0410-aa54-27559c288bec
2012-08-22 09:49:11 +00:00
kenneth@hexad.dk da1150e6cc Added support for callbacks.
Added a run-script module.
Need to make a Windows example script

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1426 59da171f-624f-0410-aa54-27559c288bec
2012-08-15 18:33:46 +00:00
kenneth@hexad.dk 48ab8e31f4 Added reporting of symlinks.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1422 59da171f-624f-0410-aa54-27559c288bec
2012-08-07 20:14:20 +00:00
kenneth@hexad.dk 8f3d2b961f Added reporting of symlinks.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1421 59da171f-624f-0410-aa54-27559c288bec
2012-08-07 20:12:12 +00:00
kenneth@hexad.dk d83eb730f2 Update issue #678
Status: Fixed

The CLI now returns error codes.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1420 59da171f-624f-0410-aa54-27559c288bec
2012-08-07 19:36:49 +00:00
kenneth@hexad.dk 65c320c22d Rewrite of the way the compression modules are used.
The number of methods required by the ICompression interface is now reduce and all handling of path conversion and text encoding is now done in the CompressionWrapper class. This should make it easier to implement a new compression module, and reduce the number of errors that occur because of filename/encoding issues.

This commit also contains a fix for reporting a sane error message if the compression module is not found/loaded.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1417 59da171f-624f-0410-aa54-27559c288bec
2012-08-07 17:42:09 +00:00
kenneth@hexad.dk 9925d7ffed Update issue #435
There is now an option called "vss-use-mapping" that activates DefineDosDevice and uses short DOS like paths.
I also find a little place that could be a performance problem, so maybe this fixes the issue even without the mapping.


git-svn-id: https://duplicati.googlecode.com/svn/trunk@1413 59da171f-624f-0410-aa54-27559c288bec
2012-08-06 20:17:23 +00:00
kenneth@hexad.dk b277f6325d Fairly large rewrite of how files and paths are handled.
This fixes issues #144, #577 and #320.

This update introduces a new options called "symlink-policy" that can be set to "store", "ignore" or "follow".
The default setting "store" means all symlinks are recorded as symlinks and recreated as symlinks on restore. This is chosen as default because it is the best replication of the actual disk contents.
Setting it to "ignore" simply means that no information is recorded about any symlinks.
And lastly, setting it to "follow" reverts to the previous default of treating symlinks as if they are normal files/folders.
Caveat: On Windows, you need Administrator privileges to create symlinks (when restoring), but not for reading them (on backup).

Since this change meant that the file attributes must be read, I also added support for the option "exclude-files-attributes", that can be used to ignore/exclude files with certain attributes, such as "hidden", "archive" or "encrypted".

Since I had to much about so much with getting the symlinks supported on Windows, I also added some extra logic to the Windows file handler, so it can now handle files and folders with up to 32k chars in the path. The logic is done so that the normal System.IO operations are used for paths with less than 260 characters (MAX_PATH), and on error or longer paths, the Win32 Unicode API is invoked. This should give maximal backwards compatibility and still allow backup and restore of files with long paths.

This commit also includes a BlockingQueue implementation that is supposed to make file/folder enumeration faster, but this has not been implemented because Duplicati depends on having a "whole world" view of the files and folders before running the backup (i.e. deeper changes required for this).


git-svn-id: https://duplicati.googlecode.com/svn/trunk@1381 59da171f-624f-0410-aa54-27559c288bec
2012-07-29 20:07:10 +00:00
kenneth@hexad.dk 30c4b4b2d2 Merged r1346 into trunk
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1347 59da171f-624f-0410-aa54-27559c288bec
2012-06-29 19:38:04 +00:00
kenneth@hexad.dk d3bc855521 Merged r1339 into trunk
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1340 59da171f-624f-0410-aa54-27559c288bec
2012-06-26 14:19:45 +00:00
kenneth@hexad.dk d6b77fb461 Merged r1295 and r1296 into trunk
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1297 59da171f-624f-0410-aa54-27559c288bec
2012-05-17 08:07:41 +00:00
kenneth@hexad.dk 722abc9d20 Updated metadata reporting to better reflect the state AFTER the action, instead of before.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1292 59da171f-624f-0410-aa54-27559c288bec
2012-05-15 17:59:40 +00:00
kenneth@hexad.dk 992abc8cb4 Fixed a bug with r1278
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1289 59da171f-624f-0410-aa54-27559c288bec
2012-05-14 21:41:47 +00:00
kenneth@hexad.dk 47c7a8d471 I really should not commit this late :)
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1287 59da171f-624f-0410-aa54-27559c288bec
2012-05-14 21:20:04 +00:00
kenneth@hexad.dk 33bf545224 Improved handling of forced full backups
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1285 59da171f-624f-0410-aa54-27559c288bec
2012-05-14 21:13:08 +00:00
kenneth@hexad.dk 2701b1af43 Fixed a bug that prevented forcing full backups
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1283 59da171f-624f-0410-aa54-27559c288bec
2012-05-14 21:09:14 +00:00