Commit Graph
6075 Commits
Author SHA1 Message Date
Kenneth SkovhedeandGitHub b00a0ffbdb Merge pull request #6550 from duplicati/feature/add-power-mode-provider-selection
Add PowerMode provider selection
2025-10-20 08:25:29 +02:00
Kenneth Skovhede 8534c56581 Cleaned up comments 2025-10-18 14:04:35 +02:00
Kenneth Skovhede cbc327f09d Fixed not activating new powermode provider if using Windows older than 8.0 2025-10-18 13:59:48 +02:00
Kenneth Skovhede 379f05a568 New attempt, using powerprof callbacks 2025-10-18 13:51:16 +02:00
Kenneth Skovhede 3f4eb39a1c Re-implemented the powermode detection 2025-10-18 12:36:08 +02:00
Kenneth Skovhede 6ed507c0b3 Add option to limit modules
This PR adds the option to limit the available modules to just the set of specified choices.

If no option is set, all modules are available (default).
If the option is set, only those in the list are available (whitelisting).

The options are:
- `--allowed-backend-modules`
- `--allowed-encryption-modules`
- `--allowed-compression-modules`
2025-10-17 10:01:31 +02:00
Kenneth SkovhedeandGitHub 8e078b1c8c Merge pull request #6547 from duplicati/feature/remove-unused-upload-option
Folded `--asynchronous-upload-limit` and `--asynchronous-concurrent-upload-limit` options into one single option.
2025-10-16 18:56:23 +02: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 3269c87329 Add PowerMode provider selection
This PR adds settings to choose a Power Mode provider, which will detect if the system is in a paused/suspended state and avoid starting tasks while being suspended.

This currently only works for Windows, where the previous inplementation is named `NET` (for .NET) and the new mode is named `Native` and using the Windows documented approach with a hidden window that listens for `WM_POWERBROADCAST` messages.

The default is `Native` but can now also be disabled by choosing the `None` provider.
2025-10-15 17:58:24 +02:00
Kenneth Skovhede 67c3039814 Updated example script docs 2025-10-15 12:00:04 +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 15db2198a9 Add explicit status code check for B2 upload
This PR adds an explicit check for the status code for a B2 upload to ensure that non-success status codes are treated as failures.

Prior to this PR an upload would be considered a success if it has a failed status code but returns a valid JSON document with a `contentLength` property.
2025-10-10 18:48:34 +02:00
Kenneth Skovhede 1f41c7af12 Moved to JsonSignature library
Code that was previously embedded in th Duplicati.Library.Utility is now in its own library.
2025-10-08 10:11:57 +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
Kenneth Skovhede 9adca8b706 Downgrade mac package 2025-10-02 21:56:31 +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
Kenneth Skovhede 817390999f Updated uplink.NET packages to 2.14.3598.
This addresses #5793
2025-10-02 21:39:12 +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