D2VS A lightweight, distributed, differencing versioning system

Slides:



Advertisements
Similar presentations
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Advertisements

Implementing Tableau Server in an Enterprise Environment
The Top 10 Reasons Why Federated Can’t Succeed And Why it Will Anyway.
Prentice Hall, Database Systems Week 1 Introduction By Zekrullah Popal.
Chapter 1: The Database Environment
Authentication Cristian Solano. Cryptography is the science of using mathematics to encrypt and decrypt data. Public Key Cryptography –Problems with key.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
1 of 2 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Remote Unit Testing Brian Pruitt-Goddard Alex Riordan.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
Ch1: File Systems and Databases Hachim Haddouti
1 EMC Storage Plug-in for Oracle Enterprise Manager 12c Version Product Overview.
BUSINESS DRIVEN TECHNOLOGY
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Chapter 1 1 © Prentice Hall, 2002 Database Design Dr. Bijoy Bordoloi Introduction to Database Processing.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Chapter 1 1 © Prentice Hall, 2002 Database Design Dr. Bijoy Bordoloi Introduction to Database Processing.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
6-1 DATABASE FUNDAMENTALS Information is everywhere in an organization Information is stored in databases –Database – maintains information about various.
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
…using Git/Tortoise Git
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 1: The Database Environment Modern Database Management 9 th Edition Jeffrey A. Hoffer,
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
C6 Databases. 2 Traditional file environment Data Redundancy and Inconsistency: –Data redundancy: The presence of duplicate data in multiple data files.
CSE 219 Computer Science III CVS
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
My Workspace ELearning in Sakai Randy Graff, PhD HSC Training.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
MySQL and GRID status Gabriele Carcassi 9 September 2002.
Securing and Sharing Workbooks Lesson 11. The Review Tab Microsoft Excel provides several layers of security and protection that enable you to control.
ClearQuest XML Server with ClearCase Integration Northwest Rational User’s Group February 22, 2007 Frank Scholz Casey Stewart
 Companies of all branches  Local governments  Educational institutions (schools, universities)  Individuals.
Role of Router. The Router as a Perimeter Device  Usually the main function of a router is considered as the forwarding of packets between two network.
Presentation on Database management Submitted To: Prof: Rutvi Sarang Submitted By: Dharmishtha A. Baria Roll:No:1(sem-3)
Illinois Health Network The 14th Global Grid Forum Chicago, Illinois June 27, 2005.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Network and Server Basics. Learning Objectives After viewing this presentation, you will be able to: Understand the benefits of a client/server network.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Unit 4 – Technology literacy
Build and Test system for FairRoot
Smart Versioning: Get Relevant, Save Money
Information Systems and Network Engineering Laboratory II
Project Management: Messages
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
Maintaining Windows Server 2008 File Services
Version Control Systems
Client/Server Databases and the Oracle 10g Relational Database
Source Control Dr. Scott Schaefer.
Database Management:.
Open Source distributed document DB for an enterprise
SOFTWARE DESIGN AND ARCHITECTURE
Database Systems: Design, Implementation, and Management Tenth Edition
Advanced Security Architecture System Engineer Cisco: practice-questions.html.
Akshay Narayan git up to speed with RCS Akshay Narayan
The Top 10 Reasons Why Federated Can’t Succeed
Outline Overview Development Tools
File Systems and Databases
Design and Programming
Chapter 1: The Database Environment
Collaborative Text Editing
Chapter 1: The Database Environment
The Database Environment
Broadvine Support Portal
Metadata The metadata contains
OurSQL = MySQL + Blockchain
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management
Presentation transcript:

D2VS A lightweight, distributed, differencing versioning system Micah Brodsky, Jeff Tyrrill

Existing versioning systems Difficult to set up Tricky to learn to use Require a designated, trusted administrator Require centralized, shared storage Many require a centralized server application ==> Not well suited to small and informal projects

Our idea: A lightweight versioning system No server program at all No single user can screw everything up, by direct action, inaction, or disappearance Can keep the repository in shared storage, in private storage, or some of each, sending updates to all users Any user can back up the entire repository The storage mechanism can be changed with time

Our idea: A lightweight versioning system Smoothly handles files of diverse formats Should interface well with external differencing and merging tools and application features Simple commands and simple, friendly behaviors No "gotchas" Any change can undone Submitting inconsistent versions, forking, and joining are trivial operations Graphical tools to visualize the both the state of the repository and its history, including any forks and problems

How it works: Difference files All transactions are in the form of signed difference files Difference file format will be a carefully specified, published standard Easily supports third-party tools Specifies simultaneous changes to one or more files Uniquely identifies the state it's differencing from and the new state it produces (using hashes?) Signed by the user who submitted the changes No difference files ever need to be deleted Compact, compressed format

How it works Users submit their changes by dropping difference files into shared storage or flooding them to all users with using some existing messaging service (e.g. email) Graphical tools interpret the chains of difference files to produce a coherent view of the repository and its history Automatic, periodic checkpoints would be a good idea, however Inconsistent changes are automatically interpreted as forks Users who disagree with changes just ignore them and produce a fork Repository configuration is just another file in the repository (the "schema") and can be updated like everything else

Feasibility System's building blocks are all individually well established Versioning systems for hierarchical file stores, difference files, shared storage volumes, email enclosures, etc. Simplicity is a key driving factor The base of potential customers is large Individuals with personal projects, students' class projects, etc. Unofficial and unsupported corporate projects Non-programmers scared off by the complexity of existing versioning systems Risks: Will it be hard to make the system really intuitive to use? Will excessive complexity inevitably creep in? Unexpected, messy corner cases (involving schema changes, conflicting updates, changes at multiple levels in the hierarchy, …)?