CND68RemoteFastSync
Remote Fast Synchronization
Team
Dev: Vladimir Kvashin (VK; NB nick: vkvashin)
Lead: Maria Tishkova (MT; NB nick: mromashova)
Charter
- Make file synchronization between user workstation and remote host fast.
- Ease of set up (ideally no set up actions required from end user)
Goals
Non-metric goals:
- After user switches a project to use a remote host, and code model starts parsing the project, no broken #includes appear, at least with standard #includes (non-standard ones are important either, but this is an issue of remote discovery rather than fast sync).
Metrics:
- Build initial delay: delay after user presses "build" button and remote build starts.
- Build slowdown: the slowdown of the remote build in comparison with the command-line build of the same project on the same remote host
- Code model initial delay. In a situation when user adds a new host, while a project is already open - the delay between user switches the project to the newly created host and code model starts parsing the project.
- Code model first parse slowdown: a maximal slowdown of first project parsing, in comparison with parsing of the same project targeted to localhost. (The slowdown can be caused by the absence of necessary header files on remote machine).
Target values:
- For a fast network (for example, inside SPBDC local network):
- Build initial delay <= 10 seconds
- Build slowdown <= 10%
- Code model initial delay <= 10 seconds
- Code model slowdown <= 10%
- For a slow network (for example, when accessing SWAN via VPN from home)
- Build initial delay <= 15 seconds
- Build slowdown <= 15%
- Code model initial delay <= 15 seconds
- Code model slowdown <= 15%
Design
Simplified mode
There might be remote hosts that set up in a way fast synchronization can not be used. These should be relatively rare cases. For these cases, a simplified synchronization mode should be used.
Such cases should be detected automatically, and simplified sync mode should be activated automatically as well. So user has just two options: (1) file sharing and (2) secure copy
All materials concerning the simplified mode are moved to a separate page
Full-fledged mode
See a separate page
Test Plan
- Tests are based on JUnit, though probably won't be included into a standard suite.
- Test projects: CLucene, MySQL, ACE
Schedule
| Milestone | Date | Content |
|---|---|---|
| M0 | Already done | Setting goals and schedule |
| M1 | July 30 | Measurements for simplified mode |
| M2 | Already done | Simplified mode implementation |
| M3 | August, 5 | Technology investigations and prototyping for fast mode |
| M4 | August, 12 | Tests and measurements for fast mode |
| M5 | September, 6 | Fast mode implementation |
Status and test results
- M0 done
- M1 done, not yet ran automatically
- M2 done
- M3 in progress
- M4 not started
- M5 not started
Design specifications
in progress...
IssueZilla
#165633 Remote Fast Synchronization
No special Status Whiteboard keyword

