SlideShare a Scribd company logo
1 of 39
Download to read offline
Versioning system in
Graspeo
Nikita Grishin, EPFL, 17.04.2014
Supervised by Andrii Vozniuk
Motivation
Every document management system
has the versioning.
Motivation
Every document management system
has the versioning.
Various resources from various locations
need to be tracked back
Motivation
Every document management system
has the versioning.
Various resources from various locations
need to be tracked back
The collaborators system implies the
recovery system
State of the art
• Mercurial, SVN/CVS!
• On document change, only modifications are saved
• Easy to track modifications
• Difficult to recover old versions
• Git
• On file change, new version of file is created
• Easy to recover old versions
• Difficult to track modifications
• Mercurial, SVN/CVS!
• On document change, only modifications are saved
• Easy to track modifications
• Difficult to recover old versions
• Git
• On file change, new version of file is created
• Pointer to the last version
• Easy to recover old versions
• Difficult to track modifications
Only for text documents.
Works very bad with media content.
• Snapshots: new version of document for each
modification
• Snapshots: new version of document for each
modification
• Recovering the older version: creates a copy of the
asked version on the top of the last version
• Snapshots: new version of document for each
modification
• Recovering the older version: creates a copy of the
asked version on the top of the last version
• Some old versions can be removed by Google in
case of lack of space
• Snapshots: new version of document for each
modification
• Recovering the older version: creates a copy of the
asked version on the top of the last version
• Some old versions can be removed by Google in
case of lack of space
• Only users that can edit the document can see its
modification history
• Hard drive snapshots.
Apple TimeMachine
• Hard drive snapshots.
• Keeps:
• Hourly backups for last 24 hours
Apple TimeMachine
• Hard drive snapshots.
• Keeps:
• Hourly backups for last 24 hours
• Daily backups for the past month
Apple TimeMachine
• Hard drive snapshots.
• Keeps:
• Hourly backups for last 24 hours
• Daily backups for the past month
• Weekly backups until your backup drive is full.
Apple TimeMachine
• Hard drive snapshots.
• Keeps:
• Hourly backups for last 24 hours
• Daily backups for the past month
• Weekly backups until your backup drive is full.
• When your backup drive is full, TimeMachine
removes old backups to free space.
Apple TimeMachine
Graspeo versioning system solution
Versioning
Graspeo versioning system solution
• Snapshots: new version of item for
each modification
Versioning
Graspeo versioning system solution
• Snapshots: new version of item for
each modification
• Any modification in Space
generates a new version of Space
and of all its parents
Versioning
Graspeo versioning system solution
• Snapshots: new version of item for
each modification
• Any modification in Space
generates a new version of Space
and of all its parents
• Each file modification creates a new
version of that file
Versioning
Graspeo versioning system solution
• Snapshots: new version of item for
each modification
• Any modification in Space
generates a new version of Space
and of all its parents
• Each file modification creates a new
version of that file
• File or Space removing affects only
space. The file itself stays in the
database
Versioning
Graspeo versioning system solution
• Snapshots: new version of item for
each modification
• Any modification in Space
generates a new version of Space
and of all its parents
• Each file modification creates a new
version of that file
• File or Space removing affects only
space. The file itself stays in the
database
• Recover the old version remains to
clone it and put on the top of versions
tree
Versioning
How does it work?
• Each item has two new fields: originId and version
How does it work?
• Each item has two new fields: originId and version
• OriginId: id of the first version of item. It is used to track the
item modifications during the time. Is the same for all versions of
the item
How does it work?
• Each item has two new fields: originId and version
• OriginId: id of the first version of item. It is used to track the
item modifications during the time. Is the same for all versions of
the item
• Version: Value indicating the version number of the item.
How does it work?
• Each item has two new fields: originId and version
• OriginId: id of the first version of item. It is used to track the
item modifications during the time. Is the same for all versions of
the item
• Version: Value indicating the version number of the item.
• Path value represents now the logical path: it is constructed of
originId values (not id).
How does it work?
• Each item has two new fields: originId and version
• OriginId: id of the first version of item. It is used to track the
item modifications during the time. Is the same for all versions of
the item
• Version: Value indicating the version number of the item.
• Path value represents now the logical path: it is constructed of
originId values (not id).
• So now a query on path will return all children of all versions of
the item.
How does it work?
• New version of item contains the same data that the previous
version, except id and version fields:
• id field is completely new and unique
• version field is incremented by 1
How does it work?
• New version of item contains the same data that the previous
version, except id and version fields:
• id field is completely new and unique
• version field is incremented by 1
• Parents are updated recursively:
• New version of parent is created
• Subitems array of parent’s new version document is updated in
order to remove an id of previous version child
How does it work?
• GridFS is implemented in order to store all files versions.
• Every version of each file is stored in GridFS with its unique id
• Resource document has a field gfsId that references to the file
in GridFS
How does it work?
• GridFS is implemented in order to store all files versions.
• Every version of each file is stored in GridFS with its unique id
• Resource document has a field gfsId that references to the file
in GridFS
• On the file system, only the last version of file is present.
• When file’s version is updated, old version is removed from file
system storage and is replaced by the new version from GridFS
• Motivation: BitTorrent Sync, performance
Future Plans
Semester project deadline: 06.06.2014
Future Plans
• Implement versioning while removing items (end of this week)
Future Plans
• Implement versioning while removing items (end of this week)
• Create API for versions recovery (end of April)
Future Plans
• Implement versioning while removing items (end of this week)
• Create API for versions recovery (end of April)
• Create a front-end for versioning
Future Plans
• Implement versioning while removing items (end of this week)
• Create API for versions recovery (end of April)
• Create a front-end for versioning
• Implement versioning while using BTSync
Thank you for your attention
Questions

