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 Всі операції виконуємо в кореневій директорії проєкту. 3. Файли *.ini: database.ini - налаштування СУБД (database); loadtest.ini - налаштування навантажувального тесту (loadtest); requests.ini - налаштування прикладів запитів (requests). 4. Скомпільоване ПО для Linux (64-бітна архітектура): database_linux - СУБД; loadtest_linux - навантажувального тест; requests_linux - приклади запитів. 5. Скомпільоване ПО для Windows (64-бітна архітектура): database_windows - СУБД; loadtest_windows - навантажувального тест; requests_windows - приклади запитів. 6. Директорія examples має три вкладені директорії із вихідними кодами: database - запуску СУБД; loadtest - навантажувального тесту; requests - різних типів запитів, що підтримуються СУБД. 7. Якщо на комп'ютері встановлено компілятор Go, можна скомпілювати згадані вище програми за допомогою bash-скриптів: ./linux_build.sh ./windows_build.sh Скомпільовані версії програм опиняться в кореневій директорії проєкту. 8. Файли з даними розміщуються в директорії datadir. В базі даних вже записано 841 млн. показань. Сумарний розмір трохи більше 1.3 GB. 9. Налаштування навантажувального тесту можна змінити, відредагувавши файл loadtest.ini. Опція connections - це кількість одночасно відкритих підключень до СУБД. Опція requestsPerConn - це кількість запитів, які відправляє потік через одне відкрите підключення. Звіт виглядає наступним чином: TEST RESULTS: Time: 2 seconds Connections: 100 Requests per conn: 500 Total requests: 50000 AVG request time: 3.121022ms RPS: 26891 listCumulativeMeasures: 3099 (6.2%), AVG request time: 3.785916ms listCumulativePeriods: 12055 (24.1%), AVG request time: 2.726391ms listInstantMeasures: 1974 (3.9%), AVG request time: 6.726605ms listInstantPeriods: 7710 (15.4%), AVG request time: 2.9808ms listCurrentValues: 25162 (50.3%), AVG request time: 2.988301ms 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 Навантажувальний тест відправляє випадкові запити до випадкових метрик. Оскільки на реальному проєкті запити та часові діапазони мають різну ймовірність - я реалізував це в навантажувальному тесті. Приклад 1: listCurrentValues: 25162 (50.3%) , AVG request time: 2.988301ms означає що відправлено 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 Результат виконання запитів друкується у терміналі. Команди для Windows: ./database_windows ./requests_windows 12. Подивитись HELP: ./database_linux -h ./loadtest_linux -h ./requests_linux -h 13. Зупинити СУБД, перервати навантажувальний тест: Ctrl + C