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

Issue 391: Update Pravega library versions and deployment script #392

Merged
merged 3 commits into from
Sep 26, 2023

Conversation

RaulGracia
Copy link
Contributor

Change log description
Updates Pravega libraries and deployment scripts.

Purpose of the change
Fixes #391.

What the code does

  • Updates Pravega and Bookkeeper versions at the server side when deploying, as well as the Pravega client library for the benchmark.
  • Updates the AMI used and the default types of images.
  • Updates the deployment script to adapt to few changes: i) docker installation, ii) cloudalchemy.node_exporter naming, iii) device names, iv) Bookkeeper initialization command.
  • Updated the README to reflect previous changes.
  • Set scope provided to driver-nats-streaming. The reason for doing that is that driver-nats-streaming is transitively importing a very old version of Google Protobuf (3.9.1 - Aug 06, 2019). Pravega also uses Google Protobuf. When upgrading Pravega, we found a NoSuchMethodError related to Google Protobuf and the reason was that the newer Pravega version are compiled with a more recent Google Protobuf version with incompatible changes (since version 3.17.2). Having both Google Protobuf versions in the classpath leads to runtime errors, so I decided to prevent the oldest Google Protobuf version to be transitively imported by driver-nats-streaming. Given that NATS Streaming has been deprecated, I feel that it is a safe action to do (which can precede the removal of NATS Streaming until NATS JetStream is available).

How to verify it

  • Build is passing.
  • I can run the benchmark locally against Pravega standalone.
  • I have deployed Pravega on AWS and executed the benchmark successfully.

@RaulGracia
Copy link
Contributor Author

@merlimat please, have a look when you have the time. Thanks!

<artifactId>driver-nats-streaming</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
Copy link
Contributor

Choose a reason for hiding this comment

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

Was this change intended?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @merlimat, yes this change is intended. I tried to explain the justification in the PR description:
Set scope provided to driver-nats-streaming. The reason for doing that is that driver-nats-streaming is transitively importing a very old version of Google Protobuf (3.9.1 - Aug 06, 2019). Pravega also uses Google Protobuf. When upgrading Pravega, we found a NoSuchMethodError related to Google Protobuf and the reason was that the newer Pravega version are compiled with a more recent Google Protobuf version with incompatible changes (since version 3.17.2). Having both Google Protobuf versions in the classpath leads to runtime errors, so I decided to prevent the oldest Google Protobuf version to be transitively imported by driver-nats-streaming. Given that NATS Streaming has been deprecated, I feel that it is a safe action to do (which can precede the removal of NATS Streaming until NATS JetStream is available).

@merlimat merlimat merged commit 0a68a61 into openmessaging:master Sep 26, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Pravega library versions and deployment script
2 participants