In a nutshell, an OperationTimeoutException is a generic exception that is returned when the operation cannot be completed during the timespan defined by ClientConfiguration.DefaultOperationLifespan which defaults to 2.5s. There are many, many reasons why an operation would fail, so in general each failure should be handled independently. That being said, the cause of one OperationTimeout if not resolved could cause future OperationTimeouts…this is likely what you are seeing here. As a rule, the SDK should recover however.
In terms of objects disposing, this is generally tied to your application - the Cluster and Bucket’s you open, must be maintained for the entire application lifespan. The ClusterHelper should help you here, but you still need to ensure that they are not going out of scope or are being closed/disposed by your application. Additionally, I suspect that you may have to do some tuning to match your performance expectations.
I am not sure I understand what you mean here, can you elaborate?
If you dispose of the Cluster, most definitely GetBucket will fail!
In order to help, I would need to see your code. If you can create an NCBC and upload an example project, I’ll take a look at it.
Also, feel free to reach out to me on twitter: @jeffrysmorris