Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Леонид Юрьев

Страницы: [1] 2 3 4
1
https://hackathon.phdays.com/

P.S.
Для голосования нужен аккаунт на github.

2
Не обратил внимания, что фильтрации по суффиксу вам достаточно (такой функционал конечно есть).

Но отказываться от olcAccessLogOps не обязательно. Точнее говоря olcAccessLogOps olcAccessLogBase действуют параллельно.
Посредством olcAccessLogOps можно задать список операций для всех суффиксов, а посредством olcAccessLogBase добавить операции для конкретных суффиксов.

Когда-то был запрос добавить в ReOpenLDAP возможность выключать accesslog для отдельных суффиксов или глобально по списку операций, т.е. добавить "выключательные" аналоги olcAccessLogOps и olcAccessLogBase.
Но постепенно такая потребность "рассосалась" (сначала было обнаружено что порча данных была из-за репликации, а потом я починил репликацию).

3
Нет, фильтрации по классам объектов не реализована.

Но можете попробовать добавить, примерно вот в это место в коде.

4
Приветствую.

Егор Левинца попросил вам ответить.

Во-первых, я категорически НЕ рекомендую использоваться OpenLDAP в конфигурациях с репликацией на больших объемах данных.
К сожалению, там остается несколько ошибок, в частности из-за которых syncrepl может удалить любое кол-во DN-ов попадающих под репликацию.
И чем больше данных, тем больше вероятность такой зачистки.
В МегаФоне эта и другие проблемы несколько раз "стреляли" в 2013-2015 годах. Собственно ради их устранения был создан ReOpenLDAP.

Во-вторых, из-за особенностей RFC4533 совпадение наборов отметок contextCSN не дает гарантии на совпадение содержимого.
Более того, случившееся расхождение может не обнаруживаться самими LDAP-серверами достаточно долго.
В ReOpenLDAP для этого предусмотрены дополнительные механизмы, контролируемыми соответствующими параметрами.
Посмотрите в man-страницах (будут доступны после установки ReOpenLDAP) описание syncprov-showstatus для syncprov, и requirecheckpresent для syncrepl.

По ссылкам есть пояснение всех проблем/ошибок, на которые я ссылался. Даже слайды презентации по этой теме с LDAP-конференции.

P.S. Сегодня вышел "Airborne Positive"

