Сделать отчёт о производительности вставки данных в СУБД PostgreSQL
- написать на любом языке программу вставки данных в PostgreSQL
- выполнить замер на 10 минут, собрать метрики, сделать профилирование и составить отчёт о производительности вставки
- тест проведен на OS Linux (Debian/Ubuntu) и PostgreSQL 16
- отчёт в формате Markdown
- Можно вставлять любые фейковые данные
- Приложение должно принимать два параметра:
- количество параллельных потоков
- длительность вставки
- Отчёт должен содержать выводы (не только метрики)
- Профилирование с помощью Perf / eBPF с построение flame graph-ов
- Отсутствие воды в отчёте
- Профилирование операций ввода-вывода с помощью blktrace или другого механизма
- Предложена оптимальная конфигурация PostgreSQL
- Язык разработки: любой (Java, C, Go, Rust...)
- Библиотеки можно использовать любые
- Реляционная СУБД: PostgreSQL
- Код должен быть выложен на Github с Readme файлом с инструкцией по запуску и примерами. Важно, чтобы по инструкции можно было запустить код и он работал
- При возникновении вопросов по ТЗ оставляем принятие решения за кандидатом. Желательно отразить в Readme какие вопросы возникали и какие решения были приняты
Шаги:
- ускорить select c1 from t where id = ? (без индекса)
- ускорить select max(t.id) from t left join s where t.c1 = s.c1;
- ускорить select с коррелировавнным (not) exists - (анти) join
- ускорить использование subtransactions больше 100 штук
Кураторы: