forked from redis/lettuce
-
Notifications
You must be signed in to change notification settings - Fork 0
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
[pull] master from lettuce-io:master #1
Open
pull
wants to merge
808
commits into
Mattlk13:master
Choose a base branch
from
redis:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lettuce now considers declared parameters when bound by using annotations. Previously, DefaultCommandMethodVerifier counted method arguments and bind markers as individual parameters which doubled the number of command args so command validation failed.
Lettuce now makes sure to properly release temporary buffers after encoding keys and values. This avoids memory leaks caused by encoding errors.
…ASTER #923 Lettuce now reuses master connections when ReadFrom is configured to MASTER (which is the default configuration). By reusing the master connection, we can reduce the number of used connections by up to 50% as we don't need an additional read connection while talking to the same node.
Lettuce now emits ReconnectFailedEvent if a reconnect attempt fails along the cause and the retry counter. This event allows detection of persistent reconnect failures.
Emission of data and completion signals using the reactive API can now use Lettuce's EventExecutorGroup instead of the I/O thread. Scheduler usage allows multiplexing of threads and early I/O thread release. Using a single Redis connection in a reactive context can cause effectively single-threaded behavior as processing of downstream operators happens typically on the I/O thread. Compute-intensive processing consumes I/O thread capacity and results in performance decrease.
PubSubCommandHandler now considers correctly chunked Pub/Sub messages if a previous chunk was used to decode an out of band response (message/pmessage) while a command was sent. Previously, decoding got stuck because the command was attempted to be decoded with the next chunk.
Lettuce now listens to events raised from routing requests to uncovered slots. Command dispatch for read/write commands that terminates with PartitionSelectorException (Cannot determine a partition …) is now the trigger for uncovered slot events. Uncovered slots can be a late indicator for a topology change in which a number of command fails before the topology is updated to recover operations.
Topology refresh scheduling by an adaptive trigger now emits a AdaptiveRefreshTriggeredEvent that allows applications to get notified about an adaptive refresh so application can track the state of the topology view and potentially register another topology update.
Original pull request: #867.
ReadFrom can now express whether it is order-sensitive or non-sensitive. This allows the using code to apply optimizations such as caching for order-sensitive implementation or randomization for non-sensitive implementations. ReadFrom.ANY is an implementation that allows reads from any node without considering the actual node ordering.
XINFO, XLEN, XPENDING, XRANGE, XREVRANGE, and XREAD can now be issued to replicas.
Because it contains a stupid compiler bug that was fixed only in later versions.
We now eagerly attempt to obtain a PauseDetector instance to avoid additional locks leading to cyclic locks by using computeIfAbsent(…). DefaultPauseDetectorWrapper.release/retain methods now ensure that these methods cannot be called concurrently and getPauseDetector() uses now a busy-spin instead of Thread.sleep(…).
Exceptions are unwrapped now in a single utility. Future synchronization properly creates exception wrappers to associate the local stack trace with the exception.
Reduce thread count as the number of blocking tasks was reduced in the past releases.
…easier customization #1243 We now allow customization of the ThreadFactory when using DefaultEventLoopGroupProvider.
* Brave 5.10.2 -> 5.11.2 * Log4j 2.13.1 -> 2.13.2 * Netty 4.1.48.Final -> 4.1.49.Final
When ASK redirect is executed, command is executed twice. So it was modified to remove duplicates.
Previously, PauseDetectorWrapper was initialized once and a later loop attempted to retrieve the PauseDetector assuming that the previous code would had initialized the PauseDetector. Due to concurrency it is possible that the PauseDetector instance is being released while another thread wants to obtain the PauseDetector. This gap could lead to infinite loops as the instance is never allocated. The refactored code include now the initialization so concurrent initialization/release are now properly guarded.
xpending with Range and Limit aims for a range format of the XPENDING command output. Previously, calling this method without Limit appended just the consumer name which is not a valid combination for that command. We now apply a synthetic limit of Long.MAX_VALUE to obtain the range format to avoid format changes or syntax errors.
* AssertJ 3.15.0 -> 3.16.1 * CDI API 2.0 -> 2.0.SP1 * JUnit 5.6.1 -> 5.6.2 * Log4j 2.13.2 -> 2.13.3 * Netty 4.1.49.Final -> 4.1.50.Final * RxJava 3.0.2 -> 3.0.4
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot]. Want to support this open source service? Please star it : )