Commit Graph
262 Commits
Author SHA1 Message Date
Carl Johnsen f8f0fd39af Removed comments 2025-05-22 08:03:32 +02:00
Carl Johnsen 9c0f2ca980 LocalDatabase.Dispose() wasn't calling the database correctly with the ReusableTransaction 2025-05-22 08:01:45 +02:00
Carl Johnsen 2c408d795f LocalDatabase always starts a new ReusableTransaction 2025-05-22 08:01:16 +02:00
Carl Johnsen 58fc35e9fd Changed LocalDatabase.GetFilesetIDs to return an async enumerable, rather than a task containing an enumerable. 2025-05-21 15:56:59 +02:00
Carl Johnsen edf1d93f56 Removed transactions as arguments as part of the transition to implicit transactions 2025-05-21 10:08:06 +02:00
Carl Johnsen d11b4e58e7 Reworked the factory construction chains to forward an instantiated object where applicable 2025-05-21 07:24:36 +02:00
Carl Johnsen 4ca147d0f1 More preliminary work towards implicit reusable transaction 2025-05-20 16:27:07 +02:00
Carl Johnsen 9c4eb5a222 FilteredFilenameTable.CreateAsync wasn't static 2025-05-20 08:26:32 +02:00
Carl Johnsen 3e3a9b5aa9 More SQL query restructuring 2025-05-20 06:07:45 +02:00
Carl Johnsen 88db9676b4 Restructured SQL queries in LocalDeleteDatabase and made everything async where applicable 2025-05-19 21:51:28 +02:00
Carl Johnsen f3f00faf8e Incorrectly called the synchronous version of a function 2025-05-19 15:45:31 +02:00
Carl Johnsen 973ba1ad9c Preliminary work on implicit (from an external view) transactions 2025-05-19 14:40:28 +02:00
Carl Johnsen ae12d63468 Changed TemporaryDbValueList to use factory construction and to be proper async. 2025-05-19 14:27:01 +02:00
Carl Johnsen 2dabf56c82 Additional SQL query whitespaces 2025-05-19 10:46:50 +02:00
Carl Johnsen cb4e9eb657 Made the LocalDatabase constructor protected to ensure that derived classes won't call the obsolete warning throwing constructor. 2025-05-19 06:40:18 +02:00
Carl Johnsen c380989aad Added a readonly property to LocalDatabase's transaction, so derived classes can access it 2025-05-16 15:50:11 +02:00
Carl Johnsen d9584c5acb Removed using introduced by IDE 2025-05-16 13:46:05 +02:00
Carl Johnsen 44c037e864 Implemented factory construction of LocalRestoreDatabase 2025-05-16 13:44:57 +02:00
Carl Johnsen 7b3163b851 Post-rebase fixes to LocalDatabase 2025-05-16 12:38:13 +02:00
Carl Johnsen 8230829266 Restructered all of the internal SQL queries for better readability.
Also changed most executions of the queries to a chain of method calls instead of a series of statements.
2025-05-16 12:23:46 +02:00
Carl Johnsen 029f560f64 Changed FilteredFilenameTable to a factory-like construction. 2025-05-16 12:22:57 +02:00
Carl Johnsen 1cb7c882f9 Removed calls to a helper function that's been moved to extension methods 2025-05-16 12:22:57 +02:00
Carl Johnsen 46aacbaa4b Restructured some of the queries in LocalDatabase for readability.
Also moved some of the calls to utility functions into the extension methods.
2025-05-16 12:21:56 +02:00
Carl Johnsen ca52d41347 Ensured more of the calls in LocalDatabase is calling the async versions 2025-05-16 12:21:56 +02:00
Carl Johnsen c060a214d8 Changed from using constructors to a factory-like pattern 2025-05-16 12:21:56 +02:00
Carl Johnsen ca4295b37c Found additional references to old way of accessing the database 2025-05-16 12:21:24 +02:00
Carl Johnsen bb504c1a44 Post master merge fixes to LocalDatabase 2025-05-16 12:21:24 +02:00
Carl Johnsen 6be2b3f5f5 Updated LocalDatabase to be async using Microsoft.Data.Sqlite 2025-05-16 12:21:24 +02:00
Carl Johnsen eeb16e3800 Removed whitespace 2025-05-16 11:49:57 +02:00
Kenneth Skovhede 0df9d67a6a Implemented handling for cases where the previous fileset ends up being empty and removed.
This fixes #5862
2025-05-14 23:36:48 +02:00
Kenneth Skovhede 547ad8437c Revert "Ignore filesets that are in the deleting state"
This reverts commit 513e67418d.
2025-05-11 15:39:27 +02:00
Kenneth Skovhede 513e67418d Ignore filesets that are in the deleting state 2025-05-10 22:12:45 +02:00
Kenneth Skovhede b947f7a7a0 Simplified a query 2025-05-09 11:12:45 +02:00
Kenneth Skovhede d22ce5370e Rewrote the repair for scenarios where remote files are missing.
This adds a number of additional features to the repair process so it can actually fully recover if all data is present.

