Size: a a a

2020 February 03

T

Tux in rust_offtopic
На фундоментальном уровне, это децентрализованная платформа для запуска доставки и взаимодействия разных модулей (а-ля микросервисов). Сами модули по задумке скорее ближе к лямбде амазоновской, чем к кубернетовским подам (хтя никто не мешает использовать это дело вместо кубернейтеса).

Сами модули могут быть реализованы на множестве разных технлогий. Доддерживаемые технологии расширяются динамически, посредством добавления новых драйверов для дапуска того или иного типа модулей.
Сейчас планируются следующие драйверы:
- Unix. Запуск модулей через создание чаилд процесса в ОС.
- Wasm. Запуск .wasm модулей.
- Docker. Запуск OCI контейнеров, через обращение к докеру.

Для осуществления доставки модулей, реализуется object storage, который является постоянным хранилищем состояния для разворачиваемой архитектуры. Там же хранятся ресурсы, необходимые для запуска модулей (OCI контейнеты, wasm байт-код и прочее). Благодаря возможности сетивой интеграции этих хранилищ, Будет реализована возможность загрузки необходимого модуля из сети (процесс чем-то схож с концепцией proxy из golang).

Для обеспечения взаимодействия межу модулями, используется шина данных реализующая такие виды коммуникации:
- Push. Простая доставка сообщений целевому модулю.
- Req/Res.  Доставка сообщения, которое может иметь связанное с ним ответное сообщение (RPC).
- Pub/Sub. Возможность подписаться на события.

Маршрутизация сообщений происходит благодаря координатору. Этот компонент реализует адресацию модулей.

Для экономии ресурсов, существует модуль terminator, который отслеживает дерево зависимх модулей, и при необходимости, убивает те модули, которые не связаны с основным деревом. (Механизм подобен остановке осиротевших процессов в ОС).
источник

T

Tux in rust_offtopic
И это я ещё только начал про базовый уровень рассказывать.
источник

T

Tux in rust_offtopic
сейчас реализовано и хоть как-т работает шина, координатор, механизм подключения драйверов (пока только buildin), драйвер UNIX, object storage, сама программа (в смысле демон и CLI).
источник

T

Tux in rust_offtopic
Вооще, предполагается возможность бесшевного переноса модулей между машинами.

Расшаривание модулей (ресурсов), т.е. подключение запущенных в довереном внешнем "облаке" модулей к инфраструктуре.

Механизм для поиска и доставки необходимых тебе модулей (что-то типа Package Manager).

Протокол, позволяющий находить необходимые модули.

Мультивендорная система обновления.

Построение динамичемких экосистем, и многое другое.
источник

T

Tux in rust_offtopic
блин, там писать и писать =)
источник

NM

Nigga Melon in rust_offtopic
Stanislav Popov
ну знал бы не спрашивал да. что это вообще такое?
?
источник

FS

Filipp Samoilov in rust_offtopic
подскажите алгоритм. есть набор сетов, нужно построить структуру данных чтобы по заданному сету находить максимально похожий сет из прежде заданных. похожесть определяется количеством пересекающихся элементов
источник

MB

Mikail Bagishov in rust_offtopic
Сеты большие? Сетов много?
источник

T

Tux in rust_offtopic
Filipp Samoilov
подскажите алгоритм. есть набор сетов, нужно построить структуру данных чтобы по заданному сету находить максимально похожий сет из прежде заданных. похожесть определяется количеством пересекающихся элементов
что за типы?
источник

FS

Filipp Samoilov in rust_offtopic
сеты на самом деле таплы, в каждой позиции значение енума или пусто, енумы 4 разных значения возможных имеют
источник

MB

Mikail Bagishov in rust_offtopic
Какой размер тапла?
источник

FS

Filipp Samoilov in rust_offtopic
длина тапла 9
источник

MB

Mikail Bagishov in rust_offtopic
А сколько таплов?
источник

FS

Filipp Samoilov in rust_offtopic
пара сотен
источник

MB

Mikail Bagishov in rust_offtopic
Хм. Можно каждый тапл закодировать в виде битовой маски, по 2 бита на элемент
источник

FS

Filipp Samoilov in rust_offtopic
я вот тоже думал но количество вариантов в енуме скорее всего увеличится в какой-то момент
источник

MB

Mikail Bagishov in rust_offtopic
Самую похожую искать за линию, но для поиска расстояния будет xor+popcnt, а это быстро
источник

MB

Mikail Bagishov in rust_offtopic
Filipp Samoilov
я вот тоже думал но количество вариантов в енуме скорее всего увеличится в какой-то момент
Запас есть)
источник

FS

Filipp Samoilov in rust_offtopic
пока так сделаю, спасибо
источник

MB

Mikail Bagishov in rust_offtopic
Спроси еще в t.me/proalgorithms
источник