Skip to content

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]>
Assets 2
Loading