More Related Content

Viewers also liked

Advanced motion controls azbh6a8
Advanced motion controls azbh6a8Advanced motion controls azbh6a8
Advanced motion controls azbh6a8Electromate
 
Formas discursivas del teatro
Formas discursivas del teatroFormas discursivas del teatro
Formas discursivas del teatrofranciska_cid
 
Cartaz minicursos 2[1]
Cartaz minicursos 2[1]Cartaz minicursos 2[1]
Cartaz minicursos 2[1]quipibid
 
Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010rachelrutti
 
Presentation economy islam
Presentation economy islamPresentation economy islam
Presentation economy islamUNISZA
 
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014Kerry Dirks MCPS MS
 
Circular no. 00042 del 30 de mayo de 2014 foro educativo 2014
Circular no. 00042 del 30 de mayo de 2014   foro educativo 2014Circular no. 00042 del 30 de mayo de 2014   foro educativo 2014
Circular no. 00042 del 30 de mayo de 2014 foro educativo 2014Carmen Alexandra Reyes Peña
 
Uganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_frUganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_fricgfmconference
 
Corporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of givingCorporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of givingRavija Lakhia
 

Viewers also liked (20)

Advanced motion controls azbh6a8
Advanced motion controls azbh6a8Advanced motion controls azbh6a8
Advanced motion controls azbh6a8
 
Formas discursivas del teatro
Formas discursivas del teatroFormas discursivas del teatro
Formas discursivas del teatro
 
Cartaz minicursos 2[1]
Cartaz minicursos 2[1]Cartaz minicursos 2[1]
Cartaz minicursos 2[1]
 
How To Help For Awareness Week
How To  Help For  Awareness  WeekHow To  Help For  Awareness  Week
How To Help For Awareness Week
 
Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010
 
Presentation economy islam
Presentation economy islamPresentation economy islam
Presentation economy islam
 
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014
Leverage Collaboration for Innovation - Omaha SharePoint Saturday 2014
 
Results of questionnaire
Results of questionnaireResults of questionnaire
Results of questionnaire
 
Circular no. 00042 del 30 de mayo de 2014 foro educativo 2014
Circular no. 00042 del 30 de mayo de 2014   foro educativo 2014Circular no. 00042 del 30 de mayo de 2014   foro educativo 2014
Circular no. 00042 del 30 de mayo de 2014 foro educativo 2014
 
Repensar la Educación
Repensar la EducaciónRepensar la Educación
Repensar la Educación
 
Egiving getting started july
Egiving    getting started julyEgiving    getting started july
Egiving getting started july
 
17 ruby date time
17 ruby date time17 ruby date time
17 ruby date time
 
` How to wind up a sick company
` How to wind up a sick company ` How to wind up a sick company
` How to wind up a sick company
 
2 S E G O N
2 S E G O N2 S E G O N
2 S E G O N
 
Tarikhul khulafa
Tarikhul khulafaTarikhul khulafa
Tarikhul khulafa
 
