Skip to content
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

NodeId-bound cluster connections #104

Closed
mp911de opened this issue Jul 20, 2015 · 2 comments
Closed

NodeId-bound cluster connections #104

mp911de opened this issue Jul 20, 2015 · 2 comments
Labels
type: feature A new feature
Milestone

Comments

@mp911de
Copy link
Collaborator

mp911de commented Jul 20, 2015

A connection, that is obtained for a particular nodeId, should be stable and survive cluster reconfigurations.

@mp911de mp911de added this to the Lettuce 3.3 milestone Jul 20, 2015
@mp911de mp911de added the type: feature A new feature label Jul 20, 2015
@mp911de mp911de changed the title Slot-bound cluster connections NodeId-bound cluster connections Jul 26, 2015
@mp911de
Copy link
Collaborator Author

mp911de commented Jul 26, 2015

Renamed issue from slot-bound to node-id-bound. My bad for the initial wrong name

@mp911de
Copy link
Collaborator Author

mp911de commented Jul 26, 2015

Motivation: Redis cluster nodes can be identified by three-and-a-half means:

  • NodeId
  • Host and Port
  • Slot
    • The half: Master/slave state for a certain slot

The identification details can be moved/changed at runtime. Most prominent examples are slots and master/slave state. A certain nodeId can be moved as well from one host/port to another one. The previous implementation did not care too much about that fact; all connections were identified by host and port.

While moving a certain nodeId from one host to another is quite unlikely, it still might happen. The connection pool, therefore, distinguishes now between host and port-bound and nodeId-bound connections. Host and port-bound connections stick to the particular host/port. NodeId-bound connections are reconfigured once the cluster topology changes.

Another effect of the change is, the connection management can double the number connections because connections are not shared amongst the identifier classes.

mp911de added a commit that referenced this issue Jul 27, 2015
Motivation: Redis cluster nodes can be identified by three-and-a-half means:

* NodeId
* Host and Port
* Slot
** The half: Master/slave state for a certain slot

The identification details can be moved/changed at runtime. Most prominent examples are slots and master/slave state. A certain nodeId can be moved as well from one host/port to another one. The previous implementation did not care too much about that fact; all connections were identified by host and port.

While moving a certain nodeId from one host to another is quite unlikely, it still might happen. The connection pool, therefore, distinguishes now between host and port-bound and nodeId-bound connections. Host and port-bound connections stick to the particular host/port. NodeId-bound connections are reconfigured once the cluster topology changes.

Another effect of the change is, the connection management can double the number connections because connections are not shared amongst the identifier classes.
mp911de added a commit that referenced this issue Jul 27, 2015
Motivation: Redis cluster nodes can be identified by three-and-a-half means:

* NodeId
* Host and Port
* Slot
** The half: Master/slave state for a certain slot

The identification details can be moved/changed at runtime. Most prominent examples are slots and master/slave state. A certain nodeId can be moved as well from one host/port to another one. The previous implementation did not care too much about that fact; all connections were identified by host and port.

While moving a certain nodeId from one host to another is quite unlikely, it still might happen. The connection pool, therefore, distinguishes now between host and port-bound and nodeId-bound connections. Host and port-bound connections stick to the particular host/port. NodeId-bound connections are reconfigured once the cluster topology changes.

Another effect of the change is, the connection management can double the number connections because connections are not shared amongst the identifier classes.
@mp911de mp911de closed this as completed Jul 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature A new feature
Projects
None yet
Development

No branches or pull requests

1 participant