На главную

Open Source-трибуна на конференциях

Сергей Бронников / Jepsen-like библиотека на Lua

Сергей Бронников / Jepsen-like библиотека на Lua /

Библиотека Jepsen хорошо себя зарекомендовала в тестировании распределенных систем. Это подтверждают и отчёты о тестировании различных СУБД с описанием найденных проблем и публикации исследователей с анализом причин эффективности подхода, используемого в Jepsen. В то же время разработка тестов в новом проекте может быть затруднена как минимум из-за использования языка Clojure, на котором написана библиотека. Clojure не настолько популярен среди разработчиков и тестировщиков распределенных систем как, например, Python. При разработке синхронной репликации в Tarantool Core мы тоже использовали Jepsen и разработали на её основе набор тестов, которые сейчас интегрированы в систему непрерывной интеграции проекта. Я расскажу о нашем опыте использования этой библиотеки при тестировании Tarantool, о том, c какими проблемами мы столкнулись. Мы пристально рассмотрим библиотеку Jepsen и разберем её на кусочки, чтобы понять, как она работает и из каких частей состоит тест. Далее мы вместе напишем небольшой тест для etcd с использованием подхода, используемого в Jepsen, но на Lua вместо Clojure и используем корутины (кооперативная многозадачность) вместо тредов Java (вытесняющая многозадачность). Доклад будет интересен разработчикам и тестировщикам распределенных систем, сторонникам подхода тестирования с помощью свойств (PBT), противникам кооперативной многозадачности и сторонникам вытесняющей многозадачности. Для прослушивания доклада знание Clojure и Lua не потребуется.
Ссылка на проект