SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
OSSDEV-2015: ReOpenLDAP
Кластерный LDAP для «Больших телекомов»
Леонид Юрьев
Петер-Сервис РнД, Сколково
Кластерный LDAP для Больших телекомов
● Решения для крупных операторов связи
● Полный цикл: проектирование, разработка,
внеднение, поддержка
● более 20 лет
● > 100 миллионов абонентов
● http://www.billing.ru
Кластерный LDAP для Больших телекомов
Зачем нам это?
● LDAP «прописан» как протокол взаимодействия Telco-
подсистем
● Сервер LDAP является обязательным компонентом
● Решили обзавестить своим «кубиком»
Кластерный LDAP для Больших телекомов
Требования, однако:
● от 10К обновлений в секунду
● от 25К запросов в секунду, с перспективой роста
● 107-108 записей
● Multi-master репликация
● Гео-распределенный кластер 2x2
● 24x7
Кластерный LDAP для Больших телекомов
Кандидаты:
● 389DS, OpenDJ, ApacheDS, OpenLDAP...
● Желаемую нагрузку по-записи не выдержал никто
● OpenLDAP:
– LMDB внутри, MVCC
– Линейное масштабироание по-чтению
– Нет взаимодеградации чтение/запись
– Производительность по-записи упирается в диск
– Есть mmapped-режим, ядро сохрянит базу при аварии
Кластерный LDAP для Больших телекомов
OpenLDAP, проблемы:
● Утечки памяти
● Падения в коде БД-движка
● Падения при проблемах в сети
● Странное поведение репликации…
● Регулярные переполнения базы
Кластерный LDAP для Больших телекомов
Facepalm:
● Symas Corp принимали репорты и всё…
● Начали разбираться сами:
– Распухание FreeDB → пробный LIFO патч
– Ошибки double-free и ±1
– Valgrind
– Race conditions и поехали…
● Адъ и содомия в исходном коде
Кластерный LDAP для Больших телекомов
Почему форк:
● 5000 предупреждений, 99% безобидные, 1% баги
● Качество кода «спорное», технический долг захлестывает
● Нам нужно ехать, а не шашечьки
● А также:
– Патч завернули из-за __VA_ARGS__
– Нет актуальных компиляторов без поддержки __VA_ARGS__
– __VA_ARGS__ уже были в исходниках
– Никто не проверяет собираемость на старых платформах
– Устранение других предупреждений не заинтересовало меинтейноров OpenLDAP
Кластерный LDAP для Больших телекомов
OpenLDAP = facepalm!
1) Проект не ориентирован на развитие усилиями сообщества
2) … 5) … 10)
Так НЕ надо делать ПО!
Please, don't create a software anymore, especially multi-threaded,
and a protocols related to replication too.
This will be enough to make the World better, and save my time ;)
Кластерный LDAP для Больших телекомов
Наш ReOpenLDAP:
● Забыли про windows и устаревшие системы
● На FreeBSD меинтейнера не нашлось
● Сконцентрировались на затребованном:
– только Linux и x86_64(backtrace feature)
– не старше RHEL6
– GCC либо Clang
– Стабильность, Репликация, Производительность.
Кластерный LDAP для Больших телекомов
Основные доработки:
● Инфраструктура: чекер памяти, IDKFA...
● Тесты: теперь они могут не падать
● LMDB: собственная версия, отдельная тема (aka MDBX)
● SLAPD: выявленно и устраненно «100500»
● Репликация: наша боль...
Кластерный LDAP для Больших телекомов
MDBX (наша версия движка базы данных):
● Будет доклад на HighLoad++2015:
– http://www.highload.ru/2015/abstracts/1831.html
– 2 – 3 ноября, Москва, Крокус-Экспо
– С результатами бенчмарков и сравнениями с Sophia, WiredTiger, LevelDB…
● Гарантия консистентности для WRITEMAP
● LIFO
● OOM-Handler
● mdb_chk
Кластерный LDAP для Больших телекомов
SLAPD (1):
● Больше нет проблемы «отставших читателей»
– Dreamcatcher минимизирует вероятность
– Oom-handler гарантирует
● BigLock
– Устраняет волатильность: UUID → DN
Кластерный LDAP для Больших телекомов
SLAPD (2):
● «Кворум» при репликации
– Переводит узел в readonly при нарушении связанности
● Limit-concurrent-refresh
– В разы уменьшает пиковое потребление RAM и CPU
– Внезапно кластер синхронизируется в разы быстрее
● Checkpoints
– Периодически с посекундной точностью
– По объему изменений
Кластерный LDAP для Больших телекомов
SLAPD (3)
● Репликация, много переделок, но еще болеет:
– Доработали тесты и стали замечать
– https://github.com/ReOpen/ReOpenLDAP/issues/43
– Только в августе наши способ/сценарий воспроизведения
● ≈ 50% кода переписано
● До 2-3 раз снижено кол-во транзакций
– Пропуск лишних обновлений contextCSN
●
...
Кластерный LDAP для Больших телекомов
Что дальше?
● Получили приемлемую версию:
– Наиболее стабильная из известных нам
– Наиболее проиводительная
– Много мозолей и пота
● Были планы зарелизиться летом, но репликация...
● Петер-Сервис с вероятность 50%:
– Стратегически выберет другую платформу
– Будет поддерживать релиз до вывода из эксплуатации
● Будем пробовать передать в сообщество, но не в родительский проект.

