jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Moseley <...@osafoundation.org>
Subject handling indexing failure
Date Tue, 10 Jan 2006 18:23:46 GMT
my caldav server has a custom text filter for icalendar files. when an
icalendar resource is put into the server, its content is parsed and
the icalendar data is indexed but not stored (well, the binary stream
is, but the parsed out components, properties and parameters are not).
subsequent queries for the resource are serviced wholly out of the

when filtering fails for some reason (say icalendar parsing fails),
i'd like the PUT request to fail. in other words, the repository
should communicate to the dav layer that indexing failed. but because
indexing is implemented as an observation event, it doesn't appear
that there is a regular code path that does what i want.

one idea is to throw a specific runtime exception from the text filter
and catch it in the layer that calls node.save(). that layer would
have to explicitly remove the node upon catching the indexing

another idea is to chuck this whole index-but-dont-store strategy,
which was devised in order to save storage space. our capacity goals
are 10,000 users each with one 1,000 event calendar. without directly
storing icalendar data in the repository, we'll need 10M nodes and 10M
properties; adding icalendar components, properties and parameters
might require another 100M or more of each. so you can see why storage
space is at a premium :)

anybody have any other suggestions?

View raw message