I'm using FTS3 in a single table configuration:

CREATE VIRTUAL TABLE MessagesFts USING fts3(Message);

I have a writer thread that is writing messages to this table, as well as
several other tables, in batched transactions.

There are reader threads that may execute fts queries against the
MessagesFts table.

I'm finding that when we are doing a long FTS query (such as a MATCH using
prefixes that will match many entries, e.g SELECT from MessagesFts WHERE
Message MATCH 'MyToken*' ), the writer thread is blocked. This is expected,
since we are doing a read.

However, I find other reader threads are also blocked! These include reader
threads that are not accessing the fts table at all, but other unrelated
tables!

Can't seem to find any documentation relating FTS locking behaviour.

Any suggestions?

Thanks.

- Nasron
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to