Ioarena
Embedded storage benchmarking tool
Install / Use
/learn @pmwkaa/IoarenaREADME
ioarena - embedded storage benchmarking
<img src="https://travis-ci.org/pmwkaa/ioarena.svg?branch=master" />ioarena is an utility designed for evaluating performance of embedded databases.
The goal of this project is to provide a standart and simple in use instrument for benchmarking, so any database developer or user can reference to or repeat obtained results.
Benchmarking methods: set, get, delete, iterate, batch, crud
Sync modes: sync, lazy, no-sync
WAL modes: indef (per engine default), wal-on, wal-off
Supported databases: rocksdb, leveldb, forestdb, upscaledb, lmdb, mdbx, wiredtiger, sophia, sqlite3, iowow, unqlite
New drivers or any kind of enhancements are very welcome!
Usage
IOARENA (embedded storage benchmarking)
usage: ioarena [hDBCpnkvmlrwic]
-D <database_driver>
choices: sophia, leveldb, rocksdb, wiredtiger, forestdb, lmdb, mdbx, sqlite3, iowow, dummy, unqlite
-B <benchmarks>
choices: set, get, delete, iterate, batch, crud
-o <driver option> (default: none)
-m <sync_mode> (default: lazy)
choices: sync, lazy, nosync
-l <wal_mode> (default: indef)
choices: indef, walon, waloff
-C <name-prefix> generate csv (default: (null))
-p <path> for temporaries (default: ./_ioarena)
-n <number_of_operations> (default: 1000000)
-k <key_size> (default: 16)
-v <value_size> (default: 32)
-c continuous completing mode (default: no)
-r <number_of_read_threads> (default: 0)
`zero` to use single main/common thread
-w <number_of_crud/write_threads> (default: 0)
`zero` to use single main/common thread
-i ignore key-not-found error (default: no)
-h help
example:
ioarena -m sync -D sophia -B crud -n 100000000
Build
git clone --recursive https://github.com/pmwkaa/ioarena
cmake is required for building.
To enable a specific database driver, pass -DENABLE_NAME=ON to cmake. If a specified database is not installed in system, it will be build from db/name directory.
mkdir build
cd build
cmake .. -DENABLE_ROCKSDB=ON
make
src/ioarena -h
Authors
| Name | Contribution | |---|---| | Dmitry Simonenko @pmwkaa | Original author. | | Leonid Yuriev @erthink | Multithreading and isolation from the testcases the interface of a DB drivers cardinally redesigned, it is clear and intelligible now. | | Egor Zyryanov @er0p | Added support for SQLite, EJDB, Vedis. | | Adamansky Anton @adamansky | Added support for IOWOW. | | Alberto Mardegan @mardy | Added support for Upscaledb. |
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