Contenu connexe

Tendances

«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
 
Golang в avito
Golang в avitoGolang в avito
Golang в avitoAvitoTech
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиBadoo Development
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)Ontico
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Ontico
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ontico
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Ontico
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияphpdevby
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Ontico
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Ontico
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012Roman Pavlushko
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Ontico
 

Tendances (20)

«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитики
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 

En vedette

Не_все_байты_одинаково_полезны
Не_все_байты_одинаково_полезныНе_все_байты_одинаково_полезны
Не_все_байты_одинаково_полезныAlexander Belenky
 
Trend Report (22.07 - 29.07.16) "Многопокемонный"
Trend Report (22.07 - 29.07.16) "Многопокемонный"Trend Report (22.07 - 29.07.16) "Многопокемонный"
Trend Report (22.07 - 29.07.16) "Многопокемонный"SKORPA MEDIA
 
Foreign digital-cases of telecom operators
Foreign digital-cases of telecom operatorsForeign digital-cases of telecom operators
Foreign digital-cases of telecom operatorsDALEE digital agency
 
Маркетинг в Tinder
Маркетинг в TinderМаркетинг в Tinder
Маркетинг в TinderMoscow Digital
 
Beeline. Digital–революция на рынке Mobile Programmatic
Beeline. Digital–революция на рынке Mobile ProgrammaticBeeline. Digital–революция на рынке Mobile Programmatic
Beeline. Digital–революция на рынке Mobile ProgrammaticHybridRussia
 
Business cases data_FR
Business cases data_FRBusiness cases data_FR
Business cases data_FRWeborama
 
MARKETING & LOYALTY CONFERENCE
MARKETING &  LOYALTY CONFERENCEMARKETING &  LOYALTY CONFERENCE
MARKETING & LOYALTY CONFERENCELena Kanshyna
 
Businesscases data_EN
Businesscases data_ENBusinesscases data_EN
Businesscases data_ENWeborama
 
Vimpelcom: Transformation to Digital Business
Vimpelcom: Transformation to Digital BusinessVimpelcom: Transformation to Digital Business
Vimpelcom: Transformation to Digital BusinessIvano Digital
 
Мультиканальная атрибуция на примере жизни Васи
Мультиканальная атрибуция на примере жизни ВасиМультиканальная атрибуция на примере жизни Васи
Мультиканальная атрибуция на примере жизни ВасиMoscow Digital
 
Agile: Что это такое и какая от него польза
Agile: Что это такое и какая от него пользаAgile: Что это такое и какая от него польза
Agile: Что это такое и какая от него пользаIvano Digital
 

En vedette (15)

Weborama Audience Insight
Weborama Audience InsightWeborama Audience Insight
Weborama Audience Insight
 
Не_все_байты_одинаково_полезны
Не_все_байты_одинаково_полезныНе_все_байты_одинаково_полезны
Не_все_байты_одинаково_полезны
 
Trend Report (22.07 - 29.07.16) "Многопокемонный"
Trend Report (22.07 - 29.07.16) "Многопокемонный"Trend Report (22.07 - 29.07.16) "Многопокемонный"
Trend Report (22.07 - 29.07.16) "Многопокемонный"
 
Тренды 2017
Тренды 2017Тренды 2017
Тренды 2017
 
Foreign digital-cases of telecom operators
Foreign digital-cases of telecom operatorsForeign digital-cases of telecom operators
Foreign digital-cases of telecom operators
 
Конверсия падает, но прибыль растет - Так бывает? Р.Рыбальченк
Конверсия падает, но прибыль растет - Так бывает? Р.РыбальченкКонверсия падает, но прибыль растет - Так бывает? Р.Рыбальченк
Конверсия падает, но прибыль растет - Так бывает? Р.Рыбальченк
 
10 удивительных кейсов повышения конверсии (западные). А.Пареха
10 удивительных кейсов повышения конверсии (западные). А.Пареха10 удивительных кейсов повышения конверсии (западные). А.Пареха
10 удивительных кейсов повышения конверсии (западные). А.Пареха
 
