jedis-3.6.0-rc1
tagged this
31 Mar 02:08
* Split JedisClusterCommand into multiple methods No behavior changes, just a refactoring. Changes: * Replaces recursion with a for loop * Extract redirection handling into its own method * Extract connection-failed handling into its own method Note that `tryWithRandomNode` is gone, it was never `true` so it and its code didn't survive the refactoring. * Drop redundant null check * Bump JDK version to 1.8 Inspired by #1334 where this went real easy :). Would have made #2355 shorter. Free public updates for JDK 7 ended in 2015: <https://en.wikipedia.org/wiki/Java_version_history> For JDK 8, free public support is available from non-Orace vendors until at least 2026 according to the same table. And JDK 8 is what Jedis is being tested on anyway: <https://github.com/redis/jedis/blob/ac0969315655180c09b8139c16bded09c068d498/.circleci/config.yml#L67-L74> * Replace ConnectionGetters with lambdas * Retrigger CI * Add backoff to Redis connections * Add unit tests for backoff logic * Add retries logging * Always use the user requested timeout * Remedy review feedback * Consider connection exceptions and disregard random nodes * consider connection exceptions and disregard random nodes * reset redirection * Revert "Consider connection exceptions and disregard random nodes" This reverts commit 67a062aa231b24f9f6d0b5baa7f555e83b73e961. Lots of tests in JedisClusterCommandTests started failing, need to be fixed before trying again. * Add another backoff test case 1. We try to contact master => JedisConnectionException 2. We try to contact replica => It refers us to master, hasn't failed over yet 3. We try to contact master => JedisConnectionException 4. We try to contact replica => Success, because it has now failed over * consider connection exceptions and disregard random nodes * reset redirection * Fix test failure * Apply suggestions from code review Co-authored-by: Jens Green Olander <[email protected]> * update documentation * Improve a comment * Update src/main/java/redis/clients/jedis/DefaultJedisSocketFactory.java * Add change from another branch Source (all of these point to the same place): * walles/retries-split * 4f80d7398c6210d189f9cf70749baf31c8dc55e9 * https://github.com/redis/jedis/pull/2355 * Move JedisClusterCommandTest out of commands package * Use JedisClusterOperationException * Reduce sleep time, especially when few attempts left * Update src/main/java/redis/clients/jedis/JedisClusterCommand.java * merge fix * merge fix * Use maxAttempts * format import * Re-add missing codes due to merge * avoid NPE while zero max attempts * Remove zero attempts test * More cluster constructors and customizability * Use maxTotalRetriesDuration everywhere * more missing maxTotalRetriesDuration after merge Co-authored-by: M Sazzadul Hoque <[email protected]> Co-authored-by: Jens Green Olander <[email protected]> Co-authored-by: Jens Green Olander <[email protected]>