Разделы

Lifehack (Old)

Чудеса репликации: как не продать один товар дважды

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

Скажем, розничная сеть состоит из интернет-магазина и десятка филиалов. Некоторые из них не имеют устойчивого интернет-соединения, позволяющего непрерывно работать с базой данных центрального офиса. Чтобы такие филиалы не простаивали, в них установлены собственные серверы с базами данных, которые каждые 20 мин. синхронизируются с центральной базой и обмениваются информацией об остатках товаров. Жизнь идет, бизнес растет, и все чаще за этот промежуток времени клиенты разных филиалов стали покупать один и тот же товар. Чтобы решить проблему, ИТ-специалисты решили сделать синхронизацию более частой — раз в 5 минут, и тогда столкнулись с новой проблемой: десятки филиалов одновременно обращаются к центральной базе данных, критически повышая нагрузку на нее и создавая множество блокировок, вследствие чего в головном офисе информационная система «встала». Как быть?

Синхронизация в реальном времени

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

Чтобы решить проблему, компания SoftPoint, имеющая большой опыт разработки решений для повышения производительности баз данных Microsoft SQL Server, разработала собственную технологию репликации — DBReplicaiton. Решение позволяет сократить время синхронизации между удаленными филиалами до 10 секунд, даже при слабом канале связи.

Репликация (англ. replication) — механизм синхронизации содержимого нескольких копий объекта, например базы данных. Репликация — это процесс, под которым понимается копирование данных из одного источника на другой (или на множество других) и наоборот.

Источник: Википедия, 2015

«Мы написали на языке SQL правила быстрого переноса данных с одной точки на другую и проверки конфликтов. Здесь же мы реализовали возможность потокового сжатия и шифрации, что очень ценно для малых каналов. Таким образом мы достигли отличной скорости, при этом, не вмешиваясь в код приложения», — поясняет Павел Баркетов.

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

Решение DBReplicaiton основано на транзакционном принципе репликации. При синхронизации передаются только измененные данные. Скажем, не вся таблица, а только новые ячейки. Все данные при передаче эффективно сжимаются. Это позволяет существенно снизить трафик в сравнении с другими технологиями репликации и, как следствие, ускорить обмен.

Реальные остатки

Возможность продавать товары, физически находящиеся в других магазинах сети, — вопрос выгоды для ритейлеров. Например, модель холодильника, которую ищет клиент, в вашем магазине закончилась — казалось бы, клиент потерян. Однако товар есть в соседнем магазине сети. Продажа состоится, если реализовать возможность резервирования и покупки с доставкой из других торговых точек. Очень важно «видеть» реальные остатки, если у сети есть интернет-магазин.

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

Плавное внедрение

«Очень редко нам доводится внедрять DBReplicaiton «с нуля». Большинство изначально экономит на системах обмена. Поэтому клиент, как правило, приходит уже со своей системой обмена, которая его не устраивает из-за низкой скорости синхронизации данных, чрезмерной нагрузки на производительность системы, низкой надежности или в связи с периодической потерей данных, — рассказывает Алексей Чивтаев, руководитель направления роботизированного обмена данными SoftPoint. — Мы как раз гарантируем транзакционную целостность и последовательность. Не может получиться так, что какой-то документ пришел без первичных документов к нему».

Дискуссия в метавселенной: ИИ, обмен данными и иммерсивные сценарии
ИТ в банках

Внедрение занимает от двух недель до двух месяцев. Одновременно специалисты SoftPoint обучают внутренних ИТ-сотрудников поддерживать систему.

На первом этапе внедрения система настраивается на тестовом стенде, который в миниатюре повторяет информационную систему заказчика. После досконального тестирования решение переносится в боевую среду. Обычно это происходит незаметно для пользователей. Для этого без остановки старой системы репликации в фоновом режиме внедряется новое решение. Когда все компоненты установлены и протестированы, выбирается маленькое технологическое окно (в пределах часа), во время которого все пользователи отключаются, выполняется последний обмен данными средствами старой системы, и когда базы синхронизированы, старая система отключается, и запускается новая. При этом для рядовых пользователей в системе ничего не меняется, но они видят, что обновление сведений происходит более оперативно, а информационная система перестала «тормозить». В распоряжении администратора появляется единый интерфейс, позволяющий контролировать процессы обмена, настраивать правила для всей сети: какие данные, откуда и куда должны мигрировать. В гибкой системе нотификации можно создавать правила автоматической отправки на электронную почту контрольных уведомлений о статусе обмена.

В течение адаптационного периода специалисты SoftPoint плотно сопровождают систему. Далее клиент может сам ее поддерживать, а может заключить договор с Softpoint о сопровождении системы DBReplicaiton.

Взаимовыгодный обмен

Александр Бабкин, Газпромбанк: Сейчас иностранные ИБ-решения в Газпромбанке замещены на 65%
безопасность

Технология DBReplicaiton активно используется компаниями, хранящими свои данные в MS SQL Server. Преимущественно это розничные и логистические компании с разветвленной филиальной сетью.

До внедрения DBReplicaiton в компании «Минимакс», торгующей различными электротоварами посредством нескольких десятков региональных центров и подчиняющихся им магазинов, столкнулись с проблемой. Функционирование существующей технологии репликации не было достаточно прозрачным: было непонятно, что происходит с базой и обновлена ли она в конкретный момент. Из-за неустойчивых каналов связи скорость обмена данными оставляла желать лучшего. В итоге в компании были вынуждены сокращать трафик, ограничивая периодичность и объем синхронизации. В центр не поступала полная информация, необходимая для эффективного управления и маркетинга. К тому же компания планировала запускать интернет-магазин, а для этого требовалась система гибкой фильтрации потоков обмена данными. Веб-заказы должны были расходиться в разные филиалы в зависимости от специфики того или иного заказа. Система DBReplicaiton решила эти проблемы. Были внедрены гибкие политики фильтрации и унифицированы справочники, период обмена сократился с одних суток до 20 сек.

Один из первых заказчиков, внедривших DBReplicaiton, — крупный магазин компьютерной техники — хотел, чтобы торговые точки сети «видели» остатки друг друга. Решение DBReplicaiton позволило это реализовать. Это был один из первых интернет-магазинов, на сайте которого отображались реальные остатки. Клиенту, заходящему в интернет-магазин, показывались не виртуальные остатки на начало рабочего дня, а то, что реально есть на складах розничной сети. Это позволяло сразу же зарезервировать нужный товар. Аналогичная система интернет-заказов была внедрена для единого портала крупной розничной сети «Автотрейд», продающей автозапчасти.

Компании, занимающиеся логистикой, пожалуй, еще более чувствительны к своевременной синхронизации баз данных, чем розничные сети. Им важна актуальная информация, кто, что и куда отправил, причем очень оперативно, иначе «поезд уйдет». Компания «Курьер-сервис», имеющая шесть крупных распределительных центров, модернизировала свою технологию обмена при помощи DBReplicaiton. Это также помогло усовершенствовать веб-портал, предоставляющий актуальную информацию о статусе доставки и клиентам, и сотрудникам.

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