DatabaseModifiedError while iterating on mset

Eric Wong e at 80x24.org
Wed Aug 23 14:53:27 BST 2023


I'm already retrying the ->get_mset operations; but now I'm
wondering where I'd hit DatabaseModifiedErrors while inside a
Xapian::MSetIterator loop.

I assume ->get_document is a place where it gets thrown;
but once a document is retrieved, can iterating through
terms in one document (using TermIterator) also throw DB modified?

I'm dumping multiple terms per-document to a stream.
While retrying ->get_document seems straightforward, retrying
midway through a documents terms would require me to introduce
extra checks/buffering to avoid duplicate terms on reopen+retry.

I'm actually redoing some stuff using C++; Perl's method dispatch
gets awfully slow for this.

Thanks.



More information about the Xapian-discuss mailing list