managedfusion/fluentcassandra — pull request #89 by eplowe (2012-11-21 03:53:36+00:00)
Title: Blacklist Refactoring

Some bug fixes and small tweaks to the blacklisting enhancements.

**Bug Fixes**
*When removing a server from the blacklist it was not being sent back to the serverqueue
*Added some additional exception types to handle in Operation::TryExecute()
*Added an additional input parameter on Operation::ExceptionOccuredRetryExecution called: bool markClientAsUnhealthy so that we can selectively blacklist a server when retrying.
*In Operation::TryExecute() after Execute() is called must mark HasError = false and Error = null. If not and there is an exception thrown on the first pass but the next pass results in a valid execution the exception was still being thrown.

**Additions**
*Added ServerRecoveryInterval to ConnectionString/Builder.
*Turned the recovery timer into a "one shot" timer and calling the Timer::Change() method at the end of the callback to avoid potential overlap. We could consider using Timers.Timer but then we'd need to think about to handle overlap there as well. Potentially with a Monitor.TryEnter? I am open to suggestions.