Compatibility between D-Bus and kdbus

Simon McVittie simon.mcvittie at collabora.co.uk
Thu Oct 23 05:09:53 PDT 2014


On 22/10/14 22:59, Philip Van Hoof wrote:
> This was once put in place to guard ourselves against it:
> 
> https://git.gnome.org/browse/tracker/tree/src/tracker-store/tracker-resources.vala#n50

Looks
> 
as though you're currently limiting yourselves to 10 base-10
megabytes (i.e. MB not MiB) of GVariant, whatever that turns into in
D-Bus serialization[1], plus the message header (which in practice
shouldn't be more than a couple of KiB even if your object paths are
really long).

Is this limitation a problem for you "in real life" (i.e. do you ever
accidentally exceed it)?

Would it be a problem if the limit was (slightly under) 2 MiB instead,
as it is for broadcasts on kdbus?

Are you able to split messages arbitrarily, or do you need to coalesce
some minimum number of events to happen atomically?

Your message seems to be of signature a(iiii)a(iiii), so, two arrays
of 16-byte structs. I think that means you can have up to 131072
insertions or deletions packed into a 2 MiB message, minus a few to
allow for the array lengths and the header; 100K insertions or
deletions would certainly be OK, and seems like "enough for anyone" :-)

    S

[1] D-Bus and GVariant have slightly different overheads, but should
be the same order of magnitude


More information about the dbus mailing list