https://github.com/voldemort/voldemort
Revision 88fcf8d0ea507a22e90db74b1c23f82382806e7c authored by Arunachalam Thirupathi on 31 May 2015, 08:51:47 UTC, committed by Arunachalam Thirupathi on 12 June 2015, 23:23:22 UTC
1) If a connection timesout or fails during protocol negotiation, they are treated as normal errors instead of catastrophic errors. Connection timeout was a regression from NIO connect fix. Protocol negotiation timeout is a new change to detect the failed servers faster. 2) When a node is marked down, the outstanding queued requests are not failed and let them go through the connection creation cycle. When there is no outstanding requests they can wait infinitely until the next request comes up. 3) UnreachableStoreException is sometimes double wrapped. This causes the catastrophic errors to be not detected accurately. Created an utility method, when you are not sure if the thrown exception could be UnreachableStoreException use this method, which handles this case correctly. 4) In non-blocking connect if the DNS does not resolve the Java throws UnresolvedAddressException instead of UnknownHostException. Probably an issue in java. Also UnresolvedAddressException is not derived from IOException but from IllegalArgumentException which is weird. Fixed the code to handle this. 5) Tuned the remembered exceptions timeout to twice the connection timeout. Previously it was hardcoded to 3 seconds, which was too aggressive when the connection for some use cases where set to more than 5 seconds. Added unit tests to verify all the above cases.
1 parent d65f7db
Tip revision: 88fcf8d0ea507a22e90db74b1c23f82382806e7c authored by Arunachalam Thirupathi on 31 May 2015, 08:51:47 UTC
ConnectionException is not catastrophic
ConnectionException is not catastrophic
Tip revision: 88fcf8d
File | Mode | Size |
---|---|---|
.settings | ||
bin | ||
clients | ||
config | ||
contrib | ||
docs | ||
example | ||
gradle | ||
private-lib | ||
public-lib | ||
src | ||
test | ||
voldemort-contrib | ||
.gitignore | -rw-r--r-- | 242 bytes |
CONTRIBUTORS | -rw-r--r-- | 659 bytes |
LICENSE | -rw-r--r-- | 11.1 KB |
NOTES | -rw-r--r-- | 2.5 KB |
NOTICE | -rw-r--r-- | 8.1 KB |
README.md | -rw-r--r-- | 4.4 KB |
build.gradle | -rw-r--r-- | 19.8 KB |
build.xml | -rw-r--r-- | 1.7 KB |
gradle.properties | -rw-r--r-- | 1.2 KB |
gradlew | -rwxr-xr-x | 5.0 KB |
gradlew.bat | -rw-r--r-- | 2.3 KB |
release_notes.txt | -rw-r--r-- | 43.0 KB |
settings.gradle | -rw-r--r-- | 149 bytes |
tomcat-tasks.properties | -rw-r--r-- | 420 bytes |
web.xml | -rw-r--r-- | 1.1 KB |
Computing file changes ...