Question: Individual annotations vs One large annotation (conceptual riddle for the interested)
Jeroen van Meeuwen (Kolab Systems)
vanmeeuwen at kolabsys.com
Tue Oct 11 18:51:12 CEST 2011
On 11.10.2011 16:32, Georg C. F. Greve wrote:
> On Tuesday 11 October 2011 16.21:14 Jeroen van Meeuwen wrote:
>> The only reason "large" is being used in the context to refer to one
>> annotation, is a misconception created by Georg putting "large" in
> Considering we're talking about several kb of data per annotation in
> cases, putting them all into one annotation seemed to make "large" a
> reasonable attribute to apply.
You are right only when one annotation would 1) implicitly or
explicitly trump all other annotations, 2) none of the data currently
stored in the "several kb" value is eligible to be stored in
configuration XML instead of annotations.
>> is actually more traffic then
> Yes. For the special case of "retrieve all annotations" there will be
> slightly more traffic with individual annotations. But there is no
> where that special case makes a reasonable default assumption, as
> also pointed out by
> Usually clients want to get/set that one setting, and that setting
With more features then currently under review, which is a rather
feasible scenario for the future, it is very likely clients will want to
obtain multiple features configured on a folder. This I actually
consider part of the scenario for which configuration XML stored in a
folder of type 'configuration' is very sensible; quick, easy and
sustainable addition of features.
The argument for generating slightly more traffic (and maintaining a
significantly larger (more rows) database) similarly applies to one
annotation; at first with only few features to be made available through
a single annotation, the overhead of obtaining a single JSON object from
one annotation with potentially a couple of bytes not part of the
configuration for the feature for which the configuration was sought to
be obtained is minimal.
Again, nobody argued the annotations currently carrying "several kb"
should immediately be consolidated in one single annotation to rule them
all. As I've mentioned before, with configuration stored in annotations
as well as Kolab XML objects the configuration stored in those "several
kb" annotations will most probably need to be dissected and split over
the three canonical locations for said configuration; 1) the
annotation(s) to store specific feature configuration in, whether one
for all features or one per feature, 2) Kolab XML objects, 3)
potentially application specific, not to be shared configuration.
> It even seems questionable that the special case of "retrieve all
> annotations" has any application, as it is unclear why Kontact would
> want to routinely
> retrieve the Horde settings or the ActiveSync configuration.
One can perfectly well imagine the ActiveSync configuration to be
obtained by applications other then Z-Push, as it is implemented more
then once before already.
> Optimizing traffic for a non-existing scenario at the expense of the
> scenario does not seem sensible.
Basing a design decision solely on what is currently under proposition
isn't sensible either. We have to take into account the mechanism we are
laying down as the way to go today for all possible scenarios that the
future may offer.
>> Note that some features, not so many, are perhaps better suitable
>> configuration through Kolab XML objects. Nobody is arguing *all*
>> configuration should go into one folder annotation, nor separate
> The question of "is this stored best in XML or annotations" is fully
> orthogonal to the question of "do we want one 'superannotation' or
> annotation per use case'?" - they have no connection whatsoever.
That is true, but to argue "several kb" of configuration currently
being stored in a very application-specific annotation is, for the
aforementioned reasoning, not an argument validating that one annotation
is necessarily "large".
>> Nobody so far has recognized the fact using one annotation for
>> configuration to be shared across application isn't mutually
>> with, in addition to said one annotation, additional annotations of
>> which perhaps only one application may be compatible.
> So the suggestion becomes we can have one 'container annotation' and
> individual annotations per use case in parallel? What would be the
> of that and by which criteria would we decide what goes where?
The original question evolved around configuration information that is
to be shared across clients, no?
Jeroen van Meeuwen
Senior Engineer, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
t: +44 144 340 9500
m: +44 74 2516 3817
pgp: 9342 BF08
More information about the format