The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В рамках проекта D-Bus Broker развивается новая реализация ш..."
Отправлено opennews, 23-Авг-17 20:39 
Дэвид Герман (David Herrmann), в своё время разработавший шину обмена сообщениями  Bus1 (https://www.opennet.ru/opennews/art.shtml?num=45382) для ядра Linux, представил (https://dvdhrm.github.io/rethinking-the-dbus-message-bus/) новый проект D-Bus Broker (https://github.com/bus1/dbus-broker/wiki), в рамках которого предпринята попытка переосмысления D-Bus и создания новой реализации, устраняющей недостатки штатного демона D-Bus (https://www.freedesktop.org/wiki/Software/dbus/). Код проекта написан на языке Си и распространяется (https://github.com/bus1/dbus-broker/) под лицензией Apache 2.0.


Мотивом создания новой реализации стала излишняя раздутость и переусложнённость  dbus-daemon, в сочетании с обилием отражённых в системе отслеживания ошибок проблем - от неконтролируемого расходования памяти и пропадании сообщений, до возникновения взаимных блокировок и крахов процесса. Некоторые из проблем остаются нерешёнными до 7 лет, в большей части из-за того, что их принципиально невозможно устранить без нарушения гарантированной в dbus-daemon функциональности и существенных архитектурных изменений.

В отличие от Bus1 проект D-Bus Broker реализован целиком в пространстве пользователя, остаётся полностью совместим с эталонной  реализацией D-Bus и может (https://github.com/bus1/dbus-broker/wiki#using-dbus-broker) быть использован для прозрачной замены dbus-daemon. При этом новая реализация спроектирована с оглядкой на поддержку востребованной на практике функциональности и уделяет главное внимание работе по увеличению производительности и повышению надёжности. В D-Bus Broker также принципиально не реализованы функции, помеченные как устаревшие, и расширенные (https://github.com/bus1/dbus-broker/wiki/Deviations) возможности, не отражённые в спецификации D-Bus.


Ключевые  архитектурные изменения в D-Bus Broker:


-  Уход от идеи глобальной совместной шины (Shared Medium), к которой соединяются все обработчики сообщений и через которую осуществляется отправка сообщений. Вместо общей шины предложена концепция отдельных пиров, не имеющих глобального состояния. Когда какой-то пир отправляет сообщения, эта операция рассматривается как транзакция между отправителем и одной или несколькими точками назначения.

-  Отказ от использования дополнительных IPC-механизмов, так как D-Bus сам по себе является IPC и создание надстроек IPC над IPC приводит к появлению взаимных блокировок. Иными словами D-Bus Broker является самодостаточным процессом, который позволяет оперировать только локальными данными и не привязан к внешним обработчикам, таким как чтение файлов и обращение к NSS.


-  Учёт ресурсов в привязке к пользователям. Каждый ресурс и переданный в шину объект привязан к конкретному пользователю. Таким образом, существенно упрощается реализации ограничений и лимиты больше не привязываются к пиру (ограничения теперь зависят от активности каждого пользователя, а не от общей нагрузки на обработчик).

-  Воплощение принципа, что сообщение никогда не может быть потеряно без обработки ошибки. В случае возникновения проблем недопускается возникновения неопределённых ситуаций, каждая ошибка доставки должна быть выявлена и обработана, а в случае невозможности обработки ошибки процесс должен завершить свою работу, а не просто игнорировать возникшие проблемы.


Что касается высокой производительности D-Bus Broker, то её ценой является привязка к современным окружениям Linux -  для своей работы проект требует наличия ядра Linux 4.10 и glibc  2.16, и принципиально не может быть использован в старых дистрибутивах Linux или в других ОС. Предоставляются опциональные компоненты для интеграции с systemd и SELinux.  Обеспечивается работа только локального IPC без поддержки сетевого взаимодействия (при необходимости проброса на другой хост предлагается пробрасывать локальный сокет через SSH).

URL: https://dvdhrm.github.io/rethinking-the-dbus-message-bus/
Новость: http://www.opennet.ru/opennews/art.shtml?num=47071

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру