Ubuntu One file sync infrastructure changes

Registered by John Lenton

Infrastructure changes inside Ubuntu One during maverick, and what they mean (proxy server support, improve performance, file-level sharing, file and folder tracking, undelete, generations)

Blueprint information

John Lenton
Needs approval
Lucio Torre
Series goal:
Accepted for maverick
Milestone target:
Started by
John Lenton

Related branches



Work items for maverick-alpha-2:
[rodrigo-moya] Investigate using libsoup bindings via introspection to get proxy support for free to use it in ubuntuone-login and desktopcouch: DONE
[rodrigo-moya] Add proxy support to u1-preferences: DONE

Work items for maverick-alpha-3:
[cmiller] Add proxy support to desktopcouch: POSTPONED
[statik] Contract couch.io to implement HTTP(S) proxy support in CouchDB: POSTPONED
[lucio.torre] Generations - 1. Lot of small changes for delta and generation messages (protocol): DONE
[jdobrien] Generations - 3. Don't send some notifications to clients with gens cap. (server): DONE
[verterok] Generations - 4. Delta messages (server): DONE
[verterok] Generations - 5. Generations on operations replies (server): DONE
[facundo] Generations - 6. New notification from the server: volume with new gen! (protocol): DONE
[lucio.torre] Generations - 7. Add new notifications to Notifier (server): DONE
[facundo] Generations - 8. Add notification broadcasting to server (server): DONE
[verterok] Generations - 9. Add generations support to VM (client): DONE
[facundo] Generations - 10. Add generations support to FSM (client): DONE
[facundo] Generations - 11. AQ get delta, and AQ handle NewGeneration notif and insert event (client): DONE
[verterok] Generations - 12. VolumeManager ask for volumes; eliminate get_root query (client): DONE
[verterok] Generations - 12.1. Add ActionQueue.query_volumes and VolumesQuery command: DONE
[verterok] Generations 12.2 volumes/server rescan and get root id from volumes query result: DONE
[facundo] Generations - 13. Rescan from scratch (client): DONE
[verterok] Generations - 14. DBus method (and u1sdtool support) to 'rescan from scratch' (client): DONE
[facundo] Generations - 15. Handle generation that comes after succesful command execution (client): DONE
[lucio.torre] Generations - 16. Code in Sync to apply delta (client): DONE
[facundo] Generations - 17. Handle dirty situation in delta applying (client): DONE
[verterok] Generations - 18. DBus method (and u1sdtool support) to get 'broken' nodes (client): DONE
[facundo] Generations - 19. Generations capability (client): DONE
[facundo] Generations - 21. Improve Integration tests infrastructure (server): DONE
[verterok] Generations - 22. Implement Integ tests that uses pre-generation clients (server): DONE
[facundo] Generations - 23. Make all Integ tests to run also with both generation clients, and mixed clients (server): DONE
[] Generations - 24. Inform current free space in the Quota Exceeded error (server): TODO
[lucio.torre] Generations - 25. Make AQ.Upload to support Quota Exceeded when uploading (client): DONE
[facundo] Generations - 31. Handle SV_VOLUME_NEW_GENERATION and AQ_DELTA_NOT_POSSIBLE in VM: DONE
[verterok] Generations - 33. Rescan from scratch: DONE
[verterok] Generations - 35. VM should handle new root better: DONE
[nataliabidart] Confirm resumable uploads code currently existing in client works as expected: DONE
[jdobrien] Generations - Add Generation support to DAL: DONE
[alecu] Add proxy support to Tomboy: DONE


Proxy support for:
 * ubuntuone-login (oauth desktop)
 * ubuntuone-preferences
 * tomboy (?)
 * desktopcouch
 * couchdb (contracted from couch.io, may be deferred)
Everything else: chicharra :)


Misc Notes:

Resumable upload does not work as expected. Basically, uploads can not be resumed. The work needed to make them resumable is not clear but will surely involved client and server side fixes.
Lucio's team has this feature as a work item, but it's not committed to Maverick.


Work Items