Paying Attention
Paying AttentionPaying Attention
Paying Attention
 
Uganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_frUganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_fr
 
Sub cafae
Sub cafaeSub cafae
Sub cafae
 
Corporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of givingCorporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of giving
 
Película 1984
Película 1984Película 1984
Película 1984
 

Similar to Grasp(eo) versioning system

Source-it Version-contol & GIT - floating-lesson
Source-it Version-contol & GIT - floating-lessonSource-it Version-contol & GIT - floating-lesson
Source-it Version-contol & GIT - floating-lessonYoram Michaeli
 
Smau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro LocatiSmau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro LocatiSMAU
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Ahmed El-Arabawy
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITPouriaQashqai1
 
Artifacts management with DevOps
Artifacts management with DevOpsArtifacts management with DevOps
Artifacts management with DevOpsChen-Tien Tsai
 
Install shield
Install shieldInstall shield
Install shieldSoubow Su
 
Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)Ciro Miranda
 
Software Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseSoftware Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseHüseyin Ergin
 
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...NETWAYS
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHubVikram SV
 
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014Michael Miles
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to AnsibleCisco DevNet
 
Clean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyPuppet
 

Similar to Grasp(eo) versioning system (20)

Source-it Version-contol & GIT - floating-lesson
Source-it Version-contol & GIT - floating-lessonSource-it Version-contol & GIT - floating-lesson
Source-it Version-contol & GIT - floating-lesson
 
Smau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro LocatiSmau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro Locati
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
 
Git
GitGit
Git
 
Git basics
Git basicsGit basics
Git basics
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
 
Artifacts management with DevOps
Artifacts management with DevOpsArtifacts management with DevOps
Artifacts management with DevOps
 
Install shield
Install shieldInstall shield
Install shield
 
git (1).pptx
git (1).pptxgit (1).pptx
git (1).pptx
 
Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)
 
Software Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseSoftware Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and Eclipse
 
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...
OSMC 2009 | Nagios Plugins: New features and future projects by Thomas Guyot-...
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014
How to R.E.A.D: Steps for how to select the correct module @NEWDCamp 2014
 
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
 
GIT In Detail
GIT In DetailGIT In Detail
GIT In Detail
 
Clean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::Tidy
 

Recently uploaded

Media Representation of Women- Gender Studies.pptx
Media Representation of Women- Gender Studies.pptxMedia Representation of Women- Gender Studies.pptx
Media Representation of Women- Gender Studies.pptxAshik Mondal
 
MalluProgrammers. Careeradvice.Webinarppt.pdf
MalluProgrammers. Careeradvice.Webinarppt.pdfMalluProgrammers. Careeradvice.Webinarppt.pdf
MalluProgrammers. Careeradvice.Webinarppt.pdfgouravsarath45
 
GRACE ANDREWS the future of podcasting.pdf
GRACE ANDREWS the future of podcasting.pdfGRACE ANDREWS the future of podcasting.pdf
GRACE ANDREWS the future of podcasting.pdfDIGGIT
 
ONPAGE SEO types presentation, presented by botany science
ONPAGE SEO types presentation, presented by botany scienceONPAGE SEO types presentation, presented by botany science
ONPAGE SEO types presentation, presented by botany sciencezoha951268
 
upinfifity best digital marketing agency in texas.pdf
upinfifity best digital marketing agency in texas.pdfupinfifity best digital marketing agency in texas.pdf
upinfifity best digital marketing agency in texas.pdfmuskangarage902
 
This is a test presentation to see if this works
This is a test presentation to see if this worksThis is a test presentation to see if this works
This is a test presentation to see if this worksjonnygharris
 
The Colossal Studio Events Packages.pdf
The Colossal Studio  Events Packages.pdfThe Colossal Studio  Events Packages.pdf
The Colossal Studio Events Packages.pdfshybree
 
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...mahreenmaher80
 
Maximize Your Pinterest Reach....................
Maximize Your Pinterest Reach....................Maximize Your Pinterest Reach....................
Maximize Your Pinterest Reach....................SocioCosmos
 
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uae
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, UaeAt-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uae
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uaemikemrmik
 
Boost Your Twitter Credibility...........
Boost Your Twitter Credibility...........Boost Your Twitter Credibility...........
Boost Your Twitter Credibility...........SocioCosmos
 
