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