Погружение в MongoDB: о чём хотят рассказать Leif Walsh и Henrik Ingo?
В этом году мы наблюдаем настоящий ажиотаж среди западных докладчиков – по всей видимости, HighLoad++ действительно становится одной из крупнейших конференций в Европе. У нас уже около десятка заявок от иностранных граждан – значит, будем устраивать конкурс и для приглашённых западных звёзд. Интересно, они с таким сталкивались? :)
Сначала старые знакомые – Leif Walsh и Henrik Ingo, которые представили шесть заявок по MongoDB на двоих.
Leif Walsh
Leif Walsh – инженер-программист компании Tokutek. Ранее работал над критически важным для обеспечения производительности ПО в Google и Microsoft, помогал создавать RethinkDB на старте этого проекта. Изучал математику и информатику в университете Stony Brook. В свободное время занимается литографией в качестве ассистента-любителя.
Лейф предлагает нам выбор из двух докладов.
Масштабирование с низким overhead при использовании индексирования Fractal Tree в TokuMX
В данном докладе я расскажу о двух типичных проблемах, с которыми сталкиваются базы данных с горизонтальным масштабированием, дам обзор того, как основные конкуренты справляются с этими проблемами, а затем покажу, как TokuMX решает эти проблемы благодаря особым свойствам индексирования Fractal Tree. Также я буду обсуждать с вами собственно структуру данных Fractal Tree и объясню, как она помогает достичь необходимых свойств для оптимизаций TokuMX.
Новая архитектура шардинга MongoDB для обеспечения высокой доступности и более оптимального использования ресурсов
Применив схему с несколькими участниками (multi-tenancy), можно спроектировать кластер MongoDB, более похожий на кластер Riak с хорошо распределенными операциями записи и некоторыми свойствами схем с несколькими участниками уровня master. Хотя это осуществимо в MongoDB, эта стратегия не даёт высокой производительности, поскольку экземпляры (instances), находящиеся на одной машине, будут бороться за системные ресурсы, и быстро появится «узкое место».
С оптимизациями TokuMX для архитектуры репликации MongoDB такая архитектура возможна. В данном докладе я объясню, как это работает, детально опишу предлагаемую архитектуру и представлю экспериментальные результаты, подтверждающие ее эффективность при практическом применении.
Henrik Ingo
А вот заявки Хенрика Инго. Henrik Ingo – архитектор решений MongoDB, проживающий недалеко от Хельсинки (Финляндия). Специализируется на повышении производительности MongoDB и обеспечении высокой доступности, а иногда и на преобразовании XML-документов в JSON.
До MongoDB в течение многих лет работал в мире MySQL и LAMP с MySQL, MariaDB, Drizzle, Percona, WebScaleSQL, MySQL Cluster и Galera Cluster. Он также является контрибьютором в ядро Drupal 7. Автор книги «Открытая жизнь: философия Open Source» (англ. "Open Life: The Philosophy of Open Source").
Шардинг в MongoDB
MongoDB имеет горизонтально масштабируемую архитектуру. Шардируя свой MongoDB кластер, вы можете увеличить его пропускную способность, будь то дисковое пространство, ОЗУ или ЦП. Шардинг – встроенная функциональность, шардинг и решардинг для данных выполняется автоматически, и возможность подключения к клиенту совершенно прозрачна.
Выбор ключа шардирования – главное решение на стадии проектирования, которое требует тщательного обдумывания, особенно если в дальнейшем его нельзя будет изменить. Tag Aware Sharding (шардинг с учётом тэгов) – простой, но эффективный инструмент, который позволит учесть на стадии проектирования специфические потребности – например, убедиться, что главная нода для данных пользователя находится на том же континенте, что и пользователь, отделить текущие шарды от архивных и т.д.
Кейс: горизонтальное масштабирование аналитической рабочей нагрузки с помощью фреймворка агрегирования и шардинга MongoDB
Клиент хотел хранить в MongoDB результаты тестов из своей системы непрерывной интеграции, чтобы сравнивать количество пройденных и не пройденных тестов для каждой сборки.
Модель данных представляла собой 3D-матрицу: можно думать о каждой сборке как об электронной таблице с вкладками, строками и столбцами – всего 17 значений для каждой сборки. Цель состояла в том, чтобы показать разницу между любыми двумя сборками, а затем продемонстрировать, что добавление дополнительных шардов линейно уменьшает время отклика. Это позволило клиенту обеспечить соответствие сколь угодно высоким требованиям к времени отклика путём предоставления необходимого количества оборудования.
Ваше первое приложение на MongoDB
Это вводный доклад про MongoDB: что такое документоориентированная БД, JSON, гибкая схема. Большую часть времени я отведу на привыкание к тому, что проектирование схемы с MongoDB отличается от старой доброй нормализованной реляционной схемы.
Примечание. Этот доклад может быть расширен до трёхчасового мастер-класса, в течение которого участники смогут спроектировать собственную схему для веб-сайта электронной коммерции на основе MongoDB.
5 причин, по которым MongoDB является ведущей NoSQL БД
Впервые за последние четыре десятка лет в мире баз данных происходит что-то новое. Пять лет назад появилось множество так называемых NoSQL БД, которые были призваны справиться с Big Data.
Объёмы данных (а часто и пользователей) выросли в сотни и тысячи раз по сравнению с тем, что было ещё десять лет назад. Также данные имеют тенденцию к тому, чтобы становиться более сложными и гетерогенными, и строки со столбцами уже не вполне подходят для работы с ними.
MongoDB является ведущей NoSQL БД. Сотни тысяч кластеров MongoDB используются в широком диапазоне организаций – от стартапов с JavaScript-архитектурами на стороне сервера до банковских и государственных структур с Java-стеками. В данном докладе будут исследованы 5 возможностей, которые позволяют MongoDB выделяться на фоне других NoSQL БД.
Трудный выбор
Пожалуйста, помогите нам определиться – по ссылке доступна простая форма опроса. Выберите то, что интересно именно Вам!
И не забывайте покупать билеты:) Кстати, билеты по 13 тысяч рублей кончаются – если вы все равно пойдёте на конференцию, то имеет смысл сэкономить – бронируйте места прямо сейчас!
С уважением,
команда организаторов HighLoad++