Odyssey

Компания Yandex опубликовала исходные тексты специализированного прокси-сервера Odyssey, предназначенного для поддержания пула открытых соединений к СУБД PostgreSQL и организации маршрутизации запросов. Приложение построено с использованием многопоточной архитектуры, базирующейся на движке сопрограмм machinarium, позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов. Код написан на языке Си и распространяется под лицензией BSD.

Основные возможности Odyssey:

  • Для обработки соединений запускается несколько рабочих процессов с многопоточными обработчиками, отвечающими за аутентификацию и проксирование запросов. Все рабочие потоки совместно используют общий пул соединений;
  • Отслеживается состояния транзакций и выполняется их автоматическая отмена (Rollback) в случае преждевременного отсоединения клиента;
  • Запоминается последний сервер, к которому был подключен клиент, для возобновления подключения к тому же серверу в случае повторного соединения;
  • Возможность определения пулов соединений с учётом привязки к пользователю и БД. Каждый пул может иметь раздельную аутентификацию, режим работы и ограничения;
  • Полная поддержка SSL/TLS и типовых методов аутентификации клиента и сервера. Возможность выборочной блокировки пользователей для разных пулов;
  • Ведение лога с идентификацией соединений клиента и сервера через UUID, который позволяет связать различные события в логе и сообщения об ошибках с определённым клиентом.

 

Тэги: databases odyssey postgresql yandex базы данных яндекс


 


 
архив

подписка