Carl Johnsen
03db41e392
FileProcessor had an incorrect call to logging
2025-10-02 21:36:07 +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
2b4928cf46
Automatic formatting
2025-09-30 12:59:47 +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
Carl Johnsen
8ad2111dee
I/O errors weren't properly thrown in the new restore flow
2025-09-01 14:00:13 +02:00
Kenneth Skovhede
4f524eff68
Fixed increment without lock
2025-08-15 10:29:15 +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
fa1c109ad3
Burst in Restore.FileProcessor has to be at least 1
2025-08-10 20:50:50 +02:00
Carl Johnsen
f85727bf3a
Added explicit debug printing
2025-08-10 20:34:26 +02:00
Carl Johnsen
44c8793eaa
Changed the cache evict flag in BlockRequest to be an enum, as there are now more than 2 types of block request
2025-08-08 12:38:08 +02:00
Carl Johnsen
31c5441bdb
Forwarded cancellation tokens, added some missing .ConfigureAwait() and added some missing docstrings
2025-06-19 11:04:09 +02:00
Carl Johnsen
3d11a05400
Added .ConfigureAwait(false) to all of the await statements
2025-06-12 08:34:29 +02:00
Carl Johnsen
806d3b512c
Fixed livelock in the new restore flow by changing from a spinlock to an awaitable task.
2025-05-23 15:48:24 +02:00
Carl Johnsen
85c645c7f1
Updated the internal processes of the reworked restore flow to use the new async database methods
2025-05-21 15:29:13 +02:00
Carl Johnsen
71a7225e96
Fixed typo in rendezvous
2025-03-24 20:31:00 +01:00
Carl Johnsen
f73d3390cd
The FileProcessor now works in two phases: first it restores the files, then they restore the folder metadata, unless specified otherwise.
2025-03-24 20:24:37 +01:00
Kenneth Skovhede
6f7f2757a9
Rewrote timeout monitoring
2025-03-10 10:22:34 +01:00
Carl Johnsen
ccd10f8ead
FileProcessor is now sending explicit copies of each request around.
2025-03-03 17:30:31 +01:00
Carl Johnsen
6ef151f4af
Cleaned up FileProcessor
2025-02-27 14:45:05 +01:00
Carl Johnsen
6873162002
Additional internal profiling resolution
2025-02-26 16:09:23 +01:00
Carl Johnsen
a49c66bcb5
Added caching of localrestoredatabase data
2025-02-25 17:42:30 +01:00
Carl Johnsen
bf3a26ffcd
Added more internal profiling timers to the FileProcessor to get more high-resolution profiling
2025-02-25 16:49:46 +01:00
Carl Johnsen
e773907eed
Changed from allocating a new byte[] buffer in the decompressor to use the Buffers.ArrayPool
2025-02-25 16:45:55 +01:00
Carl Johnsen
b86794791b
Reallocating byte[] buffer takes up too long time if done for each file
2025-02-25 16:35:46 +01:00
Carl Johnsen
17e2c0b9cf
Added ConfigureAwait(false)
2025-02-18 09:20:28 +01:00
Carl Johnsen
043b9230b5
VerifyLocalBlocks opened file in incorrect mode, and the target file may not exist.
2025-02-10 13:44:02 +01:00
Carl Johnsen
82019ea28e
Modified VerifyTargetBlocks to not evict block from cache. It is now handled outside, in case of file name retargeting when overwrite is false.
2025-02-10 13:42:27 +01:00
Carl Johnsen
0b3ff33716
Moved retire on exception to final, so regardless of how the FileProcessor exits, it retires the channels.
2025-02-10 12:38:24 +01:00
Carl Johnsen
3b9fc188e1
Retire block request and response on exception in FileProcessor
2025-02-10 12:34:44 +01:00
Carl Johnsen
259322f0d9
CopyOldTargetBlocksToNewTarget was made async
2025-02-10 12:34:16 +01:00
Carl Johnsen
6e2f8156f8
VerifyLocalBlocks should only perform checks when the target differs from the original.
2025-02-10 12:33:45 +01:00
Carl Johnsen
dbd3520d9c
Formatting
2025-02-10 12:18:16 +01:00
Kenneth Skovhede and GitHub
997891525a
Updated license-updater to update csproj files ( #5898 )
...
* Updated license-updater to update csproj files
* License updates
2025-01-22 21:04:19 +01:00
Carl Johnsen
fe7cb13fde
Fixed issue with stream not being open in the correct mode during restore
2025-01-17 12:27:05 +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
46b05b94ef
Limit file name conflict attempts to 100 and log an error if exceeded
2025-01-06 16:01:53 +01:00
Carl Johnsen
6f263ad874
Added a note about potential memory consumption of restores FileProcessor
2025-01-06 16:00:11 +01:00
Carl Johnsen
284b14b72f
Merge branch 'master' into bugfix/restore-overwrite
2025-01-06 14:43:03 +01:00
Carl Johnsen
88846251b1
Restoring a symlink that already exists triggers an overwrite of the file, which should count towards number of files restored.
2025-01-06 08:14:32 +01:00
Carl Johnsen
1bea0f3696
Restored empty files should count towards the restoration file count.
2025-01-05 12:46:08 +01:00
Carl Johnsen
4cd565d592
Added handling of already restored timestamp-retargeted files
2025-01-05 12:09:38 +01:00
Carl Johnsen
b759b4564d
Added docstrings to new functions
2025-01-05 12:09:04 +01:00
Carl Johnsen
eb64320a49
Changed the reporting of restored files to match the legacy restore's reporting.
2025-01-05 11:51:52 +01:00
Carl Johnsen
637bfcefc8
Forgot to check whether the file exists
2025-01-05 11:25:19 +01:00
Carl Johnsen
eba477c271
Added handling of the 'overwrite' option in the new restore flow
2025-01-05 10:44:08 +01:00
Carl Johnsen
f76bf90e68
Added additional dry run logging
2025-01-05 10:43:23 +01:00
Carl Johnsen
8e92754efd
VerifyLocalBlocks now keeps track of internally verified blocks for logging
2025-01-05 10:43:01 +01:00
Carl Johnsen
be99f03bac
VerifyLocalBlocks wasn't respecting dry run properly
2025-01-05 10:41:33 +01:00