TGViewer
StringConcat - разработка без боли и сожалений StringConcat - разработка без боли и сожалений @stringconcat · 3.72K subscribers
Post #394 1.98K
Финал: Битва баз данных. Кто стал сердцем банка?
[В прошлых сериях]: нас отшил дерзкий стартап, мы обиделись и пошли пилить своё решение. Задача была простая, как кирпич: найти хранилище, которое выдержит наши амбиции. 🎯 Цель: — 100 TPS (транзакций в секунду) на один аккаунт (с блокировками). — 1000 TPS на рандомные аккаунты.

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


1. Postgres (Старый конь борозды не портит)
Взяли его чисто как baseline, чтобы было с чем сравнивать. Вся логика строго на хранимках (Stored Procedures), один поход из приложения в базу.

Результат:
Один аккаунт: 1 300 TPS (В 13 раз больше требуемого! Мы слегка присели).
Много аккаунтов: 9 000 TPS.

Внезапно «скучный» SQL показал, что списывать его со счетов рановато.


2. Redis + Postgres (Форсаж)
Схема: Редис считает математику в памяти, а потом стримами (Streams) скидывает данные в Постгрес на вечное хранение.

Результат:
Один аккаунт: 23 000 TPS.
Много аккаунтов: 23 000 TPS.

Ему вообще плевать. Редис однопоточный, ему все равно хоть один аккаунт, хоть много. Скорость света.


3. TigerBeetle (Тот самый стартап)

Результат:
Один аккаунт: 27 000 TPS.
Много аккаунтов: 77 000 TPS.

Обещанного миллиона мы не увидели, но цифры всё равно мощные. Правда, прямо посреди теста мы словили эксепшн:
Whoops, there is a bug in SDK…

Мелочь, а неприятно. Представили, как ловим этот «Whoops» в продакшене в «Черную пятницу», и перекрестились.


4. Google Spanner (Боль и унижение)
Напомню, Гугл продавал нам это как «Решение Всех Проблем Человечества».

Результат:
Один аккаунт: 78 TPS. (Нет, я не забыл букву «K». Просто 78).
Много аккаунтов: 870 TPS. (Тоже просто 870).

Мы протерли глаза. Перезагрузили серверы. Цифры не изменились. Звоним в Гугл: «Ребята, что за фигня? Где обещанная магия?»

Нам вежливо посочувствовали и выдали гениальные советы:
- «А вы поставьте перед Спаннером Redis». (Спасибо, Кэп! А Спаннер тогда зачем?).
- Скинули статью на Medium: «Какие костыли прикрутить, чтобы базы данных хоть как-то работало с hot accounts».
- Рассказали вдохновляющую историю, как один банк реализовал на Спаннере... фичу кэшбека. (Кэшбека, Карл! Не леджера).

Когда мы наконец прорвались через продажников к суровым технарям, те вздохнули и признались: «Ну да, сотню TPS выжмете, больше — вряд ли. Архитектура такая».

Занавес.

------

Итоговое решение
Мы выбрали Postgres.

Почему:
- Запас прочности: Он выдал 1300 TPS на один аккаунт при требовании в 100. Этого нам хватит на годы.
- Надежность: Это скучная, предсказуемая технология. Никаких «Whoops» в SDK.
- Архитектура: Мы спроектировали систему так, чтобы оставить перед Постгресом «Redis-shaped hole» (дырку в форме Редиса).
- Если (или когда) мы вырастем до космических масштабов, мы просто вставим туда Redis, как деталь пазла. А пока — зачем платить сложностью за то, что старый добрый SQL делает бесплатно?

А теперь предлагаю погуглить "Spanners British slang". В общем, хорошую штуку Спаннером не назовут
Telegram StringConcat - разработка без боли и сожалений DIY для банка: выбираем базу данных, когда стартап нас отшил В предыдущей серии я рассказывал, как TigerBeetle — стартап нашей мечты — отправил нас во френдзону. Пришлось засучить рукава и делать «сердце» банка самим. Но на чем писать? Чтобы не было мучительно…
  • 🔥 76
  • 👍 11
  • 😱 5
  • ❤ 4
More from @stringconcat
  1. Sep 26, 2026Вы не заметили, но в интернетах разразился скандал вселенского масштаба. Вопрос вот в чём:…
  2. Sep 21, 2026А сегодня снова не совсем обычный пост (пока я занят написанием духоты). Знаю, что у многи…
  3. Sep 18, 2026Сегодня необычный выпуск — подкаст с нашим старым бро Константином Могилевкиным. Константи…
  4. Sep 15, 2026Я частенько в своих постах упоминаю ключевую характеристику для сотрудника — автономность.…
  5. Sep 8, 2026Продолжаем обзор микросервисных изделий. На этот раз подписчики прислали мне архитектуру,…
  6. Sep 4, 2026Начинаем сезон видосиков с обзора карьерных путей (не переживайте, духота тоже будет, но п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →