Как снизить затраты базы данных и облачные зависимости базы данных

Scylladb спонсировал этот пост.

«Весь процесс доставки AD происходит в течение 200-300 миллисекунд. Наши поиски базы данных должны завершаться в однозначных миллисекундах. При ежедневных миллиардах транзакций база данных должна быть быстрой, масштабируемой и надежной. Если она снижается, наша инфраструктура с рекламой прекращается для функционирования».
-Тодд Коулман, соучредитель и главный архитектор в HelfmoПолем

Онлайн -рекламный бизнес Heartmo зависит от обработки сотен миллиардов ежедневных запросов на рекламу с ответами на задержку под задержкой. Службы компании изначально зависели от DynamoDB, который команда ценила для простоты и стабильности. Тем не менее, затраты DynamoDB стали неустойчивыми в масштабе, и команде нуждалась в гибкости с мультикозой, поскольку урожайность расширилась до новых регионов. Выбор инфраструктуры угрожал стать бизнесом.

В недавнем выступлении на Саммите по шкале Monster Тодд Коулман, соучредитель и главный архитектор Helfmo, поделился техническими проблемами, с которыми столкнулась компания, и почему команда в конечном итоге продвинулась вперед с API-совместимым с DynamoDB Scylladb.

Вы можете посмотреть его полный разговор ниже или продолжать читать для резюме.

Лаг = потерянный бизнес

Helfmo — это онлайн -рекламная платформа, которая в режиме реального времени соединяет издателей и рекламодателей в качестве страницы. Почти каждый запрос на объявление запускает запрос базы данных, который получает информацию о машинном обучении и информацию об идентичности устройства. Эти запросы позволяют своим рекламным серверам:

  • Запустить эффективные аукционы.
  • Помогите партнерам решить, стоит ли делать ставку.
  • Отслеживайте, какие объявления они уже показали устройству, чтобы рекламодатели могли управлять частотными ограничениями и оптимизировать доставку рекламы.

Весь рекламный трубопровод заканчивается всего лишь от 200 до 300 миллисекунд, при этом большая часть этого времени потребляется партнерами, которые оценивают и размещают заявки. Более конкретно:

  • Когда пользователь посещает веб -сайт, рекламный запрос отправляется на etliding.
  • Платформа hieldsmo анализирует запрос.
  • Он запрашивает потенциальную рекламу со стороны своих партнеров.
  • Он проводит аукцион, чтобы определить победную ставку.
  • Поиск базы данных должен произойти до любых вызовов партнерам. И эти поиски должны завершить однозначные миллисекундные задержки. Коулман объяснил: «С ежедневными миллиардами транзакций база данных должна быть быстрой, масштабируемой и надежной. Если она снижается, наша рекламная инфраструктура перестает функционировать».

    DynamoDB растущие боли

    Производственная инфраструктура helfmo работает на AWS, поэтому DynamoDB был логическим выбором, поскольку команда создала свое приложение. DynamoDB оказался простым и надежным, но возникнут две значительные проблемы.

    Во -первых, DynamoDB становился все более дорогим по мере масштабирования бизнеса. Во -вторых, компания хотела возможность запустить рекламные серверы на облачных провайдерах за пределами AWS.

    Коулман сказал: «В некоторых регионах, например, на восточном побережье сша, AWS и GCP [Google Cloud Platform] Центры обработки данных достаточно близки, чтобы задержка минимальна. Там не проблема в том, чтобы нажать нашу базу данных DynamoDB с рекламного сервера, работающего в GCP. Однако, когда мы попытались запустить кластер с рекламой на основе GCP в Амстердаме при доступе к DynamoDB в Дублине, задержка была слишком высокой. Мы быстро поняли, что если бы мы хотели истинную гибкость с мультиколом, нам нужна была база данных, которая может быть развернута где угодно ».

    Альтернативы DynamoDB

    Команда Helfmo начала исследовать альтернативы DynamoDB, которые могли бы удовлетворить их чрезвычайно тяжелые рабочие нагрузки базы данных. Их операции записи делятся на две категории:

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

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

    Команда сначала подумала о том, чтобы остаться с DynamoDB и добавление кэширования слоя. Тем не менее, они обнаружили, что кэширование не может решить проблему географической задержки, и промахи кэша будут еще медленнее с этой опцией.

    Они также исследовали Aerospike, который предлагал скорость и поддержку кросс-облака. Тем не менее, они узнали, что индексация Aerospike в памяти потребовало бы чрезвычайно большого и дорогого кластера для обработки большого количества небольших объектов Hircemo. Кроме того, переход на Aerospike потребовал бы обширных и трудоемких изменений кода.

    Рисунок 2

    Затем они обнаружили Scylladb, который также обеспечивал скорость и поддержку кросс-облака, но с DynamoDB-совместимым API (генератор) и более низкими затратами.

    «SCYLLADB поддержал развертывание кросс-облака, потребовало управляемого количества серверов и предлагаемых конкурентных затрат»,-сказал Коулман.

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

    Оценка, миграция и результаты

    Чтобы начать оценивать, как Scylladb работал в своей среде, команда перенесла подмножество серверов AD в одном регионе. Это включало миграцию нескольких терабайтов, сохраняя при этом обновления в реальном времени. В процессе у них были исторические данные Scylladb на основе Spark Migration Tool, приостановив пакетные задания ML и использовали свою архитектуру Kafka для воспроизведения недавних записей в Scylladb. Перемещение одной таблицы DynamoDB с ~ 28 миллиардами объектов (~ 3,3 ТБ) заняло около 10 часов.

    Следующим шагом было переносить все данные в пяти регионах AWS. Этот этап занял около двух недель. После оценки производительности, Helfmo продвигал Scylladb до первичного статуса и в конечном итоге перестал писать в DynamoDB в большинстве регионов.

    Размышляя о миграции почти год спустя, Коулман сказал: «Самым большим преимуществом является гибкость с мультикозом, но даже без этого, миграция стоила этого. Затраты на базу данных были сокращены примерно вдвое по сравнению с DynamoDB, даже с ценами на зарезервированную способность, и мы видели скромные улучшения латентности. Scylladb обеспечивает надежные в гольце, удерживающие у нас в горках, и они поддерживают, что у нас на эфире, и удерживает у нас в горках. Появления и удерживающие у нас. Появляются на основе и удерживающие у нас. сравнимо с DynamoDB, но с большей независимостью и существенной экономией затрат ».

    Scylladb разработан для обеспечения предсказуемой производительности в масштабе. Он принят организациями, которые требуют ультра-низкую задержку, даже с рабочими нагрузками, превышающими 1M OPS/SEC. Наша уникальная архитектура использует силу современной инфраструктуры — переводится на меньшее количество узлов, меньшую административную и снижающую затраты. Узнайте больше последних из Scylladb Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Синтия Данлоп пишет о разработке программного обеспечения и тестировании гораздо дольше, чем она хочет признать. В настоящее время она является старшим директором по контент -стратегии в Scylladb. Подробнее от Синтии Данлоп

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *