Основатель и технический директор компании-разработчика ПО GridGain Никита Иванов


Данные сегодня настолько «большие», что важно уже не просто обеспечить их хранение, а научиться оперативно обрабатывать и использовать эти массивы. По оценке аналитиков из IDC, к 2019 году рынок данных вырастет на 50% до $187 млрд. Это говорит о растущих потребностях компаний в решениях, которые помогут извлечь пользу из накопленных данных.


Возникает вопрос — как сделать так, чтобы это происходило в режиме реального времени. Данную задачу ставят перед собой разработчики ПО на базе технологии in-memory computing — это перевод обработки данных с диска в память компьютера. Разберемся, в чем ее преимущества и ограничения.

Технология


Еще лет 20 назад понятие Big Data противопоставлялось так называемым Small Data или данным внутри одной организации. Но потом компании стали выходить за рамки собственных данных — Google, Facebook, Twitter, Amazon — собирают колоссальные объемы информации, идущие далеко за пределы CRM и ERP.


Первая проблема, с которой они столкнулись, — это хранение данных. Одними из первых ее начали решать в Yahoo — так появилась Hadoop, оупенсорс-технология, разработанная для обработки логов с веб-серверов компании. Позже доступ к ней получили и другие разработчики. Главное преимущество Hadoop в том, что она была бесплатной, тогда как все остальные системы хранения Big Data были очень дорогими. Однако обработка в Hadoop была и остается весьма медленной.


До 2011-2012 года рынок пытался научиться хранить данные. Сегодня эта проблема в целом уже решена. Мы находимся на этапе активного развития систем обработки данных.


Посмотрите на свой телефон. Сколько приложений в нем выдают результат завтра? Или даже через два часа? Таких сервисов больше не существует. Так и в современном бизнесе счет идет не на часы и даже не на минуты — большинство задач должно решаться в режиме реального времени. Так на смену Big Data приходит понятие Fast Data — «быстрых» данных, из которых можно извлечь инсайты за считанные секунды.


Остается понять, как реализовать это технологически. Большинство систем хранения Big Data построено на дисках (spinning disk или flash), а обработка ведется на нескольких компьютерах или серверах, собранных в кластер. Технология in-memory computing позволяет в рамках такого же кластера использовать память компьютеров. С точки зрения доступа и обработки память становится в тысячи, а то и в миллионы раз быстрее, чем на диске.


Сегодня этот инструмент — последний этап качественного изменения технологии хранения данных. Архитектура современных компьютеров не предусматривает других возможностей для этой цели. Решения на базе in-memory computing разрабатывают и крупные компании вроде Oracle, IBM и Microsoft, и стартапы, включая наш.


В качестве примера приведу результаты демо-версии продукта, который мы представляли «Сбербанку» в процессе работы. На кластере из 10 серверов с общей памятью в один терабайт мы показали миллиард бизнес-транзакций в секунду.


Если взять самый быстрый и дорогой кластер от Oracle, то в заданной ситуации, скорее всего, можно было бы добиться 30-40 миллионов транзакций в секунду. Кейс «Сбербанка» показателен с точки зрения преимуществ технологии для бизнеса. Давайте посмотрим почему.

Бизнес


«Сбербанк», как и многие другие банки, активно развивает свои мобильные приложения. Финансовые организации видят, что операционный объем данных и частота операций с мобильных стала намного выше, чем на десктопах.


Поменялась культура использования банковских сервисов — с мобильного пользователи проверяют счет, платят, переводят деньги с карты на карту по несколько раз на дню, так же, как проверяют ленту новостей в Facebook или Twitter. Количество клиентов остается тем же, но операций становится в сотни раз больше.


Чтобы справиться с быстрорастущим потоком обработки данных и обеспечить скорость и масштабируемость, «Сбербанк» обратил внимание на решение in-memory computing. Сейчас это в основном корпоративный продукт. Это связано в том числе с высокой стоимостью памяти, но кроме этого, большинство машин для личного использования справляются с задачами благодаря имеющемуся аппаратному обеспечению. При этом обработка данных с большинства пользовательских устройств и приложений идет на бэкенд.


