Integrating IM applications - OFI

Marcin Krzyzanowski krzak at hakore.com
Mon Jan 17 16:14:20 EET 2005


Użytkownik Robert Wittams napisał:
>  >
>  >>
>  >> Could you explain in more detail why processing d-bus requests will
>  >> dramatically increasing memory pressure, I don't get it.
>  >>
>  >> You don't have to constanty send broadcasts messages you know it.
>  >>
> 
> 
> Every client needs to remain paged in. This means the minimal working
> set of pages for the event loop & dbus handling bits of every single app
> that wants presence information ( and we want it to be universal,
> remember?) needs to remain in physical ram. If you don't send broadcast
> messages, not every app will know the state, so they'll have to ask
> someone... um, who could they ask? Maybe a daemon.

and daemon will have to ask somebody... um.... maybe the rest of
applications. somehow.

> The other option is for every single app to know what presence info
> every single other app needs. This seems to lead to a huge amount or
> duplication( ie memory pressure), not to mention its incredibly hard to
> debug this with hetrogenous clients.

How about broadcast only at startup, and signals to update data directly
to specified apps ? because this is how it should work.

>  >>>>
>  >>>> I think you're assuming dropping the daemon will improve
>  >>>> system performance. It won't. It will make it worse.
>  >
>  >>
>  >>
>  >> what D-BUS is for then ? If there is additional daemon, specific 
> library
>  >> with API then D-BUS is just unecessary overbloat.
> 
> 
> Why are you so convinced that daemons are always more "heavyweight" and
> bloated than libraries? If you have state that has
> Multiple frequent writers
> Multiple infrequent readers
> 
> Then a daemon ( an autonomous queryable lump of state) is almost always
> going to be more efficient than multiple shared lumps of state, each of
> which must be updated on every write.

no deameon, no d-bus with xml parsing, no glib could be more effecient
way. It's not a point. The point is, why duplicate functionality,
decrasing usability.

It's not a good way for the feature. Every specification would use
daemon to process data

Daemon as a support, optional engine, with special function whatever - 
ok, but not as a integral part of multidesktop environment if is not 
necessary.

> If we want to support pervasive presence info, it seems to fit into this
> model... The only vaguely reasonable library model involves mmap'ing
> shared areas, and nightmarish locking & network transparency issues.
> Lets leave mmap'ing fun to database servers and read only caches for now.
> 
>   This is starting to remind me of the "ASM is always faster than C is
> always faster than C++ is always faster than Lisp( etc) " wars ...
> 
> 
>  >>>> If it's not performance you're concerned about then what is it? 
> Please
>  >>>> elaborate exactly what your problems with an extra process are, 
> because
>  >>>> right now I don't see any obvious reasons behind it, just a vague
>  >>>> feeling that it's unnecessary and heavyweight.
>  >
>  >>
>  >>
>  >> every additional daemon is a problem.
>  >>
>  >> First, you have to know that it have to be launched.
> 
> This is exactly what D-BUS is for : look at all the activation
> infrastructure. When a service is requested it is activated. Go and read
> the D-BUS lists, it is not worth repeating a whole scad of
> misunderstanding here.

activation services is not what D-BUS is created for, it's designed to
be a message bus, not activation bus. You don't need D-BUS to activate
services, but if using D-BUS then use it not only to activate.

"D-BUS is a message bus system, a simple way for applications to talk to
one another."

(...)
> 
>  >> Seventh, with daemon you'll process every request, without you don;t
>  >> have to (you can only process you were requested)
> 
> This is incoherent. I'll just mention that the daemon only has to
> process requests that it knows will be useful for its clients. It can
> throw away or not even listen for other ones : eg look at fam or
> gam_server.

and check why people ask that gnome menu do not update automagically...
because there is no fam running, or do not work for some reason. 
Nevemind. I know it's configuration/installation problem but problem 
exists and I don't care about more such problems.

>   D-BUS is for activating and bidirectionally communicating with shared
> services. D-BUS is not a holy war against all other daemons.

right, but it's to be a interdesktop communication bridge, if not, why
we don't use DCOP, KDE use it and it work fair good, tested and all that
stuff.


I don't get why is D-BUS there for, everything seems to be done outside 
D-BUS. Simple library with few functions API is enought.

Look at wel... X Protocol based specifications... they don't have won 
daemons but they could, and now you can implement it in a way you want 
and be sure will work, witk gtk, with Xlibs, in any other way because 
every desktop have his own best way to do it.

I don't mind to argue and don't mind to said that somebody did wrong. I 
just want to be sure that nobody will ever could accuse that i've 
promoted such solution.

that's all.


-- 
Marcin Krzyżanowski





More information about the xdg mailing list