-
Notifications
You must be signed in to change notification settings - Fork 1.5k
API Additions/Deprecations: MakePrimaryAsync/ReplicaOfAsync #1969
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
Merged
Merged
Changes from 160 commits
Commits
Show all changes
161 commits
Select commit
Hold shift + click to select a range
7eb4775
Bridge & Connection stats: cleanup
NickCraver b3038df
Bump SDK versions
NickCraver 50def47
Dammit
NickCraver 69d907c
Let's try this...
NickCraver 133c4bd
C# 10 is too hard.
NickCraver 4f4be8b
Fully revert to non-branch
NickCraver 265c028
Backlog; v3 implementation start
NickCraver f692312
Woops, good catch!
NickCraver a207d8b
Merge branch 'craver/stats-cleanup' into craver/backlog-v3
NickCraver 4b5a410
Fix reader/writer states on catastrophic stat failure.
NickCraver 0084522
Merge branch 'craver/stats-cleanup' into craver/backlog-v3
NickCraver 75545f0
Fix tests (token disposal oops) and tweak for speed
NickCraver 6c8edf6
Revert ServerEndPoint (bad commit split)
NickCraver c86c7d2
Merge remote-tracking branch 'origin/main' into craver/backlog-v3
NickCraver 076bc00
Backlog add hook points past .IsConnected and initial tests
NickCraver 3353ce2
Merge branch 'main' into craver/backlog-v3
NickCraver 9f86830
Remove server-specific for now
NickCraver f7b0975
Cleanup
NickCraver eb9c0c3
Update ServerEndPoint.cs
NickCraver 7e17689
ServerEndPoint: clear flags much faster
NickCraver dc32e0d
Tweak so sync messages get ejected from the queue
NickCraver 6f26239
Add prerelease label
NickCraver 2d15806
Typo fix
NickCraver bed33f8
ProcessBacklogs comment
NickCraver 1a343c6
Name/comment fixes
NickCraver b7c3dff
Fix TieBreaker queue - this was going into a never-started backlog
NickCraver dc3f9b3
Yeah....that'd be bad
NickCraver fc8a100
Tiebreakers: move into the handshake
NickCraver 77005e7
Merge branch 'craver/handshake-tiebreaker' into craver/backlog-v2.5
NickCraver 7b98bc2
Remove handshake changes
NickCraver 5931685
Rename isHandshake to bypassBacklog
NickCraver e830cb0
Add release notes
NickCraver ed60b39
Merge branch 'main' into craver/handshake-tiebreaker
NickCraver a79c89d
PR fixes!
NickCraver fa5200c
Tiebreaker: add tests
NickCraver fb6a135
Add incorrect tiebreaker type test
NickCraver 3bd116b
Merge branch 'craver/handshake-tiebreaker' into craver/backlog-v2.5
NickCraver 0ca6c47
Merge branch 'main' into craver/handshake-tiebreaker
NickCraver ff59515
Merge branch 'main' into craver/backlog-v2.5
NickCraver 7fccba9
Fix ServerTakesPrecendenceOverSnapshot behavior
NickCraver 0ed0c4c
Merge branch 'craver/handshake-tiebreaker' into craver/backlog-v2.5
NickCraver 410bf80
Pull in the Area Fix
NickCraver b364d47
Fix naming and remove unused asyncState
NickCraver b280c87
Issue922_ReconnectRaised: Add logging
NickCraver 7b42366
Backlog: handle timeouts better
NickCraver 784d78a
Revert subscribe -> internal
NickCraver 582e5f1
Issue922: Fix assumptions
NickCraver b8d2636
Increase PubSubGetAllCorrectOrder_OnMessage_Async gap
NickCraver 91339f1
PubSub tests: make it more specific and resilient
NickCraver 3018442
Add more data to this bugger...
NickCraver ade853b
Subscriber: simplify
NickCraver 1f946d4
add new client flags
mgravell 272f1a3
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver a4425ec
Changes for #1912
NickCraver b0fb2a1
Revert 1 mismatch
NickCraver b567956
Merge branch 'craver/backlog-prep' into craver/backlog-v2.5
NickCraver 65d6268
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver 990f5e8
WIP: Pub/Sub portion of #1912
NickCraver 38132a3
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver d552097
Lots of things - need to writeup in PR
NickCraver fac5a1b
Fix KeepAlive on PhysicalBridge
NickCraver 1cb00ff
Fix default version tests
NickCraver a2d0943
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver 7fdb45a
Fix up Isue922 test now that we ping the right things
NickCraver 85c5a4d
Migrate PubSub tests off sync threads
NickCraver 98701c9
Fix shared connections with simulated failures (cross-test noise)
NickCraver 377c813
Compensate for delay removal
NickCraver d9c68e1
Add logging to pubsub methods
NickCraver 3f6e030
Add logging to PubSubGetAllCorrectOrder
NickCraver b63648a
Tidy exception messages
NickCraver 25a7058
Fix stupid
NickCraver a38fac2
Remove unneeded retry change
NickCraver 148c975
Eliminate writer here
NickCraver bf9fa07
Writer: switch back to SemaphoreSlim
NickCraver e4e6d73
Ignore message ordering on the hot paths
NickCraver 62c6b7d
Change up Issue 922 for better reporting and accuracy
NickCraver 5141cc8
Merge + code cleanup
NickCraver 532c01f
Move to Task.Run() for .NET 6, cleanup, and backlog queue contention …
NickCraver 78ebf5e
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 78efb6b
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver d496348
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver bc11b96
Fix merge
NickCraver 47f0a12
Format options
NickCraver 60b3c42
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver 8e168d9
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 412f9e8
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver 21d36f0
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 49a917d
Sync tests
NickCraver 8f5bf58
Debug: lots of pruning
NickCraver 3d20350
Merge remote-tracking branch 'origin/craver/backlog-v2.5' into craver…
NickCraver c958320
Fix revert
NickCraver 185c62c
Merge remote-tracking branch 'origin/craver/debug-cleanup' into crave…
NickCraver 2b57b0b
Fix merge
NickCraver 144c22e
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 92cecfc
WIP: This could all be a bad idea
NickCraver 7d7f020
Gap commit
NickCraver f247980
Pub/Sub: default to 3.0, fix PING, fix server selection in cluster, a…
NickCraver 6ecde2a
Include PING routing
NickCraver f91e4c5
Revert testing change
NickCraver bca9de0
Merge remote-tracking branch 'origin/main' into craver/pub-sub-prep
NickCraver 5a6db1c
Merge branch 'craver/pub-sub-prep' into craver/pub-sub-issues
NickCraver daa1b9c
Revert that bandaid test
NickCraver f36b6d9
Merge remote-tracking branch 'origin/craver/pub-sub-prep' into craver…
NickCraver 70e1735
Nope.
NickCraver a814231
Bits
NickCraver 1d4b4ad
Sync work stop commit (moving to laptop!)
NickCraver 5de45a2
Tests: profiler logging made easier
NickCraver 64565dd
Tests: use profiling and add more logging
NickCraver 00f851c
Pub/Sub: Register immediately, but complete async
NickCraver 029c2a3
Pre-clear rather than await
NickCraver 341f532
Fix more things
NickCraver 48127a1
Merge branch 'craver/pub-sub-wip' into craver/pub-sub-issues
NickCraver 5dbf575
Add logging to TestPublishWithSubscribers
NickCraver 237848f
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 95b39b8
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver ab41493
Meeeeeeerge fun
NickCraver 51c927b
Light up more pubsub tests
NickCraver 20d2d28
Several subtle but big changes
NickCraver 814b401
More PubSub logging
NickCraver 667aa34
TestPatternPubSub: give reception a moment
NickCraver cf96bba
Moar!
NickCraver a6be64a
Add logging to Issue1101 pipe
NickCraver 42a9267
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver 31b38dc
PubSubGetAllAnyOrder: don't share conn
NickCraver 79e5090
TextWriterOutputHelper: fix end-of-tests race case
NickCraver aef7832
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver 8ea3b6d
Bump Docker images to 6.2.6
NickCraver d9caedb
Nick, you idiot.
NickCraver 3fa77a4
Fix log message too
NickCraver 04233fe
Sentinel: Fire and Forget on startup
NickCraver ff54012
ExplicitPublishMode: remove delay
NickCraver dc26751
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver 84439d4
Cleanup and comments!
NickCraver 60d9b80
More comments!
NickCraver c6fb569
Annnnnd the other Sentinel one
NickCraver c0206fa
Start PubSubMultiserver
NickCraver b484e5f
Tests, yay!
NickCraver 837a654
Assert up front
NickCraver b0001ab
PubSub tests: log everything
NickCraver 1bc971d
Primary/Replica tests
NickCraver 907cd20
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 9c31958
Fix PubSub tests: can't share that connection yo
NickCraver eed3ba0
Remove the .NET 5.0 from Windows build too...
NickCraver cd29add
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver 2fe8d13
Sentinel: account for multi-suite failover states
NickCraver 6f9ae70
Merge branch 'craver/pub-sub-issues' into craver/backlog-v2.5
NickCraver d234235
ExecuteWithUnsubscribeViaSubscriber: don't share conn
NickCraver 33f52af
Re-disable TestMassivePublishWithWithoutFlush_Local
NickCraver 6140700
Merge remote-tracking branch 'origin/main' into craver/pub-sub-issues
NickCraver 5d0ee35
Merge remote-tracking branch 'origin/craver/pub-sub-issues' into crav…
NickCraver f88e8e1
PR feedback!
NickCraver 2185911
Adjust RedisServer.ExecuteSync/Async<T> for "don't care" cases
NickCraver 3f694c5
Nick you dummy
NickCraver 2edf892
PubSubMultiserver: separate channels on publishers
NickCraver 678e379
MakePrimaryAsync/ReplicaOfAsync
NickCraver 221509a
Merge remote-tracking branch 'origin/main' into craver/backlog-v2.5
NickCraver b77d0a3
CI Tweaks (#1970)
NickCraver 04ce70b
Seal backlog
NickCraver 565838b
Merge remote-tracking branch 'origin/craver/backlog-v2.5' into craver…
NickCraver 9661ec4
Merge branch 'main' into craver/primary-async
NickCraver d3afa2f
Merge remote-tracking branch 'origin/main' into craver/primary-async
NickCraver File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
namespace StackExchange.Redis | ||
{ | ||
/// <summary> | ||
/// The backlog policy to use for commands. This policy comes into effect when a connection is unhealthy or unavailable. | ||
/// The policy can choose to backlog commands and wait to try them (within their timeout) against a connection when it comes up, | ||
/// or it could choose to fail fast and throw ASAP. Different apps desire different behaviors with backpressure and how to handle | ||
/// large amounts of load, so this is configurable to optimize the happy path but avoid spiral-of-death queue scenarios for others. | ||
/// </summary> | ||
public sealed class BacklogPolicy | ||
{ | ||
/// <summary> | ||
/// Backlog behavior matching StackExchange.Redis's 2.x line, failing fast and not attempting to queue | ||
/// and retry when a connection is available again. | ||
/// </summary> | ||
public static BacklogPolicy FailFast { get; } = new() | ||
{ | ||
QueueWhileDisconnected = false, | ||
AbortPendingOnConnectionFailure = true, | ||
}; | ||
|
||
/// <summary> | ||
/// Default backlog policy which will allow commands to be issues against an endpoint and queue up. | ||
/// Commands are still subject to their async timeout (which serves as a queue size check). | ||
/// </summary> | ||
public static BacklogPolicy Default { get; } = new() | ||
{ | ||
QueueWhileDisconnected = true, | ||
AbortPendingOnConnectionFailure = false, | ||
}; | ||
|
||
/// <summary> | ||
/// Whether to queue commands while disconnected. | ||
/// True means queue for attempts up until their timeout. | ||
/// False means to fail ASAP and queue nothing. | ||
/// </summary> | ||
public bool QueueWhileDisconnected { get; init; } | ||
|
||
/// <summary> | ||
/// Whether to immediately abandon (with an exception) all pending commands when a connection goes unhealthy. | ||
/// </summary> | ||
public bool AbortPendingOnConnectionFailure { get; init; } | ||
} | ||
} |
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.