Доступен ReOpenLDAP 1.1.6, форк проекта OpenLDAP

Вышла новая версия ReOpenLDAP — форка проекта OpenLDAP, с устранением массы ошибок и ряда доработок для стабильной работы репликации. С выпуском 1.1.6 проект ReOpenLDAP отметил три года с момента своего основания (публичный форк появился чуть позже). Всё это время ReOpenLDAP работает 24×7 в инфраструктуре ПАО МегаФон, обеспечивая высоконагруженную обработку запросов в multi-master кластере с full-mesh репликацией.

Версия 1.1.6 аккумулирует работу 8 месяцев этого года и включает: более сотни коммитов, в том числе более 50 исправлений ошибок; поддержку musl-libc, а также ряд доработок для совместимости и упрощения сборки; Continuous Integration на инфраструктуре Travis-CI и Circle-CI.

С этим релизом ветка 1.1 получает статус архивно-стабильной. В ней будут исправляться ошибки, но какая-либо разработка будет прекращена. В свою очередь, работы в ветке 1.2 начнутся с переработки API в сопутствующих ldap-библиотеках с утратой совместимости с предыдущим версиями. Это позволит, с одной стороны, получить более прозрачное и удобное API, которое будет провоцировать меньше ошибок. С другой стороны, переработка API необходима для устранения неоднозначностей и адекватной работы статических анализаторов кода (Coverity, PVS-Studio и др.).

Вторым изменением в ветке 1.2 будет переход на актуальную версию движка хранения libmdbx. Которая, среди прочего, поддерживает управление геометрией и бесплатную авто-компактификацию с освобождением места на диске. С точки зрения пользователя, это позволит автоматически и безболезненно как увеличивать, так и уменьшать размер БД, в том числе без остановки сервера или деградации услуг.

К сожалению, новые возможности не даются бесплатно. Для возможности их реализации в libmdbx был существенно переработан (и ещё не зафиксирован) внутренний формат БД, с потерей совместимости с предыдущими версиями.

Пользуюсь случаем хочется ответить на частый вопрос «Почему нет пакетов?»: ReOpenLDAP ориентирован на достаточно специализированные сценарии применения, для которых не представляется возможным создать универсальную конфигурацию и собрать соответствующий пакет. Во всех известных (авторам) случаях используются адаптированны под собственные нужды конфигурации (опции configure, включая подключаемые модули и оверлеи), в частности используются монолитные сборки с LTO.

Планируемые (и большей частью уже реализованные) доработки libmdbx также приведут к утрате совместимости по формату БД. Всё это вместе давало повод не формировать пакеты, так как последующие обновления нарушили бы совместимость и только огорчили пользователей. Авторы не владеют информацией (не имеют полноценного видения) о том, в какой именно конфигурации должен быть собран ReOpenLDAP для пакетирования. Поэтому мы (прежде всего) ждем встречной активности от тех, кто уже использует проект или планирует это сделать (состав компонентов и библиотек принципиально не изменится, поэтому всячески приветствуются pull-request-ы с пакетированием).

© OpenNet