Как мы внедрили WebAssembly в SQL-движок динамических таблиц YTsaurus

Базы данных и системы хранения

C/C++
Базы данных / другое
YTSaurus

Доклад принят в программу конференции

Мнение Программного комитета о докладе

WebAssembly в продакшен-СУБД: как запустить произвольный C++ код в динамических таблицах YTsaurus и не потерять ни в скорости, ни в безопасности. Дмитрий покажет, как решаются задачи кросс-компиляции и почему UDF на WebAssembly — реально рабочий путь.

Целевая аудитория

* Разработка и эксплуатация СУБД (основная аудитория). * Любители computer science (комплементарная аудитория).

Тезисы

Мы в динамических таблицах YTsaurus более десяти лет строим распределенную СУБД. Нашим SQL-подобным языком запросов пользуются разработчики в Яндексе, и многие из них хорошо владеют C++ и используют его в работе. Это основной язык, который используется в наших User-Defined Functions. Другие используемые в Яндексе языки не подходят, потому что не работают так же быстро.

WebAssembly — технология для безопасного запуска произвольного кода в изолированном окружении. Именно она позволяет нам запускать любой пользовательский код на C++ внутри нашей СУБД и не бояться.
В докладе расскажу:
* как мы внедрили WebAssembly во взрослый SQL-движок, работающий в продакшене;
* почему WebAssembly выполняется и безопасно, и быстро;
* что требуется от хорошего WebAssembly-рантайма и как нам пришлось допиливать существующий;
* как кросс-компилировать под WebAssembly код произвольной сложности, а не только игрушечные примеры;
* почему это лучший способ поддержать UDF на настоящий момент.

Разработчик динамических таблиц YTsaurus в Яндексе. Занимается разработкой языка запросов распределённой СУБД с 2022 года.

Видео

Другие доклады секции

Базы данных и системы хранения