Coder Social home page Coder Social logo

warmchay / feat_7.11 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from supermt/feat_7.11

0.0 0.0 0.0 128.17 MB

License: GNU General Public License v2.0

Shell 1.02% C++ 82.74% Python 1.64% Perl 1.05% C 2.56% Java 9.72% Assembly 0.06% PowerShell 0.08% Makefile 0.73% CMake 0.38% Dockerfile 0.01%

feat_7.11's Introduction

ADOC: Automatic Data Overflow Control

This is the implementation of the paper published on the conference FAST'23.

Mofications:

Here are the modified files:

  1. YCSB workload generator
    • ycsbcore/*
  2. Extended reporter agent
    • include\rocksdb\utilities\DOTA_tuner.h
    • include\rocksdb\utilities\report_agent.h
    • utilities\DOTA\DOTA_tuner.cc
    • utilities\DOTA\report_agent.cc
  3. Option files to configure the ADOC tuner
    • options.h
  4. Metrics collection in files:
    • This is actually part of the featrue to quantalize the flow and predict the overflowing (work in progress)

How to use?

For now, you can only use it inside db_bench_tool.cc, but we will publish a black box version later.

But don't worry, you can always transplant it, since the tuner logic is simple enough, and has been implemented inside the reporter agent, which is a benchmark counter.

To compile

Thanks for the feedback from Yemaoxin.

I have not updated the CMakeList yet, please compile it with make command in the home directory:

make db_bench -j4

To Enable

Also thanks for the feedback from Yemaoxin.

You can find the FEA_enable, TEA_enable in the start up parameters.

  • To run ADOC-T, use --TEA_enable=true, --FEA_enable=false
  • To run ADOC-B, use --TEA_enable=false, --FEA_enable=true
  • To run ADOC, use --TEA_enable=true, --FEA_enable=true

Evaluation tool

You can look at this repo, which is a RocksDB evaluation tool used in this paper.

Differences betwen the advisor script in tools/advisor

+ ADOC is an online tuning framework, while the advisor is an offline tuning framework, which gives the tuning operation based on the execution LOG of db_bench.

+ ADOC collects data directly from the DB pointer, while the advisor reads the occurrence from the LOG.

What's next?

Make it a black box

We are going to provide the ADOC as a black box, all you need to do is to enable it in the db_option

We are also going to implement it outside rocksdb, in this case, you only need a DB pointer to perform online tuning

Predict and pre-tuning based on quantitative

This is actually a work-in-progress, offline training can be very expensive, but the AIMD method is event-driven, it could be a more economic way to do that, and great thanks to the questioner Chun Liu from FutureWei. s

DOTA Project

DOTA: Device-oriented Tuning Advisor

DOTA Project

This can be a project help deploying LSM-KV into production environments, especially the heterogeneous environments. ADOC is the one that performs tuning operations on the thread pool. (Batch size tuning is used to balance the effect of thread tuning, we've explained that in the end of Evaluation section.)

If you are interested in, we are always looking for collaborations.

BUT I'm not sure when can I start the next round of developement. Since it's not part of my thesis, but still, I will try to make some progress on it.

About SILK

The SILK implementation in this repo is a placeholder, since we failed to reproduce the read performance as mentioned in its paper. Please download it from the original github repo

You may find the GET() operation in SILK is super fast.

In the original design, it suppose further search through deeper levels, while SILK directly return a retry status.

GetImpl() in SILK SILK Get GetImpl() in RocksDB RocksDB Get

feat_7.11's People

Contributors

adamretter avatar agiardullo avatar ajkr avatar akankshamahajan15 avatar al13n321 avatar dhruba avatar emayanke avatar fyrz avatar haoboxu avatar hx235 avatar igorcanadi avatar islamabdelrahman avatar jay-zhuang avatar joelmarcey avatar jsteemann avatar lightmark avatar liukai avatar ltamasi avatar lth avatar mdcallag avatar miasantreble avatar mrambacher avatar pdillinger avatar riversand963 avatar rven1 avatar sagar0 avatar siying avatar yhchiang avatar yuslepukhin avatar zhichao-cao 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.