Twincling DSwitch Project (completed)

tsnet's picture

 
 

Overview

  • Vision  Twincling (D)ataStore Switch module helps products switch their backend datastore, by transparently migrating the entire datasets from one Open Source database to another.
  • License  Apache Software License 2.0 (ASL 2.0)
  • Technology  Qt C++, SQLite, PostgreSQL, MySQL
  • Status Demo Source and Documentation available

 

Source

 

User Documentation

 

Action Items

  • Feature Requests
  • P1 Bugs 

 

Engineering

  • Specifications
    1. Introduction

        1.1 Purpose:
    The Software Requirement Specification document is meant to delineate the features of Database Switcher, so as to serve as a guide to the developers on one hand and a software validation document for the prospective client on the other.

        1.2 Scope:
    Database Switcher will allow the user to switch their datasets from one database to another. The databases and the schema that are in scope of DSwitch are:
    In Scope:
    i.    Databases
    a.    SQLite 2.8.17
    b.    SQLite 3.6.10
    c.    MySQL 5.0.51

    ii.    Schema
    a.    Tables
    b.    Virtual Tables
    c.    Triggers
    d.    Indexes
    e.    Views

        1.3 Definition, Acronyms and Abbreviation:
    DSwitch – Database Switcher module is called DSwitch.
    DB – Database.
    GUI – Graphical User Interface.
    TCP/IP - Transmission Control Protocol / Internet Protocol

        1.4 Overview:
    General description deals with product overview, product functions, user characteristics and general constraints. Specific requirements deal with external interface requirements, functional requirements, non-functional requirements and design constraints.
        

    2. General Description


        2.1 Product Overview:
    Database Switcher module helps products switch their backend data store, by transparently migrating the entire datasets from one Open Source database to another.

        2.2. Product Function
    The main function of DSwitch is to switch the supported schema and their associated data from the source database to the target database. The currently supported databases are MySQL 5.0.51, SQLite 2.8.17 & SQLite 3.6.10.

            2.3. User Characteristics
    User: The user should have the knowledge of
    a.    In MySQL 5.0.51,
    i.    Hostname
    ii.    Username
    iii.    Password

    b.    In Interim (PostgreSQL),
    i.        Username
    ii.    Password

    c.    In SQLite (2.8.17 & 3.6.10)
    i.    Location of the database.

        2.4.     General Constraints
    a.    Will work only in LINUX.
    b.    Available only in English.


    3. Specific Requirements


    3.1. External interface requirements
    3.1.1. User Interfaces
    DSwitch GUI – The GUI enables the user to switch their datasets. The GUI provides options for
    a.    Selecting their source DB  
    b.    Providing the required information to access the source DB
    c.    Providing the required information to access the interim DB
    d.    Selecting the target DB
    e.    Providing the required information to access the target DB.
    f.    Viewing the log.
    g.    Switching the datasets.

    3.1.2 Communications Protocols
    TCP/IP - All communication with the DB are done using TCP/IP.

    3.1.3 Assumption and Dependency
    PostgreSQL (7.*.* or 8.*.*)  is installed and configured in the system.

    3.1.4 Hardware Interfaces
    Mouse, Keyboard, Monitor
    3.1.5 Software Interfaces
    Linux, DSwitch GUI

    3.1.6 Database Requirements
    PostgreSQL (7.*.* or 8.*.*) required for storing the datasets from source database temporarily.

    3.2. Functional Requirements
    3.2.1     Switch DB: The user can switch their datasets by clicking on the “SWITCH” button in the GUI. It extends the functionality of one of the use cases depending on the selection of Source and Target DB by the user:
    a.    SQLite 2.8.17 to Target DB
    b.    SQLite 3.6.10 to Target DB
    c.    MySQL 5.0.51 to Target DB

    3.2.2     Check Log: The user can view the log of their switching process using the “LOG” button in the DSWitch GUI.

    3.2.3     SQLite 2.8.17 to Target DB: The user can switch datasets from their SQLite 2.8.17 to either SQLite 3.6.10 or MySQL 5.0.51 using DSwitch.

    3.2.4     SQLite 3.6.10 to Target DB: The user can switch datasets from their SQLite 3.6.10 to either SQLite 2.8.17 or MySQL 5.0.51 using DSwitch.

    3.2.5     MySQL 5.0.51 to Target DB: The user can switch datasets from their MySQL 5.0.51 to either SQLite 2.8.17 or SQLite 3.6.10 using DSwitch.


    3.3 Non-Functional Requirements
    3.3.1 Availability
    It is open source and available on the net.

    3.3.2 Performance Requirements
    a.    Extraction time is dependent on the database’s query performance.
    b.    A 1MB database can take up to 45-50 seconds.
    c.    A 10MB database can take up to 8-9 minutes.

    3.4 Design Constraints
    a.    DSwitch is only in English.
    b.    Procedures and functions in MySQL 5.0.51 will be extracted but will not be switched as SQLite (2.8.17 & 3.6.10) does not support them.
    c.    CHECK (expr) are parsed in MySQL 5.0.51 but are not enforced.
    d.    FOREIGN KEYS are parsed in SQLite (2.8.17 & 3.6.10) but are not enforced.
    e.    Tables containing data types that are not supported in the target DB will be dropped and logged.
     
  • Roadmap
  • Drawing document
  • Design document
  • Test Plan document
  • Developer Guide
  • Minutes of Meeting (MoM)

 

Resources

Calendar of Events

 Calendar 

Clock

 World clock

Contact Us

 Contact Us

Mailing List

 Mailing List 

IRC #twincling

 #twincling

RSS Feed / Blog Roll

 Blog Roll 

Subversion Repository

 twincling/dswitch

Issue Tracker

 Issue Tracker

 

 

Comments

Post new comment

CAPTCHA
Thank you for using Captcha to prevent automated spam submissions.
2 + 2 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.