SlideShare a Scribd company logo
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 azbh6a8
Electromate
 
Formas discursivas del teatro
Formas discursivas del teatroFormas discursivas del teatro
Formas discursivas del teatro
franciska_cid
 
Cartaz minicursos 2[1]
Cartaz minicursos 2[1]Cartaz minicursos 2[1]
Cartaz minicursos 2[1]
quipibid
 
How To Help For Awareness Week
How To  Help For  Awareness  WeekHow To  Help For  Awareness  Week
How To Help For Awareness Week
Elizabeth Ouellette
 
Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010Rachel Rutti Resume 8 23-2010
Rachel Rutti Resume 8 23-2010
rachelrutti
 
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 2014
Kerry Dirks MCPS MS
 
Results of questionnaire
Results of questionnaireResults of questionnaire
Results of questionnaire
reikomatsumoto318
 
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
Carmen Alexandra Reyes Peña
 
Repensar la Educación
Repensar la EducaciónRepensar la Educación
Repensar la Educación
Sorcodrilo Guzman
 
Egiving getting started july
Egiving    getting started julyEgiving    getting started july
Egiving getting started july
ekspaymentsolutions
 
17 ruby date time
17 ruby date time17 ruby date time
17 ruby date time
Walker Maidana
 
` 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
Dr. Trilok Kumar Jain
 
2 S E G O N
2 S E G O N2 S E G O N
2 S E G O N
imma palahi
 
Tarikhul khulafa
Tarikhul khulafaTarikhul khulafa
Paying Attention
Paying AttentionPaying Attention
Paying Attention
Pimnipa Fashion-Monster
 
Uganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_frUganda budgettransparency tomhart_fr
Uganda budgettransparency tomhart_fr
icgfmconference
 
Sub cafae
Sub cafaeSub cafae
Sub cafae
vlordonez
 
Corporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of givingCorporate Philanthropy- Pleasure of giving
Corporate Philanthropy- Pleasure of giving
Ravija Lakhia
 
Película 1984
Película 1984Película 1984
Película 1984
Sorcodrilo Guzman
 

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-lesson
Yoram Michaeli
 
Smau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro LocatiSmau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro Locati
SMAU
 
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
 
Git
GitGit
Git basics
Git basicsGit basics
Git basics
Vijay Naik
 
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
PouriaQashqai1
 
Artifacts management with DevOps
Artifacts management with DevOpsArtifacts management with DevOps
Artifacts management with DevOps
Chen-Tien Tsai
 
Install shield
Install shieldInstall shield
Install shield
Soubow Su
 
git (1).pptx
git (1).pptxgit (1).pptx
git (1).pptx
gdfgdflgjlk
 
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 Eclipse
Hü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 Subversion
Samnang Chhun
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram 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 2014
Michael Miles
 
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...
12th International Conference on Digital Preservation (iPRES 2015)
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
Cisco DevNet
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
Cristian Lucchesi
 
GIT In Detail
GIT In DetailGIT In Detail
GIT In Detail
Haitham Raik
 
Clean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::Tidy
Puppet
 

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

Transportation_Channel_Investor_Presentation_April_2024_ Final .pdf
Transportation_Channel_Investor_Presentation_April_2024_ Final .pdfTransportation_Channel_Investor_Presentation_April_2024_ Final .pdf
Transportation_Channel_Investor_Presentation_April_2024_ Final .pdf
Matthewperry105
 
Maximize Your Twitch Potential!..........
Maximize Your Twitch Potential!..........Maximize Your Twitch Potential!..........
Maximize Your Twitch Potential!..........
SocioCosmos
 
UR BHATTI ACADEMY AND ONLINE COURSES.pdf
UR BHATTI ACADEMY AND ONLINE COURSES.pdfUR BHATTI ACADEMY AND ONLINE COURSES.pdf
UR BHATTI ACADEMY AND ONLINE COURSES.pdf
urbhattiacademy
 
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISMSTUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
AJHSSR Journal
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAMLORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
lorraineandreiamcidl
 
HMS Facebook Stories All V1 06092024.docx
HMS Facebook Stories All V1 06092024.docxHMS Facebook Stories All V1 06092024.docx
HMS Facebook Stories All V1 06092024.docx
Charles Bayless
 
Dominate Reddit Discussions.............
Dominate Reddit Discussions.............Dominate Reddit Discussions.............
Dominate Reddit Discussions.............
SocioCosmos
 
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
7lkkjxt
 
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
9u4xjk4w
 
Your LinkedIn Success Starts Here.......
Your LinkedIn Success Starts Here.......Your LinkedIn Success Starts Here.......
Your LinkedIn Success Starts Here.......
SocioCosmos
 
HOW TO USE FACEBOOK _ by Clarissa Credito
HOW TO USE FACEBOOK _ by Clarissa CreditoHOW TO USE FACEBOOK _ by Clarissa Credito
HOW TO USE FACEBOOK _ by Clarissa Credito
ClarissaAlanoCredito
 
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
ryxqoswi
 
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
Febless Hernane
 

Recently uploaded (13)

Transportation_Channel_Investor_Presentation_April_2024_ Final .pdf
Transportation_Channel_Investor_Presentation_April_2024_ Final .pdfTransportation_Channel_Investor_Presentation_April_2024_ Final .pdf
Transportation_Channel_Investor_Presentation_April_2024_ Final .pdf
 
Maximize Your Twitch Potential!..........
Maximize Your Twitch Potential!..........Maximize Your Twitch Potential!..........
Maximize Your Twitch Potential!..........
 
UR BHATTI ACADEMY AND ONLINE COURSES.pdf
UR BHATTI ACADEMY AND ONLINE COURSES.pdfUR BHATTI ACADEMY AND ONLINE COURSES.pdf
UR BHATTI ACADEMY AND ONLINE COURSES.pdf
 
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISMSTUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
STUDY ON THE DEVELOPMENT STRATEGY OF HUZHOU TOURISM
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAMLORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE TELEGRAM
 
HMS Facebook Stories All V1 06092024.docx
HMS Facebook Stories All V1 06092024.docxHMS Facebook Stories All V1 06092024.docx
HMS Facebook Stories All V1 06092024.docx
 
Dominate Reddit Discussions.............
Dominate Reddit Discussions.............Dominate Reddit Discussions.............
Dominate Reddit Discussions.............
 
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
原版制作(Hull毕业证书)赫尔大学毕业证Offer一模一样
 
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
快速办理(worcester毕业证书)伍斯特大学毕业证PDF成绩单一模一样
 
Your LinkedIn Success Starts Here.......
Your LinkedIn Success Starts Here.......Your LinkedIn Success Starts Here.......
Your LinkedIn Success Starts Here.......
 
HOW TO USE FACEBOOK _ by Clarissa Credito
HOW TO USE FACEBOOK _ by Clarissa CreditoHOW TO USE FACEBOOK _ by Clarissa Credito
HOW TO USE FACEBOOK _ by Clarissa Credito
 
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
快速办理(BCR毕业证书)加州大学河滨分校毕业证文凭证书一模一样
 
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE G-TEAMS BY: FEBLESS HERNANE
 

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