I’m using couchbase buckets on my server for filestoring. The service which will be accessing these files runs threadded, so the LOCKMODE_WAIT looks perfect for the job. The problem is, that i cannot find couchbase_core.LOCKMODE_WAIT. My install of the SDK is couchbase-3.0.0, and the docs say that it should be under couchbase_core (at least the docs i found).
Apologies, it 's still currently accessible via couchbase_core._libcouchbase.LOCKMODE_WAIT etc, This is something that got missed in the upgrade to SDK3 and we will need to look at how to best support this. We will look at porting this to SDK3 but in the meantime I can suggest a couple of alternatives.
Going by the benchmarks we have run in the past, this would most likely be significantly slower than using one of our async APIs (currently Twisted and asyncio) to do the same work, as each operation requires the locking of the GIL, which will become highly contended in a multithreaded situation. This is therefore the approach we would advocate in general.
If indeed you do need to run threaded, however, you could try catching exceptions thrown in the default LOCKMODE_EXC state due to GIL contention, and rerunning the associated operations.
If neither approach is satisfactory for you, please let us know.