Skip to content

TUM-DSE/FlexLog

Repository files navigation

FlexLog

Requirements

  • Go (version >= 1.15). If you're using Linux, you can use ./scripts/install_go.sh && source /etc/profile.
  • Make
  • pmdk (version >= 1.19)
  • libpmemobj-cpp

Note: The code is not reviewed and designed to run in a production system.

Installation on each node

Clone the repository on each node:

git clone git@github.com:nathanieltornow/PMLog.git
cd PMLog

In Linux you might also want to manually install Go.

./scripts/install_go.sh
source /etc/profile
source ~/.profile

We ran the system in NixOS. We provide you with the default.nix file.

Setup benchmark

  1. Start the sequencer on one node
go run cmd/start_sequencer/start_sequencer.go -root -IP 0.0.0.0:7000

To create a tree-hierachy of sequencers, use the following commands: go run cmd/start_sequencer/start_sequencer.go -root -IP <root_ip>:7000 go run cmd/start_sequencer/start_sequencer.go -parIP <root_ip>:7000 go run cmd/start_sequencer/start_sequencer.go -parIP <middle_seq_ip>:7000

  1. Startup the shard
# for every replica
go run cmd/replica/start_replica.go -order <sequencer-IP>:7000 -IP 0.0.0.0:4000
  1. Start a benchmark at the load generator
    • Modify benchmark/benchmark.config.yaml, that the endpoints are all pointing to the replicas
    • Modify clients benchmark/benchmark.config.yaml, for the number of clients
    • Modify appends and reads for the right ratio. (Just the ratio appends/reads is important)
    • Start the benchmark, scale the throughput with increasing x
    go run benchmark/shared_log/shared_log.go -config benchmark/benchmark.config.yaml -threads x

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published