Почему ядро Trino переписали с Java на Rust? Обложка: Skyread

Почему ядро Trino переписали с Java на Rust?

Новости
Главное:

  • Проект Oxide предусматривает переписывание ядра движка Trino с Java на Rust.
  • Основой нового решения стала библиотека DataFusion на Rust, выбранная для повышения производительности.
  • Авторы подробно рассказали о сложностях перехода и преимуществах нового подхода.

Для поддержания лидерства и максимальной скорости работы lakehouse-движка Trino разработчики инициировали проект Oxide, предполагающий радикальное переосмысление архитектуры. Главная идея заключается в замене ядра, первоначально написанного на Java, на реализацию на языке Rust. Такой переход вызван стремлением значительно повысить производительность и устойчивость системы.

Выбор Rust и библиотеки DataFusion в качестве основы нового ядра обусловлен превосходными характеристиками языка: безопасностью памяти, эффективным управлением ресурсами и возможностями для низкоуровневой оптимизации. Также DataFusion предоставляет готовые компоненты для выполнения SQL-запросов, что облегчает интеграцию и развитие функционала.

В опубликованной статье эксперты честно описывают, с какими трудностями столкнулась команда в ходе реализации Oxide. Помимо технических вызовов, связанных с переписыванием крупного и сложного кода, были выявлены особенности интеграции между Rust и существующей экосистемой. Тем не менее, преодоление этих препятствий позволило получить существенные преимущества: улучшенную производительность, уменьшенную задержку и большую предсказуемость поведения приложения.

Разработчики также делятся своими наблюдениями и предоставляют рекомендации для коллег, желающих аналогичным образом перейти на Rust. Их опыт демонстрирует, что хоть задача и требует значительных усилий, итоговое качество и эффективность системы оправдывают вложения.

Таким образом, проект Oxide является важным этапом в эволюции Trino, отражающим современные тенденции развития больших данных и программных платформ. Благодаря переходу на Rust команда рассчитывает сохранить Трино в статусе одного из самых быстрых и надежных решений для обработки lakehouse-данных.

Tagged