Интерконнект ============ Интерконнект представляет собой сеть (или несколько сетей), предназначенную для взаимодействия мастера и сегментов между собой. Когда пользователь подключается к базе данных и запускает SQL запрос, на каждом из сегментов создаются процессы для обработки данного запроса. Интерконнект является как связью сегментов внутри одного хоста, так и между сегментами на разных серверах. В качестве интерконнекта крайне желательно использовать одно или несколько 10-гигабитных Ethernet-подключений. По умолчанию интерконнект базы данных **ADB** использует протокол **UDP** (**User Datagram Protocol**) с управлением потока данных для отправки сообщений по сети. Программное обеспечение **ADB** выполняет дополнительную проверку пакетов, не выполненную **UDP**, поэтому надежность передачи эквивалентна **TCP** (**Transmission Control Protocol**), а производительность и масштабируемость значительно превосходят показатели **TCP**. Избыточность сетей интерконнекта -------------------------------- Избыточность соединения может быть достигнута путем развертывания двух коммутаторов *10 Gigabit Ethernet* на сети и дополнительным 10-гигабитным подключением к мастер-серверу и сегмент-серверам. Конфигурация сетевого интерфейса -------------------------------- Сегмент-сервер обычно имеет несколько сетевых интерфейсов, предназначенных для трафика межсетевого соединения **ADB**. Мастер-сервер обычно имеет вспомогательные внешние сетевые интерфейсы в дополнение к интерфейсам, используемым для внутреннего трафика. В зависимости от количества доступных интерфейсов необходимо распределить межсетевой трафик интерконнекта по доступным интерфейсам. Это достигается путем назначения сегментов конкретному сетевому интерфейсу и равномерным распределением сегментов между интерфейсами. Для этого создаются отдельные адреса хостов для каждого сетевого интерфейса. Например, если хост имеет четыре сетевых интерфейса, тогда у него будет четыре соответствующих адреса хоста, каждый из которых будет представлять один или несколько экземпляров первичного сегмента. Файл */etc/hosts* необходимо настроить так, чтобы он содержал не только имя хоста каждой машины, а также все адреса интерфейсов для всех узлов базы данных **ADB** (мастер, резервный мастер, сегменты и хосты **ETL** в случае, если используется **gpfdist**). Настройка коммутатора --------------------- При использовании нескольких коммутаторов *10 Gigabit Ethernet*, необходимо равномерно разделить количество подсетей между каждым коммутатором. Для примера конфигурации при наличии двух коммутаторов сетевые платы 1 и 2 на каждом хосте используют коммутатор 1, а сетевые платы 3 и 4 используют коммутатор 2. Для мастер-сервера имя хоста, связанное с первой сетевой платой (и, следовательно, с использованием коммутатора 1), является именем мастер-сегмента. Поэтому при активации резервного мастера, он должен быть подсоединён к сетевому интерфейсу, который использует коммутатор, не подключенный к основному мастеру.