-
Notifications
You must be signed in to change notification settings - Fork 300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New feature for socket timeout and the fix for issue #494 #504
base: master
Are you sure you want to change the base?
Conversation
…meouts. - The trackers are disabled by default.
Have you tested this in a live-fire situation yet? If so, can you give me an example of the problem this addressed? In general, I really like the encapsulation, configuration and test cases though. Good work. |
Hi Nate, Thanks for the quick response. The problem that we try to address here is to provide an less aggressive option to replace the current strategy for dealing with the HectorTransportException in HConnectionManager.operateWithFailover. == Current behavior == == After the fix == Here are some tips for setting up socket timeout related properties. Socket properties of cassandraHostConfigurator: If the calls are sequential for any reason, then you would need socketTimeoutWindow to be bigger than socketTimeoutCounter * cassandraThriftSocketTimeout, or else it would be impossible to mark the host as down. Please keep this in mind when setting up socket related parameters.
== HostTimeoutTracker == == Test == Thanks, |
fix that 'mvn install' issue and we're good. |
After few timeouts, do you reset the state in order to prevent the pool For instance, if we don't reset it, the logic can detect that a node must Does it make sense?
|
Hi Patricio, I understand your concern, but that should not happen. Let's assume we set the max count to 3, and window to 1000ms. So, the queue Let's assume on 01/20/2012 we have three timestamps being stored in the Now, the queue will contains two timestamps from 01/20/2012, and one Hope this answered your question. Please let me know if you still think Thanks, On Wed, Aug 15, 2012 at 11:56 AM, Patricio Echague <[email protected]
|
it does. But I was thinking more like an expiring cache that can hold info If there are no more timeouts within 2 seconds, then the cache will expire thoughts ? On Mon, Aug 20, 2012 at 12:46 PM, shgchg [email protected] wrote:
|
I believe your strategy will definitely work, but it involves more On the other hand, with what I implemented so far. It waste more memory, On Mon, Aug 20, 2012 at 4:30 PM, Patricio Echague
|
that is already resolve in Guava. It's called Cache. if you already have it My main concern was/is memory leak. On Mon, Aug 20, 2012 at 5:52 PM, shgchg [email protected] wrote:
|
The goals of this fix are to
In the current implementation of Hector 1.1, all of the connections of a Cassandra host will be dropped, if there is a single socket time out occurs.