Массовые операции над письмами в Яндекс.Почте — Денис КутуковYandex
Операции над письмами (пометка спамовым, удаление или перемещение) — неотъемлемая часть почтового сервиса, которая создает заметную нагрузку на бэкенд и может сильно увеличить время отклика системы. В докладе я расскажу, как эволюционировал наш модуль операций над письмами, как мы сделали его асинхронным, на какие грабли мы наступили с Zookeeper’ом и какие выводы сделали.
КРИ 2013. "Базы данных в онлайн играх. От Аллодов до Skyforge". Андрей ФроловАндрей Фролов
Конференция разработчиков игры. 2013 год.
Андрей Фролов. Mail.Ru Games. "Базы данных в онлайн играх. От Аллодов до Skyforge"
Created using YouTube Video
Компания "Ленвендо" занимается созданием, развитием и поддержкой крупномасштабных онлайн-проектов.
Сегодня «Ленвендо» отвечает за работу ресурсов «Эльдорадо», «Связной», HomeMe, Газпромбанк, Эхо Москвы в Петербурге.
Anton Turetckii "What does it take to build a host?"Fwdays
Real hardware in the data center: everything you wanted to know but didn’t know how to ask.
2020: how to build a server if you don’t use clouds
How to get rid of or reduce problems when ordering, allocating, and mounting the hardware
Yes, there are people working in your data center (If you have one)!
What is hidden in between the server’s power button activation and its appearance in your internal system
Automation and its role in the process: do exactly what is necessary and enough!
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
Некоторое время назад, когда в очередной раз встал вопрос о производительности большого парка mysql sharding серверов, мы не захотели покупать новые сервера и производить resharding. Мы обнаружили, что компания facebook выпустила в opensource большое количество своих разработок, в том числе и модуль ядра flashcache.
Flashcache — модуль для кэширования блоков блочного устройства, предоставляющий 4 разных режима кэширования.
В данном докладе я расскажу, как мы тестировали, поэтапно проверяя под нагрузкой, 3 из 4 режимов кэширования, сравнивая и выбирая оптимальный. Итогом данной работы стало внедрение данного модуля в нашу архитектуру (фотосервера, сервера БД).
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
+ Защита данных — это не "одна кнопка", нет годного любому единого решения. Задача всегда диктует выбор средств и решений.
+ RTO — Recovery Time Objective — максимальное время, за которое все ваши бизнес-задачи должны полностью быть восстановлены в работоспособное состояние после полной катастрофы ДЦ.
+ RPO — Recovery Point Objective — максимально приемлемый для ваших задач промежуток времени, за который вы готовы потерять данные.
+ Защита на уровне приложений. Приложение лучше всех знает, как защищать и реплицировать свои данные.
+ Асинхронная репликация — наилучший выход с точки зрения производительности, единственно возможный вариант в случае значительного географического разнесения дата-центров (сотни и более километров). Работает на уровне виртуальных машин.
+ Метро / "растянутые" кластеры и синхронная репликация — нулевой RPO, минимальный RTO, большие потери производительности и множество ограничений. Но иногда — единственный выход, если уровень приложения не умеет реплицировать данные.
+ Лучший подход — комбинация из репликации на уровне приложений, асинхронной и синхронной репликации средствами хранилища.
+ Что есть у Nutanix для решения подобных задач: DR (Async replication), Metro availability cluster, Timestream Backup.
+ Реализация решения с использованием Nutanix на примере FBI: крупнейший VDI в США. Защищенная, mission-critical инфраструктура на 70 тысяч виртуальных десктопов. Асинхронная репликация дата-центров на 1500 миль, защита данных от катастроф.
Big Data Testing: Ensuring MongoDB Data QualityRTTS
You've made the move to MongoDB for its flexible schema and querying capabilities in order to enhance agility and reduce costs for your business. Shouldn't your data quality process be just as organized and efficient?
Using QuerySurge for testing your MongoDB data as part of your quality effort will increase your testing speed, boost your testing coverage (up to 100%), and improve the level of quality within your Big Data store. QuerySurge will help you keep your team organized and on track too!
To learn more about QuerySurge, visit www.QuerySurge.com
Массовые операции над письмами в Яндекс.Почте — Денис КутуковYandex
Операции над письмами (пометка спамовым, удаление или перемещение) — неотъемлемая часть почтового сервиса, которая создает заметную нагрузку на бэкенд и может сильно увеличить время отклика системы. В докладе я расскажу, как эволюционировал наш модуль операций над письмами, как мы сделали его асинхронным, на какие грабли мы наступили с Zookeeper’ом и какие выводы сделали.
КРИ 2013. "Базы данных в онлайн играх. От Аллодов до Skyforge". Андрей ФроловАндрей Фролов
Конференция разработчиков игры. 2013 год.
Андрей Фролов. Mail.Ru Games. "Базы данных в онлайн играх. От Аллодов до Skyforge"
Created using YouTube Video
Компания "Ленвендо" занимается созданием, развитием и поддержкой крупномасштабных онлайн-проектов.
Сегодня «Ленвендо» отвечает за работу ресурсов «Эльдорадо», «Связной», HomeMe, Газпромбанк, Эхо Москвы в Петербурге.
Anton Turetckii "What does it take to build a host?"Fwdays
Real hardware in the data center: everything you wanted to know but didn’t know how to ask.
2020: how to build a server if you don’t use clouds
How to get rid of or reduce problems when ordering, allocating, and mounting the hardware
Yes, there are people working in your data center (If you have one)!
What is hidden in between the server’s power button activation and its appearance in your internal system
Automation and its role in the process: do exactly what is necessary and enough!
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
Некоторое время назад, когда в очередной раз встал вопрос о производительности большого парка mysql sharding серверов, мы не захотели покупать новые сервера и производить resharding. Мы обнаружили, что компания facebook выпустила в opensource большое количество своих разработок, в том числе и модуль ядра flashcache.
Flashcache — модуль для кэширования блоков блочного устройства, предоставляющий 4 разных режима кэширования.
В данном докладе я расскажу, как мы тестировали, поэтапно проверяя под нагрузкой, 3 из 4 режимов кэширования, сравнивая и выбирая оптимальный. Итогом данной работы стало внедрение данного модуля в нашу архитектуру (фотосервера, сервера БД).
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
+ Защита данных — это не "одна кнопка", нет годного любому единого решения. Задача всегда диктует выбор средств и решений.
+ RTO — Recovery Time Objective — максимальное время, за которое все ваши бизнес-задачи должны полностью быть восстановлены в работоспособное состояние после полной катастрофы ДЦ.
+ RPO — Recovery Point Objective — максимально приемлемый для ваших задач промежуток времени, за который вы готовы потерять данные.
+ Защита на уровне приложений. Приложение лучше всех знает, как защищать и реплицировать свои данные.
+ Асинхронная репликация — наилучший выход с точки зрения производительности, единственно возможный вариант в случае значительного географического разнесения дата-центров (сотни и более километров). Работает на уровне виртуальных машин.
+ Метро / "растянутые" кластеры и синхронная репликация — нулевой RPO, минимальный RTO, большие потери производительности и множество ограничений. Но иногда — единственный выход, если уровень приложения не умеет реплицировать данные.
+ Лучший подход — комбинация из репликации на уровне приложений, асинхронной и синхронной репликации средствами хранилища.
+ Что есть у Nutanix для решения подобных задач: DR (Async replication), Metro availability cluster, Timestream Backup.
+ Реализация решения с использованием Nutanix на примере FBI: крупнейший VDI в США. Защищенная, mission-critical инфраструктура на 70 тысяч виртуальных десктопов. Асинхронная репликация дата-центров на 1500 миль, защита данных от катастроф.
Big Data Testing: Ensuring MongoDB Data QualityRTTS
You've made the move to MongoDB for its flexible schema and querying capabilities in order to enhance agility and reduce costs for your business. Shouldn't your data quality process be just as organized and efficient?
Using QuerySurge for testing your MongoDB data as part of your quality effort will increase your testing speed, boost your testing coverage (up to 100%), and improve the level of quality within your Big Data store. QuerySurge will help you keep your team organized and on track too!
To learn more about QuerySurge, visit www.QuerySurge.com
Optimizing MongoDB: Lessons Learned at Localyticsandrew311
Tips, tricks, and gotchas learned at Localytics for optimizing MongoDB installs. Includes information about document design, indexes, fragmentation, migration, AWS EC2/EBS, and more.
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
В докладе на примере системы метапоиска aviasales будет рассмотрен переход от монолитной архитектуры RoR приложения к многозвенной системе внутренней разработки на базе tornado/python в целях ослабления зависимостей между подсистемами, упрощения контроля за потоком данных и изоляции потенциальных аварийных ситуаций.
Будут рассмотрены побочные эффекты этого перехода, такие как устойчивость к пиковым нагрузкам, упрощение схемы выкатки обновлений и сокращение потребляемых машинных ресурсов.
Модным ныне словом «виртуализация» сейчас называют различные обёртки аппаратной виртуализации, однако этот термин намного старше и более всеохватывающий. На уровне ознакомления с технологией мы поговорим о виртуализации ресурсов в кластере и на примере pacemaker.
Про некоторые кейсы использования elasticsearch в современных проектах.
- С какими сложностями столкнулись
- Где успешо применили elasticsearch, а где был избыточен
Презентация с мероприятия https://habr.com/ru/company/odnoklassniki/blog/452978/
Тема: Компания Кодерлайн провела вебинар на тему «Оптимизация – стоимость владения»
Вебинар будет интересен руководители IT-подразделений, IT-специалисты, заинтересованные лица
Ведущий: Александр ЛОГАЧЕВ
Описание:
На вебинаре поговорим об оптимизации запросов и кода
Программа вебинара:
1. Запросы – использование индексов, оптимизация архитектуры
2. РЛС – влияние на производительность
3. Ответы на вопросы
Будем благодарны за ваши отзывы :)
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
Андрей Николаенко, системный архитектор в IBS, выступил на конференции HighLoad++ 2016.
Тезисы
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
1. MongoDB Огиенко Юрий linkedin.com/in/ogiienko Zend_Coffee&Code #4 Июль, 2011
2.
3.
4. Коллекции документов База данных - база данных Таблица - Коллекция Строка - Документ Документ это BSON = бинарному JSON Процедуры на JavaScript SpiderMonkey (V8 в будущем)
5. Типы данных 1. BSON типы данных * целочисленные, с плавающей запятой * Unicode строки * бинарные данные * булевые данные * массивы * timstamp и UTC datetime * http://bsonspec.org/#/specification 2. typeof и instanceof 3. Используя PHP и следим за приведениями.
6. Отсутствие схемы данных Храним только необходимые данные: Ни каких больше миграций и блокирующих ALTER TABLE
7.
8. Поиск - find (SQL SELECT) Поиск документов в колекции. При поиске возвращается cursor
9. Поиск - limit, count, sort Получив курсор можно над ним поколдовать:
10. Вставка - insert, save Вставляем обычный JSON объект. Второй параметр safe - гарантирует запись на диск Ограничение на документ - 4mb Скоро будет 16mb Максимум 24000 коллекций
11. Скорость вставки по отношению к размеру блока записи 1.5 mb ~80 insert/sec ~120 mb/sec записи 0.5 mb ~ 300 insert/sec ~150 mb/sec записи 0.03 mb ~ 3500 ins/sec ~105 mb/sec Следим за пропускной способностью канала!
12. Удаление - remove Быстрее всего удалять используя _id документа каторый у вас в памяти. Можно удалять передав полоностью документ в фильтр, но это не эффективно.
19. Скорость вставки по отношению к числу индексов 1 индекс ~4000 insert/sec 20% lock 8 индексов ~ 3500 insert/sec 40% lock 20 индексов ~ 3000 insert/sec 70% lock Используем: db.table.find(col1:"value").sort(col3: -1).limit(20).explain() Следим за "nscanned" и "indexBounds"
24. ReplicaSet Сет реплицируеммых серверов. 1. Должна содержать минимум 3 ноды, для обеспечения отказоустойчивости. 2. Пишем на одну, а читаем со всех 3. Система автоматически преключается и выбирает мастера в случае если текущий упал. 4. В момент падаения вы теряете данные которые неуспели реплицироватся на слейвы.
27. Мониторинг mongostat - основная утилита профилирования insert, query, update, delete - число запросов по нодам getmore - выборка по курсору command - число комманд (gelLastError) flushes - записи на диск, по умолчанию 1 раз в 60 сек.
28. Мониторинг mapped - объем отображаемой виртуальной памяти в РАМ vsize - память виртуальная, отведенная под колекции faults - промахи, когда требуемая страница находится на HDD и ее надо загрузить locked - степень блокировки при записи, обновлении, индексировании idx miss - запросы которые не используют индекс
29. Мониторинг netIn, netOut - объем передаваемых данных по сети conn - число подключений qr, qw, ar, aw - очередь запросов на чтение/запись
31. Инсталяция и поддержка 1. Установка mongoDB 2. Установка драйвера 3. mongod.lock - при некорректном падении базы, необходимо удалить lock файл и выполнить комманду repair