Skip to content

Commit a9251fa

Browse files
committed
add LinkBench README
1 parent 6cc802b commit a9251fa

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

README-LinkBench.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Reproduce LinkBench Results of LiveGraph
2+
3+
As [LinkBench](https://github.com/facebookarchive/linkbench) is implemented in Java and LiveGraph is in C++, we record traces collected from LinkBench Java driver and replay them in a driver of C++ version, so that LiveGraph can perform those queries.
4+
5+
These repositories are used to run LinkBench on LiveGraph:
6+
7+
* A [modified LinkBench Java driver](https://github.com/coolerzxw/LinkBench), with a wrapper implementation which processes the queries correctly (by calling MySQL implementation inside) and also records the operations of each thread into files.
8+
* A [C++ driver](https://github.com/coolerzxw/LinkBench-Cpp), which reads the queries from files, calls LiveGraph (or other implementations LMDB and RocksDB), and gives performance statistics.
9+
10+
Detailed steps of reproducing are listed as follows. For questions, you may want to open an issue or contact Jiping Yu (yjp19@mails.tsinghua.edu.cn). Also, we are currently working on implementing LinkBench directly in C++, to make reproducing the results easier.
11+
12+
## Recording
13+
14+
Build, config, and run the [modified Java driver](https://github.com/coolerzxw/LinkBench) in the same way as the [original driver](https://github.com/facebookarchive/linkbench). After the run, the recorded traces are written to `record` directory of the current working directory.
15+
16+
## Replaying
17+
18+
Clone and build the C++ driver.
19+
20+
```
21+
git clone https://github.com/coolerzxw/LinkBench-Cpp.git
22+
cd LinkBench-Cpp
23+
mkdir build
24+
cd build
25+
cmake ..
26+
make
27+
```
28+
29+
You can run each implementation as follows. `[#loaders]` and `[#requesters]` should equal the numbers during recording.
30+
31+
```
32+
./livegraph [database path] [max #vertices] [trace directory path] [#loaders] [#requesters]
33+
./lmdb [trace directory path] [#loaders] [#requesters] [database path]
34+
./rocksdb [trace directory path] [#loaders] [#requesters] [database path]
35+
```

0 commit comments

Comments
 (0)