Well, now that you mention it…Yes! It does mean that not all of the agents need all of the files, strictly speaking, and the restore will succeed in a somewhat silly way that I had not considered.
As long as you start the restore from a host with all of the files,
fdbrestore will place the initial restore task info into the database. From there, there is one more task that needs access to all of the files to function. That task will run on a random backup agent, and if that backup agent cannot see all of the files then it will fail, and retry again on another random backup agent. Eventually it will run on the host that can see all the files and will complete.
After that first task, there will be many restore tasks, each doing a part of the restore in parallel. Each restore task points to a specific file to read, by its file path. The tasks are assigned to random agents as well, and if a particular host does not have the file needed by a particular task then it will fail and be randomly retried on another backup agent. This will continue until it runs on a backup agent that does have the file at which point it will succeed.
So yes, it turns out that technically all of the backup agents do not need access to all of the files, one will suffice, there will just be a lot of random retries until all of the tasks find what they’re looking for.
Thanks for trying this, I found it quite amusing!