Hi, we are using couchbase.client:3:0:10. We have noticed that when calling
bucket.reactive.defaultCollection()
.get(id)
.map [...] //more processing downstream
all operators downstream of  get() are executing on cb-io-kv thread pool, which is a dedicated thread pool for netty event loop. Our processing pipeline after get() is CPU intensive (it deserializes binary avro documents). My question is:
- Should we switch the scheduler using publishOnoperator to avoid CPU intensive work on netty event loop thread pool? Even if, the work wasn’t CPU intensitve, wouldn’t it be a bad practice to allow business logic downstream to execute on a scheduler which was meant for couchbase client?
We have also noticed that one cb-io-kv thread was  being significantly more utilized than  other threads under heavy load (~60k gets per second). The data which we were fetching was evenly distributed across nodes. When we used  publishOn after get(), all threads started being utilized evenly. So the second question would be:
- What could be the reason of the uneven distribution of work between cb-io-kvthreads? Have you heard about this problem before?