Трейдеры против айтишников: зачем XTX Markets создали TernFS и выложили её в open-source?

Когда трейдеры начинают писать файловые системы

Я привык к тому, что новые файловые системы обычно рождаются в лабораториях крупных IT-гигантов: Google, Red Hat, Microsoft. Но тут история совсем другая — ребята из XTX Markets, одной из крупнейших торговых фирм в мире, вдруг сказали: «А давайте сделаем свой файловый движок. И выложим его в open-source». Честно говоря, я сперва даже подумал, что это шутка. Ну потому что трейдеры и файловые системы — это как банкиры и рок-группы. Но нет, всё серьезно: появился TernFS.

Кстати, название «Tern» переводится как «крачка» — такая морская птица, что-то вроде более изящной версии чайки. Почему именно птица — вопрос открытый. Может, намёк на скорость и лёгкость, а может, просто красивое слово. У меня же ассоциация скорее бытовая: крачка как и чайка вечно кружит над водой, выжидая момент, чтобы ухватить рыбку. Вот и XTX с их TernFS делают примерно то же самое — ныряют в океан данных, вытаскивают нужный кусок и тащат его наверх. Только вместо рыбы у них петабайты ценовых прогнозов и алгоритмов.

Зачем вообще это всё?

Представьте компанию, которая ежедневно крутит сделки на $250 миллиардов. Это не опечатка. Четверть триллиона. И всё это упирается в прогнозы, алгоритмы и модели машинного обучения. А модели — это огромные массивы данных. В какой-то момент стандартные решения перестали справляться. Сначала они, как и многие, сидели на NFS. Потом пробовали другие файловые системы. Но — всё, предел, «узкое горлышко». И тут начинается самое интересное: вместо того чтобы просто купить готовую дорогущую «коробку», XTX решили написать своё.

Что умеет TernFS

В двух словах: это распределённая файловая система для огромных неизменяемых файлов. Неизменяемых — это ключевое слово. Типичный сценарий: мы записали файл (например, модель или кусок исторических данных) и больше его не трогаем. Максимум читаем его тысячи раз, но переписывать не нужно. Звучит просто, но на практике это значит, что можно оптимизировать всё под скорость чтения и надёжность хранения.

А масштабы у них такие, что голова кружится:

  • до 10 эксабайт логического хранения (это миллион терабайт — попробуйте представить хотя бы тысячу обычных жёстких дисков и умножьте на миллион);
  • около триллиона файлов и 100 миллиардов директорий;
  • до миллиона клиентов одновременно;
  • и всё это на обычном «железе», плюс обычные Ethernet сети, без космических проприетарных решений.

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

TernFS
TernFS

Надёжность без шаманства

Знаете, как это бывает в дата-центрах: один диск умер — уже праздник для админов. Два диска умерли одновременно — всё, готовься к ночным сменам. У TernFS подход другой: данные автоматически дублируются, система распределяется по разным регионам, нет единой «точки смерти» для метаданных. По сути, они сделали так, чтобы сбой одного элемента не приводил к катастрофе.

И вот что особенно впечатляет: XTX честно признаётся — за год, что вся их машинная обучалка работает на TernFS, не потерян ни один байт. Я сам не очень верю в абсолютные заявления (всегда есть «но»), но звучит круто. Если так и есть — снимаю шляпу.

Открытый код и лицензии

Ещё один момент, который меня удивил: они решили не просто закрыть всё внутри корпорации, а отдать в open-source. Причём под двумя лицензиями сразу — GPLv2+ и Apache 2.0. Это значит, что взять код и прикрутить его к своим проектам сможет кто угодно. Вопрос — кому это реально понадобится? Но, как минимум, университеты, исследовательские центры или какие-нибудь «хардкорные» админы уже потирают руки.

Личный взгляд

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

С другой стороны, давайте будем честны: это решение не для домашних NAS-ов. Если у вас два жёстких диска на 4 ТБ и Plex-сервер, TernFS не нужен. Тут масштабы совсем другие. Это как покупать комбайн, чтобы подстричь газон возле дома.

Где почитать и что дальше

Если захотите копнуть глубже — то код лежит на GitHub, а детали описаны в блоге XTX. Возможно, в ближайшие месяцы появятся первые энтузиасты, которые попробуют поднять TernFS у себя в «песочнице» и расскажут, с чем это едят. Мне самому интересно, появятся ли форки и какие-нибудь «облегчённые» версии для меньших масштабов.

Итог

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

Как бы там ни было, для нас, техногиков, это отличный повод заглянуть под капот системы, которая держит на себе горы данных. А вдруг через пару лет именно на базе TernFS вырастет что-то новое и массовое? В истории Linux такое уже было не раз. Так что, если у вас есть свободные выходные и руки чешутся — можете смело идти на GitHub и смотреть, как это всё устроено изнутри.

А я пока пойду сделаю себе кофе. Потому что после слов «10 эксабайт» у меня в голове только одно: «как это вообще и сколько?».

Nazario

Я — Nazario, тот самый человек, который больше десяти лет ковыряется в Linux и Windows системах не ради хобби, а потому что это — работа и жизнь. Всё, что вы читаете на Setiwik.ru, — это не пересказ справки из мануала, а результат десятков реальных кейсов, выстраданных конфигов и ночных перезагрузок.

Я не претендую на истину в последней инстанции. Но если мой опыт может кому-то упростить работу — значит, всё это не зря. Здесь нет «магии», только практика: от настроек сервера до неожиданных багов, которые не гуглятся с первого раза.

Setiwik.ru — это место, где IT становится чуть менее хаотичным. Заходите почаще — будем разбираться вместе.

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