Когда трейдеры начинают писать файловые системы
Я привык к тому, что новые файловые системы обычно рождаются в лабораториях крупных IT-гигантов: Google, Red Hat, Microsoft. Но тут история совсем другая — ребята из XTX Markets, одной из крупнейших торговых фирм в мире, вдруг сказали: «А давайте сделаем свой файловый движок. И выложим его в open-source». Честно говоря, я сперва даже подумал, что это шутка. Ну потому что трейдеры и файловые системы — это как банкиры и рок-группы. Но нет, всё серьезно: появился TernFS.
Кстати, название «Tern» переводится как «крачка» — такая морская птица, что-то вроде более изящной версии чайки. Почему именно птица — вопрос открытый. Может, намёк на скорость и лёгкость, а может, просто красивое слово. У меня же ассоциация скорее бытовая: крачка как и чайка вечно кружит над водой, выжидая момент, чтобы ухватить рыбку. Вот и XTX с их TernFS делают примерно то же самое — ныряют в океан данных, вытаскивают нужный кусок и тащат его наверх. Только вместо рыбы у них петабайты ценовых прогнозов и алгоритмов.
Зачем вообще это всё?
Представьте компанию, которая ежедневно крутит сделки на $250 миллиардов. Это не опечатка. Четверть триллиона. И всё это упирается в прогнозы, алгоритмы и модели машинного обучения. А модели — это огромные массивы данных. В какой-то момент стандартные решения перестали справляться. Сначала они, как и многие, сидели на NFS. Потом пробовали другие файловые системы. Но — всё, предел, «узкое горлышко». И тут начинается самое интересное: вместо того чтобы просто купить готовую дорогущую «коробку», XTX решили написать своё.
Что умеет TernFS
В двух словах: это распределённая файловая система для огромных неизменяемых файлов. Неизменяемых — это ключевое слово. Типичный сценарий: мы записали файл (например, модель или кусок исторических данных) и больше его не трогаем. Максимум читаем его тысячи раз, но переписывать не нужно. Звучит просто, но на практике это значит, что можно оптимизировать всё под скорость чтения и надёжность хранения.
А масштабы у них такие, что голова кружится:
- до 10 эксабайт логического хранения (это миллион терабайт — попробуйте представить хотя бы тысячу обычных жёстких дисков и умножьте на миллион);
- около триллиона файлов и 100 миллиардов директорий;
- до миллиона клиентов одновременно;
- и всё это на обычном «железе», плюс обычные Ethernet сети, без космических проприетарных решений.
Выглядит почти как фантастика. Но если подумать — это именно тот случай, когда компания не может ждать, пока кто-то другой изобретёт идеальное хранилище. Приходится делать самим.

Надёжность без шаманства
Знаете, как это бывает в дата-центрах: один диск умер — уже праздник для админов. Два диска умерли одновременно — всё, готовься к ночным сменам. У TernFS подход другой: данные автоматически дублируются, система распределяется по разным регионам, нет единой «точки смерти» для метаданных. По сути, они сделали так, чтобы сбой одного элемента не приводил к катастрофе.
И вот что особенно впечатляет: XTX честно признаётся — за год, что вся их машинная обучалка работает на TernFS, не потерян ни один байт. Я сам не очень верю в абсолютные заявления (всегда есть «но»), но звучит круто. Если так и есть — снимаю шляпу.
Открытый код и лицензии
Ещё один момент, который меня удивил: они решили не просто закрыть всё внутри корпорации, а отдать в open-source. Причём под двумя лицензиями сразу — GPLv2+ и Apache 2.0. Это значит, что взять код и прикрутить его к своим проектам сможет кто угодно. Вопрос — кому это реально понадобится? Но, как минимум, университеты, исследовательские центры или какие-нибудь «хардкорные» админы уже потирают руки.
Личный взгляд
Я часто сталкивался с тем, что компании делают внутренние «велосипеды». Но обычно эти велосипеды так и остаются за забором — потому что документация «на салфетке», архитектура держится на одном «гуру» в команде, и в продакшн это не годится. Здесь ситуация другая: три года разработки, реальное боевое использование, и только потом публикация. То есть это не «сырец», а уже проверенный инструмент.
С другой стороны, давайте будем честны: это решение не для домашних NAS-ов. Если у вас два жёстких диска на 4 ТБ и Plex-сервер, TernFS не нужен. Тут масштабы совсем другие. Это как покупать комбайн, чтобы подстричь газон возле дома.
Где почитать и что дальше
Если захотите копнуть глубже — то код лежит на GitHub, а детали описаны в блоге XTX. Возможно, в ближайшие месяцы появятся первые энтузиасты, которые попробуют поднять TernFS у себя в «песочнице» и расскажут, с чем это едят. Мне самому интересно, появятся ли форки и какие-нибудь «облегчённые» версии для меньших масштабов.
Итог
TernFS — это редкий случай, когда мир высоких финансов и мир open-source неожиданно пересекаются. Обычно трейдеры прячут свои алгоритмы и решения за семью печатями. А тут наоборот — делятся с сообществом тем, что, по сути, является основой их инфраструктуры. Может, они рассчитывают на вклад сообщества. А может, просто решили «похайпить» и показать, что умеют не только деньги считать.
Как бы там ни было, для нас, техногиков, это отличный повод заглянуть под капот системы, которая держит на себе горы данных. А вдруг через пару лет именно на базе TernFS вырастет что-то новое и массовое? В истории Linux такое уже было не раз. Так что, если у вас есть свободные выходные и руки чешутся — можете смело идти на GitHub и смотреть, как это всё устроено изнутри.
А я пока пойду сделаю себе кофе. Потому что после слов «10 эксабайт» у меня в голове только одно: «как это вообще и сколько?».