RocksDB use case
Portfolio

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.