Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
В докладе на примере системы метапоиска aviasales будет рассмотрен переход от монолитной архитектуры RoR приложения к многозвенной системе внутренней разработки на базе tornado/python в целях ослабления зависимостей между подсистемами, упрощения контроля за потоком данных и изоляции потенциальных аварийных ситуаций.
Будут рассмотрены побочные эффекты этого перехода, такие как устойчивость к пиковым нагрузкам, упрощение схемы выкатки обновлений и сокращение потребляемых машинных ресурсов.
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 12:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2688.html
Современные приложения часто используют большое количество памяти, ещё чаще разработчики не задумываются, как именно приложение работает с памятью, и откуда она берётся. Просим ядро дать кусок памяти и начинаем с ним что-то делать... Но что за память нам выделяет ядро операционной системы? Память на самом деле виртуальная и делится на единицы, называемые страницами. Страницы бывают маленькими, бывают большими и очень большими.
...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций.
Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. Отдельно остановимся на российском опыте и нашем вкладе в решение этой задачи.
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
В докладе на примере системы метапоиска aviasales будет рассмотрен переход от монолитной архитектуры RoR приложения к многозвенной системе внутренней разработки на базе tornado/python в целях ослабления зависимостей между подсистемами, упрощения контроля за потоком данных и изоляции потенциальных аварийных ситуаций.
Будут рассмотрены побочные эффекты этого перехода, такие как устойчивость к пиковым нагрузкам, упрощение схемы выкатки обновлений и сокращение потребляемых машинных ресурсов.
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 12:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2688.html
Современные приложения часто используют большое количество памяти, ещё чаще разработчики не задумываются, как именно приложение работает с памятью, и откуда она берётся. Просим ядро дать кусок памяти и начинаем с ним что-то делать... Но что за память нам выделяет ядро операционной системы? Память на самом деле виртуальная и делится на единицы, называемые страницами. Страницы бывают маленькими, бывают большими и очень большими.
...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций.
Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. Отдельно остановимся на российском опыте и нашем вкладе в решение этой задачи.
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
Доклад про:
– развитие архитектуры этой системы, как менялись и как будут меняться требования к такого рода системам
– анализ подходящих под эту систему БД, с их проблемами, и опытом реальной эксплуатации
– почему мы остановились на MongoDB, со всеми минусами и плюсами
– немного про команду, трудозатраты и поддержку
– как мы используем эту систему и как она помогает растить наши продукты
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
NodeJS — достаточно молодой фреймворк, и пока не каждый решается использовать его в продакшене, а тем более в highload.
В течение последнего года мы разрабатывали проект DMP (Data Management Platform), используя NodeJS для прототипирования. На данный момент проект в большей степени все еще остался на JS и без труда справляется с текущими нагрузками в 10 000 запросов в секунду.
В докладе я расскажу, почему остановились именно на NodeJS и совсем не жалеем об этом.
К сожалению, никакое дело не обходится без граблей и костылей. Я расскажу обо всех встретившихся проблемах и уделю особое внимание проблемам со спагетти-кодом, утечками и нехваткой памяти. Как мы убили немало времени, тщетно ища источник проблем, и какие правила мы составили для себя на будущее, чтобы не повторить своих ошибок.
Расскажу немного о применении микросервисов для решения проблемы спагетти-кода.
И, как итог, опишу ряд рекомендаций, которые помогут избежать большой траты времени при использовании NodeJS.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Ontico
Tempesta FW — это Open Source гибрид Web-акселератора и файервола, специально разработанный для высокопроизводительной доставки контента вне зависимости от DDoS или наплыва посетителей.
В докладе будет рассказано про задачи, которые ставились при разработке проекта и пути их решения. Рассмотрим проблемы современных операционных систем в приложении к Web-стеку (система фильтрации, Web-сервер, application слой, БД), и как они решаются в Tempesta — некоторые уже решены, некоторые еще в процессе работы.
И самое главное — у нас появился рабочий прототип, и я расскажу про типовые примеры инсталляции, фичи и конфигурацию, а также покажу бенчмарки.
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
Веб-сайт нужно делать так, чтобы о перипетиях его разработки и поддержки бессонными ночами через пару лет можно было рассказать на конференции Highload++, а тамошнюю аудиторию сложно удивить велосипедом с треугольными каменными колесами. Большинство разработчиков свято следуют этому принципу то ли в силу природной любознательности и трудолюбия, то ли по причине отсутствия конференции LowLoad--.
Примерно такие мысли приходят в голову практически любому специалисту по хранилищам данных, когда он видит успешный веб-проект, испытывающий стандартные проблемы с базой данных.
В этом докладе я расскажу о 10-ти очень распространенных ошибках проектирования и эксплуатации хранилища в веб-проекте — от преждевременного шардирования базы и непродуманной системы архивации ненужных данных до особенностей работы всеми любимых фреймворков. Про каждую из них я расскажу подробно и поделюсь рецептами, как такие ошибки исправлять.
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...Yandex
В условиях постоянного роста объёма данных нам нужно расширять хранилище на всё большее количество машин и дата-центров. А чем больше у нас железа, тем чаще что-нибудь ломается, и это приводит к всё более неожиданным проблемам.
Я расскажу об архитектуре бесконечно расширяемого хранилища для пользовательского контента сервисов Яндекса. Вы узнаете, почему мы отказались от DHT, как используем Elliptics и что такое Mastermind.
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance).
В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. Рассматриваются вопросы производительности и масштабирования как stateless так и statefull фильтров.
В качестве примера рассматривается реализация системы обработки сложных событий (complex event processing) применительно к управлению журналированием (log management).
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Ontico
Насколько повысится среднее время обработки одного запроса если увеличить нагрузку вдвое? Почему производительность базы данных может снизиться при росте числа клиентов? Как добиться эффективного распределения большого числа задач на весь кластер? О практике и о теории обработки очередей на которой основана практика в моём докладе.
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
Доклад про:
– развитие архитектуры этой системы, как менялись и как будут меняться требования к такого рода системам
– анализ подходящих под эту систему БД, с их проблемами, и опытом реальной эксплуатации
– почему мы остановились на MongoDB, со всеми минусами и плюсами
– немного про команду, трудозатраты и поддержку
– как мы используем эту систему и как она помогает растить наши продукты
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
NodeJS — достаточно молодой фреймворк, и пока не каждый решается использовать его в продакшене, а тем более в highload.
В течение последнего года мы разрабатывали проект DMP (Data Management Platform), используя NodeJS для прототипирования. На данный момент проект в большей степени все еще остался на JS и без труда справляется с текущими нагрузками в 10 000 запросов в секунду.
В докладе я расскажу, почему остановились именно на NodeJS и совсем не жалеем об этом.
К сожалению, никакое дело не обходится без граблей и костылей. Я расскажу обо всех встретившихся проблемах и уделю особое внимание проблемам со спагетти-кодом, утечками и нехваткой памяти. Как мы убили немало времени, тщетно ища источник проблем, и какие правила мы составили для себя на будущее, чтобы не повторить своих ошибок.
Расскажу немного о применении микросервисов для решения проблемы спагетти-кода.
И, как итог, опишу ряд рекомендаций, которые помогут избежать большой траты времени при использовании NodeJS.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Ontico
Tempesta FW — это Open Source гибрид Web-акселератора и файервола, специально разработанный для высокопроизводительной доставки контента вне зависимости от DDoS или наплыва посетителей.
В докладе будет рассказано про задачи, которые ставились при разработке проекта и пути их решения. Рассмотрим проблемы современных операционных систем в приложении к Web-стеку (система фильтрации, Web-сервер, application слой, БД), и как они решаются в Tempesta — некоторые уже решены, некоторые еще в процессе работы.
И самое главное — у нас появился рабочий прототип, и я расскажу про типовые примеры инсталляции, фичи и конфигурацию, а также покажу бенчмарки.
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
Веб-сайт нужно делать так, чтобы о перипетиях его разработки и поддержки бессонными ночами через пару лет можно было рассказать на конференции Highload++, а тамошнюю аудиторию сложно удивить велосипедом с треугольными каменными колесами. Большинство разработчиков свято следуют этому принципу то ли в силу природной любознательности и трудолюбия, то ли по причине отсутствия конференции LowLoad--.
Примерно такие мысли приходят в голову практически любому специалисту по хранилищам данных, когда он видит успешный веб-проект, испытывающий стандартные проблемы с базой данных.
В этом докладе я расскажу о 10-ти очень распространенных ошибках проектирования и эксплуатации хранилища в веб-проекте — от преждевременного шардирования базы и непродуманной системы архивации ненужных данных до особенностей работы всеми любимых фреймворков. Про каждую из них я расскажу подробно и поделюсь рецептами, как такие ошибки исправлять.
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...Yandex
В условиях постоянного роста объёма данных нам нужно расширять хранилище на всё большее количество машин и дата-центров. А чем больше у нас железа, тем чаще что-нибудь ломается, и это приводит к всё более неожиданным проблемам.
Я расскажу об архитектуре бесконечно расширяемого хранилища для пользовательского контента сервисов Яндекса. Вы узнаете, почему мы отказались от DHT, как используем Elliptics и что такое Mastermind.
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance).
В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. Рассматриваются вопросы производительности и масштабирования как stateless так и statefull фильтров.
В качестве примера рассматривается реализация системы обработки сложных событий (complex event processing) применительно к управлению журналированием (log management).
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Ontico
Насколько повысится среднее время обработки одного запроса если увеличить нагрузку вдвое? Почему производительность базы данных может снизиться при росте числа клиентов? Как добиться эффективного распределения большого числа задач на весь кластер? О практике и о теории обработки очередей на которой основана практика в моём докладе.
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Ontico
Типовой задачей аналитики для любого проекта является получение ответов на вопросы: "сколько у нас регистраций за последний день?", "сколько сообщений было отправлено (товаров добавлено в корзину и пр.) в стране N, мужчинами/женщинами из приложения/сайта?". Поиском ответов на эти вопросы в компании обычно занимается отдел BI.
Инструментарием могут служить различные технологии: файлы Excel, старые-добрые РСУБД (MySQL, PosgtreSQL, MS SQL, Oracle etc.), специализированные аналитические базы данных (Vertica, Exasol, etc.), вычисления на Hadoop-кластере. Естественно, любое решение обладает своими достоинствами и недостатками — что-то ограничено по объему обрабатываемой информации, что-то — по скорости, что-то — по realtime.
Перед нами стояла задача сделать систему аналитики:
+ Горизонтально масштабируемой — уже не хватает ресурсов SQL.
+ Близкой к реальному времени — аналитические базы и Hadoop не дают нам желаемого эффекта.
+ Легкой в конфигурировании — любой новый отчет требует минимума затрат от разработчика.
Мы можем рассказать о том, как мы построили систему, которая прямо сейчас обрабатывает 200к событий в секунду, строит 12М метрик и может еще расти и расти.
Под капотом: Apache Spark для near-realtime обработки событий, Hadoop — как фундамент для масштабирования.
Рельсы прекрасный инструмент, но в некоторых ситуациях они не справляются.
В этом докладе рассказывается о таких ситуациях и одном из вариантов решения
В своей презентации Сергей Бондарь, Team Lead of BI Compute | OWOX, поделился тем как он вместе с командой использует Google Cloud Platform для построения прогнозов.
Moбильная база данных Realm. Прошло ли время SQLite?Олег Чебулаев
- Обзор систем хранения данных
- Что такое Realm?
- Realm изнутри и почему он такой быстрый
- Сравнение производительности мобильных баз данных
- Практика использования
1. In Memory Data Grids
Alexey Kharlamov
Development Manager
Grid Dynamics, 2009
2. О этот новый мир
●Web 2.0: AJAX и стремление к высокой
интерактивности
● Экспоненциальный рост трафика
● Закон Мура умирает
● Рост степени интеграции
замедляется
● Увеличение плотности упаковки не
ведет к росту производительности
•
Ж ел ез о про дол ж а ет деш еветь
3. Что же делать?
●
Расти вширь — использовать параллельную обработку (scale
out)
●
Гауссовское распределение — наш спаситель!
●
Мы можем делать только 20% работы и получать 80%
заработной платы
●
Использовать принцип пули
●
Сделать работу заранее и сохранить ее в памяти
●
П а м ять продо л ж а ет деш еветь
4. Определение
●
Grid — а что это вообще такое?
●
Машины действующие совместно
для решения одной задачи
●
А In-Memory Data Grid
●
Данные в памяти надежно хранятся
●
Всегда доступны и консистентны
●
Network Attached Memory
5. ●
Ассоциативный массив
●
Данные делятся на
разделы/партиции
●
Партиция реплицируются
на несколько узлов
6. Динамический кластер
●
ПО Grid-а автоматически управляет узлами
●
Большое число партиций
●
Появление нового узла
●
Перемещаем часть партиций на новый узел
●
Выход узла из системы
●
Переводим backup-ы в master-а
●
Формируем backup-ы на живых узлах
●
М о ж ем им ен ять ра з м ер к л а с тера во врем я ра бо ты
7. Кеширование базы данных
●
Когда
●
Есть паттерн доступа в кеш
●
Высокая плотность записи
●
Что
●
Read Through/Write behind
●
Вытеснение и обновление
●
З а про с ы н е кон с и с тен тн ы с кеш ем
и н а груж а ю т Б Д
8. Все свое ношу с собой
●
Когда: безкомпромисный read/write; 20/80
●
Что
●
Загружаем все данные в грид
●
Запросы в грид, подписываемся на
события
●
Сеть — узкое место
●
Параллельная обработка внутри
узлов грида
●
Near Cache
9. Когда использовать
●
Скорость чтения/записи критична
●
Запросы к данным постоянны
●
Ваши данные влазят в 1ТБ
●
Вы выжали из дисковой подсистемы все что можно
●
Вам нужно горизонтально масштабироваться в онлайне,
например на public cloud
10. Когда использовать
●
НО
●
Объем данных в памяти и в БД отличается в разы
●
Разработка и администрирование распределенной системы
это не шутка
●
Сеть: критическая точка
– Распределенный запросы плохо масштабируются.
– Стрельба дробью — тоже.
11. Дизайн данных
●
Самый быстрый доступ по главному ключу
●
Помещайте родственные данные в одну партицию
●
Их можно обрабатывать совместно прямо на узле грида
●
Сетевой запрос будет обрабатывать только 1 узел
●
Балансируйте размер объектов в кеше
●
Маленькие объекты — много сетевых обращений
●
Большие объекты — избыточный трафик
12. Дизайн: Ускорение доступа
●
Используйте денормализацию данных
●
Некоторые данные можно дублировать в нескольких местах
●
Подсчитайте часто используемые агрегаты заранее
●
Минимизируйте обращения по сети
●
Используйте индексы
●
IMDG предоставляет индексы для поиска по полям объектов
●
Создавайте свои собственные индексы
●
Тра н з а кци и — КВ И Н ТЭ С С Е Н Ц И Я З Л А
13. Транзакций
●
IMDG — распределенная система: мы должны
использовать 2PC
●
Уже на 8 узлах скорость падает на 2 порядка
●
Существуют сценарии нарушения
целостности
●
В большинстве систем транзакциями можно
пожертвовать
●
Либо использовать цепочки идемпотентных
операции
14. Перевод денег: шаг 1
●
Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,
статус:начат)
●
Считать счет 1 и проверить, что order_id еще к нему не
применялся
●
Обновить счет 1, списав деньги и добавив order_id в список
примененных операций
●
Обновить статус order_id на списано
15. Перевод денег: шаг 2
●
Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,
статус:списано)
●
Считать счет 2 и проверить, что order_id еще к нему не
применялся
●
Обновить счет 2, начислив деньги и добавив order_id в список
примененных операций
●
Обновить статус order_id на начисленно
16. Перевод денег: завершение
●
Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,
статус:начисленно)
●
Считать счет 1 и удалить ссылку на order_id
●
Считать счет 2 и удалить ссылку на order_id
●
Обновить статус order_id на обработан
●
Транзакция завершена
17. Oracle
Gigaspaces GemFire Hazelcast Terracotta
Coherence
Координация P2P Центр. P2P P2P P2P
Запросы Фильтрация SQL ODQL Фильтрация Нет
Лицензия Commercial Com./Free Commercial Free Free
Near Cache Да Да Да Нет Да
Выполнение Да Да Да Нет Нет*
Платформа Java/C/.Net Java/C/.Net Java Java Java
Scale-out Да Нет Да Да Нет*
18. Заключение
●
П ри пом ощ и I M D G вы м о ж ете
●
Радикально уменьшить нагрузку на БД и время отклика
●
Горизонтально масштабироваться во время выполнения
(например на public cloud)
●
Вести параллельную обработку данных на кластере
●
Обрабатывать данные в реальном времени
●
Обрабатывать тысячи транзакций в секунду
●
С дел а ть н ево з м ож н о е во з м о ж н ы м !
19. Материалы
●
http://blog.griddynamics.com/
●
Сайты вендоров, особенно форумы поддержки
●
InfoQ: http://www.infoq.com/
●
Cameron Purdy, /dev/null blog: http://www.jroller.com/cpurdy/
●
Nati Shalom: http://natishalom.typepad.com/
●
Brian Oliver: http://brianoliver.wordpress.com/
●
http://www.highscalability.com/