Commit Graph
3095 Commits
Author SHA1 Message Date
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 SkovhedeandGitHub 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