first commit
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# P18. Faasm: WebAssembly-изоляция для stateful serverless
|
||||
|
||||
- **Версия и дата проверки:** 1.0, 05.09.2026.
|
||||
- **Статус:** готово к назначению.
|
||||
|
||||
## Статья и исходные материалы
|
||||
|
||||
- **Основная статья:** Simon Shillaker и Peter Pietzuch — [Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing](https://www.usenix.org/conference/atc20/presentation/shillaker). USENIX ATC 2020.
|
||||
- **Кратко о статье:** Обычная serverless-платформа изолирует функции процессами или контейнерами, из-за чего запуск и обмен состоянием между функциями становятся дорогими. Faasm использует лёгкую WebAssembly-изоляцию, совместное размещение функций и средства общего состояния, уменьшая копирование и сериализацию данных. В проекте этот компромисс воспроизводится на CPU и сравнивается с процессной изоляцией.
|
||||
- **Почему результат актуален:** система продолжает развиваться, а линия работы получила продолжение в [GRANNY](https://www.usenix.org/conference/nsdi25/presentation/segarra) с поддержкой OpenMP, MPI и динамического управления ресурсами. Исходный механизм программной изоляции и совместного состояния остаётся доступен в текущем runtime.
|
||||
- **Артефакты и данные:** [faasm/faasm](https://github.com/faasm/faasm) под Apache-2.0, с локальным кластером через Docker Compose, C++-функциями, тестами и поддержкой распределённого состояния. Зафиксированные ревизии: `faasm/faasm@3127fe5aee8e` (Apache-2.0).
|
||||
|
||||
## Обязательный результат
|
||||
|
||||
- **Проверяемый вопрос или утверждение:** совместное размещение WebAssembly-функций с разделяемой памятью уменьшает стоимость запуска, копирования данных и потребление памяти относительно изолированных процессов или контейнеров с сериализацией состояния.
|
||||
- **Технический результат:** В локальном Faasm-кластере реализовать две CPU-функции, которые обмениваются массивом или состоянием через разделяемую память. Подготовить функционально эквивалентный baseline с сериализацией через файл, сокет или Redis, единый запуск и автоматическую проверку равенства результатов.
|
||||
- **Эксперимент:** на подготовленных функциях сравнить разделяемую память Faasm с передачей сериализованных данных через файл, сокет или Redis. Измерять холодный и тёплый запуск, задержку, объём копирования, RSS и пропускную способность при нескольких уровнях параллелизма.
|
||||
- **Границы выводов:** стоимость обмена состоянием проверяется для двух CPU-функций и выбранного baseline в локальном окружении; результат не оценивает межузловую сеть, многоарендную изоляцию и масштабирование облачного кластера.
|
||||
- **Ресурсный профиль:** локально, Linux или Docker, CPU, желательно 16 ГБ памяти. Если распределённый режим нестабилен, обязательная часть сохраняет реальные Faaslets и разделяемую память на одном узле, а межузловой обмен исследуется в отдельной модели с калибровкой по локальным измерениям.
|
||||
|
||||
## Содержательные направления
|
||||
|
||||
- функции и базовый вариант с сериализацией.
|
||||
- развёртывание Faasm и инструментирование.
|
||||
- серии нагрузок, анализ памяти и собственный режим.
|
||||
|
||||
## Возможное продолжение
|
||||
|
||||
Исследовать размер разделяемого состояния, снимки и восстановление, конкуренцию функций, размещение между workers либо границу, после которой удалённый обмен устраняет выигрыш от совместной памяти.
|
||||
Reference in New Issue
Block a user