Команда разработчиков Picodata выпустила picodata-go — первую версию драйвера к нашей СУБД для использования в приложениях на языке Go. Новый драйвер построен поверх проверенной библиотеки pgx/v5/pgxpool и реализует почти весь ее публичный API. Это значит, что вы можете использовать picodata-go как прямую in-place-замену pgx и PostgreSQL, без необходимости переписывать существующий код.
Picodata-go не только обеспечивает совместимость, но и предлагает умные функции, без которых сложно представить работу с распределенными системами. Под капотом коннектор имеет следующие возможности:
- Встроенный discovery. Поддержка автоматического обнаружения инстансов: достаточно указать адрес одного узла кластера, и драйвер сам наполнит пул соединений на основе всей топологии.
- Балансировка нагрузки с публичным API. В коннекторе несколько стандартных стратегий балансировки уже доступны “из коробки”. Также реализован API для реализации и использования своих собственных алгоритмов.
- Автоматическое управление топологией. Коннектор самостоятельно следит за состоянием кластера и его топологией.
Так как кластер — изменчивая среда, то особое внимание мы уделили управлению топологией. Коннектор следит за ее текущим состоянием и автоматически добавляет или удаляет подключения к инстансам из пула при ее изменении, без вмешательства разработчика.
В ближайшем будущем мы представим два ключевых обновления, которые превратят picodata-go в действительно незаменимый инструмент для работы с Picodata:
- Event-driven topology change handling. В данный момент, коннектор использует long polling для актуализации пула подключений. Чтобы убрать лишние пересылки по сети и снизить время реакции на изменения топологии, мы реализуем и поддержим событийную модель отправки уведомлений с помощью асинхронных сообщений.
- Shard awareness. Для кратного увеличения производительности и нивелирования лишних пересылок по сети, мы добавим возможность автоматически маршрутизировать подмножество SQL-запросов напрямую к нужному инстансу кластера. Все это — ради того, чтобы пользователи имели наилучший опыт использования нашей распределенной СУБД Picodata.
Примеры использования, описание публичного API библиотеки вы найдете на странице коннектора на нашем сайте документации.
Будем рады обратной связи в виде PR/MR! Вопросы и пожелания направляйте в наш Telegram-канал @picodataru.