Маркетинг в Tinder
Маркетинг в TinderМаркетинг в Tinder
Маркетинг в Tinder
 
Beeline. Digital–революция на рынке Mobile Programmatic
Beeline. Digital–революция на рынке Mobile ProgrammaticBeeline. Digital–революция на рынке Mobile Programmatic
Beeline. Digital–революция на рынке Mobile Programmatic
 
Business cases data_FR
Business cases data_FRBusiness cases data_FR
Business cases data_FR
 
MARKETING & LOYALTY CONFERENCE
MARKETING &  LOYALTY CONFERENCEMARKETING &  LOYALTY CONFERENCE
MARKETING & LOYALTY CONFERENCE
 
Businesscases data_EN
Businesscases data_ENBusinesscases data_EN
Businesscases data_EN
 
Vimpelcom: Transformation to Digital Business
Vimpelcom: Transformation to Digital BusinessVimpelcom: Transformation to Digital Business
Vimpelcom: Transformation to Digital Business
 
Мультиканальная атрибуция на примере жизни Васи
Мультиканальная атрибуция на примере жизни ВасиМультиканальная атрибуция на примере жизни Васи
Мультиканальная атрибуция на примере жизни Васи
 
Agile: Что это такое и какая от него польза
Agile: Что это такое и какая от него пользаAgile: Что это такое и какая от него польза
Agile: Что это такое и какая от него польза
 

Similaire à OSSDEV-2015: ReOpenLDAP

Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 
Проблематика создания OpenFlow контроллеров для SDN
Проблематика создания OpenFlow контроллеров для SDNПроблематика создания OpenFlow контроллеров для SDN
Проблематика создания OpenFlow контроллеров для SDNARCCN
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовARCCN
 
сети хранения данных настоящее и будущее Ds con
сети хранения данных настоящее и будущее Ds con   сети хранения данных настоящее и будущее Ds con
сети хранения данных настоящее и будущее Ds con Expolink
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)Ontico
 
Intel DPDK в решениях для противодействия DDoS-атакам
Intel DPDK в решениях для противодействия DDoS-атакамIntel DPDK в решениях для противодействия DDoS-атакам
Intel DPDK в решениях для противодействия DDoS-атакамГлеб Хохлов
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Evgeny Kokovikhin
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...Procontent.Ru Magazine
 
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Ontico
 
High performance computing принципы проектирования сети
High performance computing принципы проектирования сетиHigh performance computing принципы проектирования сети
High performance computing принципы проектирования сетиMUK Extreme
 
SDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeSDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeARCCN
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.Максим Захаренко
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...ARCCN
 
Olap и oltp технологии
Olap и oltp технологииOlap и oltp технологии
Olap и oltp технологииIlya Ternovoy
 

Similaire à OSSDEV-2015: ReOpenLDAP (20)

Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
Проблематика создания OpenFlow контроллеров для SDN
Проблематика создания OpenFlow контроллеров для SDNПроблематика создания OpenFlow контроллеров для SDN
Проблематика создания OpenFlow контроллеров для SDN
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторов
 
сети хранения данных настоящее и будущее Ds con
сети хранения данных настоящее и будущее Ds con   сети хранения данных настоящее и будущее Ds con
сети хранения данных настоящее и будущее Ds con
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
 
Intel DPDK в решениях для противодействия DDoS-атакам
Intel DPDK в решениях для противодействия DDoS-атакамIntel DPDK в решениях для противодействия DDoS-атакам
Intel DPDK в решениях для противодействия DDoS-атакам
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
 
High performance computing принципы проектирования сети
High performance computing принципы проектирования сетиHigh performance computing принципы проектирования сети
High performance computing принципы проектирования сети
 
SDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeSDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchange
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
Пилотные зоны для тестирования и апробирования SDN&NFV разработок и решений в...
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Olap и oltp технологии
Olap и oltp технологииOlap и oltp технологии
Olap и oltp технологии
 

