Хост
Хост — это виртуальная машина, на которой развернут сервер баз данных PostgreSQL. Хост является составной частью инстанса Postgres.
Роль хоста определяется ролью запущенного на нем процесса PostgreSQL:
- Хост с процессом Postgres Master называется хост-мастер.
- Хост с процессом Postgres Slave/Replica называется хост-реплика.
Подключившись к хосту-мастеру вы можете производить запись и чтение данных. Хост-реплика доступен только для чтения.
Хосты одного инстанса — физически разные ресурсы. Они расположены в разных зонах доступности. При этом состояние баз данных полностью реплицировано между хостами одного инстанса. Если хост-мастер выходит из строя, хост-реплика берет на себя его функции. См. также Выбор хоста-мастера.
Стандартные конфигурации хоста
При создании или изменении инстансов через интерфейс Spirit вы можете выбрать одну из стандартных конфигураций хоста:
| Код конфигурации | Ресурсы |
|---|---|
c2r2 | 2 CPU, 2 Гб RAM |
c4r8 | 4 CPU, 8 Гб RAM |
c8r24 | 8 CPU, 24 Гб RAM |
Выбор хоста-мастера на стороне клиента
Если в инстансе два и более хостов с репликацией, то когда мастер-хост становится недоступен во время обслуживания или из-за неисправности, его роль на себя берет один из хостов-реплик. Поэтому в общем случае SQL-клиенту для подключения к инстансу недостаточно знать адрес хоста-мастера по умолчанию. SQL-клиенту нужно знать, какой из хостов является мастером непосредственно в момент подключения.
В облачной инфраструктуре эта задача решается оптимально, когда выбор хоста-мастера происходит на стороне клиента:
- При подключении пользователь передает в SQL-клиент список адресов всех хостов, например:
host-1.t-technologies.ru,host-2.t-technologies.ru,host-3.t-technologies.ru. - Пользователь также указывает, для каких операций ему нужен хост. Для Read-Write операций подойдет только хост-мастер (Master), а для Read-Only операций — хост-реплика (Slave/Replica). Подробнее о доступных режимах подключения см. в документации PostgreSQL.
- SQL-клиент подключается к каждому хосту из списка по очереди и останавливается на том хосте, который подходит под заданный критерий (Master или Slave/Replica).
Если ваш SQL-клиент не поддерживает технологию выбора хоста-мастера на стороне клиента, уровень сервиса не гарантирован.
Информацию о поддержке данной технологии драйверами и ORM для различных языков программирования смотрите в разделе Драйверы и ORM. Информация периодически обновляется.
Функция выбора хоста-мастера на стороне сервера находится в разработке.