SlideShare a Scribd company logo
Пятая конференция разработчиков
ПО «DevParty»
25 марта 2017 года, Вологда
Денис Противенский
Percona Server для MongoDB
Обзор возможностей
Что есть MongoDB?
NoSQL-база данных — Not SQL изначально, Not
Only SQL впоследствии: отсутствие схемы
данных
> var coll = db.coll
> coll.insert({ name : "John",
title : "Developer" })
> coll.insert({ name : "Mike",
age : 20 })
Что есть MongoDB?
Удобна для быстрой разработки, когда
основные запросы — это CRUD-операции
> coll.findOne({ age : { $gte : 18 }})
{
"_id" :
ObjectId("58c25a0204f55ccc3c25c6c2"),
"name" : "John",
"age" : 20
}
Что есть MongoDB?
●Проста в конфигурировании, впоследствии
можно без труда настроить репликацию и
шардирование, прозрачные для клиентов
●JavaScript как основной язык доступа, удобен
для веб-разработчиков
●MongoDB Community Edition — продукт с
открытым исходным кодом и бесплатным
распространением
Чем отличается версия от Percona?
●Полная совместимость с MongoDB Community
Edition 3.4 (* версия для Linux)
●Два новых движка хранения: MongoRocks и
Percona Memory Engine
●Поддержка аудита операций
●Внешняя аутентификация через LDAP и AD
●«Горячее» резервное копирование для WiredTiger
и MongoRocks
●Ограничитель активности профилировщика
MongoRocks
mongod --storageEngine=rocksdb
●Основан на библиотеке RocksDB
(https://github.com/facebook/rocksdb)
●Оптимизирован на запись
●Хорошо подходит для единичных выборок
●Немного хуже для диапазонных выборок
Percona Memory Engine
mongod --storageEngine=inMemory
●Совместим с движком InMemory в поставке
MongoDB Enterprise
●Основан на WiredTiger
●Без персистентности
●Значительное ускорение записи
●Меньше джиттера
●Может использоваться как кеш приложения; для
управления сессиями, сохранения временного
состояния и т.д.
Аудит
mongod --auditDestination=file --auditFormat=JSON
●Совместим с плагином аудита из поставки
MongoDB Enterprise
●Позволяет отслеживать и сохранять активность
пользователя:
- Аутентификация (user- and role-mgmt, login, logout, shutdown)
- Конфигурирование реплик/шардов
- Неудачи регулярных операций (чтение, запись, курсор, схема)
●Несколько направлений вывода: файл, консоль,
syslog
●Несколько форматов вывода: JSON, BSON
Внешняя аутентификация
1. Конфигурация библиотеки SASL для доступа к saslauthd
2. Конфигурация saslauthd для доступа к серверу LDAP
> db.getSiblingDB(‘$external’).auth(
{ mechanism: ’PLAIN’, user: ’user’, pwd:
’secret’, digestPassword: false } )
●Совместим с плагином внешней аутн. из поставки
MongoDB Enterprise
●Прозрачный для клиента (используя метод PLAIN и
базу $external)
●Может работать через LDAP и AD
●Может авторизовывать, используя роли из базы
$external
“Горячее” резервное копирование
> adminDB.runCommand( { createBackup: 1,
backupDir: ‘/my/backup/data/path’ } )
●Поддерживает WiredTiger и MongoRocks
●Работает без остановки основных активностей
●Перспективы:
- Инкрементальное резервное копирование
- Регулирование пропускной способности
- Копирование по сети
Ограничитель профилировщика
> db.runCommand( { profile: 2, slowms: 150,
ratelimit: 3 } )
●Позволяет ограничивать количество быстрых
запросов, которые сохраняются в коллекцию
system.profile при профилировании
●Удобен для восстановления и анализа характера
запросов пользователя без внесения
существенных задержек в режим
функционирования
Вопросы?

More Related Content

What's hot (20)

PPTX
Ложка дёгтя – Александр Лэйн, QIWI, Zabbix Moscow Meetup 2016
Alexander Leyn
 
PDF
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Yandex
 
PDF
специализированные http-демона (Сергей Боченков, Александр Панков)
Ontico
 
PPT
Speed
Ivan Poluyanov
 
PDF
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Dev_Party
 
PDF
Как размножается Sphinx
Alexander Byndyu
 
PDF
Архитектура современного браузера — Владислав Малаховский
Yandex
 
PDF
02 - Web-технологии. Web-клиенты
Roman Brovko
 
PDF
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
Анна Магас
 
PPT
МАПО 2013 Лекция 03 Программирование Blockly
Олег Гудаев
 
PDF
08 - Web-технологии. Архитектура frontend-backend
Roman Brovko
 
PPTX
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
SpbDotNet Community
 
PPT
Internet Explorer 8
Транслируем.бел
 
PPTX
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
Kirill Danilov
 
PDF
Web performance 101 [GDG nsk webdev meetup #3]
Eugene Chekan
 
PPTX
Что, зачем и каким образом следует проверять и тестировать перед запуском сай...
Alexey Kostin
 
PPTX
Jody - JsOn for Dynamic sites on Rails
zykin-ilya
 
PDF
09 - Web-технологии. MVC фреймворки
Roman Brovko
 
PPTX
Redis varnish js
iliakan
 
Ложка дёгтя – Александр Лэйн, QIWI, Zabbix Moscow Meetup 2016
Alexander Leyn
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Yandex
 
специализированные http-демона (Сергей Боченков, Александр Панков)
Ontico
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Dev_Party
 
Как размножается Sphinx
Alexander Byndyu
 
Архитектура современного браузера — Владислав Малаховский
Yandex
 
02 - Web-технологии. Web-клиенты
Roman Brovko
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
Анна Магас
 
МАПО 2013 Лекция 03 Программирование Blockly
Олег Гудаев
 
08 - Web-технологии. Архитектура frontend-backend
Roman Brovko
 
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
SpbDotNet Community
 
Internet Explorer 8
Транслируем.бел
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
Kirill Danilov
 
Web performance 101 [GDG nsk webdev meetup #3]
Eugene Chekan
 
Что, зачем и каким образом следует проверять и тестировать перед запуском сай...
Alexey Kostin
 
Jody - JsOn for Dynamic sites on Rails
zykin-ilya
 
09 - Web-технологии. MVC фреймворки
Roman Brovko
 
Redis varnish js
iliakan
 

Viewers also liked (13)

PDF
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Dev_Party
 
PPTX
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Dev_Party
 
PDF
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Dev_Party
 
PDF
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Dev_Party
 
PDF
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Dev_Party
 
PDF
Владимир Варнавский, интернет-студия «33 Кита» — Идеальный программист
Dev_Party
 
PDF
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Dev_Party
 
PDF
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Dev_Party
 
PDF
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Dev_Party
 
PDF
Игорь Цупко, Notamedia — Документация? Не слышал
Dev_Party
 
PDF
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Dev_Party
 
PDF
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Dev_Party
 
PPTX
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Dev_Party
 
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Dev_Party
 
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Dev_Party
 
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Dev_Party
 
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Dev_Party
 
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Dev_Party
 
Владимир Варнавский, интернет-студия «33 Кита» — Идеальный программист
Dev_Party
 
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Dev_Party
 
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Dev_Party
 
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Dev_Party
 
Игорь Цупко, Notamedia — Документация? Не слышал
Dev_Party
 
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Dev_Party
 
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Dev_Party
 
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Dev_Party
 
Ad

Similar to Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей (20)

PDF
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
PPT
MongoDB basics in Russian
Oleg Kachan
 
PPTX
АРМ - платформа разработки проекта "Госархивы СПб"
devclub
 
PDF
Node.js for enterprise 2021 - JavaScript Fwdays 3
Timur Shemsedinov
 
PPTX
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
LEDC 2016
 
PPTX
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
 
PDF
Алексей Андросов - Debugger: Отладка кода
Yandex
 
PDF
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
 
PPTX
Расширяемая платформа для создания и управления автоматизированными тестами н...
jazzteam
 
ODP
DevOps в реальном времени
Andriy Samilyak
 
PDF
Database security
Mikhail Vanin
 
PPTX
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Александр Сигачев
 
PDF
pgconf.ru 2015 avito postgresql
Михаил Тюрин
 
PDF
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
e-Legion
 
PPTX
Тестирование на проникновение в сетях Microsoft (v.2)
Dmitry Evteev
 
PDF
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
Rais Charipov
 
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Ontico
 
PPTX
Антон Сапожников. Еще один недостаток современных клиент-серверных приложений
Positive Hack Days
 
PDF
Desktop app based on node js and html5
Provectus
 
PDF
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest
 
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
MongoDB basics in Russian
Oleg Kachan
 
АРМ - платформа разработки проекта "Госархивы СПб"
devclub
 
Node.js for enterprise 2021 - JavaScript Fwdays 3
Timur Shemsedinov
 
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
LEDC 2016
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
 
Алексей Андросов - Debugger: Отладка кода
Yandex
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
 
Расширяемая платформа для создания и управления автоматизированными тестами н...
jazzteam
 
DevOps в реальном времени
Andriy Samilyak
 
Database security
Mikhail Vanin
 
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Александр Сигачев
 
pgconf.ru 2015 avito postgresql
Михаил Тюрин
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
e-Legion
 
Тестирование на проникновение в сетях Microsoft (v.2)
Dmitry Evteev
 
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
Rais Charipov
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Ontico
 
Антон Сапожников. Еще один недостаток современных клиент-серверных приложений
Positive Hack Days
 
Desktop app based on node js and html5
Provectus
 
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest
 
Ad

Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей

  • 1. Пятая конференция разработчиков ПО «DevParty» 25 марта 2017 года, Вологда Денис Противенский Percona Server для MongoDB Обзор возможностей
  • 2. Что есть MongoDB? NoSQL-база данных — Not SQL изначально, Not Only SQL впоследствии: отсутствие схемы данных > var coll = db.coll > coll.insert({ name : "John", title : "Developer" }) > coll.insert({ name : "Mike", age : 20 })
  • 3. Что есть MongoDB? Удобна для быстрой разработки, когда основные запросы — это CRUD-операции > coll.findOne({ age : { $gte : 18 }}) { "_id" : ObjectId("58c25a0204f55ccc3c25c6c2"), "name" : "John", "age" : 20 }
  • 4. Что есть MongoDB? ●Проста в конфигурировании, впоследствии можно без труда настроить репликацию и шардирование, прозрачные для клиентов ●JavaScript как основной язык доступа, удобен для веб-разработчиков ●MongoDB Community Edition — продукт с открытым исходным кодом и бесплатным распространением
  • 5. Чем отличается версия от Percona? ●Полная совместимость с MongoDB Community Edition 3.4 (* версия для Linux) ●Два новых движка хранения: MongoRocks и Percona Memory Engine ●Поддержка аудита операций ●Внешняя аутентификация через LDAP и AD ●«Горячее» резервное копирование для WiredTiger и MongoRocks ●Ограничитель активности профилировщика
  • 6. MongoRocks mongod --storageEngine=rocksdb ●Основан на библиотеке RocksDB (https://github.com/facebook/rocksdb) ●Оптимизирован на запись ●Хорошо подходит для единичных выборок ●Немного хуже для диапазонных выборок
  • 7. Percona Memory Engine mongod --storageEngine=inMemory ●Совместим с движком InMemory в поставке MongoDB Enterprise ●Основан на WiredTiger ●Без персистентности ●Значительное ускорение записи ●Меньше джиттера ●Может использоваться как кеш приложения; для управления сессиями, сохранения временного состояния и т.д.
  • 8. Аудит mongod --auditDestination=file --auditFormat=JSON ●Совместим с плагином аудита из поставки MongoDB Enterprise ●Позволяет отслеживать и сохранять активность пользователя: - Аутентификация (user- and role-mgmt, login, logout, shutdown) - Конфигурирование реплик/шардов - Неудачи регулярных операций (чтение, запись, курсор, схема) ●Несколько направлений вывода: файл, консоль, syslog ●Несколько форматов вывода: JSON, BSON
  • 9. Внешняя аутентификация 1. Конфигурация библиотеки SASL для доступа к saslauthd 2. Конфигурация saslauthd для доступа к серверу LDAP > db.getSiblingDB(‘$external’).auth( { mechanism: ’PLAIN’, user: ’user’, pwd: ’secret’, digestPassword: false } ) ●Совместим с плагином внешней аутн. из поставки MongoDB Enterprise ●Прозрачный для клиента (используя метод PLAIN и базу $external) ●Может работать через LDAP и AD ●Может авторизовывать, используя роли из базы $external
  • 10. “Горячее” резервное копирование > adminDB.runCommand( { createBackup: 1, backupDir: ‘/my/backup/data/path’ } ) ●Поддерживает WiredTiger и MongoRocks ●Работает без остановки основных активностей ●Перспективы: - Инкрементальное резервное копирование - Регулирование пропускной способности - Копирование по сети
  • 11. Ограничитель профилировщика > db.runCommand( { profile: 2, slowms: 150, ratelimit: 3 } ) ●Позволяет ограничивать количество быстрых запросов, которые сохраняются в коллекцию system.profile при профилировании ●Удобен для восстановления и анализа характера запросов пользователя без внесения существенных задержек в режим функционирования