Сегодня в редакции разбирали статью не про ИИ. Надо же иногда отдыхать. Хотя совсем без ИИ, как выяснилось, не обошлось. Jane Street - одна из крупнейших трейдинговых компаний и маркет-мейкеров мира, известная ещё и тем, что почти весь стек пишет на OCaml. В блоге они рассказали, как переделывали индексацию во внутренней шине сообщений Aria. Через неё проходит несколько терабайт данных в день, клиенты подписываются на живой поток, а топиков в одном инстансе бывает около миллиона. Задача по формулировке банальная: быстро отдавать клиенту только нужную ему часть потока, а не фильтровать всё подряд. Раньше Aria честно перебирала буфер линейно. И это было нормально: алгоритмически неэффективно, зато дружелюбно к кэшу процессора. Пока клиентов было мало. Потом серверы упёрлись в 100% CPU, а в одном инциденте восстановление клиента после перезапуска вместо 2,5 секунд заняло 13 минут: система читала в 10 раз больше данных, чем отдавала. Что мы отметили для себя. Первое. Лучшее решение даёт максимальная локализация задачи. Никто не искал «лучший алгоритм индексации вообще». Искали лучший алгоритм для конкретного профиля потребления. Индекс на каждый топик не взлетит - их миллион, поэтому индексируют группы топиков по двухуровневому префиксу. Отдельный ring buffer под каждый индекс съел бы память: при сообщениях по 32 байта худший случай даёт 2 ГБ на индекс, поэтому сделали общий пул блоков по 1024 записи. Хранилища на диске раньше резались по фиксированному правилу «первые три сегмента имени», теперь разбиение считается по реальному объёму: большой топик получает своё хранилище, мелочь складывается вместе. Каждое решение выведено из цифр своей нагрузки, а не из учебника. Итог: минус 30% CPU в реальных сценариях и исчезнувшие многосекундные хвосты задержек. Второе. LLM здесь работал не как автор кода, а как ускоритель понимания. Когда узким местом оказалась min-heap, инженер не стал выбирать одну реализацию на глаз, а поручил агенту собрать пять вариантов и прогнать профилирование за ночь. Утром был ответ и двукратный прирост. Для выбора алгоритма разбиения он быстро навайбкодил веб-интерфейс, который показывал работу разных вариантов на реальных данных. То, что раньше означало недели чтения и ручных экспериментов, свелось к нескольким итерациям в удобной форме. Вывод простой. ИИ не придумал за них архитектуру. Он сделал дешёвым то, на что раньше не хватало времени: перебрать варианты и увидеть их работу своими глазами. А архитектура по-прежнему рождается из точного понимания своей нагрузки. https://blog.janestreet.com/scaling-and-benchmarking-a-critical-message-bus/
Сегодня в редакции разбирали статью не про ИИ. Надо же иногда отдыхать. Хотя…
Из этого канала
- #3119🚀 29 октября Arenadata проведёт техническую онлайн-конференцию ArenaTech На…
🚀 29 октября Arenadata проведёт техническую онлайн-конференцию ArenaTech На ArenaTech инженеры Arenadata расскажут, как устроены продукты компании изнутри,…
- #3120Дайджест статей 📰 AI Agents (07): Agentic Harness (Frameworks) 🔗…
Дайджест статей 📰 AI Agents (07): Agentic Harness (Frameworks) 🔗…
- #3121Claude уверенно съедает BI 🙂…
Claude уверенно съедает BI 🙂 https://claude.com/resources/articles/dashboards-and-motion?utmsource=substack&utmmedium=email
- #3117Я вот здесь все по деталькам разобрал, надеюсь будет полезно: Тут про философию…
Я вот здесь все по деталькам разобрал, надеюсь будет полезно: Тут про философию и внутренности: https://habr.com/ru/articles/1085450/ А тут крафтовый бенч,…
- #3116Подниму в канал для видимости
Подниму в канал для видимости