Taking too long to list folders just to find and restore a handful of files

I’m left feeling like I made a mistake with choosing Duplicati. I am trying to check my backups via the webUI to make sure I am not forgetting about a file inside of a folder I accidentally deleted but it’s currently at 1 hour 39 minutes as of writing and still “Fetching path information …” I can only tell it’s still working by checking ‘htop’ and seeing CPU activity from duplicati. Is there anyway to speed this up?

System
Arch Linux
Samsung Chromebox 3 running coreboot
USB 3.0 card to pci-e for external drives
mSATA SSD 512GB internal storage
Intel(R) Core™ i5-2450M CPU
16GB RAM

Duplicati version 2.0.9.110

Hi @ShapeShifter499 that seems like an excessive amount of time for a simple search.

What size is the local database?
How many files (roughly) do you have in the database?

Is the hanging screen the initial one, or did you see some folders and then it crashed?
If you have a screenshot, that would help in pinpointing the bottleneck.

It eventually loads a list, but it is appearing to take multiple hours to sort through files.

In the WebUI, I go to home → job → operations → restore file. It will bring me to restore files but if I don’t remember the file exactly (name or otherwise) it could take a really long time to check each folder I knew it was in per backup (57 versions in my current list over two years).

Source:
    2.83 TB
Backup:
    11.23 TB / 57 Versions

One of the most recent successful backups in my logs shows this

Source Files
 Examined 3182996 (9.74 TB) Opened 57275 (1.01 GB) Added 57271 (1.01 GB) Modified 4 (0 bytes) Deleted 1131610 

edit: I updated the numbers from the correct successful backup

I should add that it’s taking hours to load the initial list and every time I click on a folder in the list.

If this were a bare metal file system and a simple file explorer, that action would take seconds, a minute at worst on most of my computers. I feel like if all I am doing is searching up files and names it should not take hours to do so. Only when I try to restore a file should it take any significant time.

