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

Hypothetical: Support an extra connection per node, dedicated to stream requests #181

Open
gavin-norman-sociomantic opened this issue Nov 21, 2017 · 3 comments

Comments

@gavin-norman-sociomantic

The current approach of having stream requests sharing the same connection with all other requests has a limitation: it is not possible to use the trick that we used in the legacy client of suspending a stream by simply stopping reading from the socket.

Due to this limitation, we've had to mutate the stream requests into batch requests, where the processing of a batch in the client can be instantly suspended and there's the guarantee that no more batches will be received until processing of the current one has finished.

The batch approach, in turn, comes with its own limitations, though, the primary being that the bandwidth of the request is greatly reduced. (The node can only send in bursts, waiting for a "keep going" message from the client between them.)

An extra connection per node, dedicated to stream requests, might give us the best of both worlds.

@gavin-norman-sociomantic
Copy link
Author

The extra connection would still be a proper, neo, full-duplex connection, so we'd still be able to cleanly stop requests by sending a "stop" message to the node.

@gavin-norman-sociomantic
Copy link
Author

Tentatively put in v4.7.0. This would be a big help with the performance issues reported with neo DMQ Consume, and would at least be good to investigate a little bit more.

@gavin-norman-sociomantic
Copy link
Author

gavin-norman-sociomantic commented Feb 22, 2018

Further investigation points to the Consume problems actually being a bug (a missing flush), rather than something fundamental. Moved back into Ideas/Future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant