Нативное ядро Oxide#

CedrusData Engine содержит высокопроизводительное нативное ядро вычислений Oxide, написанное на языке Rust с использованием технологий Apache Arrow и Apache DataFusion. Oxide обеспечивает более высокую скорость обработки по сравнению с оригинальным ядром Trino за счет уменьшения стоимости индивидуальных операций и разделением CPU и IO нагрузок.

Архитектура#

Oxide является альтернативным ядром выполнения, которое работает совместно с оригинальным ядром Trino на worker-узле в рамках одного процесса. Oxide состоит из следующих компонентов:

  • Вычислительное ядро на основе Apache DataFusion

  • Кэш данных для Iceberg

  • Система управления памятью

  • Система управления метриками.

Взаимодействие Oxide и Java реализовано через JNI. Передача данных происходит с использованием протоколов Apache Arrow и Protobuf.

В процессе планирования запроса CedrusData определяет, какие операторы необходимо выполнить в Oxide, а какие в Java. Среда выполнения worker-узла передает нативные операторы в Rust и получает обратно результат в формате Apache Arrow. Далее происходит преобразование полученные данных в формат Trino с последующей передачей в вышестоящие операторы в Java.

Включение Oxide#

Для включения Oxide задайте следующий параметр конфигурации в файле etc/config.properties:

cedrusdata.oxide.enabled=true

Дополнительные параметры конфигурации приведены в Управление нативным ядром Oxide.

Дополнительные материалы#