- Проект Oxide предусматривает переписывание ядра движка Trino с Java на Rust.
- Основой нового решения стала библиотека DataFusion на Rust, выбранная для повышения производительности.
- Авторы подробно рассказали о сложностях перехода и преимуществах нового подхода.
Для поддержания лидерства и максимальной скорости работы lakehouse-движка Trino разработчики инициировали проект Oxide, предполагающий радикальное переосмысление архитектуры. Главная идея заключается в замене ядра, первоначально написанного на Java, на реализацию на языке Rust. Такой переход вызван стремлением значительно повысить производительность и устойчивость системы.
Выбор Rust и библиотеки DataFusion в качестве основы нового ядра обусловлен превосходными характеристиками языка: безопасностью памяти, эффективным управлением ресурсами и возможностями для низкоуровневой оптимизации. Также DataFusion предоставляет готовые компоненты для выполнения SQL-запросов, что облегчает интеграцию и развитие функционала.
В опубликованной статье эксперты честно описывают, с какими трудностями столкнулась команда в ходе реализации Oxide. Помимо технических вызовов, связанных с переписыванием крупного и сложного кода, были выявлены особенности интеграции между Rust и существующей экосистемой. Тем не менее, преодоление этих препятствий позволило получить существенные преимущества: улучшенную производительность, уменьшенную задержку и большую предсказуемость поведения приложения.
Разработчики также делятся своими наблюдениями и предоставляют рекомендации для коллег, желающих аналогичным образом перейти на Rust. Их опыт демонстрирует, что хоть задача и требует значительных усилий, итоговое качество и эффективность системы оправдывают вложения.
Таким образом, проект Oxide является важным этапом в эволюции Trino, отражающим современные тенденции развития больших данных и программных платформ. Благодаря переходу на Rust команда рассчитывает сохранить Трино в статусе одного из самых быстрых и надежных решений для обработки lakehouse-данных.
