FR - Sync without Zotero Server
At the moment, Sync stores the library and notes on the Zotero server, and the Files (if selected) in a separate WebDAV server. I would like to have all stored in the WebDAV (Library, Notes and Files), and nothing in the Zotero. Since the WebDAV mechanism is already there, it should not be complicated and increases privacy.
This is an old discussion that has not been active in a long time. Instead of commenting here, you should start a new discussion. If you think the content of this discussion is still relevant, you can link to it from your new discussion.
Upgrade Storage
The base WebDAV spec doesn't provide a way to do an efficient sync, which requires the server to tell the client what resources have changed or been deleted since the last sync. There's a draft proposal from Apple for an extension to WebDAV that would do exactly that, but it's only a draft. A WebDAV SEARCH extension was approved recently, but as far as I know it hasn't yet been widely implemented, and it isn't as suited to the task.
There are some hacky ways sync functionality could probably be implemented within the core WebDAV spec without completely overwhelming servers, but they would be anything but simple. They would also likely require the use of complex WebDAV functionality (locking) that we've avoided so far due to its not being available in some ("Class 1") WebDAV servers.
It can implement it using a changelog directory. Every client writes in the directory a file which contains what has changed since the last sync. The file name is both unique and timestamped (example: a string like "timestamp-random.changelog").
For another client to sync, it retrieves all changelogs since its last sync, and applies the changes. This can be determined by the timestamps in the filename.
Now, this directory can grow very big. This, can be solved allowing the clients to delete changelogs older than certain age. The lack of the self changelog file in the directory signals the client to perform a full sync (which, if it is that old, is what you want anyway). To further reduce the sync time, changelogs can be organized in subdirectories by date (or month, or N), limiting the amount of changelogs that will be in the same directory.
What do you think of this option?