Git Product home page Git Product logo

adv-db-project's Introduction

RepCRec Distributed Database

Fall 2019 Advanced Database Course Project

Authors

  • Jialiang Cao(jc8343)
  • Waii Ng(win205)

Description

This is a Fall 2019 Advanced Database course project. For project requirements, please see project-requirements PDF.

How to run

We used reprozip to pack our project to allow anyone reproducing this project using reprounzip easily.

Reprounzip

reprounzip directory setup repcrecdb.rpz repcrecdb
reprounzip directory run repcrecdb

You should see the detail results of running all the test cases we provided.

You also can run this project using Jar after you reprounzip it.

cd repcrecdb/root/vagrant/adv-db-project
java -jar build/libs/repcrecdb.jar [input-file]

All test cases will run if no input file is given.

Gradle Build

Tests will run when building with Gradle

git clone https://github.com/iamnwi/adv-db-project.git
cd adv-db-project
gradle clean
gradle build

Run Jar

cd adv-db-project
java -jar build/libs/repcrecdb.jar [input-file]

All test cases will run if no input file is given.

Architecture

The architecture of this RepCRec Distributed Database is as follow. Architecture

Data

  • 10 sites
  • 20 data entries: x1, ..., x20
    • even indexed entires are in all sites
    • odd indexed entires are in site 1 + (index mod 10)

Algorithms

  • Available copies
  • Multi-version read
  • Deadlock detection

Components

For component details, please see RepCRec-design-doc PDF.

adv-db-project's People

Contributors

iamnwi avatar leonccao avatar

Stargazers

 avatar

Watchers

 avatar  avatar

adv-db-project's Issues

Complete function description

**According to project's requirement: **
The submitted code similarly should include as a header: the author (if you are working in a team of two), the date, the general description of the function, the inputs, the outputs, and the side effects.

Create project startup code

As a developer

I need a startup code

So that there will be fewer merge conflicts as the code is more consistent by modifying on the startup code

Assumptions:

  • use Java

Acceptance Criteria

Given the startup code
When running the RepCRecDB class
Then we can see some dumping information about the TM and DMs

Add testcase description

According to project requirement:
In addition, you should provide a few testing scripts in plain text to the grader in the format above and say what you believe will happen in each test.

Create a design doc

As a developer

I need a design document including all the major functions, their inputs, outputs side effects, major components, relationships between the components, and communication between components

So that I have a clear picture when implementing the distributed database system

Assumptions:

  • Based on the project requirements
  • Optimize the system as much as possible
  • This design document is subject to change

Acceptance Criteria

When I look at the design document
Then I will know how to implement each function and integrate them

Add abort reason

As a...

I need...

So that...

Assumptions:

  • ...

Acceptance Criteria

Given ...
When ...
Then ...

Handle fail instruction

As a...

I need...

So that...

Assumptions:

  • ...

Acceptance Criteria

Given ...
When ...
Then ...

Add input reading and parsing

As a...

I need...

So that...

Assumptions:

  • Read from file or standard input

Acceptance Criteria

Given ...
When ...
Then ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.