> OK, I agree that this check is O(1). However, that's only
> because the granularity of the check is so coarse: a single
> document-level timestamp will cause a lot of unnecessary
> invalidation ...
Agreed. But this isn't so important if there are few active
iterators (= iterators that will ever be resumed), which was my
point.
> I suspect that it would make the performance
> of modifying a document via iterators unacceptably poor.
Here I think the JDK 1.2 java.util.Iterator class is useful: it has
a "remove" method which removes the last element iterated to
in a safe way, or raises an exception if the underlying
container is read-only.
> Moving to per-node timestamps would reduce the amount of
> unnecessary invalidation, and preserve the O(1) check,
> but at the cost of making tree modifications O(log n).
Just so.
-- John Cowan http://www.ccil.org/~cowan cowan@ccil.org You tollerday donsk? N. You tolkatiff scowegian? Nn. You spigotty anglease? Nnn. You phonio saxo? Nnnn. Clear all so! 'Tis a Jute.... (Finnegans Wake 16.5)