I just finished adding binary resource support, and in the process ended
up writing an 'inline' metadata facility, where the metadata is stored
as a header on the data.  The metadata facility is enabled and
configured on a per-collection basis.

I'm now re-considering metdata, mostly because I don't think I gave the
existing metadata facility a fair chance, and want to get some group
feedback.  There were three reasons why I didn't use Dave Viner's
metadata facility:

1) it doubles the number of disk writes needed when a resource
    is inserted/updated
2) I _think_ the current implementation is not safe for internal use,
    as I believe there is public code for changing arbitrary metadata
    values (please correct me if I'm wrong...)
3) sheer laziness

A while back there was a metadata discussion on this list, and I've read
that discussion.  I didn't detect any consensus about what sort of
metadata should be supported.

It seems clear that collection-level metadata is best off in a 'system
table', which Dave Viner's metadata system models nicely.  Per-document
data is less clear.  Some of it will change with every save/update, some
won't.  The resource type stuff I just did isn't likely to change all
that often and might be a candidate for the non-inline metadata, if it
is safe from user tampering.  On the other hand, I am currently working
on Xindice enhancements that requires per-document metadata likely to
change with each update/save.

I'm interested in hearing arguments pro and con.

Regards,

        Gary

Reply via email to