RocksDB use case

Portfolio

Click on an image for more details

System overview

Generic statistics about the application execution

RocksDB issued more than 500 million storage system calls, most of which were pread64 system calls (91%).
Besides the pread64 system call, RocksDB also issued write, close, openat, and read system calls.
Moreover, the RocksDB application spawned 2 processes and 33 threads, and accessed more than 15,000 different file paths.

Percentage of data vs metadata

Shows the percentage of data and metadata-related system calls

The majority of system calls issued by RocksDB were data-related (99.98%).

Top file types

Shows the type of files accessed by the application and the number of system calls issued for each file type

RocksDB issued more than 450 million storage system calls to regular files, most of which were pread64 system calls.

Execution time per system call

Shows the average execution time for the top 5 system calls

The system call with the highest average execution time was pread64, which took 0,27 milliseconds on average.
The openat system call was the second most expensive system call, with an average execution time of 0,18 milliseconds.
The average execution time of the write system call was 0,05 milliseconds.

File accesses per command

Shows the total number of system calls issued to files by each command

The threads belonging to the db_bench process issued more than 15,000 file accesses.
Each background thread (rocksdb:high0 and rocksdb:lowX) issued about 5,000 file accesses.

Percentage of requests per command

Shows the percentage of requests issued by each command for the top 25 files

The threads belonging to the db_bench process issued more than 90% of the requests to the top 25 files.
Morevoer, different files were accessed by different compaction threads (rocksdb:lowX).

File path accesses

Shows the application file accesses over time

RocksDB accesses a large number of distinct file paths over time.
The most accessed files over time are .sst files, which are the RocksDB database files.

System calls per command

Shows the system calls issued over time, aggregated by thread name

When multiple background threads (rocksdb:high0 and rocksdb:lowX) submit I/O requests, the number of system calls of db_bench threads descreases.
On the other hand, when fewer background threads execute simultaneosly, the performance of db_bench threads improves.