OSSDEV-2015: ReOpenLDAP

  • 1. OSSDEV-2015: ReOpenLDAP Кластерный LDAP для «Больших телекомов» Леонид Юрьев Петер-Сервис РнД, Сколково
  • 2. Кластерный LDAP для Больших телекомов ● Решения для крупных операторов связи ● Полный цикл: проектирование, разработка, внеднение, поддержка ● более 20 лет ● > 100 миллионов абонентов ● http://www.billing.ru
  • 3. Кластерный LDAP для Больших телекомов Зачем нам это? ● LDAP «прописан» как протокол взаимодействия Telco- подсистем ● Сервер LDAP является обязательным компонентом ● Решили обзавестить своим «кубиком»
  • 4. Кластерный LDAP для Больших телекомов Требования, однако: ● от 10К обновлений в секунду ● от 25К запросов в секунду, с перспективой роста ● 107-108 записей ● Multi-master репликация ● Гео-распределенный кластер 2x2 ● 24x7
  • 5. Кластерный LDAP для Больших телекомов Кандидаты: ● 389DS, OpenDJ, ApacheDS, OpenLDAP... ● Желаемую нагрузку по-записи не выдержал никто ● OpenLDAP: – LMDB внутри, MVCC – Линейное масштабироание по-чтению – Нет взаимодеградации чтение/запись – Производительность по-записи упирается в диск – Есть mmapped-режим, ядро сохрянит базу при аварии
  • 6. Кластерный LDAP для Больших телекомов OpenLDAP, проблемы: ● Утечки памяти ● Падения в коде БД-движка ● Падения при проблемах в сети ● Странное поведение репликации… ● Регулярные переполнения базы
  • 7. Кластерный LDAP для Больших телекомов Facepalm: ● Symas Corp принимали репорты и всё… ● Начали разбираться сами: – Распухание FreeDB → пробный LIFO патч – Ошибки double-free и ±1 – Valgrind – Race conditions и поехали… ● Адъ и содомия в исходном коде
  • 8. Кластерный LDAP для Больших телекомов Почему форк: ● 5000 предупреждений, 99% безобидные, 1% баги ● Качество кода «спорное», технический долг захлестывает ● Нам нужно ехать, а не шашечьки ● А также: – Патч завернули из-за __VA_ARGS__ – Нет актуальных компиляторов без поддержки __VA_ARGS__ – __VA_ARGS__ уже были в исходниках – Никто не проверяет собираемость на старых платформах – Устранение других предупреждений не заинтересовало меинтейноров OpenLDAP
  • 9. Кластерный LDAP для Больших телекомов OpenLDAP = facepalm! 1) Проект не ориентирован на развитие усилиями сообщества 2) … 5) … 10) Так НЕ надо делать ПО! Please, don't create a software anymore, especially multi-threaded, and a protocols related to replication too. This will be enough to make the World better, and save my time ;)
  • 10. Кластерный LDAP для Больших телекомов Наш ReOpenLDAP: ● Забыли про windows и устаревшие системы ● На FreeBSD меинтейнера не нашлось ● Сконцентрировались на затребованном: – только Linux и x86_64(backtrace feature) – не старше RHEL6 – GCC либо Clang – Стабильность, Репликация, Производительность.
  • 11. Кластерный LDAP для Больших телекомов Основные доработки: ● Инфраструктура: чекер памяти, IDKFA... ● Тесты: теперь они могут не падать ● LMDB: собственная версия, отдельная тема (aka MDBX) ● SLAPD: выявленно и устраненно «100500» ● Репликация: наша боль...
  • 12. Кластерный LDAP для Больших телекомов MDBX (наша версия движка базы данных): ● Будет доклад на HighLoad++2015: – http://www.highload.ru/2015/abstracts/1831.html – 2 – 3 ноября, Москва, Крокус-Экспо – С результатами бенчмарков и сравнениями с Sophia, WiredTiger, LevelDB… ● Гарантия консистентности для WRITEMAP ● LIFO ● OOM-Handler ● mdb_chk
  • 13. Кластерный LDAP для Больших телекомов SLAPD (1): ● Больше нет проблемы «отставших читателей» – Dreamcatcher минимизирует вероятность – Oom-handler гарантирует ● BigLock – Устраняет волатильность: UUID → DN
  • 14. Кластерный LDAP для Больших телекомов SLAPD (2): ● «Кворум» при репликации – Переводит узел в readonly при нарушении связанности ● Limit-concurrent-refresh – В разы уменьшает пиковое потребление RAM и CPU – Внезапно кластер синхронизируется в разы быстрее ● Checkpoints – Периодически с посекундной точностью – По объему изменений
  • 15. Кластерный LDAP для Больших телекомов SLAPD (3) ● Репликация, много переделок, но еще болеет: – Доработали тесты и стали замечать – https://github.com/ReOpen/ReOpenLDAP/issues/43 – Только в августе наши способ/сценарий воспроизведения ● ≈ 50% кода переписано ● До 2-3 раз снижено кол-во транзакций – Пропуск лишних обновлений contextCSN ● ...
  • 16. Кластерный LDAP для Больших телекомов Что дальше? ● Получили приемлемую версию: – Наиболее стабильная из известных нам – Наиболее проиводительная – Много мозолей и пота ● Были планы зарелизиться летом, но репликация... ● Петер-Сервис с вероятность 50%: – Стратегически выберет другую платформу – Будет поддерживать релиз до вывода из эксплуатации ● Будем пробовать передать в сообщество, но не в родительский проект.