Commit Graph
39 Commits
Author SHA1 Message Date
Kenneth Skovhede 3524756beb Refactored everything related to the databases, such that the transactions are handled within the database class instead of passing around transaction objects. 2018-01-21 07:35:07 +01:00
Kenneth Skovhede d08b7750f0 Removed the unnecessary distinct clause from the recreate query.
Added a comment about the potentially unnecessary extra join in the statements that fills in block hashes.
2017-01-19 10:53:32 +01:00
Kenneth Skovhede 305d8bc7fe Added an extra condition on the join for the recreate issue.
This is a less experimental rewrite of the query that fixes the exact problem.
The speedups from this query fix are also substantial, going from 2.5 hours to 11 minutes.

This is likely a fix to these issues:
#1699, #2048, #2140, #2178

This could help with issues:
#1391, #2050
2017-01-19 09:55:36 +01:00
Kenneth Skovhede be46960a6b Added debugging code that dumps the temporary tables as permanent tables if the error from #1699, #2048, #2140, or #2178 2017-01-15 23:08:21 +01:00
Kenneth Skovhede d3a3d8c85f Fixed a mistake in the debugging code for issue 2140 2017-01-11 13:51:56 +01:00
Kenneth Skovhede fd0d0d5529 Added tracing output to track down issue #1699, #2140 and #2178 2017-01-05 21:41:21 +01:00
Kenneth Skovhede d8972b0f2b Removed unused memory cache code 2016-12-16 17:30:39 +01:00
Kenneth Skovhede 3a034c65ff Removed some extra dispose code 2016-10-17 15:32:30 +02:00
Kenneth Skovhede 309bf1648d Merge branch 'master' into feature/fix_for_different_blockhash_and_filehash_plus_multiblocks_metadata
# Conflicts:
#	Duplicati/Library/Main/Database/LocalDatabase.cs
#	Duplicati/Library/Main/Database/LocalRecreateDatabase.cs
#	Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs
#	Duplicati/UnitTest/BorderTests.cs
2016-10-17 13:28:27 +02:00
Kenneth Skovhede 0c68daff6c Fixed all whitespace to be 4 spaces instead of tabs 2016-09-15 11:39:27 +02:00
Kenneth Skovhede a350d942e6 Fixed a case where a specially crafted broken index file could prevent the database from being recreated correctly.
This fix also optimizes recreates where data is missing in index files and block files are downloaded.
2016-05-02 20:30:38 +02:00
Kenneth Skovhede 742eab0913 Fixed multiple cases where connections and command instances were not disposed.
This should fix all cases of "File is locked" on windows.
2016-04-06 20:40:34 +02:00
Kenneth Skovhede d101f91c94 Fixed support for metadata larger than blocksize. Now supports one full blocklist of metadata, appx 300mb with default settings.
Added correct handling of metadata hashes, such that a metadata blockset is now handled the same was as a regular file blockset.
The query that creates the filesets does not support more than a single blocklist of metadata, hence the limitiation.
2016-04-04 18:11:48 +02:00
Kenneth Skovhede e40bd7f02a Proposed version, not complete with handling large metadata chunks 2016-04-03 23:10:47 +02:00
Kenneth Skovhede a6699e513d Fixed the repair to also support blocksize values that are not evenly divisible with the blockhash size 2016-03-27 12:50:40 +02:00
FootStark d715d494ec Quickfix to restore issue
Fixes blocksize-assumption of 10KB
2016-03-26 13:14:05 +01:00
Kenneth Skovhede 9fdae7f0c3 Added distinct clause to guard against index files with multiple copies of the same blocklisthash 2016-03-19 22:16:22 +01:00
Kenneth Skovhede 6b18217c0a Merge branch 'feature/improved_rebuild_queries'
# Conflicts:
#	Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs
#	Duplicati/Library/Main/Operation/RepairHandler.cs
2016-03-18 14:32:43 +01:00
Kenneth Skovhede 4be7a45067 Fixed the query to correctly compute the size of the trailing blocklisthash block. 2016-03-18 13:24:10 +01:00
Kenneth Skovhede ade9db9dca Utility fixes 2016-03-17 21:43:09 +01:00
Kenneth Skovhede 9a58a93894 Fixed an cleaned the rebuild SQL that picks missing blocklist hashes 2016-03-17 21:17:22 +01:00
Kenneth Skovhede 9f1c51e891 Improved logic to deal with blocklistshashes that collide but have different lengths.
Added safeguard to avoid importing blocklists with wrong length, that appears in index files created by older versions of Duplicati.
2016-03-15 21:02:13 +01:00
Kenneth Skovhede 1ef469be67 Bugfix for the index fix 2016-02-13 22:13:40 +01:00
Kenneth Skovhede 097be65865 Adding an index as suggested in issue #1569 2016-02-11 13:29:12 +01:00
Kenneth Skovhede e65e7d234e Fixed an issue where a restored database was missing some files.
This fixes #1410.
2015-07-12 21:36:48 +02:00
Kenneth Skovhede 74bbf0f1f8 Added support for handling null values in the remotevolume table.
This fixes #1334.
2015-05-17 13:38:25 +02:00
Kenneth Skovhede e13978d1c0 Improved handling of non-standard blocksize and hashing algorithms 2015-04-08 20:33:30 +02:00
Kenneth Skovhede 4846ffa103 Now using the file modification timestamp and the filesize as indicators that trigger file scanning.
This fixes #1099.
2015-01-24 21:59:53 +01:00
Kenneth Skovhede 8689d6cb80 Fixed bad SQL reported in #1186 2014-11-11 22:29:38 +01:00
Kenneth Skovhede df9f91d8de Fixed problem with the repair command.
This fixes #1188
2014-11-10 10:31:26 +01:00
Kenneth Skovhede 608e61fbca Fixed SQL typo 2014-11-06 08:30:27 +01:00
Kenneth Skovhede 114195c2ac Fixed an issue with recreating the local database as reported in issue #1150 and #1040. 2014-10-14 13:03:38 +02:00
Kenneth Skovhede 796459df5d Fix for hash collisions with different size inputs 2014-05-14 14:44:56 +02:00
Kenneth Skovhede 1f48d43515 Removed the HashDatabaseProtector and added the HashLookupHelper instead. 2013-09-09 22:50:18 +02:00
Kenneth Skovhede 555945eae4 Implemented a better cache for filenames. 2013-09-07 21:33:59 +02:00
Kenneth Skovhede 4c217b57d9 Fixed a number of dispose errors that would mask real errors 2013-08-23 23:36:25 +02:00
Kenneth Skovhede 0dc3c0aeea Speedup fix 2013-07-24 21:25:02 +02:00
Kenneth Skovhede 5c110162ea Changed the time format of times used programmatically to use EPOCH seconds, as it is faster to parse and more reliable 2013-07-23 21:28:01 +02:00
Kenneth Skovhede a1ef4dbe96 Rewrote the way the database is recreated to ensure greater stability when recovering from a damaged backup.
The restore now correctly works with missing index files and full index files.
2013-07-22 16:54:19 +02:00