-
Notifications
You must be signed in to change notification settings - Fork 356
Switch resume position tracking to byte count #611
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
Conversation
I think this deserves more discussion. RSocket cpp implements this. But it wasn’t clear in the spec IIRC that it should be bytes vs frame counts. And RSocket js went with frame counts. The complexity of bytes vs frame counts doesn’t seem like a win. It’s a terrible checksum and frame counting seems like a better way forward Sent with GitHawk |
@yschimke positions are little simpler to implement. There are multiple PRs hanging on spec with opposite propositions. I think if the goal is having all 3 implementations aligned, It is easier to update java & js compared to c++ |
No objection from me if all converge. And spec is clear on bytes vs frames. Sent with GitHawk |
@yschimke can you fix your pull request that makes bytes explicit and then we can update the rsocket spec. |
@robertroeser done, but it's still a bit awkward. So critical extension frames still skip counting which doesn't seem great for a client and server staying in sync in reality. There are still holes here... |
I don't think next iteration of this part of the spec should come from me, but I predict you will need one :) |
@yschimke I merged it - we could extent the extension frames. We could add a flag to the extension frames that indicates that it is resumable so it can optionally be resumed |
d866d8f
to
7212b3b
Compare
This reverts commit f55cf8f
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
…x with simple onRemoteImpliedPosition(long) callback Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
RSocketFactory KeepAliveConnection: dispose KeepAliveHandler in onClose() Signed-off-by: Maksym Ostroverkhov <[email protected]>
Signed-off-by: Maksym Ostroverkhov <[email protected]>
… position from keepalives replace state enum with constants remove unnecessary allocation make cleanup of store on keep-alive optional formatter Signed-off-by: Maksym Ostroverkhov <[email protected]>
80ca353
to
4ace294
Compare
Signed-off-by: Maksym Ostroverkhov <[email protected]>
eb875db
to
394d7ba
Compare
optimize ResumableDuplexConnection Signed-off-by: Maksym Ostroverkhov <[email protected]>
Also some simplification & performance improvements