Skip to content

Remerge "Using new windowTimeout operator with backpressure support"#30111

Merged
conniey merged 7 commits intoAzure:release/azure-messaging-eventhubs_5.13.0-beta.1from
conniey:eh-win-timeout2
Jul 24, 2022
Merged

Remerge "Using new windowTimeout operator with backpressure support"#30111
conniey merged 7 commits intoAzure:release/azure-messaging-eventhubs_5.13.0-beta.1from
conniey:eh-win-timeout2

Conversation

@conniey
Copy link
Member

@conniey conniey commented Jul 24, 2022

Description

Remerges #29806 into beta release branch.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

@azure-sdk
Copy link
Collaborator

API change check

API changes are not detected in this pull request.

@conniey conniey merged commit b4b982e into Azure:release/azure-messaging-eventhubs_5.13.0-beta.1 Jul 24, 2022
Copy link
Member

@JonathanGiles JonathanGiles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great - love to see this!

return MethodHandles.publicLookup().findVirtual(Flux.class, WINDOW_TIMEOUT_OPERATOR,
MethodType.methodType(Flux.class, int.class, Duration.class, boolean.class));
} catch (IllegalAccessException | NoSuchMethodException err) {
LOGGER.verbose("Failed to retrieve MethodHandle for backpressure aware windowTimeout Reactor operator.", err);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it is worthwhile letting the user who might be reading this log know that it isn't a catastrophic outcome? I.e. by adding something like " - falling back to non-backpressure aware operator instead. It is recommended you consider upgrading your Reactor dependency if possible to at least version X.Y.Z"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll second this, there are a few warning messages like this in azure-core that have been flagged as issues

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// @lmolkova (in case you missed this comment)

conniey added a commit that referenced this pull request Aug 1, 2022
…30111)

* Using new windowTimeout operator with backpressure support

* Using Flux.class directly for windowTimeout lookup, using azure core libs defined to use v4.3.19 reactor-core

* Improving reflection logic and moving it to ReactorShim

* Replace inline reflection with ReactorShim

* Adding ReactorShim test for backpressure aware windowTimeout.

* Changelog update for ReactorShim

* Using ConcurrentLinkedQueue to avoid ConcurrentModificationException while iterating array.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>
conniey added a commit to conniey/azure-sdk-for-java that referenced this pull request Sep 29, 2022
…zure#30111)

* Using new windowTimeout operator with backpressure support

* Using Flux.class directly for windowTimeout lookup, using azure core libs defined to use v4.3.19 reactor-core

* Improving reflection logic and moving it to ReactorShim

* Replace inline reflection with ReactorShim

* Adding ReactorShim test for backpressure aware windowTimeout.

* Changelog update for ReactorShim

* Using ConcurrentLinkedQueue to avoid ConcurrentModificationException while iterating array.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>
conniey added a commit that referenced this pull request Sep 30, 2022
* Remerge "Using new windowTimeout operator with backpressure support" (#30111)

* Using new windowTimeout operator with backpressure support

* Using Flux.class directly for windowTimeout lookup, using azure core libs defined to use v4.3.19 reactor-core

* Improving reflection logic and moving it to ReactorShim

* Replace inline reflection with ReactorShim

* Adding ReactorShim test for backpressure aware windowTimeout.

* Changelog update for ReactorShim

* Using ConcurrentLinkedQueue to avoid ConcurrentModificationException while iterating array.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>

* Merge buffered producer into release/azure-messaging-eventhubs (#30224)

* Adding initial Buffered Producer APIs with documentation. (#29525)

* Adding skeleton classes.

* Adding documentation to buffered producer models.

* Adding minor implementation for Event HubBufferedProducerClientBuilder.

* Adding some documentation to Event Hub Buffered Producer Client Builder.

* Adding suppression for PagedFlux

* Adds hashing algorithm for buffered producer (#30012)

* Adding implementation of PartitionResolver

* Adding tests for PartitionResolver.

* Using unsigned right shift operator.

* Adding concurrent test cases.

* Add CHANGELOG

* Adding internal classes to support buffered producer. (#30078)

* Updating property name to getMaxEventBufferLengthPerPartition

* Adds an aggregator that publishes events based on full batches and time.

* Adding implementation for publishing events for a partition.

* Adding license info.

* Adding inline mock maker for final classes.

* Fixing recursive subscription.

* Do not get additional batches if the current instance is completed.

* Rename to EventHubBufferedPartitionProducer

* Applying retryWhen policy to Aggregator.

* Remove unused EventData field

* Adding documentation to mock helper.

* Hack around the blocking call.

* Adding tests for EventHubBufferedPartitionProducerTest

* Populating PartitionProcessors for each partition id.

* Creating private static class to hold PublishResults from buffered producer.

* Adding tests to ensure upstream requests are respected.

* Add suppression for fallthrough

* Use --no-cone in pipeline sparse checkout script (#29905)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Adding comments for cases meant to fallthrough

* Wrap synchronous lock.

* Adding documentation to EventDataAggregatora

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Connecting EventHubBufferedProducerClient to internal classes. (#30194)

* Adds flush to PartitionProcessor.

* Adds implementation to methods for async client.

* Fixes build breaks.

* Remove idempotent retries for next release.

* Connect asynchronous client.

* Closing producer client after test case.

* Make default retry options package-private.

* Adding integration test for BufferedProducerAsyncClient.

* Adding partition id to EventDataAggregator

* Adding defaults to builder and documentation.

* Remove localizedBy usages.

* Fixing switchMap logic.

* Have PartitionProducer throw an UncheckedInterruptedException when a batch creation occurs while the thread is interrrupted.

* Update PublishResultSubscriber to clear remaining queue items when closed.

* Delay computation of EventDataAggregator to prevent multiple instances being created.

* Adding support for flush().

* Add emitResult constant.

* Complete EventDataAggregator when it is cancelled.

* Implement flush and clean up logging.

* Add implementation for sync-client.

* Making non-implemented methods package-private.

* Add changelog entry.

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Update CHANGELOG.md

* Fix CHANGELOG.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>
Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
@conniey conniey deleted the eh-win-timeout2 branch November 17, 2022 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants