Semi-lazy File-sharing
worked on by:
Karl Held
Outline
At the moment, Saros sharing is project-based, which is to say the smallest unit users may synchronise is a whole project. While this has it advantages, and we wish to retain this capability, it can be rather time-consuming and unnecessary for people who wish to conduct "quick" sessions. It would therefore be advantageous if Saros had the capability to synchronise at the file level also.
There are a number of very important design decisions regarding such a capability. For example, sharing only certain files poses more problems when using a statically-typed language than a dynamically-typed one. Our own proposal is that Saros should share files in a semi-lazy fashion, sharing files in the background, but prioritising some over others.
This work provides candidates with the opportunity for very interesting and deep analysis of Saros behaviour and will require careful reasoning regarding design decisions.
Milestones and Planning
Milestone no. |
Past |
|
Date |
Goals |
accomplished |
1 |
|
1-2weeks |
07. - 20.03.2011 |
Einarbeitung/Vorarbeit |
erreicht |
2 |
|
1-2weeks |
21. - 03.04.2011 |
wissenschaftliches Vorgehen klären |
erreicht |
3 |
|
6-8weeks |
04.04. - 16.06.2011 |
Konzepte für Lösungsansätze entwickeln und evaluieren |
erreicht |
4 |
|
8-10weeks |
17.06. - 20.08.2011 |
Lösungsansätze Umsetzen und Testen |
in Arbeit |
5 |
|
3-4weeks |
03. - 26.08.2011 |
Probleme ermitteln und lösen |
erreicht |
6 |
|
2-3weeks |
27.08 - 16.09.2011 |
Fertigstellung der Masterarbeit |
erreicht |
Iteration Outline Partial Sharing
Iteration no. |
Past |
|
Goals |
accomplished |
1 |
|
1-2 weeks |
Partial Sharing without existing Session (Projects/Files) |
erreicht |
2 |
|
1-2 weeks |
Partial Sharing without existing Session (Projects/Files/Folders) |
erreicht |
3 |
|
1-2 weeks |
Partial Sharing without existing Session starting from Project Explorer Selection |
erreicht |
4 |
|
1 week |
Partial Sharing with existing Session (add to Session) |
erreicht |
5 |
|
2-3 weeks |
Partial Sharing with existing Session (Consistency Mngmt.) |
erreicht |
Iteration Outline "Semi-Lazy" Sharing
Iteration no. |
Past |
|
Goals |
accomplished |
1 |
|
4-6 weeks |
Lazy Sharing in partiell geshareten Projekten |
erreicht |
2 |
|
3-4 weeks |
Lazy Sharing in komplett geshareten Projekten |
erreicht |
3 |
|
2-3 weeks |
Lazy Sharing während Projektsynchronisation |
erreicht |
4 |
|
4 weeks |
activating Background Sync |
verworfen |
5 |
|
2 weeks |
Bottom up Sync |
verworfen |
Weekly Status
Weeks 1 + 2 (CW 10 - 12)
Activities
- Orientierung in Code und Struktur
- Besprechung der Masterarbeit/Aufgabe
- Formalien
Results
Next Steps
Problems
Weeks 3 + 4 (CW 12 - 14)
Activities
- UseCases
- Meilensteinplan
- wissenschaftliche Vorgehensweise klären
- LaTex Dokument für Masterarbeit
- Review
Results
- UseCases
- Meilensteinplan
- Projektplan
Next Steps
- Konzeptionierung
- Iterationsplanung
- Antrittsvortrag
Problems
Week 5 (CW 15)
Activities
- Planung von Itertionen
- Implementierung am Partial Sharing
- Antrittsvortrag
Results
- Konzept für Partial Sharing
- beginnende Implementierung Partial Sharing
- Iterationsplanung Partial Sharing
Next Steps
- weitere Implementierung
- weitere Iterationsplanung
Problems
Week 6 + 7 (CW 16 - 18)
Activities
- Implementierung am Partial Sharing
- verschiedene Bugs aus dem Bugtracker fixen
- manuelles Testen
Results
- verbessertes Partial Sharing / Baum in Wizard
Next Steps
Problems
- Inconsistenzen bei der Erzeugung, dem Löschen und dem Verschieben von Dateien
Week 8 + 9 (CW 18 - 20)
Activities
- Patch vom Partial Sharing publizieren
- Änderungs und Verbesserungsvorschläge umsetzen
- verschiedene Bugs aus dem Bugtracker fixen
- erstes Design für Lazy Sharing überlegen
Results
- stabiles Partial Sharing ohne Inconsistenzprobleme
- Lazy Sharing Blockdiagramm
Next Steps
- Partial Sharing beenden und Lazy Sharing Konzept erstellen
Problems
Week 10 + 11 (CW 20 - 22)
Activities
- Partial Sharing Feature auf aktuellen Trunk anpassen
- Lazy Sharing Feature anfangen zu implementieren
- verschiedene Bugs aus dem Bugtracker fixen
Results
- verfeinertes Lazy Sharing Blockdiagramm
Next Steps
Problems
Week 12 + 13 (CW 23 - 24)
Activities
- Ansatz für Lazy Sharing implementiert
- Änderungen am Partial Sharing
Results
- erster rudimentärer Ansatz für Lazy Sharing
Next Steps
Problems
Week 14 + 15 (CW 25 - 26)
Activities
- adapting partial sharing on some performance issues and a aditional review
- using FindBugs
- bug fixing
- thesis writing
- ATM role in release week
- reviewing
Results
Next Steps
Problems
Week 16 + 17 (CW 27 - 28)
Activities
- bug fixing
- work on scientific approach
- thesis writing
Results
Next Steps
Problems
Week 18 + 19 (CW 29 - 30)
Activities
- implementing the need based approach (in running session)
- minor bug fixing
- fixing presentation issue of partial sharing
Results
Next Steps
- work further on need based sync
Problems
- need based approach unreliable
Week 20 + 21 (CW 31 - 32)
Activities
- implementing the need based approach (during project negotiation)
- fixing follow mode
- thesis writing
Results
- better and reliable working follow mode
Next Steps
- work further on need based sync
Problems
Week 22 + 23 (CW 33 - 34)
Activities
- finishing the need based approach
- thesis writing
Results
- working need based approach
Next Steps
- thesis writing
- final bug fixes
Problems
Week 24 + 25 (CW 35 - 36)
Activities
- writing and error correcting on some chapters of thesis
- modifikations due to performance issues of need based sync
- bug fixing
Results
Next Steps
- printing thesis
- test writing
Problems
Week 26 - 30 (CW 37 - 41)
Activities
- printing the thesis paper
- STF tests writing for partial sharing and need based synchronisation
- smaller fixes on patch of need based sync
- preparation of final presentation
- smaller bugfixes
Results
Next Steps
Problems