Skip to content

lunauser/dba-hell

 
 

Repository files navigation

dba-hell

Ты администратор баз данных? Эта головоломка для тебя.

Сборка и запуск:

make build-all
make start

Доступы:

  1. RabbitMQ:
  • URL: localhost:15672.
  • Login: rabbitmq.
  • Password: rabbitmq.
  1. Postgres:
  • URI "postgres://dba-test:dba-test@localhost/dba_test?sslmode=disable"

Архитектура

Producer: сервис, генерирующий значения от 0 до max от uint64 и отправляющий в RabbitMQ сообщения:

 {
   "id": 10,                     
   "name": "TODO: Create name",   
   "number": 3,                   
   "body": "Thread number 3",     
   "ts": 1583506044              
 }

Writer сервис, берёт из очереди сообщения и вставляет пачками в Postgres.

Задача

  1. Увеличить производительность вставок в БД, чтобы скорость работы Writer была выше, чем скорость работы Producer. При этом изменять код сервисов не нужно. Конфигурировать только Postgres.
  2. Перенести индексы и БД на разные диски.
  3. Настроить autovacuum.

Желаю успехов!

Есть предложения по улучшению? Пиши:

Email: windowod@gmail.com
Twitter: @Randomazer
Telegram: @Randomazer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 91.9%
  • Makefile 6.3%
  • Dockerfile 1.8%