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
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
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
3e10b8446a
Changed the wording of the new volume cache parameter
2025-08-14 17:20:58 +02:00
Carl Johnsen
1a7321556e
Changed the decompression ack channel type to long
2025-08-10 20:59:33 +02:00
Carl Johnsen
4091d8bbc0
Set the buffer size of the ack channel to allow for enough space for all possible in flight decompression requests
2025-08-10 20:56:55 +02:00
Carl Johnsen
0fd3e515da
Ensured that an actively read volume in the volumemanager cannot be disposed
2025-08-10 20:55:02 +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
5129958f4f
Changed the restore channels to use a constructor to avoid static variables
2025-08-10 20:50:02 +02:00
Carl Johnsen
f85727bf3a
Added explicit debug printing
2025-08-10 20:34:26 +02:00
Carl Johnsen
fd94ae9f08
Added additional explicit logging
2025-08-10 07:41:29 +02:00
Carl Johnsen
537ee9c4cb
Final eviction should always happen, and some caching is always needed in the new restore flow
2025-08-10 07:39:22 +02:00
Carl Johnsen
e8f7244ac2
A log message was a warning, when it shouldn't be.
2025-08-08 15:45:17 +02:00
Carl Johnsen
8087823ee5
Moved internal VolumeManager functionality to functions
2025-08-08 15:45:00 +02:00
Carl Johnsen
f54ccbcca6
Made VolumeManager nullable
2025-08-08 15:44:23 +02:00
Carl Johnsen
9d9dd95003
Made some of the debug logging more differentiable
2025-08-08 14:11:21 +02:00
Carl Johnsen
149c22a9b8
Added the new timer in the volume consumer to the profiling output.
2025-08-08 14:10:04 +02:00
Carl Johnsen
2ad6a9e730
Reverted ReadFromEither back to two channels alongside an explicit flushing of the ack channel to prevent deadlock.
2025-08-08 14:08:41 +02:00
Carl Johnsen
8dfe328ea8
Updated the ReadFromEither workaround to include another channel, and to be prioritized based on the order of the channels.
2025-08-08 12:42:50 +02:00