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

feat(pubsublite): Trackers for acks and commit cursor #3137

Merged
merged 4 commits into from Nov 5, 2020

Conversation

@tmdiep
Copy link
Contributor

@tmdiep tmdiep commented Nov 4, 2020

These are similar to their Java counterparts with the following differences:

  • ackConsumer is similar to AckReplyConsumer.
  • ackTracker is equivalent to AckSetTrackerImpl. It maintains a single queue of unacked offsets and outputs the desired commit offset to the ack prefix offset.
  • commitCursorTracker is equivalent to CommitState. It maintains the last commit offset confirmed by the server and a queue of unacknowledged committed offsets.
@tmdiep
Copy link
Contributor Author

@tmdiep tmdiep commented Nov 4, 2020

WANT_LGTM=@manuelmenzella-google
Other reviewers optional, but feel free to leave comments.

These trackers are equivalent to their Java counterparts, but not identical. ackTracker and commitCursorTracker were implemented this way to facilitate batching of commits. Please see the committer prototype. The prototype of the subscriber also demonstrates how the ackConsumers are created and handled.

Loading

pubsublite/internal/wire/acks.go Outdated Show resolved Hide resolved
Loading
pubsublite/internal/wire/acks.go Outdated Show resolved Hide resolved
Loading
pubsublite/internal/wire/acks.go Show resolved Hide resolved
Loading
@tmdiep tmdiep merged commit 26599a0 into googleapis:master Nov 5, 2020
3 checks passed
Loading
@tmdiep tmdiep deleted the acks branch Nov 5, 2020
gcf-merge-on-green bot pushed a commit that referenced this issue Nov 10, 2020
🤖 I have created a release \*beep\* \*boop\* 
---
## [0.3.0](https://www.github.com/googleapis/google-cloud-go/compare/pubsublite/v0.2.0...v0.3.0) (2020-11-10)


### Features

* **pubsublite:** Added Pub/Sub Lite clients and routing headers ([#3105](https://www.github.com/googleapis/google-cloud-go/issues/3105)) ([98668fa](https://www.github.com/googleapis/google-cloud-go/commit/98668fa5457d26ed34debee708614f027020e5bc))
* **pubsublite:** Flow controller and offset tracker for the subscriber ([#3132](https://www.github.com/googleapis/google-cloud-go/issues/3132)) ([5899bdd](https://www.github.com/googleapis/google-cloud-go/commit/5899bdd7d6d5eac96e42e1baa1bd5e905e767a17))
* **pubsublite:** Mock server and utils for unit tests ([#3092](https://www.github.com/googleapis/google-cloud-go/issues/3092)) ([586592e](https://www.github.com/googleapis/google-cloud-go/commit/586592ef5875667e65e19e3662fe532b26293172))
* **pubsublite:** Move internal implementation details to internal/wire subpackage ([#3123](https://www.github.com/googleapis/google-cloud-go/issues/3123)) ([ed3fd1a](https://www.github.com/googleapis/google-cloud-go/commit/ed3fd1aed7dbc9396aecc70622ccfd302bbb4265))
* **pubsublite:** Periodic background task ([#3152](https://www.github.com/googleapis/google-cloud-go/issues/3152)) ([58c12cc](https://www.github.com/googleapis/google-cloud-go/commit/58c12ccba01cfe3b320e2e83d7ca1145f1e310d7))
* **pubsublite:** Test utils for streams ([#3153](https://www.github.com/googleapis/google-cloud-go/issues/3153)) ([5bb2b02](https://www.github.com/googleapis/google-cloud-go/commit/5bb2b0218d355bc558b03f24db1a0786a3489cac))
* **pubsublite:** Trackers for acks and commit cursor ([#3137](https://www.github.com/googleapis/google-cloud-go/issues/3137)) ([26599a0](https://www.github.com/googleapis/google-cloud-go/commit/26599a0995d9b108bbaaceca775457ffc331dcb2))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants