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