[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: DBus



On Mon, May 27, 2013 at 07:55:26PM +0400, Иван Лох wrote:
> Вы намекаете, что все сообщения должны быть широковещательными? Не
> думаю, что это хорошо из соображений производительности хотя бы.

 Какая, собственно, разница между малтикастом и юникастом с точки
 зрения затрат на маршрутизацию? Никакой. Если адрес не хэширован,
 в любом случае будет фулскан таблицы получателей. Если хэширован,
 то после вычисления хэша -- фулскан списка адресов, для которых хэш
 принимает нужное значение. То есть природа адреса здесь не роялит.

 Вот между средой с адресацией и p2p-линком разница есть: во втором
 случае маршрутизация не нужна. Но тогда N^2, якобы. На самом деле
 никакого N^2 не будет, потому что нет нужды каждому приложению
 связываться с каждым. В лучшем случае будет N(a+b*log(N)), причём
 N будет порядка 10-30, так что проблема с N^2 немного надуманная...

 Затем доставка. В любом случае каждому приложению отдельно, в свой
 юзерспейсный буфер. Задача на порядок-другой более тяжёлая, нежели
 маршрутизация с любыми хэшами. Хэши-то на современных процессорах
 считаются в регистрах, очень быстро, а копировать нужно из памяти
 в память. И здесь очень трудно что-то наоптимизировать. Более того,
 малтикаст здесь вроде как выигрывает из-за возможности оптимизаций
 вроде zerocopy, со счётчиками ссылок, таймерами и т.п. Где возможно
 и не было лень -- оно уже сделано в сетевой подсистеме. Так что я
 вполне понимаю Давида Миллера, отклонившего AF_BUS со словами
 "Это лучше делать в юзерспейсе, обычным сетевым инструментарием". 

> Неудачно спроектированное приложение при таком подходе сможет
> замедлять работу системы. В D-Bus это не так.

 Что там так круто в архитектуре dbus, что он выигрывает у обычной сети?

 Нам рассказывают про какие-то странные "достоинства" dbus'а вроде
 надёжной доставки широковещательных сообщений. Мне интересно, как это
 себе представляют авторы: если подписчик не читает свои сообщения,
 что должен делать демон, озабоченный гарантированной доставкой?
 Раздуть свою память, загнать систему в своппинг и тем завалить?
 Или есть другие варианты?
-- 
 Eugene Berdnikov


Reply to: