Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем

Exception Handling: сквозь мультивселенные интероперабельности

Хардкор

Хардкор

Tarantool

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

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

Программисты на всех языках программирования с завистью смотрят на Rust, где с обработкой ошибок все хорошо. Tatantool, о котором расскажет Максим, написан на C++ и Lua. Это доклад о том, какие усилия приложила команда для бесшовной работы с исключениями между разными частями такой сложной системы.

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

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

Тезисы

Tarantool — это платформа для in-memory-вычислений, написанная на C/C++ и Lua. Миры Lua и С/C++ очень тесно связаны: у Tarantool есть модули на Lua, модули на Lua могут использовать модули, написанные на C/C++. В процессе исполнения и в Lua-коде, и в C/C+±коде могут возникать исключения, которые иногда необходимо обрабатывать в другом компоненте, может быть написанном на другом языке.

Доклад рассказывает о том, как можно реализовать интероперабельность исключений между двумя языками на примере Lua и C. Разберемся в том, какие есть способы реализации механизма исключений на разных платформах, посмотрим на специфичные для них сложности, а также рассмотрим реализацию интероперабельности на примере LuaJIT, с помощью которого исполняется весь Lua-код в Tarantool.

Занимается языковыми рантаймами в Tarantool и разработкой инструментария для них. Интересуется компиляторными технологиями и распределенными системами.

VK, Tarantool

Tarantool — middleware для эффективного создания высоконагруженных сервисов. Сочетает в себе сервер приложений, гибридное хранилище данных, а также инструменты и средства масштабирования. Производительность систем на Tarantool может достигать 1 млн транзакций в секунду.

Видео