Update project task cards to version 1.1

This commit is contained in:
2026-09-07 21:46:04 +03:00
parent 2bbfdac874
commit f8a5e00ab9
42 changed files with 264 additions and 103 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
# P18. Faasm: WebAssembly-изоляция для stateful serverless
- **Версия и дата проверки:** 1.0, 05.09.2026.
- **Версия и дата проверки:** 1.1, 07.09.2026.
- **Статус:** готово к назначению.
## Статья и исходные материалы
@@ -9,11 +9,13 @@
- **Кратко о статье:** Обычная 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).
- **Что уже предоставляет артефакт:** Faasm предоставляет runtime, распределённое состояние, локальное развёртывание, примеры функций и тесты. Систему можно использовать как внешнюю среду исполнения.
## Обязательный результат
- **Проверяемый вопрос или утверждение:** совместное размещение WebAssembly-функций с разделяемой памятью уменьшает стоимость запуска, копирования данных и потребление памяти относительно изолированных процессов или контейнеров с сериализацией состояния.
- **Технический результат:** В локальном Faasm-кластере реализовать две CPU-функции, которые обмениваются массивом или состоянием через разделяемую память. Подготовить функционально эквивалентный baseline с сериализацией через файл, сокет или Redis, единый запуск и автоматическую проверку равенства результатов.
- **Обязательное приращение команды:** Создать предусмотренные две CPU-функции с обменом состоянием, эквивалентный baseline с сериализацией и общий проверяющий запуск. Самостоятельно организовать измерения холодного и тёплого режима, копирования и памяти при нескольких уровнях параллелизма.
- **Эксперимент:** на подготовленных функциях сравнить разделяемую память Faasm с передачей сериализованных данных через файл, сокет или Redis. Измерять холодный и тёплый запуск, задержку, объём копирования, RSS и пропускную способность при нескольких уровнях параллелизма.
- **Границы выводов:** стоимость обмена состоянием проверяется для двух CPU-функций и выбранного baseline в локальном окружении; результат не оценивает межузловую сеть, многоарендную изоляцию и масштабирование облачного кластера.
- **Ресурсный профиль:** локально, Linux или Docker, CPU, желательно 16 ГБ памяти. Если распределённый режим нестабилен, обязательная часть сохраняет реальные Faaslets и разделяемую память на одном узле, а межузловой обмен исследуется в отдельной модели с калибровкой по локальным измерениям.