1. Zip-архів із базою даних на 841 млн показань (791 МБ) можна скачати за посиланням https://drive.google.com/file/d/18oks6STkVpg4-TT2WyCIBBpCgRyF29L2
В архіві 5 файлів:
2.changes
2.snapshot
test.data
test.index
metrics.info
Після розпаковки їх необхідно перемістити в директорію testdir.
2. Якщо є бажання експериментувати з пустою базою даних, краще створити нову. Наприклад, назвемо її "x": створюємо директорію xdir, створюємо файл x.ini із такими налаштуваннями:
tcpPort = 12345
dir = xdir
redoDir = xdir
databaseName = x
Запускаємо СУБД із термінала:
./database_linux -c x.ini
Всі операції виконуємо в кореневій директорії проєкту.
last day: 20382 (82.1%), AVG request time: 2.954718ms
last week: 2993 (12.1%), AVG request time: 4.050662ms
last month: 708 (2.9%), AVG request time: 8.248486ms
random time range: 755 (3.0%), AVG request time: 3.540239ms
Навантажувальний тест відправляє випадкові запити до випадкових метрик. Оскільки на реальному проєкті запити та часові діапазони мають різну ймовірність - я реалізував це в навантажувальному тесті.
означає що відправлено 25162 запитів listCurrentValues, що склало 50.3% від загальної кількості запитів. Середній час виконання (Latency) запитів listCurrentValues склав 2.99 міллісекунди.
Приклад 2:
last month: 708 (2.9%), AVG request time: 8.248486ms
означає що відправлено 708 запитів на отримання даних за останній місяць, що склало 2.9% від загальної кількості. Середній час виконання (Latency) таких запитів склав 8.25 міллісекунди. Часовий діапазон задається для всіх запитів окрім listCurrentValues.
10. Запуск навантажувального тесту:
Виконуємо пункт 1.
Запускаємо СУБД із термінала:
./database_linux
Запускаємо тест із іншого термінала:
./loadtest_linux
Чекаємо завершення. Звіт буде надруковано у терміналі після завершення тесту.
Команди для Windows:
./database_windows
./loadtest_windows
11. Запуск прикладів запитів:
Можна запускати на пустій базі даних (без скачування Zip-архіва із показаннями).
Запускаємо СУБД із термінала:
./database_linux
Запускаємо тест із іншого термінала:
./requests_linux
Результат виконання запитів друкується у терміналі.