From 5e49c66e15493614f750c4757f7e8b4bc820b826 Mon Sep 17 00:00:00 2001 From: Dima Gordenko <1.e4.kc6@gmail.com> Date: Tue, 3 Jun 2025 05:08:57 +0300 Subject: [PATCH] rename README --- README.md | 132 ------------------------------------------------------------- README.txt | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+), 132 deletions(-) delete mode 100644 README.md create mode 100644 README.txt diff --git a/README.md b/README.md deleted file mode 100644 index fb142fc..0000000 --- a/README.md +++ /dev/null @@ -1,132 +0,0 @@ -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 diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..fb142fc --- /dev/null +++ b/README.txt @@ -0,0 +1,132 @@ +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