Maximizing Lead Potential A Deep Dive Into Online Review Strategies
Maximizing Lead Potential A Deep Dive Into Online Review StrategiesMaximizing Lead Potential A Deep Dive Into Online Review Strategies
Maximizing Lead Potential A Deep Dive Into Online Review StrategiesOutreach Digital Marketing
 
Maximize Your Twitter Engagement........
Maximize Your Twitter Engagement........Maximize Your Twitter Engagement........
Maximize Your Twitter Engagement........SocioCosmos
 

Recently uploaded (13)

Media Representation of Women- Gender Studies.pptx
Media Representation of Women- Gender Studies.pptxMedia Representation of Women- Gender Studies.pptx
Media Representation of Women- Gender Studies.pptx
 
MalluProgrammers. Careeradvice.Webinarppt.pdf
MalluProgrammers. Careeradvice.Webinarppt.pdfMalluProgrammers. Careeradvice.Webinarppt.pdf
MalluProgrammers. Careeradvice.Webinarppt.pdf
 
GRACE ANDREWS the future of podcasting.pdf
GRACE ANDREWS the future of podcasting.pdfGRACE ANDREWS the future of podcasting.pdf
GRACE ANDREWS the future of podcasting.pdf
 
ONPAGE SEO types presentation, presented by botany science
ONPAGE SEO types presentation, presented by botany scienceONPAGE SEO types presentation, presented by botany science
ONPAGE SEO types presentation, presented by botany science
 
upinfifity best digital marketing agency in texas.pdf
upinfifity best digital marketing agency in texas.pdfupinfifity best digital marketing agency in texas.pdf
upinfifity best digital marketing agency in texas.pdf
 
This is a test presentation to see if this works
This is a test presentation to see if this worksThis is a test presentation to see if this works
This is a test presentation to see if this works
 
The Colossal Studio Events Packages.pdf
The Colossal Studio  Events Packages.pdfThe Colossal Studio  Events Packages.pdf
The Colossal Studio Events Packages.pdf
 
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...
Uk-NO1 Black magic/kala jadu,manpasand shadi in lahore,karachi rawalpindi isl...
 
Maximize Your Pinterest Reach....................
Maximize Your Pinterest Reach....................Maximize Your Pinterest Reach....................
Maximize Your Pinterest Reach....................
 
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uae
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, UaeAt-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uae
At-Sharjah ☎ +971554789724__**☎ Abortion Pills for sale in Sharjah, Uae
 
Boost Your Twitter Credibility...........
Boost Your Twitter Credibility...........Boost Your Twitter Credibility...........
Boost Your Twitter Credibility...........
 
Maximizing Lead Potential A Deep Dive Into Online Review Strategies
Maximizing Lead Potential A Deep Dive Into Online Review StrategiesMaximizing Lead Potential A Deep Dive Into Online Review Strategies
Maximizing Lead Potential A Deep Dive Into Online Review Strategies
 
Maximize Your Twitter Engagement........
Maximize Your Twitter Engagement........Maximize Your Twitter Engagement........
Maximize Your Twitter Engagement........
 

