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