Also added a several tests to ensure that the functionality works in multiple scenarios.

This fixes #5987
2025-05-08 10:31:38 +02:00
Kenneth Skovhede a3bc9b80ca Implemented 4 new list methods that are optimized for a single operation 2025-04-29 10:03:57 +02:00
Kenneth SkovhedeandGitHub 2837a105ee Merge pull request #6186 from duplicati/feature/add-sqlite-cache-value
Added option to set the SQLite page cache
2025-04-25 14:45:43 +02:00
Kenneth SkovhedeandGitHub 4515e13342 Merge pull request #6199 from duplicati/feature/add-downgrade-db-tool
Added a database downgrade tool
2025-04-25 14:43:59 +02:00
Kenneth SkovhedeandGitHub 1bbe04a782 Merge branch 'master' into feature/add-sqlite-cache-value 2025-04-25 13:58:24 +02:00
Kenneth Skovhede ba298df915 Added an upgrade command to the database tool 2025-04-25 12:30:03 +02:00
Kenneth Skovhede ebaf725598 Fixed a case where ArchiveTime could be created as nullable 2025-04-24 21:26:24 +02:00
Kenneth Skovhede 2ef04e43ee Simplified new ArchiveTime column to not allow null 2025-04-24 20:30:08 +02:00
Kenneth Skovhede 75f7582014 Fixed passing transaction to more places 2025-04-24 20:28:26 +02:00
Kenneth Skovhede 46f5efd178 Merge branch 'master' into feature/support-glacier-style-non-readable-files 2025-04-23 22:37:31 +02:00
Kenneth Skovhede e0475f3a9c Ignore any error on pragma optimize.
Previous logic would only catch SQLite exceptions, but it is just a performance thing, so we can ignore any errors (they are still logged)
2025-04-23 16:40:36 +02:00
Kenneth SkovhedeandGitHub 171eb1bb12 Merge branch 'master' into feature/add-sqlite-cache-value 2025-04-23 16:34:55 +02:00
Kenneth Skovhede 18477c572d Fixed some nullability warnings 2025-04-23 15:40:16 +02:00
Kenneth Skovhede 0a7a1cd689 Added option to set the SQLite page cache
This adds an extra option to allow setting the SQLite page cache size as a regular option.

Prior to this commit it was only possible to set the SQLite page cache size via environment variables.

The option to use environment variables is preserved, and as options from the environment variable are applied after the new setting, environment variables take precedence.

The default value for the new option is to use 1% of the system memory for the page cache. For the restore process, a connection per worker may be made which defaults to half the number of cores, so the maximum amount of memory is 1% * half the CPU cores.

This is just the upper limit, and SQLite may choose not to use all of it.

This fixes #6178
2025-04-22 14:26:46 +02:00
Kenneth Skovhede faede65d8d Changed transactions to use a wrapper that ensures a transaction is allocated. 2025-04-14 12:04:00 +02:00
Kenneth Skovhede 2060e9067d Clear databases fileset entries prior to recreate 2025-04-03 22:20:42 +02:00
Kenneth Skovhede 2006556778 Fixed some more nullable support in the database layer 2025-04-03 15:46:20 +02:00