Thanks, that gives an idea. The numbers only mentions what has been processed in that backup, not the full backup number of files (I would neeed NotProcessedFiles as well to calculate total = Examined + Not processed.

I agree that anything measured in “hours” is not useful for an interactive UI.
I have registered an issue for improving the search speed in general.

For your use-case (finding a missing file) we do not currently have a great UI for that.
What you can do instead, is use the “commandline” feature of the UI:

In there you can choose “find” as the operation, leave the “Target URL” as-is, and then type in the filename you are looking for, with */ before and * after. Finally set the option --all-versions=true to get a search across versions:

You can remove all options that are pre-filled, except dbpath as that is the database you are searching in.

I cannot promise it will be significantly faster, but at least you only have to run the command once.

What if I only know the folder? Can I get a one time list of all files under one folder across backups? Does that command work for folders?

Yes. The expression you type in as the “commandline arguments” is a filter expression, so it can match a folder as well (technically all the files in the folder are matched):

/path/to/folder/*

If you have a terminal, you may want to avoid the UI, and use the real commandline interface:

duplicati-cli find ssh://unused --dbpath=/path-from-ui.sqlite --all-versions '/path/to/folder/*'

I didn’t copy the whole log I’m sorry, this is what it shows under “complete log”. I have not ran a new backup in quite a while.

            {
  "DeletedFiles": 1131610,
  "DeletedFolders": 5744,
  "ModifiedFiles": 4,
  "ExaminedFiles": 3182996,
  "OpenedFiles": 57275,
  "AddedFiles": 57271,
  "SizeOfModifiedFiles": 0,
  "SizeOfAddedFiles": 1087854118,
  "SizeOfExaminedFiles": 10703749287223,
  "SizeOfOpenedFiles": 1088104874,
  "NotProcessedFiles": 0,
  "AddedFolders": 116,
  "TooLargeFiles": 0,
  "FilesWithError": 0,
  "ModifiedFolders": 0,
  "ModifiedSymlinks": 0,
  "AddedSymlinks": 0,
  "DeletedSymlinks": 0,
  "PartialBackup": false,
  "Dryrun": false,
  "MainOperation": "Backup",
  "CompactResults": {
    "DeletedFileCount": 0,
    "DownloadedFileCount": 0,
    "UploadedFileCount": 0,
    "DeletedFileSize": 0,
    "DownloadedFileSize": 0,
    "UploadedFileSize": 0,
    "Dryrun": false,
    "VacuumResults": null,
    "MainOperation": "Compact",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
    "EndTime": "2024-06-20T09:05:20.676338Z",
    "BeginTime": "2024-06-19T12:07:34.919392Z",
    "Duration": "20:57:45.7569460",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null,
    "BackendStatistics": {
      "RemoteCalls": 16,
      "BytesUploaded": 469401487,
      "BytesDownloaded": 410724359,
      "FilesUploaded": 11,
      "FilesDownloaded": 3,
      "FilesDeleted": 0,
      "FoldersCreated": 0,
      "RetryAttempts": 0,
      "UnknownFileSize": 0,
      "UnknownFileCount": 0,
      "KnownFileCount": 570668,
      "KnownFileSize": 12347552451148,
      "LastBackupDate": "2024-06-17T01:07:44-07:00",
      "BackupListCount": 56,
      "TotalQuotaSpace": 0,
      "FreeQuotaSpace": 0,
      "AssignedQuotaSpace": -1,
      "ReportedQuotaError": false,
      "ReportedQuotaWarning": false,
      "MainOperation": "Backup",
      "ParsedResult": "Success",
      "Interrupted": false,
      "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
      "EndTime": "0001-01-01T00:00:00",
      "BeginTime": "2024-06-17T08:07:43.801464Z",
      "Duration": "00:00:00",
      "MessagesActualLength": 0,
      "WarningsActualLength": 0,
      "ErrorsActualLength": 0,
      "Messages": null,
      "Warnings": null,
      "Errors": null
    }
  },
  "VacuumResults": null,
  "DeleteResults": {
    "DeletedSetsActualLength": 0,
    "DeletedSets": [],
    "Dryrun": false,
    "MainOperation": "Delete",
    "CompactResults": {
      "DeletedFileCount": 0,
      "DownloadedFileCount": 0,
      "UploadedFileCount": 0,
      "DeletedFileSize": 0,
      "DownloadedFileSize": 0,
      "UploadedFileSize": 0,
      "Dryrun": false,
      "VacuumResults": null,
      "MainOperation": "Compact",
      "ParsedResult": "Success",
      "Interrupted": false,
      "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
      "EndTime": "2024-06-20T09:05:20.676338Z",
      "BeginTime": "2024-06-19T12:07:34.919392Z",
      "Duration": "20:57:45.7569460",
      "MessagesActualLength": 0,
      "WarningsActualLength": 0,
      "ErrorsActualLength": 0,
      "Messages": null,
      "Warnings": null,
      "Errors": null,
      "BackendStatistics": {
        "RemoteCalls": 16,
        "BytesUploaded": 469401487,
        "BytesDownloaded": 410724359,
        "FilesUploaded": 11,
        "FilesDownloaded": 3,
        "FilesDeleted": 0,
        "FoldersCreated": 0,
        "RetryAttempts": 0,
        "UnknownFileSize": 0,
        "UnknownFileCount": 0,
        "KnownFileCount": 570668,
        "KnownFileSize": 12347552451148,
        "LastBackupDate": "2024-06-17T01:07:44-07:00",
        "BackupListCount": 56,
        "TotalQuotaSpace": 0,
        "FreeQuotaSpace": 0,
        "AssignedQuotaSpace": -1,
        "ReportedQuotaError": false,
        "ReportedQuotaWarning": false,
        "MainOperation": "Backup",
        "ParsedResult": "Success",
        "Interrupted": false,
        "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
        "EndTime": "0001-01-01T00:00:00",
        "BeginTime": "2024-06-17T08:07:43.801464Z",
        "Duration": "00:00:00",
        "MessagesActualLength": 0,
        "WarningsActualLength": 0,
        "ErrorsActualLength": 0,
        "Messages": null,
        "Warnings": null,
        "Errors": null
      }
    },
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
    "EndTime": "2024-06-20T09:05:20.677162Z",
    "BeginTime": "2024-06-19T10:57:58.770902Z",
    "Duration": "22:07:21.9062600",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null,
    "BackendStatistics": {
      "RemoteCalls": 16,
      "BytesUploaded": 469401487,
      "BytesDownloaded": 410724359,
      "FilesUploaded": 11,
      "FilesDownloaded": 3,
      "FilesDeleted": 0,
      "FoldersCreated": 0,
      "RetryAttempts": 0,
      "UnknownFileSize": 0,
      "UnknownFileCount": 0,
      "KnownFileCount": 570668,
      "KnownFileSize": 12347552451148,
      "LastBackupDate": "2024-06-17T01:07:44-07:00",
      "BackupListCount": 56,
      "TotalQuotaSpace": 0,
      "FreeQuotaSpace": 0,
      "AssignedQuotaSpace": -1,
      "ReportedQuotaError": false,
      "ReportedQuotaWarning": false,
      "MainOperation": "Backup",
      "ParsedResult": "Success",
      "Interrupted": false,
      "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
      "EndTime": "0001-01-01T00:00:00",
      "BeginTime": "2024-06-17T08:07:43.801464Z",
      "Duration": "00:00:00",
      "MessagesActualLength": 0,
      "WarningsActualLength": 0,
      "ErrorsActualLength": 0,
      "Messages": null,
      "Warnings": null,
      "Errors": null
    }
  },
  "RepairResults": null,
  "TestResults": {
    "MainOperation": "Test",
    "VerificationsActualLength": 3,
    "Verifications": [
      {
        "Key": "duplicati-20240603T142900Z.dlist.zip.aes",
        "Value": []
      },
      {
        "Key": "duplicati-i31b7abbee7f64989bfe3a996f3bf8a95.dindex.zip.aes",
        "Value": []
      },
      {
        "Key": "duplicati-b569743ad33cb4ab2865ad9d61bf96afd.dblock.zip.aes",
        "Value": []
      }
    ],
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
    "EndTime": "2024-06-20T09:12:25.026201Z",
    "BeginTime": "2024-06-20T09:09:44.900716Z",
    "Duration": "00:02:40.1254850",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null,
    "BackendStatistics": {
      "RemoteCalls": 16,
      "BytesUploaded": 469401487,
      "BytesDownloaded": 410724359,
      "FilesUploaded": 11,
      "FilesDownloaded": 3,
      "FilesDeleted": 0,
      "FoldersCreated": 0,
      "RetryAttempts": 0,
      "UnknownFileSize": 0,
      "UnknownFileCount": 0,
      "KnownFileCount": 570668,
      "KnownFileSize": 12347552451148,
      "LastBackupDate": "2024-06-17T01:07:44-07:00",
      "BackupListCount": 56,
      "TotalQuotaSpace": 0,
      "FreeQuotaSpace": 0,
      "AssignedQuotaSpace": -1,
      "ReportedQuotaError": false,
      "ReportedQuotaWarning": false,
      "MainOperation": "Backup",
      "ParsedResult": "Success",
      "Interrupted": false,
      "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
      "EndTime": "0001-01-01T00:00:00",
      "BeginTime": "2024-06-17T08:07:43.801464Z",
      "Duration": "00:00:00",
      "MessagesActualLength": 0,
      "WarningsActualLength": 0,
      "ErrorsActualLength": 0,
      "Messages": null,
      "Warnings": null,
      "Errors": null
    }
  },
  "ParsedResult": "Success",
  "Interrupted": false,
  "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
  "EndTime": "2024-06-20T09:12:25.522335Z",
  "BeginTime": "2024-06-17T08:07:43.801461Z",
  "Duration": "3.01:04:41.7208740",
  "MessagesActualLength": 41,
  "WarningsActualLength": 0,
  "ErrorsActualLength": 0,
  "Messages": [
    "2024-06-17 01:07:44 -07 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started",
    "2024-06-17 12:53:36 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2024-06-17 12:56:31 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  (557.28 KB)",
    "2024-06-18 04:03:55 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b067db446e59441698790177510783f9d.dblock.zip.aes (40.00 MB)",
    "2024-06-18 04:04:33 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b067db446e59441698790177510783f9d.dblock.zip.aes (40.00 MB)",
    "2024-06-18 04:04:42 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i9c0005282af849ee9480243a98b3c982.dindex.zip.aes (1,006.14 KB)",
    "2024-06-18 04:04:44 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i9c0005282af849ee9480243a98b3c982.dindex.zip.aes (1,006.14 KB)",
    "2024-06-18 04:44:49 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-be7391861dc7948cdba5ae72a2d6939ee.dblock.zip.aes (40.00 MB)",
    "2024-06-18 04:45:27 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-be7391861dc7948cdba5ae72a2d6939ee.dblock.zip.aes (40.00 MB)",
    "2024-06-18 04:45:36 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i6aef5fba198c4625861f98236ad549e1.dindex.zip.aes (1.13 MB)",
    "2024-06-18 04:45:38 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i6aef5fba198c4625861f98236ad549e1.dindex.zip.aes (1.13 MB)",
    "2024-06-19 01:51:54 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b2e4ddfc5520d4cc9845c7b7034968c96.dblock.zip.aes (44.82 MB)",
    "2024-06-19 01:51:59 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b223f044c61fd45b69b747084f640e24c.dblock.zip.aes (43.08 MB)",
    "2024-06-19 01:52:52 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b2e4ddfc5520d4cc9845c7b7034968c96.dblock.zip.aes (44.82 MB)",
    "2024-06-19 01:52:57 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-ib496d78cb6fc4a75a2f409dca925404c.dindex.zip.aes (789.42 KB)",
    "2024-06-19 01:52:59 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-ib496d78cb6fc4a75a2f409dca925404c.dindex.zip.aes (789.42 KB)",
    "2024-06-19 01:53:01 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b223f044c61fd45b69b747084f640e24c.dblock.zip.aes (43.08 MB)",
    "2024-06-19 01:53:02 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i1131d6aab45b4431a7560acd69a89085.dindex.zip.aes (954.58 KB)",
    "2024-06-19 01:53:04 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i1131d6aab45b4431a7560acd69a89085.dindex.zip.aes (954.58 KB)",
    "2024-06-19 02:14:11 -07 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b038a1b62287d476999da7256fe9b12d1.dblock.zip.aes (558.73 KB)"
  ],
  "Warnings": [],
  "Errors": [],
  "BackendStatistics": {
    "RemoteCalls": 16,
    "BytesUploaded": 469401487,
    "BytesDownloaded": 410724359,
    "FilesUploaded": 11,
    "FilesDownloaded": 3,
    "FilesDeleted": 0,
    "FoldersCreated": 0,
    "RetryAttempts": 0,
    "UnknownFileSize": 0,
    "UnknownFileCount": 0,
    "KnownFileCount": 570668,
    "KnownFileSize": 12347552451148,
    "LastBackupDate": "2024-06-17T01:07:44-07:00",
    "BackupListCount": 56,
    "TotalQuotaSpace": 0,
    "FreeQuotaSpace": 0,
    "AssignedQuotaSpace": -1,
    "ReportedQuotaError": false,
    "ReportedQuotaWarning": false,
    "MainOperation": "Backup",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.0.7.103 (2.0.7.103_canary_2024-04-19)",
    "EndTime": "0001-01-01T00:00:00",
    "BeginTime": "2024-06-17T08:07:43.801464Z",
    "Duration": "00:00:00",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null
  }
}

Arh, that number was 0, so the search is done with ~3million files + folders.
Thanks, that makes it easier to set up a measuring experiment for speeding up the query.