The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

31.05.2018 22:10  Яндекс опубликовал Odyssey, многопоточный балансировщик соединений для PostgreSQL

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

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

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


  1. Главная ссылка к новости (https://github.com/yandex/odys...)
  2. OpenNews: Yandex опубликовал статический анализатор файлов конфигурации nginx
  3. OpenNews: Релиз проекта pgpool-II 3.0
  4. OpenNews: Яндекс начал формирование коллекции своих открытых проектов
  5. OpenNews: Яндекс.Почта успешно мигрировала с Oracle на PostgreSQL
  6. OpenNews: Яндекс открыл код библиотеки машинного обучения CatBoost
Лицензия: CC-BY
Тип: Программы
Ключевые слова: yandex, odyssey, postgresql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Xasd, 22:21, 31/05/2018 [ответить] [смотреть все]     [к модератору]
  • –8 +/
    в кои-то веке Яндекс решил написать что-то на C а не на наколеночном как он обы... весь текст скрыт [показать]
     
     
  • 2.2, A.Stahl, 22:24, 31/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +6 +/
    Будешь ныть -- перейдут на Раст или ещё чего похуже.
     
     
  • 3.9, Аноним, 00:08, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Пусть переходят, давно пора C++17 кизяк
     
  • 3.33, Anonim, 12:30, 02/06/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Чем плох раст Драйвер для PG, написанный на нём, вполне хорош Или плохо всё, ч... весь текст скрыт [показать]
     
  • 2.6, Отражение луны, 22:56, 31/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –5 +/
    Жаль что не на go.
     
     
  • 3.8, Аноним, 23:40, 31/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Жаль что не на go.

    В go медленный TLS. Наверное, из-за этого.

     
  • 2.7, XoRe, 23:29, 31/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +9 +/
    > в кои-то веке Яндекс решил написать что-то на C а не на
    > наколеночном (как он обычно любит) C++ ..

    Это просто новый уровень предъяв.

     
  • 1.11, хрю, 07:12, 01/06/2018 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    >позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.

    надо же, кто-то ещё умеет программировать...

     
     
  • 2.13, ыы, 07:40, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –4 +/
    а в чем проблема с callback-вызовами может предложение нужно иначе интерпретиро... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.29, Ordu, 16:15, 01/06/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Коллбеки размазывают логику происходящего по многим функциям Если язык позволяе... весь текст скрыт [показать]
     
  • 2.14, Аноним, 07:40, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    а казалось бы наоборот 1 thread per connection per task - это не самая лучшая п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Andrey Mitrofanov, 09:48, 01/06/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Они сделали не nginx, а apache надеюсь, пока не 2 4 для Pg Они круты как... весь текст скрыт [показать]
     
     
  • 4.24, 1, 11:51, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    По умолчанию оно работает в два потока, один воркер и один DNS-резолвер.
     
  • 3.20, КО, 10:15, 01/06/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Для программки вся деятельность которой сводится к трем шагам - бери больше, кид... весь текст скрыт [показать]
     
  • 2.17, Andrey Mitrofanov, 09:45, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Ну-да, ну-да CODE machinarium cooperative multitasking engine CODE ... весь текст скрыт [показать] [показать ветку]
     
  • 1.21, Аноним, 11:07, 01/06/2018 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    100 лет не видел goto в коде Яндекс порадовал rc machine_io_attach obj ... весь текст скрыт [показать]
     
     
  • 2.23, VladSh, 11:37, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –2 +/
    rc = machine_io_attach(obj);
    if (rc != -1) return 0;
    if (io->fd != -1) {
     
     
  • 3.25, Аноним, 12:05, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    кто io->fd закрывать будет?
     
     
  • 4.31, VladSh, 17:39, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    А при rc != -1 он разве закрывается?
     
  • 3.26, КО, 12:09, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Код слегка не эквивалентен, если goto error встречается больше 1 раза. :)
     
     
  • 4.32, VladSh, 17:41, 01/06/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Верно, но здесь изображён 1 раз :)
     
     
  • 5.37, Аноним, 15:48, 04/06/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    machinarium cooperative multitasking engine include machinari... весь текст скрыт [показать]
     
  • 2.27, Andrey Mitrofanov, 13:42, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Вы невнимательно следите за Инновациями Микрософт 09 04 2018 18 43 Microsoft о... весь текст скрыт [показать] [показать ветку]
     
  • 2.30, Ordu, 16:24, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Кто-то 100 лет не заглядывал в сорцы ядра Если тебе интересен C, то я очень рек... весь текст скрыт [показать] [показать ветку]
     
  • 2.34, Аноним, 13:40, 02/06/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    goto error - одно из немногих применений goto, которое не осуждается Ради интер... весь текст скрыт [показать] [показать ветку]
     
  • 1.22, anonymous, 11:33, 01/06/2018 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    с code style у них большие проблемы
     
     
  • 2.28, Stop, 15:11, 01/06/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    В отличии от многих контор, единого кодестайла у просто Яндекса нет. А если учесть, что куча сильных ребят уходит что бы уехать (тот же Гугл, например), то это и не удивительно: новая волна несет новый мусор в головах.
     
  • 1.35, ананимас, 20:20, 03/06/2018 [ответить] [смотреть все]    [к модератору]  
  • +/
    >shapito_stream_reset

    как корабль назовешь

     
  • 1.36, тот самый парень, 09:38, 04/06/2018 [ответить] [смотреть все]    [к модератору]  
  • +/
    Под видом возможностей тут подсунута возможность использовать софт, который написан с использованием таких-то технологий. Это или hype driven development в чистом виде, или же просто несоответствие техписов/аналитиков/тестеров команды нагрузочного тестирования занимаемым. Следуя волне хайп-драйвен-чекин надо проверить всех причастных на синдром самозванца.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor