Комбинаторная Software Transactional Memory: сценарии использованияБэкенд, теория программирования
IT консультант, разработчик экспертного уровня, автор книг, международный спикер, архитектор ПО.
Автор продвинутых книг по дизайну и архитектуре ПО в ФП:
* Functional Design and Architecture
* Functional Design and Architecture (Second Edition, Manning Publications)
* Pragmatic Type-Level Design
Спикер с более чем 20ю глубокими техническими докладами на местных и международных конференциях
Software Transactional Memory - это подход для построения конкурентно изменяемых моделей данных. Из базовых кирпичиков, предоставляемых STM, вы строите свою модель данных, создаете транзакции и запускаете их на выполнение в отдельных потоках. При этом ваш код не требует синхронизации или работы с потоками напрямую: STM берет эту задачу на себя. Вы видите только чистую модель транзакционной памяти, что ведет к более понятному и простому многопоточному коду.
В докладе я рассмотрю варианты использования своей библиотеки cpp_stm_free для С++, реализующей эту концепцию в чисто функциональном стиле. На примере нескольких реальных задач расскажу о способах оптимизации как транзакционной модели данных, так и самой библиотеки. Также поговорим о проблемах и особенностях функционального программирования в системах с высокими требованиями к производительности.