[Xapian-discuss] Node.js binding
Liam
xapian at networkimprov.net
Thu Oct 20 06:31:23 BST 2011
On Wed, Oct 19, 2011 at 7:08 PM, Olly Betts <olly at survex.com> wrote:
> On Wed, Oct 19, 2011 at 10:09:41AM -0700, Liam wrote:
> > I've started an initial pass on this binding, to implement just the
> above.
> > However I need some guidance on which methods do I/O and therefore block.
>
> Pretty much anything which uses data from the database potentially can,
> especially if the remote backend is involved. It's probably easier to
> say what won't (like Xapian::Stem, at least until someone adds a stemmer
> which uses a disk-based dictionary...)
>
> I guess long computations matter too (though I'm not sure what there is
> in Xapian that can do long computations which doesn't also potentially
> do I/O).
>
> If we had a macro to mark "fast" methods in the headers, we could use a
> script to pull out a list. That would also be of use in the Python
> bindings as we wouldn't need to worry about releasing the GIL while
> calling such methods.
>
> Cheers,
> Olly
>
Do any of these potentially hit the disk? I'd guessed that none of them
did...
Enquire::Enquire(database)
Query::Query(...);
Enquire::set_query(query);
MSet::size()
MSetIterator:: operator *(), get_percent(), get_document()
Document::Document
I assumed these do:
Database::Database(file)
Enquire::get_mset()
Document::get_data()
More information about the Xapian-discuss
mailing list