Commit Graph
2357 Commits
Author SHA1 Message Date
Carl Johnsen 5680fa3e15 If the restore operation threw an exception, the database wouldn't be closed properly, leading to subsequent tests failing due to the file being locked. 2024-12-05 08:49:36 +01:00
Carl Johnsen ab7fcb2e4a Opening a filestream doesn't work as expected on windows (caught in ProblematicPathTests) - changed to SystemIO.IO_OS.FileOpen* 2024-12-05 08:48:54 +01:00
Kenneth Skovhede f5cabd4c7f Remove --use-block-cache
The option has no effect.
This closes #3566
The block cache was added originally to work around perceived slow hash table lookups in the database.
By having an in-memory dictionary, lookups would be much faster.
It has no effect on disk wear, as the lookups are read-only.
The impact of such a cache was measured to be minimal with recent versions of SQLite.
2024-12-04 10:06:49 +01:00
Carl Johnsen 0e36c4393a Added progress printing during restore 2024-12-03 10:35:33 +01:00
Carl Johnsen 2b0dc0613f Added handling of existing symlinks 2024-12-03 10:04:08 +01:00
Carl Johnsen c2e7275e1e Removed unused metadatastorage in the new restore flow 2024-12-03 09:39:46 +01:00
Carl Johnsen 3e7b505ed2 Merge branch 'master' into performance/restoreopt 2024-12-03 09:21:14 +01:00
Carl Johnsen f0c3fddfa2 Found runaway TODO 2024-12-03 09:11:42 +01:00
Carl Johnsen 76240550ed Add preallocation option for restored files and update related documentation 2024-12-03 09:10:36 +01:00
Carl Johnsen 6ba956dfcd Moved all database operations to the LocalRestoreDatabase.
Also changed the old changes, so that the functions related to the legacy restore remains untouched.
2024-12-03 08:35:14 +01:00
Carl Johnsen 6413014c7d Added internal profiling of VolumeManager alongside proper exception handling. 2024-12-02 20:58:46 +01:00
Carl Johnsen 1e3e67c053 Update the construction of the processes within RestoreHandler 2024-12-02 20:48:20 +01:00
Carl Johnsen 99adcdd17c Added license, docstrings and logging to VolumeManager 2024-12-02 20:41:56 +01:00
Carl Johnsen 7436606455 Cleanup VolumeDownloader 2024-12-02 20:32:38 +01:00
Carl Johnsen d0df0c054e Cleanup VolumeDecryptor 2024-12-02 20:29:40 +01:00
Carl Johnsen 1284adec3b Cleanup VolumeDecompressor 2024-12-02 20:28:45 +01:00
Carl Johnsen 6c66fee921 Cleanup FileProcessor and rework docstrings 2024-12-02 20:27:21 +01:00
Carl Johnsen 9070ea2382 Added docstring and cleaned up FileLister 2024-12-02 20:12:06 +01:00
Carl Johnsen a663c46178 Removed debug depth for channels 2024-12-02 20:07:49 +01:00
Carl Johnsen 46983ee5cd Added proper handling of the internal profiling timers in BlockManagers SleepableDictionary 2024-12-02 19:59:56 +01:00
Carl Johnsen 4ae37292a1 Changed the count dictionaries in BlockManager to be normal dictionaries, as they are faster and the accesses to them are serialized anyways. 2024-12-02 17:56:33 +01:00
Carl Johnsen b44934ac4b Removed database from BlockManagers cache 2024-12-02 17:48:29 +01:00
Carl Johnsen 9e4e1e246b Added docstrings to BlockManager 2024-12-02 15:49:20 +01:00
Carl Johnsen 3d8330bc58 Cleaned up BlockManager 2024-12-02 15:44:01 +01:00
Carl Johnsen e7b2338214 Renamed VolumeCache to VolumeManager for consistency 2024-12-02 15:43:52 +01:00
Carl Johnsen 1bbe26330f Bump CoCoL package version to 1.8.1 2024-12-02 15:18:09 +01:00
Carl Johnsen 7aa19f851e Add configurable volume downloaders for restore process 2024-12-02 15:16:21 +01:00
Carl Johnsen 533088684b Consistent naming of decryptors 2024-12-02 15:12:50 +01:00
Carl Johnsen b6ed72bd6c Reworked the restore CSP network 2024-12-02 15:09:23 +01:00
Carl Johnsen 3156d43adc BlockVolumeReaders are expensive to create - cache them instead. 2024-12-02 10:55:45 +01:00
Carl Johnsen f85ffabe3e Linux SQLite doesn't want values in quotes 2024-12-02 10:45:52 +01:00
Carl Johnsen cdf0c28fd8 Added internal profiling as an option. Currently only implemented in the restore process. 2024-11-29 05:49:03 +01:00
Carl Johnsen 87747b5580 The metadata SQL query is now prepared in the fileprocessor 2024-11-29 05:46:17 +01:00
Carl Johnsen 079598c2e8 Added database function for getting files alongside symlinks to restore 2024-11-29 03:41:41 +01:00
Carl Johnsen 6aa202fbea Already present files were incorrectly truncated 2024-11-29 03:38:53 +01:00
Carl Johnsen deb98e3322 CreateDirectoryStructure wouldn't always create the target folders, if the file database doesn't list the folder. Empty files should create the directory, if it doesn't exist. 2024-11-28 10:43:51 +01:00
Carl Johnsen 9bcda7d6cf Symlinks are now handled correctly 2024-11-28 09:22:09 +01:00
Carl Johnsen 1ecb6e7c35 Fixed the metadata block query so that it finds the correct blocks 2024-11-27 11:28:27 +01:00
Carl Johnsen 4128ea3ff3 Empty files can also not have a data block associated 2024-11-27 11:27:55 +01:00
Carl Johnsen 7aa9db533e Added preliminary metadata restoration 2024-11-26 20:01:19 +01:00
Carl Johnsen 164b2a212c Already restored blocks are now tracked according to the cache tracking strategy as well 2024-11-25 17:32:56 +01:00
Carl Johnsen 952aebf685 VolumeDownloader handles when an eviction requests relates to a volume that is not in cache 2024-11-25 17:32:00 +01:00
Carl Johnsen baaa17a738 Make cache_max and eviction_ratio fields readonly 2024-11-25 17:23:42 +01:00
Carl Johnsen 823b896da1 Removed redundant TODOs 2024-11-25 15:23:59 +01:00
Carl Johnsen c26c54c5f7 Fixed naming inconsistencies in the new restore options 2024-11-25 15:17:10 +01:00
Carl Johnsen 7c79535572 VolumeDownloader now deletes temporary volumes from both cache and disk when they are no longer needed during restore. 2024-11-25 15:16:03 +01:00
Carl Johnsen 7ee174b6f8 Execute the blockcount check and decrement in a single SQL statement 2024-11-25 09:33:32 +01:00
Carl Johnsen 27c4f93af2 The FileProcessor bursts as much as possible by default 2024-11-25 08:53:27 +01:00
Carl Johnsen ebac24ce04 Rather than specifying multiple guids for a restore, use the one that the restore database has. 2024-11-25 08:52:51 +01:00
Carl Johnsen 5625c4c1ce Add configurable options for scaling the number of restore file processors, decryptors, and decompressors 2024-11-22 16:53:16 +01:00