Kenneth Skovhede
43d38efdd3
Fixed remaining warnings
2025-11-14 16:09:05 +01:00
Kenneth Skovhede
46428936c4
Various updates after the upgrade
2025-11-14 15:45:19 +01:00
Kenneth Skovhede
1ea74a3c63
Updated to .NET10
2025-11-14 15:05:39 +01:00
Kenneth Skovhede
012aeed7de
Add dynamic streaming toggle
...
This PR adds a dynamic property so a backend can signal if it supports streaming, based on the settings.
This is currently used for the File backend, so that toggling `--use-move-for-put` will disable streaming on the backend instead of relying on the `--disable-streaming-transfers` flag.
2025-11-03 12:48:37 +01:00
Carl Johnsen
96921bc5fb
RestoreHandler now sets up the DeadLock timer alongside the restore process network
2025-10-28 14:44:13 +01:00
Carl Johnsen
dafb38443c
FileProcessor id (used for debugging) started at 1, rather than 0.
2025-10-28 14:43:35 +01:00
Carl Johnsen
91009297c1
Fixed typo
2025-10-28 14:42:58 +01:00
Carl Johnsen
435792c8fa
BlockManager now uses times reported by the DeadlockTimer as deadlock detection threshold instead of a hardcoded 5 minutes
2025-10-28 14:42:43 +01:00
Carl Johnsen
4e5d015e0c
Added the deadlock timer task
2025-10-28 14:41:58 +01:00
Carl Johnsen
ccfcffcc1e
Added internal timers to keep track of maximum processing times of the restore processes
2025-10-28 14:41:39 +01:00
Kenneth Skovhede
777bc06842
Report remote filename on hash errors
...
This PR changes the reported filename to use the remote filename instead of the random temporary filename that has little value to the user as the file is deleted immediately after the error is raised.
2025-10-27 11:37:10 +01:00
Kenneth Skovhede
8224d84f57
Reverted to use the shorter name --asynchronous-upload-limit and then added an alias for --asynchronous-concurrent-upload-limit.
2025-10-16 13:25:34 +02:00
Kenneth Skovhede
55c19c8752
Removed more references to the unused option
2025-10-16 13:21:40 +02:00
Kenneth Skovhede
d3b15f136e
Removed unused option
...
The option `asynchronous-upload-limit` was not used, and has been removed.
2025-10-14 21:30:02 +02:00
Kenneth Skovhede and GitHub
9507b57f1c
Merge pull request #6534 from carljohnsen/performance/restore-lock-reduce
...
Performance/restore lock reduce
2025-10-03 11:46:00 +02:00
Carl Johnsen
91fc698314
The block manager only adds a block to the cache, if it's needed at a later point.
2025-10-03 09:50:08 +02:00
Carl Johnsen
2aa2103f33
Changed BlockManager to only use the cache if the max size is > 0
2025-10-03 09:26:38 +02:00
Carl Johnsen
aafe192766
Added docstring
2025-10-03 09:26:08 +02:00
Carl Johnsen
a1e1afce28
Changed the default volume cache hint to be volumesize * 100
2025-10-03 08:50:35 +02:00
Carl Johnsen
842cc00979
Added profiling stopwatch for DataBlock instantiation in volume decompressor
2025-10-03 08:32:29 +02:00
Carl Johnsen
dff4b52066
Moved instantiation of the block wrapper to the volume decompressor
2025-10-03 08:32:20 +02:00
Carl Johnsen
8f056d5db9
Added profiling stopwatch for volume wrapper in the volume decryptor
2025-10-03 08:25:56 +02:00
Carl Johnsen
cd4e23efc4
Moved instantiation of the volume wrapper to the volume decryptor
2025-10-03 08:25:46 +02:00
Carl Johnsen
2ad6e088ac
Added another profiling stopwatch to blockmanager
2025-10-03 08:21:42 +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
1f0a4617a6
The reader has to be disposed before disposing the file
2025-10-03 07:50:19 +02:00
Carl Johnsen
34cfd47ceb
Added docstrings
2025-10-03 07:50:03 +02:00
Carl Johnsen
1f44b5e01b
Removed old ack profiling from the block manager
2025-10-03 07:49:06 +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
03db41e392
FileProcessor had an incorrect call to logging
2025-10-02 21:36:07 +02:00
Carl Johnsen
4f2bfe1fa0
Reduced very verbose logging on errors in BlockManager
2025-10-02 21:35:35 +02:00
Carl Johnsen
4951500db4
The BlockManager wouldn't always correctly retire its request channel
2025-10-02 21:34:44 +02:00
Carl Johnsen
91f783f80f
Handled compact being called multiple times due to eventual consistency of the cache count.
2025-10-02 16:53:30 +02:00
Carl Johnsen
12e5383f2f
Instead of exploiting the garbage collector to return the arrays from the pool, we use an internal reference counter for each datablock
2025-10-02 16:21:03 +02:00
Carl Johnsen
b475eeb387
Moved formatting of the explicit log messages to occur later to alleviate having to do that when that log level is disabled, which should decrease wasted processing.
2025-09-30 21:38:04 +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
90a54a177e
Added an internal timer to the VolumeDecryptor
2025-09-30 13:11:16 +02:00
Carl Johnsen
531471e3b5
Reordered the final checks in the SleepableDictionary and lifted some warnings to errors.
2025-09-30 13:06:20 +02:00
Carl Johnsen
6402e1b4a7
Fixed deadlock when the restore-channel-size option was set to 0
2025-09-30 13:00:52 +02:00
Carl Johnsen
2b4928cf46
Automatic formatting
2025-09-30 12:59:47 +02:00
Carl Johnsen
638b725e82
MemoryCache callback wasn't attached to the entries properly
2025-09-30 12:59:34 +02:00
Carl Johnsen
f3f2d93a6e
Renamed internal variable to reflect it's a private variable
2025-09-30 12:59:15 +02:00
Carl Johnsen
3b9f0c04a0
MemoryCache.Count is expensive and is used for diagnostics.
...
Instead we keep our own counter to check for when to compact the cache.
2025-09-30 12:58:39 +02:00
Carl Johnsen
4826b800a5
Instead of keeping track of how many that are actively accessing the arrays, we now have an object wrapping the array.
...
When this object is collected by the garbage collector, the array is returned to the array pool. This moves the responsibility to the garbage collector leading to a more thread-safe approach with less locks, at the cost of potentially using memory for a longer time until the garbage collector picks up the objects.
2025-09-30 12:55:13 +02:00
Carl Johnsen
e90013f41f
Added and handled nullable to all of the restore processes
2025-09-30 12:46:08 +02:00
Kenneth Skovhede
b0bd9c121f
Fixed reading the size of files in restore
...
This significantly speeds up the restore file listing speed.
2025-09-26 13:54:06 +02:00
Kenneth Skovhede
39cca5c24f
Simplified calling code to not rely on extension methods
2025-09-25 11:33:56 +02:00
Kenneth Skovhede
230d80642a
Fixed invariant formatting helpers
...
This fixes an issue with formatting for invariant values that was caused by incrorrect function overload selection.
To avoid future issues, the two similar functions have been renamed to clarify what they are working for.
2025-09-25 11:14:54 +02:00