This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
Description
Languages
Go
99.7%
Shell
0.3%