Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
- как ошибка выбора идентификатора пользователя, обнаруженная после запуска проекта, чуть не стоила 2 лет разработки
- как мы боролись с перегруженным mysql когда даже включение binlog убивает сервер
- почистил партицию mysql под нагрузкой - получи мертвый сервер
- как верстальщик поменял верстку серча и уложил продукт на 4 часа
- ошибка в ядре php которая привела даунтайм на несколько часов
- как незнание особенностей работы GC у redis обошлось в $50к чистой прибыли
- добавлением или удалением серверов из пула memcached инвалидировали весь кэш (кривые настройки php клиента Memcache/Memcached)
- как поправив тест потерять 2 миллиона пользовательских писем
- как релиз одного проекта крэшил хелсчеки соседнего проекта
- самый большой фейл с системами очередей и статистикой: ивенты терялись годами
Всеволод Поляков "История одного мониторинга"Fwdays
«Мир изменился… Я чувствую это в воде… Я чувствую это в земле…»
Галадриэль
«Какой-то отсталый у неё мониторинг»
Сева Поляков
В этом докладе я хочу рассказать вам историю о современном мониторинге, на примере выбора для моего текущего проекта. Когда нужен prometheus, когда нужен SaaS и почему графит не умрёт. Также я постараюсь пройтись по всем новинкам и важным изменениям в современном мире мониторинга.
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
Данила, BigData Tool Master,
собрал Hadoop - кластер,
Запустил Dataset
Он скрипты на Scala
Run'ил на Spark постоянно
И писал в HDFSssss
Если во время доклада "Когда все данные станут большими..." мы будем говорить о вопросах и ответах, то на этом мастер-классе мы уже потопчемся в вотчине BigData-разработчиков.
Начнем с классики на Hadoop, познаем боль MapReduce job, потыкаем Pig + Hive, затем плавно свальсируем в сторону Spark и попишем код в легком и удобном pipeline - стиле.
Для кого хорошо подходит данный мастер-класс: вы умеете читать и понимать код на Java на уровне хотя бы Junior, умеете писать SQL-запросы, в универе вы ходили хоть на одну пару по матану или терверу, вас либо недавно поставили, либо вскоре поставят на проект, где надо уметь ручками работать с вышеперечисленным зверинцем. Ну или вам просто интересно посмотреть на мощь даннодробилок, написанных на Java, и у вас в анамнезе неудачный опыт с NoSQL/SQL, как хранилищем, которое было ответственно за все, включая аналитику.
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
- как ошибка выбора идентификатора пользователя, обнаруженная после запуска проекта, чуть не стоила 2 лет разработки
- как мы боролись с перегруженным mysql когда даже включение binlog убивает сервер
- почистил партицию mysql под нагрузкой - получи мертвый сервер
- как верстальщик поменял верстку серча и уложил продукт на 4 часа
- ошибка в ядре php которая привела даунтайм на несколько часов
- как незнание особенностей работы GC у redis обошлось в $50к чистой прибыли
- добавлением или удалением серверов из пула memcached инвалидировали весь кэш (кривые настройки php клиента Memcache/Memcached)
- как поправив тест потерять 2 миллиона пользовательских писем
- как релиз одного проекта крэшил хелсчеки соседнего проекта
- самый большой фейл с системами очередей и статистикой: ивенты терялись годами
Всеволод Поляков "История одного мониторинга"Fwdays
«Мир изменился… Я чувствую это в воде… Я чувствую это в земле…»
Галадриэль
«Какой-то отсталый у неё мониторинг»
Сева Поляков
В этом докладе я хочу рассказать вам историю о современном мониторинге, на примере выбора для моего текущего проекта. Когда нужен prometheus, когда нужен SaaS и почему графит не умрёт. Также я постараюсь пройтись по всем новинкам и важным изменениям в современном мире мониторинга.
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
Данила, BigData Tool Master,
собрал Hadoop - кластер,
Запустил Dataset
Он скрипты на Scala
Run'ил на Spark постоянно
И писал в HDFSssss
Если во время доклада "Когда все данные станут большими..." мы будем говорить о вопросах и ответах, то на этом мастер-классе мы уже потопчемся в вотчине BigData-разработчиков.
Начнем с классики на Hadoop, познаем боль MapReduce job, потыкаем Pig + Hive, затем плавно свальсируем в сторону Spark и попишем код в легком и удобном pipeline - стиле.
Для кого хорошо подходит данный мастер-класс: вы умеете читать и понимать код на Java на уровне хотя бы Junior, умеете писать SQL-запросы, в универе вы ходили хоть на одну пару по матану или терверу, вас либо недавно поставили, либо вскоре поставят на проект, где надо уметь ручками работать с вышеперечисленным зверинцем. Ну или вам просто интересно посмотреть на мощь даннодробилок, написанных на Java, и у вас в анамнезе неудачный опыт с NoSQL/SQL, как хранилищем, которое было ответственно за все, включая аналитику.
DF1 - BD - Baranov - Mining Large Datasets with Apache SparkMoscowDataFest
Presentation from Moscow Data Fest #1, September 12.
Moscow Data Fest is a free one-day event that brings together Data Scientists for sessions on both theory and practice.
Link: http://www.meetup.com/Moscow-Data-Fest/
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...Yandex
В условиях постоянного роста объёма данных нам нужно расширять хранилище на всё большее количество машин и дата-центров. А чем больше у нас железа, тем чаще что-нибудь ломается, и это приводит к всё более неожиданным проблемам.
Я расскажу об архитектуре бесконечно расширяемого хранилища для пользовательского контента сервисов Яндекса. Вы узнаете, почему мы отказались от DHT, как используем Elliptics и что такое Mastermind.
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
Этот момент обязательно наступит, если ваш проект, ваш бизнес сделаны не для того, чтобы вспыхнуть Фениксом в пламени бюджетов. Его важно не пропустить и начать обряд масштабирования как можно раньше.
Однако, не для каждой ситуации может подойти простое натравливание Hadoop на ваши логи, перелив данных из PostgreSQL в Cassandra или беспощадный тюнинг nginx и JVM.
Всегда стоит идти от задач, от представления о системе аналитики или от определенного заранее уровня отзывчивости системы. В этом докладе я хотел бы сосредоточиться не на инструментарии, столь важном для разработчика, а, напротив, поговорить о различных типах вопросов и болей с которыми приходят к нам заказчики в реальном мире, где никому нет дела до ваших результатов на Kaggle (онлайн-олимпиада по анализу данных) и синтетических тестов производительности, а также о процессе поиска ответов на эти вопросы. В реальном мире конечная идея приложения может измениться до неузнаваемости в один момент.
Приходите, разберем как хорошие случаи, так и типичные ошибки в построении приложений.
Для кого хорошо подойдет данный доклад: для тех, кто не слишком знаком с концепцией BigData, либо хорошо знаком с инструментарием разработчика, но нет определенной ясности в том, а для чего все это нужно. Ну и если вы идете на мастер-класс, то заходите, лишним не будет.
Netcube Cloud Backup (NBaaS) – это услуга, позволяющая организовать резервное копирование
данных из инфраструктуры клиента в облако Netcube и обеспечить безопасное хранение
данных и их оперативное восстановление.
Хранение всех критичных данных (файлы пользователей, базы данных, виртуальные машины и
др.) в облаке Netcube обеспечивает их целостность и доступность.
1. Key considerations for Cassandra database design include distributing storage without a single point of failure, linear scalability, and understanding the tradeoffs of consistency models.
2. The document provides tips such as using time-to-live columns, wide rows for efficiency, tunable consistency levels, modeling one-to-many and many-to-many relationships, and indexing strategies.
3. Best practices are outlined like limiting collection sizes, modeling time series data, and avoiding indexes on high-cardinality or frequently updated columns.
This is a presentation of the popular NoSQL database Apache Cassandra which was created by our team in the context of the module "Business Intelligence and Big Data Analysis".
C* Summit 2013: How Not to Use Cassandra by Axel LiljencrantzDataStax Academy
At Spotify, we see failure as an opportunity to learn. During the two years we've used Cassandra in our production environment, we have learned a lot. This session touches on some of the exciting design anti-patterns, performance killers and other opportunities to lose a finger that are at your disposal with Cassandra.
This document discusses Apache Cassandra, a distributed database management system. It provides an overview of Cassandra's features such as linear scalability, high performance and availability. The document also discusses how Cassandra addresses big data challenges through its integration of analytics and real-time capabilities. Several companies that use Cassandra share how it meets their needs for scalability, high performance and lower total cost of ownership compared to alternative solutions.
The document discusses tools and processes for designing and testing value propositions for businesses. It describes using the Value Proposition Canvas tool to iteratively search for value propositions that customers want through designing, testing, and evolving propositions. It emphasizes managing the non-linear process of value proposition design by systematically applying tools like the Canvas to reduce risk.
DF1 - BD - Baranov - Mining Large Datasets with Apache SparkMoscowDataFest
Presentation from Moscow Data Fest #1, September 12.
Moscow Data Fest is a free one-day event that brings together Data Scientists for sessions on both theory and practice.
Link: http://www.meetup.com/Moscow-Data-Fest/
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...Yandex
В условиях постоянного роста объёма данных нам нужно расширять хранилище на всё большее количество машин и дата-центров. А чем больше у нас железа, тем чаще что-нибудь ломается, и это приводит к всё более неожиданным проблемам.
Я расскажу об архитектуре бесконечно расширяемого хранилища для пользовательского контента сервисов Яндекса. Вы узнаете, почему мы отказались от DHT, как используем Elliptics и что такое Mastermind.
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
Этот момент обязательно наступит, если ваш проект, ваш бизнес сделаны не для того, чтобы вспыхнуть Фениксом в пламени бюджетов. Его важно не пропустить и начать обряд масштабирования как можно раньше.
Однако, не для каждой ситуации может подойти простое натравливание Hadoop на ваши логи, перелив данных из PostgreSQL в Cassandra или беспощадный тюнинг nginx и JVM.
Всегда стоит идти от задач, от представления о системе аналитики или от определенного заранее уровня отзывчивости системы. В этом докладе я хотел бы сосредоточиться не на инструментарии, столь важном для разработчика, а, напротив, поговорить о различных типах вопросов и болей с которыми приходят к нам заказчики в реальном мире, где никому нет дела до ваших результатов на Kaggle (онлайн-олимпиада по анализу данных) и синтетических тестов производительности, а также о процессе поиска ответов на эти вопросы. В реальном мире конечная идея приложения может измениться до неузнаваемости в один момент.
Приходите, разберем как хорошие случаи, так и типичные ошибки в построении приложений.
Для кого хорошо подойдет данный доклад: для тех, кто не слишком знаком с концепцией BigData, либо хорошо знаком с инструментарием разработчика, но нет определенной ясности в том, а для чего все это нужно. Ну и если вы идете на мастер-класс, то заходите, лишним не будет.
Netcube Cloud Backup (NBaaS) – это услуга, позволяющая организовать резервное копирование
данных из инфраструктуры клиента в облако Netcube и обеспечить безопасное хранение
данных и их оперативное восстановление.
Хранение всех критичных данных (файлы пользователей, базы данных, виртуальные машины и
др.) в облаке Netcube обеспечивает их целостность и доступность.
1. Key considerations for Cassandra database design include distributing storage without a single point of failure, linear scalability, and understanding the tradeoffs of consistency models.
2. The document provides tips such as using time-to-live columns, wide rows for efficiency, tunable consistency levels, modeling one-to-many and many-to-many relationships, and indexing strategies.
3. Best practices are outlined like limiting collection sizes, modeling time series data, and avoiding indexes on high-cardinality or frequently updated columns.
This is a presentation of the popular NoSQL database Apache Cassandra which was created by our team in the context of the module "Business Intelligence and Big Data Analysis".
C* Summit 2013: How Not to Use Cassandra by Axel LiljencrantzDataStax Academy
At Spotify, we see failure as an opportunity to learn. During the two years we've used Cassandra in our production environment, we have learned a lot. This session touches on some of the exciting design anti-patterns, performance killers and other opportunities to lose a finger that are at your disposal with Cassandra.
This document discusses Apache Cassandra, a distributed database management system. It provides an overview of Cassandra's features such as linear scalability, high performance and availability. The document also discusses how Cassandra addresses big data challenges through its integration of analytics and real-time capabilities. Several companies that use Cassandra share how it meets their needs for scalability, high performance and lower total cost of ownership compared to alternative solutions.
The document discusses tools and processes for designing and testing value propositions for businesses. It describes using the Value Proposition Canvas tool to iteratively search for value propositions that customers want through designing, testing, and evolving propositions. It emphasizes managing the non-linear process of value proposition design by systematically applying tools like the Canvas to reduce risk.
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Ontico
HighLoad++ 2017
Зал Калининград, 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2847.html
В крупных (или микросервисных) архитектурах у Backend'а есть свои Backend'ы. И, если какой-то сервис очень важный, он не всегда очень производительный. Как сделать так, чтобы ваша система продолжала отвечать, даже если важные источники информации перестали отвечать?
Рассказываю о нашем опыте в Tinkoff:
1. Как мы выбирали СУБД и на чём остановились.
2. Как поддерживать версионность форматов данных.
3. Как понять, что ваш сервис умер или ожил.
4. Как встроить cache, не переписывая приложения на Scala.
5. Итоги и замеры.
Time series data in a relational database. TimescaleDB and PipelineDB extensi...Ivan Muratov
Extensions allow you to stay in the PostgreSQL ecosystem, use the usual means of backup, monitoring and other things, while getting functionality that is specific to temporal data and time series.
2. Для кого доклад
Для разработчиков, которые уже знают что
такое Cassandra, для чего она нужна и
попробовали ее использовать.
3. Cassandra. Internals.
Cassandra имеет внутри структуру хранения,
похожую на lsm tree + wal.
Верхний уровень - memtable (sorted by row
key, btree-like).
Нижний уровень - disk (sstable + bloom filter).
7. Cassandra. Сильные стороны.
Почти линейная масштабируемость
записи и чтения
Не нужно backup, все
восстанавливается на лету
Есть поддержка нескольких ДЦ
Настраиваемая модель (в терминах CAP)
Стабильный продукт с первоклассным community
8. Нет ACID транзакций
Частое удаление данных это проблема
Нет хороших secondary index*
* Индексы сейчас улучшаются:
https://github.com/xedin/sasi и CASSANDRA-
10661)
Cassandra. Слабые стороны.
10. Лайки
Выбрать всех кто лайкал объект
select * from LikedByObject where object_id = 42
Выбрать все что лайкал пользователь
select * from LikedByUser where user_id = 42 and type_id in (1, 2, 3)
11. Лайки
Нет secondary index, используем materialized view. Почти всегда
копирование данных более предпочтительно, так как самое
затратное при чтении данных с диска это seek. Прочитать чуть
больше данных, но из одного место быстрее, чем из двух.
13. Уведомления
CREATE TABLE NotificationByUser (
user_id bigint,
shard_part text,
id timeuuid,
type_id int,
.....
PRIMARY KEY ((user_id, shard_part), id)
) WITH CLUSTERING ORDER BY (id DESC);
CREATE TABLE NotificationByUserAndType (
.....
PRIMARY KEY ((user_id, type_id, shard_part), id)
) WITH CLUSTERING ORDER BY (id DESC);
CREATE TABLE NotificationSeen (
user_id bigint,
id timeuuid,
value boolean,
PRIMARY KEY (user_id, id)
) WITH CLUSTERING ORDER BY (id DESC);
14. Уведомления
Уведомления всегда отсортированы по времени события, к
которому они относятся. Используем clustering order, чтобы данные
физически хранились в нужном порядке.
Уведомления могут быть непросмотренные и просмотренные.
Выделим мутабельную часть данных в отдельную cf. Это
упрощает процесс обновления данных и API.
15. Уведомления
CREATE TABLE NotificationByUser (
user_id bigint,
shard_part text,
id timeuuid,
type_id int,
.....
PRIMARY KEY ((user_id, shard_part), id)
) WITH CLUSTERING ORDER BY (id DESC);
У одного пользователя может быть очень много уведомлений.
Таким образом у нас могут появится wide rows. Их нужно избегать
(OOM, additional seeks, вот это вот все). Добавим в partition key
дату.
16. Partition keys
Как правильно выбрать partition key?
Распределение колонок внутри строки должно быть равномерным
в идеале. В одной строке не должно быть слишком много данных
(wide rows).
Варианты:
Сам ключ
Ключ + timebased часть
Ключ + partition (n of partitions fixed or any)
17. Partition keys
Лайки. У одного объекта очень редко бывает слишком много
лайков. Object id хороший partition key.
Уведомления. У одного пользователя может быть очень много
уведомлений, так как они накапливаются со временем. User id
плохой partition key. Нужно добавить что-то еще. User id + date.
Можно также сделать предположение, что уведомления более-
менее распределены по дням равномерно, поэтому date подходит.
18. Partition keys
Лента постов по тегу.
CREATE TABLE TagPosts (
tag text,
partition int,
post_id bigint,
PRIMARY KEY((tag, partition), post_id)
) WITH CLUSTERING ORDER BY (post_id DESC);
Просто tag взять нельзя, потому что распределение имеет
выбросы (тренды) и длинный хвост. Date плохая идея, так как
хвост и тренды не зависят от даты.
19. Partition keys
Неестественное разбиение данных на любое количество partitions
сложнее. При вставке нужно вычислять partition.
CREATE TABLE TagPostsPartitions (
tag text,
partition int,
post_count counter,
PRIMARY KEY (tag, partition)
) WITH CLUSTERING ORDER BY (partition DESC);
20. Partition keys
Если вы уверены, что кол-во данных по каждому ключу примерно
одинаково, то вычисление partition может быть простым:
key % n partitions
21. Partition keys
Вопрос: можно ли делать skinny partitions*?
*skinny partition - в одной партиции одна строка
Ответ: да, если паттерн доступа random и
нет range queries.
CREATE TABLE BlackList (
login text,
created bigint,
PRIMARY KEY (login)
);
22. Вставка
Используйте batches, только если вам
действительно нужна атомарность
Для производительности используйте
асинхронные операции (в драйвере) с
одиночными запросами*
*http://lostechies.com/ryansvihla/2014/08/28/cassandra-batch-loading-
without-the-batch-keyword/
24. Удаление
Как и в любом log-structure engine, данные физически сразу не
удаляются. Удаленные данные будут помечены, как tombstone, и
через некоторое время (настраивается) будут физически удалены
при очередном compaction.
Операция DELETE по ключу ввполняется за O(1).
Операция выборки вида:
select * from Queues where queue_id = 42 order by enqueued limit 1
может выполняться за O(n).
26. Избегайте RMW
Делайте операции идемпотентными и
переписывайте данные
Используйте counter columns
Используйте транзакции осторожно, они
замедляют производительность и все
равно не ACID