Uber представил новую высокопроизводительную систему обработки финансовых операций, которая в состоянии обрабатывать до 30 обновлений в секунду для каждой учетной записи. Это решение адресует проблему, когда один счет сталкивается с интенсивными всплесками обновлений, превышающими возможности традиционных систем обработки транзакций.
Контекст рынка
Текущие на рынке системы часто становятся узким местом, когда пользователи требуют множество операций за короткий промежуток времени, как в момент массовых транзакций или корректировок. Устаревшие методы обработки приводят к значительным затратам времени из-за необходимости выполнять каждый запрос отдельно, что вызывает дополнительные накладные расходы и увеличивает время обработки операций.
Подробности новой системы
Новая система от Uber использует пакетный подход к обработке транзакций. Вместо того чтобы раскладывать каждое обновление на отдельные обработки, система группирует операции, относящиеся к одной учетной записи, в короткие временные окна. Такой метод позволяет обрабатывать несколько обновлений за один проход записи в реестр, что значительно экономит время.
По словам Рагхава Кумар Гаутама, старшего разработчика Uber, новая система обработки транзакций способна выдержать экстремальный трафик без потери консистентности. При интервалах пакетирования в 250 миллисекунд, системе удаётся обрабатывать более 30 транзакций в секунду.
В процессе реализовано три этапа: обновления группируются, обрабатываются как единое целое и результаты сохраняются. Координация выполнения происходит с помощью Redis, что позволяет сохранять консистентность операций даже при высоком уровне конкурентного доступа.
Практическое значение для бизнеса
Для разработчиков и владельцев бизнеса это означает, что создание эффективной системы обработки транзакций становится более доступным. Учитывая, что время обработки транзакций имеет критическое значение в сфере финансовых услуг, внедрение подобных инноваций может привести к снижению затрат и улучшению пользовательского опыта.
Следующий шаг для Uber — продолжать улучшать свою систему, внедряя дополнительные функции и оптимизации, что позволит ещё больше увеличить производительность.