Например, изначально на этом решении строился мессенджер WhatsApp. Другой пример — игры. Если игра становится вирусно популярной, то ей тоже необходимы надежные и быстрые технологии обработки платежей и пользовательских данных в реальном времени. Поэтому, хотя in-memory computing вряд ли появится на пользовательском телефоне в ближайшем будущем, многие приложения используют эту технологию на бэкенде.


Важно то, в чем оценивать важность технологии для бизнеса. Компании обращаются к in-memory computing не тогда, когда нужно поднять производительность или ускорить текущий процесс. Большинство клиентов говорят, что эта технология позволяет им делать то, что они до этого не могли делать в принципе. То есть она нужна тогда, когда нет возможности решить бизнес-функцию иначе, когда бизнес-процесс вообще невозможен без технологической базы, которая позволит выполнить его быстро и в нужном масштабе. Однако ее применение не ограничивается бизнесом.

Общество


В то время как для компаний in-memory computing означает принципиально новые бизнес-процессы, то в других сферах технология открывает новые перспективы для исследований и разработок. Например, любая биотех-компания сейчас — это прежде всего софтверный разработчик, потому она нуждается в технологическом решении для обработки данных.


У нас есть клиент из Канады — маленький стартап, который совершил революцию в обработке МРТ-изображений. Раньше снимки с томографа нужно было показывать конкретному доктору и ждать диагноза, надеясь на квалификацию конкретного врача. Их решение агрегирует снимки из нескольких клиник, разбивает их на маленькие подснимки и рассылает докторам по всему миру. Если у двух-трех специалистов один подснимок вызывает вопросы, они отмечают его для дальнейшего рассмотрения.


Тем самым стартап решил проблему качества и скорости — меньше чем за минуту он может обработать снимок каждого пациента. Гарантия точности обеспечивается статистикой, а скорость диагностики такова, что пациент может получить ответ, пока встает с кушетки.


Другой пример — британская компания e-Therapeutics, которая специализируется на исследованиях и разработке лекарственных средств для лечения биокомплексных болезней, таких как рак и нейродегенеративные заболевания. Исследования основаны на компьютерном анализе больных клеток. Единичный анализ такого типа относительно простой и не занимает много времени. Однако исследования e-Theurapeutics подразумевают сотни тысяч подобных анализов по множеству параметров и гипотез, что создает чрезвычайно интенсивную вычислительную нагрузку.


С этим решением в компании смогли всего за несколько часов или даже минут проводить анализы, на которые раньше уходило несколько недель. Они также получили возможность создавать намного более масштабные и сложные модели клеток, что открыло новые подходы к лечению заболеваний.


Наконец, специалисты смогли быстрее проверять гипотезы и работать над несколькими проектами одновременно. Потенциально такой скачок позволит ускорить поиск и разработку противораковых препаратов и методов терапии других биокомплексных заболеваний.


Ограничения


У технологии in-memory computing есть свои ограничения, которые пока сдерживают ее развитие. Прежде всего это цена — стоимость такого решения всегда дороже, чем обработка данных на диске. Кроме того, добиться петабайтного объема сложно и не всегда экономично. Поэтому технология используется в основном для операционных, а не исторических данных.


Кроме того, стабильность работы решения на in-memory computing во многом зависит от сетевого решения, на котором построен кластер. Также критически важным становится качество разработки.


Однако сейчас виден качественный скачок в производительности и масштабируемости бизнеса за счет in-memory computing. Конечно, со временем обработка данных на диске будет расти в скорости. К примеру, мы сейчас работаем с компанией Fujitsu, и у нее есть сервера объемом в 64 терабайта памяти. Чтобы понять масштаб этих данных — примерно пять лет назад общий объем операционных данных в Twitter или весь контент за неделю составлял около четырех терабайт. Но и память будет становиться быстрее и падать в цене, так что разница между ними будет оставаться достаточно постоянной.