GithubHelp home page GithubHelp logo

app-sqlite-test's Introduction

SQLite Performance Experiment

This repository is used for a performance experiment of SQLite running on Unikraft.

This experiment compares four different configuration, each on its own branch of this repository:

  • Branch newlib-native uses the native port of SQLite to Unikraft, with the newlib libc and pthread-embedded.
  • Branch musl-native uses the native port of SQLite to Unikraft, with musl libc.
  • Branch musl-compat uses a static library of SQLite built with musl-gcc on a standard GNU\Linux box (we recommend Debian), which is then linked with Unikraft, also using musl.
  • Branch linux-native does not use Unikraft at all. It just runs the same benchmark running SQLite built with musl-gcc, as a standard Linux process (no virtualisation).

All Unikraft experiments use the TLSF memory allocator, while the Linux one uses the default Linux allocator.

To use this application, you will need Unikraft and the relevant libraries. A script https://github.com/unikraft/eurosys21-artifacts can do all the setup for you, including cloning the different branches of this repository.

To reproduce this experiment by hand, you will also need original SQLite include files in an include folder, and do a make menuconfig before building with make.

For the Linux test, if /tmp is on tmpfs, i.e. a RAM disk, it will be used. Otherwise the experiment will create a RAM disk. It is important to use a RAM disk to be fair as the Unikraft experiments are using the RAM disk approach, and the benchmark is I/O intensive. Note that on some Linux boxes, using /tmp on tmpfs is actually faster than using a dedicated RAM disk mounted using tmpfs as well (sync operations return immediately with /tmp while provoking context switches with other RAM disks).

app-sqlite-test's People

Contributors

cffs avatar

Stargazers

 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.