Coder Social home page Coder Social logo

se2322-lsm's Introduction

Build

correctness:

g++ -std=c++14 test/correctness.cc src/kvstore.cc -o correctness -O3 -I../include -D NDEBUG

persistence:

g++ -std=c++14 test/persistence.cc src/kvstore.cc -o persistence -O3 -I../include -D NDEBUG

Or use cmake:

mkdir build
cd build
cmake ..
make # make several test unit simultaneously
# correctness and persistence are now at build/test/

Project LSM-KV: KVStore using Log-structured Merge Tree

The handout files include two main parts:

  • The KVStoreAPI class in kvstore_api.h that specifies the interface of KVStore.
  • Test files including correctness test (correctness.cc) and persistence test (persistence.cc).

Explanation of each handout file:

.
├── Makefile  // Makefile if you use GNU Make
├── README.md // This readme file
├── correctness.cc // Correctness test, you should not modify this file
├── data      // Data directory used in our test
├── kvstore.cc     // your implementation
├── kvstore.h      // your implementation
├── kvstore_api.h  // KVStoreAPI, you should not modify this file
├── persistence.cc // Persistence test, you should not modify this file
├── utils.h         // Provides some cross-platform file/directory interface
├── MurmurHash3.h  // Provides murmur3 hash function
└── test.h         // Base class for testing, you should not modify this file

First have a look at the kvstore_api.h file to check functions you need to implement. Then modify the kvstore.cc and kvstore.h files and feel free to add new class files.

We will use all files with .cc, .cpp, .cxx suffixes to build correctness and persistence tests. Thus, you can use any IDE to finish this project as long as you ensure that all C++ source files are submitted.

For the test files, of course you could modify it to debug your programs. But remember to change it back when you are testing.

Good luck :)

se2322-lsm's People

Contributors

rennsax avatar

Watchers

 avatar

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.