Вышла (https://github.com/leo-yuriev/ReOpenLDAP/releases/tag/v1.1.6) новая версия ReOpenLDAP (https://github.com/leo-yuriev/ReOpenLDAP) — форка проекта OpenLDAP (http://www.openldap.org/), с устранением массы ошибок и ряда доработок для стабильной работы репликации. С выпуском 1.1.6 проект ReOpenLDAP отметил три года с момента своего основания (публичный форк появился чуть позже). Всё это время ReOpenLDAP работает 24x7 в инфраструктуре ПАО МегаФон, обеспечивая высоконагруженную обработку запросов в multi-master кластере с full-mesh репликацией.
Версия 1.1.6 аккумулирует работу 8 месяцев этого года и включает:
более сотни коммитов (https://github.com/leo-yuriev/ReOpenLDAP/compare/v1.1.5...v1... в том числе более 50 исправлений ошибок; поддержку musl-libc (https://www.musl-libc.org), а также ряд доработок для совместимости и упрощения сборки; Continuous Integration на инфраструктуре Travis-CI (https://travis-ci.org/leo-yuriev/ReOpenLDAP) и Circle-CI (https://circleci.com/gh/leo-yuriev/ReOpenLDAP).
С этим релизом ветка 1.1 получает статус архивно-стабильной. В ней будут исправляться ошибки, но какая-либо разработка будет прекращена. В свою очередь, работы в ветке 1.2 начнутся с переработки API в сопутствующих ldap-библиотеках с утратой совместимости с предыдущим версиями. Это позволит, с одной стороны, получить более прозрачное и удобное API, которое будет провоцировать меньше ошибок. С другой стороны, переработка API необходима для устранения неоднозначностей и адекватной работы статических анализаторов кода (Coverity, PVS-Studio и др.).
Вторым изменением в ветке 1.2 будет переход на актуальную версию (https://github.com/leo-yuriev/libmdbx/blob/master/README.md) движка хранения libmdbx. Которая, среди прочего, поддерживает управление геометрией и бесплатную авто-компактификацию с освобождением места на диске. С точки зрения пользователя, это позволит автоматически и безболезненно как увеличивать, так и уменьшать размер БД, в том числе без остановки сервера или деградации услуг.
К сожалению, новые возможности не даются бесплатно. Для возможности их реализации в libmdbx (https://github.com/leo-yuriev/libmdbx) был существенно переработан (и ещё не зафиксирован) внутренний формат БД, с потерей совместимости с предыдущими версиями.
Пользуюсь случаем хочется ответить на частый вопрос "Почему нет пакетов?": ReOpenLDAP ориентирован на достаточно специализированные сценарии применения, для которых не представляется возможным создать универсальную конфигурацию и собрать соответствующий пакет. Во всех известных (авторам) случаях используются адаптированны под собственные нужды конфигурации (опции configure, включая подключаемые модули и оверлеи), в частности используются монолитные сборки с LTO (https://en.wikipedia.org/wiki/Interprocedural_optimization).
Планируемые (и большей частью уже реализованные) доработки libmdbx также приведут к утрате совместимости по формату БД. Всё это вместе давало повод не формировать пакеты, так как последующие обновления нарушили бы совместимость и только огорчили пользователей. Авторы не владеют информацией (не имеют полноценного видения) о том, в какой именно конфигурации должен быть собран ReOpenLDAP для пакетирования. Поэтому мы (прежде всего) ждем встречной активности от тех, кто уже использует проект или планирует это сделать (состав компонентов и библиотек принципиально не изменится, поэтому всячески приветствуются pull-request-ы с пакетированием).
URL: https://github.com/leo-yuriev/ReOpenLDAP/releases/tag/v1.1.6
Новость: http://www.opennet.ru/opennews/art.shtml?num=47015