Grasp(eo) versioning system

  • 1. Versioning system in Graspeo Nikita Grishin, EPFL, 17.04.2014 Supervised by Andrii Vozniuk
  • 2.
  • 3. Motivation Every document management system has the versioning.
  • 4. Motivation Every document management system has the versioning. Various resources from various locations need to be tracked back
  • 5. Motivation Every document management system has the versioning. Various resources from various locations need to be tracked back The collaborators system implies the recovery system
  • 7. • Mercurial, SVN/CVS! • On document change, only modifications are saved • Easy to track modifications • Difficult to recover old versions • Git • On file change, new version of file is created • Easy to recover old versions • Difficult to track modifications
  • 8. • Mercurial, SVN/CVS! • On document change, only modifications are saved • Easy to track modifications • Difficult to recover old versions • Git • On file change, new version of file is created • Pointer to the last version • Easy to recover old versions • Difficult to track modifications Only for text documents. Works very bad with media content.
  • 9. • Snapshots: new version of document for each modification
  • 10. • Snapshots: new version of document for each modification • Recovering the older version: creates a copy of the asked version on the top of the last version
  • 11. • Snapshots: new version of document for each modification • Recovering the older version: creates a copy of the asked version on the top of the last version • Some old versions can be removed by Google in case of lack of space
  • 12. • Snapshots: new version of document for each modification • Recovering the older version: creates a copy of the asked version on the top of the last version • Some old versions can be removed by Google in case of lack of space • Only users that can edit the document can see its modification history
  • 13. • Hard drive snapshots. Apple TimeMachine
  • 14. • Hard drive snapshots. • Keeps: • Hourly backups for last 24 hours Apple TimeMachine
  • 15. • Hard drive snapshots. • Keeps: • Hourly backups for last 24 hours • Daily backups for the past month Apple TimeMachine
  • 16. • Hard drive snapshots. • Keeps: • Hourly backups for last 24 hours • Daily backups for the past month • Weekly backups until your backup drive is full. Apple TimeMachine
  • 17. • Hard drive snapshots. • Keeps: • Hourly backups for last 24 hours • Daily backups for the past month • Weekly backups until your backup drive is full. • When your backup drive is full, TimeMachine removes old backups to free space. Apple TimeMachine
  • 18. Graspeo versioning system solution Versioning
  • 19. Graspeo versioning system solution • Snapshots: new version of item for each modification Versioning
  • 20. Graspeo versioning system solution • Snapshots: new version of item for each modification • Any modification in Space generates a new version of Space and of all its parents Versioning
  • 21. Graspeo versioning system solution • Snapshots: new version of item for each modification • Any modification in Space generates a new version of Space and of all its parents • Each file modification creates a new version of that file Versioning
  • 22. Graspeo versioning system solution • Snapshots: new version of item for each modification • Any modification in Space generates a new version of Space and of all its parents • Each file modification creates a new version of that file • File or Space removing affects only space. The file itself stays in the database Versioning
  • 23. Graspeo versioning system solution • Snapshots: new version of item for each modification • Any modification in Space generates a new version of Space and of all its parents • Each file modification creates a new version of that file • File or Space removing affects only space. The file itself stays in the database • Recover the old version remains to clone it and put on the top of versions tree Versioning
  • 24.
  • 25. How does it work? • Each item has two new fields: originId and version
  • 26. How does it work? • Each item has two new fields: originId and version • OriginId: id of the first version of item. It is used to track the item modifications during the time. Is the same for all versions of the item
  • 27. How does it work? • Each item has two new fields: originId and version • OriginId: id of the first version of item. It is used to track the item modifications during the time. Is the same for all versions of the item • Version: Value indicating the version number of the item.
  • 28. How does it work? • Each item has two new fields: originId and version • OriginId: id of the first version of item. It is used to track the item modifications during the time. Is the same for all versions of the item • Version: Value indicating the version number of the item. • Path value represents now the logical path: it is constructed of originId values (not id).
  • 29. How does it work? • Each item has two new fields: originId and version • OriginId: id of the first version of item. It is used to track the item modifications during the time. Is the same for all versions of the item • Version: Value indicating the version number of the item. • Path value represents now the logical path: it is constructed of originId values (not id). • So now a query on path will return all children of all versions of the item.
  • 30. How does it work? • New version of item contains the same data that the previous version, except id and version fields: • id field is completely new and unique • version field is incremented by 1
  • 31. How does it work? • New version of item contains the same data that the previous version, except id and version fields: • id field is completely new and unique • version field is incremented by 1 • Parents are updated recursively: • New version of parent is created • Subitems array of parent’s new version document is updated in order to remove an id of previous version child
  • 32. How does it work? • GridFS is implemented in order to store all files versions. • Every version of each file is stored in GridFS with its unique id • Resource document has a field gfsId that references to the file in GridFS
  • 33. How does it work? • GridFS is implemented in order to store all files versions. • Every version of each file is stored in GridFS with its unique id • Resource document has a field gfsId that references to the file in GridFS • On the file system, only the last version of file is present. • When file’s version is updated, old version is removed from file system storage and is replaced by the new version from GridFS • Motivation: BitTorrent Sync, performance
  • 34. Future Plans Semester project deadline: 06.06.2014
  • 35. Future Plans • Implement versioning while removing items (end of this week)
  • 36. Future Plans • Implement versioning while removing items (end of this week) • Create API for versions recovery (end of April)
  • 37. Future Plans • Implement versioning while removing items (end of this week) • Create API for versions recovery (end of April) • Create a front-end for versioning
  • 38. Future Plans • Implement versioning while removing items (end of this week) • Create API for versions recovery (end of April) • Create a front-end for versioning • Implement versioning while using BTSync
  • 39. Thank you for your attention Questions