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 tmdiep requested a review from a team as a code owner November 4, 2020 00:36
@product-auto-label product-auto-label bot added the api: pubsublite Issues related to the Pub/Sub Lite API. label Nov 4, 2020
@google-cla google-cla bot added the cla: yes This human has signed the Contributor License Agreement. label Nov 4, 2020
@tmdiep
Copy link
Contributor Author

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.

pubsublite/internal/wire/acks.go Outdated Show resolved Hide resolved
pubsublite/internal/wire/acks.go Outdated Show resolved Hide resolved
pubsublite/internal/wire/acks.go Show resolved Hide resolved
@tmdiep tmdiep merged commit 26599a0 into googleapis:master Nov 5, 2020
@tmdiep tmdiep deleted the acks branch November 5, 2020 03:36
gcf-merge-on-green bot pushed a commit that referenced this pull request 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
Labels
api: pubsublite Issues related to the Pub/Sub Lite API. cla: yes This human has signed the Contributor License Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants