Обновить

Комментарии 17

Можно ли смоделировать хаос пуассоновских потоков бронирований и конечный автомат состояний рейса (от «по расписанию» до «приземлился») целиком внутри PostgreSQL?

Спасибо ! У меня все руки не доходили до пуассоновского распределения.

Вот на этой демо базе и будет развиваться методика статистического анализа производительности СУБД .

Вместо старых статичных таблиц мы построили генератор, имитирующий жизнь глобальной авиакомпании.

Если я правильно понимаю идею - готовый стендовый тест нагрузочного тестирования ?

То, что нужно !

Спасибо еще раз.

Если я правильно понимаю идею - готовый стендовый тест нагрузочного тестирования ?

Интересно было бы попробовать генератор в таком качестве. Не уверен, насколько создаваемая им нагрузка показательна, но она всяко разнообразнее pgbench-а. Журналирование только надо вернуть, оно убрано для скорости.

но она всяко разнообразнее pgbench-а

В том то и дело. pgbench в качестве бенчмарка откровенно говоря не очень. Только для начального уровня что бы протестировать инструментарий и создавать тестовую нагрузку.

Ок. Тема в работе. Посмотрим, что получится.

Вопрос по генератору (GitHub - postgrespro/demodb: Demonstration Database )

Возможно ли использовать генератор как инструмент создания нагрузки на тестовую БД в ходе нагрузочного тестирования:

CALL generate( now(), now() + interval '10 minute', N );

Где N - увеличивается для каждой итерации .

Например каждые 10 минут , по cron .

Также просьба уточнить

Если все в порядке, полученную демобазу можно выгрузить в виде SQL-скрипта. 

Разве генератор не записывает данные в базу demо сразу ?

Можно, только чуть иначе. После первой генерации надо вызывать continue() и увеличивать конечную дату на 10 минут.

По второму вопросу - да, пишет в demo, но если базу нужно выгрузить (чтобы потом куда-нибудь загрузить), то нужно экспортировать.

Спасибо за информацию. Принято в работу.

Только для имитации продуктивной нагрузки надо будет добавить постоянную нагрузку на чтение - аналог запросов на просмотр расписаний. Конечно же тоже по распределению Пуассона.

Спасибо за информацию и уточнения по генератору.

С меня, недели через 3-4, статья об использовании генератора в качестве инструмента нагрузки для тестового стенда нагрузочного тестирования и анализа производительности СУБД PostgreSQL. Тема в работе.

Спасибо вам за вашу работу. В свое время очень пригодилась и помогла ваша база.

Надо думать, примеры в новой книге "PostgreSQL 18 изнутри" будут на основе этой базы? Кстати, спасибо за 17-ю, купил в бумажном виде для перечитывания на пляже: на редкость талантливый технический текст. И следующую непременно куплю.

Рад, что книга нравится! Не уверен, что успею переделать примеры для 18-й версии, но вообще это в планах, да.

Использую в своей программе обучения ваши материалы. Хотел поблагодарить - отличная работа!

Но страничку с тестовыми базами данных можно было бы улучшить. Вместо маленькой ссылки внизу страницы о том, что вариантов баз несколько, лучше сделать яркую ремарку вверху.

Иначе следующий текст из книги вводит в заблуждение (вернее, неполон):

Как развернуть в вашем кластере PostgreSQL учебную базу данных... На сайте компании есть раздел, посвященный этой базе данных, найти его можно по ссылке https://postgrespro.ru/education/demodb.

Студенты открывают и, конечно же, качают последнюю (верхнюю, неправильную) версию. Никто не доскроливает до маленькой ссылки внизу. Ругаются 😉

А если вдруг кто-то ссылку и замечает, то все равно думает, что сделал что-то не так. Ведь вторая версия базы имеет настройку search_path, а соответствующая книга начинает давать примеры на запуск без его объяснения. Примеры не работают.

Думаю эту ситуацию можно было бы улучшить.

В любом случае огромное спасибо!

Спасибо, подумаем! В книге, конечно же, есть прямая ссылка на нужный файл, но до этого места, видимо, никто не дочитывает (:

Добрый вечер @erogov, можно пару вопросов по генератору - что произойдёт , если вызвать continue в нескольких параллельных соединениях с одной и той же датой/временем ?

1) сформируются дополнительные бронирования рейсов и изменения состояния рейсов

2) ничего не произойдёт

Ну , т.е. можно ли имитировать собственно сам процесс бронирования и изменения состояния вылетов, после генерации тестовой БД ?

Нет, параллельно continue() вызывать нельзя, и не очень понятно зачем: если нужно продолжить генерацию с того момента, где она остановилась, надо просто вызвать continue() один раз.

Да, спасибо за подтверждение. Исправил скрипт для бронирования. Посмотрим, какие результаты будут для более менее приличной тестовой БД ( размером ~10GB) . Наверняка есть резервы по оптимизации и по схеме БД и тем более по конфигурации, да и просто интересно. Все таки демобаза хоть как то похожа на продуктив, в отличии от тестовой БД pgbench. Тема - в работе.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
www.postgrespro.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Иван Панченко