Skip to content

Prototype for evaluating cooperative memory management in DBMSs

License

Notifications You must be signed in to change notification settings

dbis-ilm/cooperative-memory-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cooperative Memory Management for Table and Temporary Data

This is a prototype system for evaluating cooperative memory management (CMM) for database management systems and comparing it to traditional memory management.

An initial discussion of the CMM idea and preliminary experimental results can be found in our paper published in the 1st Workshop on Simplicity in Management of Data (SiMoD):

Robert Lasch, Thomas Legler, Norman May, Bernhard Scheirle, Kai-Uwe Sattler: Cooperative Memory Management for Table and Temporary Data

The earlier version of the prototype used to obtain the results presented there can be found in the simod branch.

Running the experiments

Make sure to initialize git submodules first: git submodule init && git submodule update

Requirements for building the project and running the experiments are:

  • cmake
  • unixODBC (required to build the CH-benCHmark binaries used for dataset generation)
  • numactl and libnuma-dev(el) (for <numa.h>)

Build the project as follows:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DVTUNE_PROFILING=FALSE -DCOLLECT_CACHE_TRACES=FALSE ..
cmake --build .

The build process includes generating the CH-benCHmark data that is used in the experiments.

Before running the experiments, you may want to adjust the following variables in scripts/parameters.py:

Variable Description
nums_threads the numbers of threads to run the scalability experiment with
oltp_threads the number of OLTP threads to use in each experiment except for scalability
disks should be a dictionary of disk names and paths to where the test database file should be put for each disk to run benchmarks with

After having built the binaries and configuring parameters.py properly, you can run the experiments from the base directory as follows:

python3 scripts/run_experiments.py <result directory>

This will also automatically generate the figures for the Cooperative Memory Management for Cost-Efficient HTAP paper in <result directory>/figures.

License

MIT

About

Prototype for evaluating cooperative memory management in DBMSs

Resources

License

Stars

Watchers

Forks