Carl Johnsen
cd4e23efc4
Moved instantiation of the volume wrapper to the volume decryptor
2025-10-03 08:25:46 +02:00
Carl Johnsen
0c1643568e
Volume cache now counts the size of the volumes, not just the count of the volumes
2025-10-03 08:11:04 +02:00
Carl Johnsen
48e5a57654
Adapted volume cache eviction to only evict on a download response
2025-10-03 07:51:24 +02:00
Carl Johnsen
42cba24bd9
Removed old decompress in flight code
2025-10-03 07:50:48 +02:00
Carl Johnsen
d03259d687
Redacted the ack channel in the restore process network in favor of a referenced counted volume wrapper that'll dispose the reader and tempfile once safe.
2025-10-02 21:40:40 +02:00
Carl Johnsen
36ce099e6d
Added additional toggle-able debug prints to the restore flow
2025-09-30 21:18:28 +02:00
Carl Johnsen
3e10b8446a
Changed the wording of the new volume cache parameter
2025-08-14 17:20:58 +02:00
Carl Johnsen
1a7321556e
Changed the decompression ack channel type to long
2025-08-10 20:59:33 +02:00
Carl Johnsen
0fd3e515da
Ensured that an actively read volume in the volumemanager cannot be disposed
2025-08-10 20:55:02 +02:00
Carl Johnsen
dfc92c71b1
Added more rendevouz points to allow for aborting during deadlocks
2025-08-10 20:54:13 +02:00
Carl Johnsen
f85727bf3a
Added explicit debug printing
2025-08-10 20:34:26 +02:00
Carl Johnsen
fd94ae9f08
Added additional explicit logging
2025-08-10 07:41:29 +02:00
Carl Johnsen
537ee9c4cb
Final eviction should always happen, and some caching is always needed in the new restore flow
2025-08-10 07:39:22 +02:00
Carl Johnsen
e8f7244ac2
A log message was a warning, when it shouldn't be.
2025-08-08 15:45:17 +02:00
Carl Johnsen
8087823ee5
Moved internal VolumeManager functionality to functions
2025-08-08 15:45:00 +02:00
Carl Johnsen
f54ccbcca6
Made VolumeManager nullable
2025-08-08 15:44:23 +02:00
Carl Johnsen
9d9dd95003
Made some of the debug logging more differentiable
2025-08-08 14:11:21 +02:00
Carl Johnsen
2ad6a9e730
Reverted ReadFromEither back to two channels alongside an explicit flushing of the ack channel to prevent deadlock.
2025-08-08 14:08:41 +02:00
Carl Johnsen
8dfe328ea8
Updated the ReadFromEither workaround to include another channel, and to be prioritized based on the order of the channels.
2025-08-08 12:42:50 +02:00
Carl Johnsen
0f950b2102
Updated BlockManager.VolumeConsumer and VolumeManager to ack the decompression requests.
...
Also made VolumeManager keep track of which volumes are safe to dispose.
2025-08-08 12:41:17 +02:00
Kenneth Skovhede
f592029c3d
Fixed rare deadlock on restore failure
2025-05-28 14:35:00 +02:00
Carl Johnsen
1650399fe6
Added explicit logging to trace a block request through the new restore network
2025-03-03 17:33:20 +01:00
Carl Johnsen
ef2c7e5187
Keeping a reference to the temp file ensures it is not caught by the garbage collector, which in turn disposes the temp file, in turn in turn deleting it.
2025-03-03 17:18:12 +01:00
Carl Johnsen
d7b8d13bc0
VolumeDecryptor and VolumeManager were unnecessarily sending around and keeping track of disposed encrypted volumes
2025-02-25 16:39:28 +01:00
Carl Johnsen
a0d5096ebc
Reworked the "Volume loop" of the restore network to handle Backends themselves, rather than using the BackendManager.
...
This allows for tighter control over which process performs which action, allowing them more easily to run in parallel.
2025-02-18 09:25:20 +01:00
Carl Johnsen
17e2c0b9cf
Added ConfigureAwait(false)
2025-02-18 09:20:28 +01:00
Carl Johnsen
93756cd74b
Whitespace fixes
2025-02-18 09:17:08 +01:00
Kenneth Skovhede and GitHub
d99f74ed94
Rewrite the backend manager. ( #5896 )
...
* Rewrite the backend manager.
This creates a new more logic backend manager that handles all backend operations.
For each top-level operation, there is now a single backend manager instance that is passed to sub-commands.
The internals of the backend manager are now rewritten to use async logic instead of threading.
The design uses a single task runner that dispatches operations and honors concurrent settings and limits from one place.
The logic for each operation has been moved into a separate files/classes to make it easier to understand each operation.
This fixes #5804
* Fixed a few issues with not awaiting tasks
* Fixed not creating empty databases
* Fixed an issue with hashes not being recorded on download
* Reworked the download logic to avoid attempting to decrypt the file if it has been modified.
* Review fixes
* Renamed db collector to better reflect the purpose.
* Review fixes
2025-01-28 08:54:50 +01:00
Kenneth Skovhede and GitHub
9464caf622
Feature/update license 2025 ( #5851 )
...
* Fixed some minor whitespace issues
* Updated all copyright to 2025
2025-01-07 09:40:39 +01:00
Carl Johnsen
7f37c49292
Changed the VolumeManager to use a single input channel of type object, and then switching on the message received, rather than ReadFromAny().
...
Because it seems like the amount of readers in queue for one of the channels became much higher (70) than the actual number of readers (1).
2024-12-10 04:12:33 +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
99adcdd17c
Added license, docstrings and logging to VolumeManager
2024-12-02 20:41:56 +01:00
Carl Johnsen
e7b2338214
Renamed VolumeCache to VolumeManager for consistency
2024-12-02 15:43:52 +01:00