5
Я влил доработки http://www.osstech.co.jp/product/openldap в ReOpenLDAP.
Для "попробовать" следует брать ветку devel (https://github.com/leo-yuriev/ReOpenLDAP/tree/devel)

При вливании правок исправлено несколько ошибок в оригинальном коде https://www.osstech.co.jp/:
 - неверный тип аргументов в нескольких вызовах функций (попутаны wt_ctx и wt_ctx->session).
 - отсутствие скобок при комбинации условий || и &&.
 - забытый обработчик wt_hasSubordinates.

Это не считая полсотни устраненных предупреждений.

6
На всякий отвечу раз заметил.

Для 32-битной системы у вас слишком большой размер базы.
MDB-бакенд отображает все данные в память (не обязательно загрузит, но отобразит).
Поэтому адекватной можно считать конфигурацию, в которой суммарный размер всех mdb-баз не превышает 1-1.5 Gb.
Тем не менее, в зависимости от конфигурации ядра (сплит 2/2 или 1/3), может как-то заработать с общим размером всех mdb-баз вплоть до 2.5 Gb.

7
У меня есть намерение в мае влить в ReOpenLDAP все наработки для WiredTiger-бэкнда из https://github.com/osstech-jp/openldap.

Хотелось-бы понять кому это требуется в практических целях и кто согласен принять участие в тестировании.

8
Леонид, а подскажите такой практический вопрос.

С репликой все хорошо, она живая и не разваливается на огромных объемах.
Но обнаружили другой момент.
Юзаем ее для базы в размере 2590000 записей (два с половиной миллиона). В одиночную базу записывается достаточно быстро (там у нас импортируется скриптом) за 22-24 часа.
А вот потом дальнейшая синхронизация с другим сервером - первые миллиона полтора идут быстро.
А потом начинает скорость падать и падать до 400 записей за 5 минут.
И очень сильно растет нагрузка на жесткие диски.

Несмотря на виртуализацию, ресурсы выделены достаточные. Проц практически не нагружается.
Что бы вы могли посоветовать в данном вопросе?

Во-первых, советую включить limit-concurrent-refresh. Посмотрите описание этой опции в man-страницах.

Во-вторых, у MDBX/LMDB нет WAL и из-за этого относительно большой WAF (эта особенность является плюсом одних ситуациях и минусом в других).
Проще говоря, любое обновление одной записи породит Olog(N) обновлений в файле БД на диске.
Поэтому "направление выхода" одно - не фиксировать на диске каждое изменение отдельно, а делать пакетную или "ленивую" запись.

С практической точки зрения вам нужно для mdb-бэкенда использовать опции: utterly-nosync (не описана в man), nosync, writemap, nometasync и расширенный вариант checkpoint, что позволит сбрасывать данные на диск с задаваемым периодом и/или по объему накопившихся изменений.

В третьих, если у вас система хранения (дисковый контроллер) с write-back кэшем "на батарейке", то может сильно помочь опция "lifo" mdb-бэкенда.

В четвертых, вы можете менять режим работы БД в некоторых пределах "на лету" (без перезагрузки сервере через config-бэкенд).
Т.е. выключать синхронную фиксацию на диске на время заливки данных и первоначальной синхронизации, а потом включать обычный "безопасный" режим.
Такое переключение достаточно штатный подход, тем не менее в коде было очень много изменений, после того как такое переключение тестировали под нагрузкой в мегафоновских масштабах.
Поэтому лучше сначала проверить на стенде.

---

Для понимания терминов WAL, WAF и особенностей MDBX/LMDB советую пару раз прочесть https://github.com/leo-yuriev/libmdbx/blob/master/README-RU.md, там есть ссылки и пояснения относительно nosync-опций.
Кроме этого есть можно глянуть записи моих докладов  затрагивающих тему MDBX/LMDB/libmdbx.
Если не ошибаюсь на youtube доступна запись 2015 c Highload++, а у Стаса Фомина на http://0x1.tv есть записи с Alt-овых конференций.

9
Всем желающим предлагается потестировать релиз-кандидат.
https://github.com/leo-yuriev/ReOpenLDAP/releases/tag/v1.1.7-rc

Релиз версии 1.1.7 "Красноармеец" состоится 23 февраля 2018.

10
Хотелось-бы посмотреть вышел бы или нет из этой ситуации ReOpenLDAP.
И получить логи при отрицательном результате.

11
Цитировать
По wt-backend было бы прикольно. Не зря же его монго взяло, как базовый.
И еще раз огромное спасибо за оперативные ответы.
У Монго всё было достаточно плохо и безпросветно.
Как только M$ поняли это - решили прикупить движок хранения.
Но не суть, дело в другом.

Для LDAP характерна нагрузка по чтению/поиску, с относительно редкими записями.
Поэтому WT c LSM внутри тут совершенно не у дел.
При нагрузке по чтению MDBX (и LMDB) уделает в разы любой LSM, не только WT, но и RocksDB, Sophia, Vynil из Tarantool и т.д.
Для примера http://bit.ly/2mvaJEN

Но и при большой нагрузке по записи/обновлению MDBX может достаточно много.
Особенно если данные помещаются в память и на фоне апдейтов данных нужно держать высокую нагрузку по чтению.
В такой ситуации от LSM-движков можно ожидать глюков, дребезга и "замирания", а для MDBX достаточно быстрого SSD и/или контроллера с Write-Back кэшем на батарейке.
Поэтому в МегаФон под нагрузкой работает MDBX и ReOpenLDAP, а не WT или RocksDB.
Грубо говоря, MDBX как АК-47 - стреляет пака есть патроны...

Цитировать
Реплика на 200к прошла без проблем. Единственное, в логи постоянно валится syncrepl_process: rid=003 (-45) Unknown API error
по которому я пока информацию найти не смог. ( Но думаю - это дело наживное.

Да, это мелкая забытая оплошность. Не ошибка, можете смело игнорировать.
Поправил в devel-ветке = https://github.com/leo-yuriev/ReOpenLDAP/commit/999ee68f1c3027a7448627b35bef86e63bc356ec

12
Цитировать
Ну на тестах запустили. Будем смотреть сейчас на прокачку 200к записей в базу.
И еще такой момент подскажите - в гите, где у вас лежит ReOpenLDAP - там уже движок хранения mdbx? --enable-mdb включает его? Или нужны какие-то дополнительные действия по его интеграции?

Да, движок уже внутри https://github.com/leo-yuriev/ReOpenLDAP/tree/devel/libraries/libmdbx (вставлен посредством git subtee).

Да, --enable-mdb включает его.
В целом, по историческим причинам, mdbx внутри ReOpenLDAP виден как LMDB/mdb.
Дополнительные опции описаны в man-страницах.

На всякий уточню про wt-backend.
В своей версии (https://github.com/osstech-jp/openldap) японцы много чего доледали/исправили.
Поэтому она гораздо более работоспособна чем оригинальный OpenLDAP.
Тем не менее, они доработаювают только wt-backend.
Соответственно все баги в самом OpenLDAP остались как есть.
Предполагаю что проблемы с репликацией у вас именно из-за них.

Я предложил им влиться в ReOpenLDAP (https://github.com/osstech-jp/openldap/issues/6), но пока молчат.
Тем не менее, я думаю взять все их доработки wt-бэкенда в ReOpenLDAP.


13
> Если вы используете OpenLDAP версии 2.4.38 или выше, то репликация там более-менее отлажена
Если вы используете OpenLDAP версии 2.4.38 или выше, то репликация там более-менее отлажена (по крайней мере с mdb), в прежних версиях были проблемы. Вообще, я попрошу Леонида Юрьева посмотреть Ваш вопрос, возможно, он что-то подскажет (у него большой опыт борьбы с репликацией =) ) .

Егор, спасибо за приглашение.

1) Про репликацию.
Ни в одной из версий OpenLDAP репликация полноценно не работает. Причем чем старее версия, тем страшнее баги...
С multi-master (aka n-way) у OpenLDAP есть несколько принципиальных проблем.
Кратко они перечислены и пояснены на слайдах https://ldapcon.org/2017/reopenldap/
Еще пару раз пояснял тут и на linux.org.ru. Если будут конкретный вопросы, то могу ответить.
Обращаю внимание - в OpenLDAP может случится массивное удаление данных, вплоть до полной вычисти всего replication scope!!!
Короче, если нужен multi-master, то только ReOpenLDAP.

2) Про WiredTiger backend.
Он экспериментальный и точно не готов для использования, также как и SQL-backend.
Там достаточно ошибок и недочетов: использование не-инициализированных данных, игнорирование или неверная обработка ошибок и т.д.
Если у вас есть какие-то веские причины использовать wt, то нужно брать ReOpenLDAP и добиваться работы всех тестов в нагрузочно-паралельном режиме (например посредством https://github.com/leo-yuriev/ReOpenLDAP/blob/devel/build/ci/buzz.sh).
Кроме этого, я могу дать скрипты для нагрузочной проверки multi-master репликации.
Если же вы не готовы приложить описанные усилия, то не морочьте голову и переключайтесь на MDBX (mdb) в ReOpenLDAP.

На всякий - на мой взгляд у WiredTiger нет никаких преимуществ перед https://github.com/leo-yuriev/libmdbx для LDAP-сценариев.

14
Егор, приветствую.

Немного невероятно, но Говард выступил.
https://twitter.com/ldapcon/status/920944614462382080
https://twitter.com/clementoudot/status/920946571629531136

Со слайдами вышло немного сумбурно.
Ещё в сентябре всё остановилось на получении согласия от программного комитета.
Эта тишина была до вчерашнего дня, а потом просто попросили слайды.
Пришлось попробовать "всё бросить" и сделать их.
Кроме самих слайдов как таковых нужно было набросать тесты, чтобы Говард хоть примерно понимал что я хотел сказать...
Короче, кое-что до утра я успел = https://ldapcon.org/2017/wp-content/uploads/2017/08/1_ReOpenLDAP-LDAPCON-2017.pdf

Леонид

15
Общий раздел / Re: ReOpenLDAP на LDAPCon 2017 в Брюсселе
« : 15 Сентябрь 2017, 12:55:23 »
Егор, для информации:
- В конце августа достигнута устная договоренность с Howard Chu в том, что он выступит от моего имени (с моими тезисами и слайдами, но его комментариями).
- Окончательное решение о такой замене должен принять программный комитет, пока молчат.
- Еще есть риск, что Говард обидеться за мой выпад в сторону LMDB, в твиттере вот перестал отвечать.

Страницы: [1] 2 3 4
Эта страница

Содержание

Новости:
Форум проекта Pro-LDAP.ru
OpenLDAP 2.4 Руководство

Содержание

Введение в службы каталогов OpenLDAPБыстрое развёртывание и начало работыОбщая картина - варианты конфигурацииСборка и установка OpenLDAPНастройка slapd

 

Конфигурационный файл slapdЗапуск slapdКонтроль доступаОграниченияИнструментыМеханизмы манипуляции даннымиНаложенияСпецификация схемы

 

БезопасностьSASLTLSРаспределённая служба каталоговРепликацияОбслуживаниеМониторингПроизводительностьУстранение неполадок
Перевод официального руководства OpenLDAP 2.4 Admin Guide
Полное содержание здесь
LDAP для учёных-ракетчиков

Содержание

О книгеКонцепции LDAPОбъекты LDAPУстановка LDAPПримерыНастройкаРепликация и отсылкиLDIF и DSMLПротоколLDAP API

 

HOWTOНеполадкиПроизводительностьИнструменты LDAPБезопасностьЗаметкиРесурсы LDAPRFC и X.500ГлоссарийОбъекты
Перевод "LDAP for Rocket Scientists"
Полное содержание здесь
Ресурсы

Книги

Руководство OpenLDAP 2.4LDAP для учёных-ракетчиков

Другие

СтатьиТермины LDAPman-страницы OpenLDAP 2.4Список RFCКлиенты LDAPФайлы наборов схемы
Полезные ресурсы
Форум

 

Разделы форумаНепрочитанные сообщенияПоследние сообщения
Форум проекта
Главная

Pro-LDAP.ru

О проектеНовости проектаУчастникиСтаньте участником!Сообщите об ошибке!Об авторских правахСоглашения проекта
Присоединяйсь!