-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Pubsub ordering keys #5055
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
Closed
Closed
Pubsub ordering keys #5055
Changes from all commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
41adb13
Merge from master. (#4468)
kamalaboulhosn 7793aa3
Merge branch 'pubsub-ordering-keys' of github.com:GoogleCloudPlatform…
sduskis 41430b2
Add SequentialExecutorService that assists Pub/Sub to publish message…
kimkyung-goog 81ea157
Add ordered publishing support to Cloud Pub/Sub (#4474)
kamalaboulhosn fab0188
Pubsub ordering keys subscriber (#4515)
kamalaboulhosn 858d4e9
Change the order of publishing batches when a large message is reques…
kimkyung-goog c2c8b5c
Merge from master; Resolve conflicts (#4943)
kimkyung-goog ad54d69
Merge branch 'master' into pubsub-ordering-keys
sduskis e026c5c
Merge branch 'master' into pubsub-ordering-keys
sduskis cc44d4b
Merge branch 'master' into pubsub-ordering-keys
sduskis e492b04
Update Publisher.java
sduskis 3f9a663
Fixing format
sduskis e88432a
Merge branch 'pubsub-ordering-keys' of github.com:GoogleCloudPlatform…
sduskis 7732506
Refactoring of the Pub/Sub Ordering keys client (#4962)
sduskis b68add0
[WIP] Refactoring SequentialExecutorService (#4969)
sduskis 54420a4
Running the formatter.
sduskis 7f96c1a
Merge remote-tracking branch 'upstream/master' into merge_master
sduskis 6be9e3d
Merged with the formatting changes. (#4978)
sduskis 7487e88
Fixng a bad merge.
sduskis 708d785
Refactoring SequentialExecutorService.java (#4979)
sduskis d556ce4
Cleaning up generics in SequentialExecutorService (#4982)
sduskis 4a26abe
Adding comments to CallbackExecutor.submit (#4981)
sduskis 18aca86
Exposing AutoExecutor and CallbackExecutor directly (#4983)
sduskis b06fd9e
More refactoring to SequentialExecutor (#4984)
sduskis 40e83a1
Merge branch 'master' into pubsub-ordering-keys
sduskis 43f2ff3
Merge branch 'pubsub-ordering-keys' of github.com:googleapis/google-c…
sduskis d661492
SequentialExecutorService.callNextTaskAsync only uses key (#4992)
sduskis dd8a5ce
Merge branch 'master' into pubsub-ordering-keys
sduskis 97ba17c
SequentialExecutorService now uses generics for Runnables.
sduskis 02e06ae
Using a Queue instead of Deque.
sduskis c90b83c
Renaming a variable in Publisher
sduskis 956537c
More refactoring to SequentialExecutorService.
sduskis 75acad9
Running the formatter
sduskis 5480455
Merge branch 'master' into pubsub-ordering-keys
sduskis d98f981
Merge branch 'master' into pubsub-ordering-keys
sduskis 3bdbf77
Merge branch 'master' into pubsub-ordering-keys
sduskis 41b9975
Merge branch 'master' into pubsub-ordering-keys
sduskis 42697e2
Reformatting the publisher
sduskis fd07e9e
Pub/Sub: publishAll defers sending batches.
sduskis 74daec8
Reverting last change to publishAllOutstanding
sduskis dd8db2e
Merge branch 'master' into pubsub-ordering-keys
sduskis 9259fe6
Merge branch 'master' into pubsub-ordering-keys
sduskis 8573e5a
Cleaning up messageBatch entries
sduskis ec2ecc6
Alarms now wait to publish until previous bundle completes
sduskis 0b00228
Using Preconditions in Publisher.
sduskis 142196c
Merge branch 'master' into pubsub-ordering-keys
sduskis 92a7bf4
The Publisher's callback should happen second
sduskis 32f4e23
Merge branch 'master' into pubsub-ordering-keys
sduskis f6fcbed
Fixing a flaky test
sduskis c918164
Adding resume publish. (#5046)
sduskis 6073e7e
Fixing formatting issues
sduskis 5a81613
Adding comments
sduskis e9e754c
Fixing formatting
sduskis 33ebb40
Ordering keys setter is now package private
sduskis cec8e94
Cleanup before merge to main line
sduskis 2400120
Merge branch 'master' into pubsub-ordering-keys
sduskis 52c7c93
Merge branch 'master' into pubsub-ordering-keys
sduskis e463a05
Fixing lint
sduskis c01aa11
Merge branch 'master' into pubsub-ordering-keys
sduskis 3087968
publish() doesn't use an executor.
sduskis da6dd3c
Moving the publish RPC call into the lock
sduskis ede8436
Updating GAX in clients to 1.45.0 for docs.
sduskis ae78886
Merge remote-tracking branch 'upstream/master'
sduskis 99d1396
Merge remote-tracking branch 'upstream/master'
sduskis cf6d528
Merge remote-tracking branch 'upstream/master'
sduskis 3ea3dc9
Merge branch 'master' into pubsub-ordering-keys
sduskis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, your comment is for the non-ordering scenarios. Can you also add the potential performance issue related to locking mechanism here? We grab a lock for the entire batch before the for loop, which means no messages can be added when this function is running. One of the typical solutions might be getting a reader lock for the message batches before the for loop and getting a writer lock for each batch before calling publishOutstandingBatch(batch.popOutstandingBatch()).
I am not sure if this will make it better or even worse. It will probably depends on how many ordering keys are involved. Any ideas?