Релиз LDAP-сервера ReOpenLDAP 1.1.7

Состоялся релиз LDAP-сервера ReOpenLDAP 1.1.7, в рамках которого развивается форк проекта OpenLDAP, в котором проведена работа по устранению ошибок и внесению улучшений для стабильной работы репликации. Проект ориентирован на надежность и производительность при использовании в решениях с высокой нагрузкой и промышленных системах в сфере телекоммуникаций.

ReOpenLDAP уже применяется в инфраструктуре ПАО МегаФон, обеспечивая высоконагруженную обработку запросов в multi-master кластере с full-mesh репликацией, демонстрируя производительность на уровне 10 тысяч обновлений и 25 тысяч операций поиска в секунду на наборе данных 100 млн записей (100 Гб данных). В новом выпуске добавлен перевод системных руководств на русский язык, обеспечена поддержка привязки открытых ключей (PKP, Public key pinning), удалён ldap_pvt_thread_rmutex, добавлен рекурсивный POSIX мьютекс для libevent, реализована функция ldap_connect().

Причиной создания форка является отказ включения в основной состав OpenLDAP ряда исправлений из-за желания сохранения совместимости с устаревшими Си-компиляторами (совместимость с компиляторами без поддержки вариативных макросов, которые появились в стандарте C99, нарушалась лишь в одном патче из большой серии исправлений). После форка ветка ReOpenLDAP master поддерживается в стабильном состоянии и соответствует OpenLDAP/2.4.x, с добавлением отдельных доработок из OpenLDAP/master. Ветка ReOpenLDAP next соответствует следующей версии OpenLDAP/2.5.x.

Особенности ReOpenLDAP:

  • Корректная и надёжная работа репликации в режиме multi-master;
  • Команда «reopenldap [iddqd] [idkfa] [idclip]»;
  • Новые настройки:
    • quorum { [vote-sids …] [vote-rids …] [auto-sids] [auto-rids] [require-sids …] [require-rids …] [all-links] }
    • «quorum limit-concurrent-refresh
    • «biglock { none | local | common }
    • syncprov-showstatus { none | running | all }
    • crash-backtrace on|off
    • coredump-limit {mbytes}
    • memory-limit {mbytes}
  • Модернизация хранилища mdbx для повышения масштабируемости и улучшения репликации;
  • Поддержка срезов состояния (checkpoint) при изменении раздела или по таймеру;
  • Поддержка опции requirecheckpresent для syncrepl;
  • Поддержка настройки keepalive для входящих соединений;
  • Встроенная система проверки памяти с поддержкой ls-malloc;
  • Пригодность для отладки в AddressSanitizer и Valgrind;
  • Возможность применения оптимизации на стадии компоновки (LTO, Link-Time Optimization) при сборке в GCC и Clang;
  • Поддержка OpenSSL 1.1.x, Mozilla NSS, GnuTLS и LibreSSL 2.5.x;
  • Перенос всех исправлений из веток openldap/master и openldap/2.4;
  • Большое число исправлений, связанных с репликацией;
  • Устранено около 5 тысяч предупреждений при сборке в GCC/clang и 1 тысяча предупреждний при проверке в ThreadSanitizer
  • Устранено большинство утечек памяти;
  • Решены проблемы, выявленные статистическими анализаторами PVS-Studio и Coverity.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.