Книга: Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil
Улучшенный протокол локальных соединений (XNET)
Улучшенный протокол локальных соединений (XNET)
Локальное соединение в InterBase выполняется с использованием буферов разделяемой памяти и обеспечивает более высокую производительность по сравнению с другими протоколами (TCP и Named Pipes). В документации это называется локальным протоколом или IP Server (IPS) по внутренней терминологии Borland. Вместе с тем локальное соединение в InterBase обладает двумя серьезными недостатками, часто делающими его использование невозможным. Прежде всего, локальное соединение не допускает одновременной параллельной (многопоточной) работы нескольких соединений. Второе клиентское соединение будет заблокировано до момента завершения первого.
Кроме того, для установления соединения используется оконное сообщение, посылаемое клиентом специальному скрытому окну сервера. Если сервер InterBase работает как служба NT и клиентское приложение также работает как служба, они могут использовать разные desktops, при этом посылка оконных сообщений между ними невозможна.
Типичный пример подобной конфигурации - WEB-сервер Microsoft Internet Information Server (US), выполняющий приложения, обращающиеся к базам данных InterBase. Традиционно в таких случаях рекомендуется использовать протокол TCP для установления соединений из сервисов NT, что отрицательно сказывается на производительности.
XNET также является реализацией локального соединения с использованием буферов разделяемой памяти, поэтому его скорость передачи данных идентична "старому" локальному протоколу (IPS). Отличие состоит в том, что его реализация допускает одновременное использование на разных потоках без взаимного блокирования. Для установления соединения больше не используются окна и оконные сообщения, поэтому соединения надежно устанавливаются из служб Windows NT.
Оригинально XNET был разработан специалистами фирмы Borland и планировался как замена ненадежному старому локальному протоколу. Начало разработки датировано в исходном коде 1995 годом.
В сервере Yaffil по сравнению с оригинальным кодом внесены изменения, направленные на повышение надежности работы в случае неожиданного "падения" одной из сторон. Возможность соединения с сервером из служб NT также впервые была реализована в Yaffil.
Строка соединения по XNET аналогична обычной строке локального соединения. Протокол XNET не совместим по локальному подключению с другими версиями InterBase/Firebird, поэтому необходимо использовать клиентскую библиотеку (GDS32.DLL), соответствующую версии сервера. В текущей версии XNET недоступен в Yaffil Classic Server.
- Улучшенная производительность
- Улучшенный оптимизатор запросов
- Оптимизация сетевого трафика
- Эффективная работа с временными файлами сортировки
- Оптимальная структура хранения записей
- Ускоренная работа с индексами
- Улучшенная стратегия вычисления предиката IN и условий, объединенных по OR
- Ускоренное обновление данных
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Индексы по выражениям
- Уменьшение размера, занимаемого индексами
- Выражения в значениях по умолчанию для доменов
- Удобная операция объединения строк
- Расширенные возможности указания пользовательских планов
- Имена индексов ограничений
- Улучшенное время отклика для версии SuperServer
- Улучшенный протокол локальных соединений (XNET)
- Ограничение времени ожидания для транзакций (Lock timeout)
- 15.5. Слушание локальных уведомлений и реагирование на них
- Улучшенный оптимизатор запросов
- 3.5 Проблемы доступа при использовании нескольких протоколов
- 4.6 Протокол Fibre Channel
- 5.8 Протокол NDMP
- Протоколы модемной связи
- 5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики
- Приложение 1 Команды FTP-протокола
- Протоколы
- 5.3. Протокол SSH
- 10.1. Работа FTP-протокола
- 10.1.1. Команды FTP-протокола