Skip to content

Upgrade Pinot Connector to use 0.10.0 libraries#11475

Merged
hashhar merged 1 commit intotrinodb:masterfrom
elonazoulay:pinot9
Apr 26, 2022
Merged

Upgrade Pinot Connector to use 0.10.0 libraries#11475
hashhar merged 1 commit intotrinodb:masterfrom
elonazoulay:pinot9

Conversation

@elonazoulay
Copy link
Copy Markdown
Member

@elonazoulay elonazoulay commented Mar 14, 2022

Description

Is this change a fix, improvement, new feature, refactoring, or other?

Is this a change to the core query engine, a connector, client library, or the SPI interfaces? (be specific)

How would you describe this change to a non-technical end user or system administrator?

Related issues, pull requests, and links

Documentation

( ) No documentation is needed.
( ) Sufficient documentation is included in this PR.
( ) Documentation PR is available with #prnumber.
( ) Documentation issue #issuenumber is filed, and can be handled later.

Release notes

( ) No release notes entries required.
( ) Release notes entries required with the following suggested text:

# Pinot
* Add support for Pinot 0.10. ({issue}`11475`)

@cla-bot cla-bot bot added the cla-signed label Mar 14, 2022
@elonazoulay elonazoulay requested review from ddcprg, ebyhr and findepi March 14, 2022 20:08
@findepi findepi requested review from hashhar and removed request for findepi March 14, 2022 21:07
@elonazoulay elonazoulay force-pushed the pinot9 branch 4 times, most recently from df78150 to 1120354 Compare March 19, 2022 18:27
Copy link
Copy Markdown
Member

@hashhar hashhar left a comment

Choose a reason for hiding this comment

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

Last commit only since others are reviewed in different PRs.

A question about compatibility.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we have something like a smoke test for older version still? Or do we again plan to drop support?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

cc @xiangfu0 - wdyt?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

pinot keeps compatible support for the previous minor version upgrade. So typically 0.10.0 clients should work with 0.9.3 and 0.10.0 pinot. 0.8.0 pinot is not guaranteed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks.

@elonazoulay Can you add two subclasses to AbstractPinotIntegrationSmokeTest - one that tests 0.9 and other that tests 0.10.

That way we can maintain tests and know the range of versions that the connector works with.
A similar idea like we have in some JDBC connectors.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Sure! Will do.

Copy link
Copy Markdown
Member

@hashhar hashhar left a comment

Choose a reason for hiding this comment

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

Looks good, please squash the commits now.

Would be good to have tests for both 0.9 and 0.10 now because it seems we can support both now.

@elonazoulay elonazoulay requested review from hashhar and xiangfu0 April 17, 2022 18:10
@elonazoulay elonazoulay force-pushed the pinot9 branch 2 times, most recently from 059f0cb to b179081 Compare April 18, 2022 09:42
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

<!--
Project's default for air.test.parallel is 'methods'. By design, 'classes' makes TestNG run tests from one class in a single thread.
As a side effect, it prevents TestNG from initializing multiple test instances upfront, which happens with 'methods'.
A potential downside can be long tail single-threaded execution of a single long test class.
TODO (https://github.com/trinodb/trino/issues/11294) remove when we upgrade to surefire with https://issues.apache.org/jira/browse/SUREFIRE-1967
-->
<air.test.parallel>classes</air.test.parallel>

is the canonical fix for now until Surefire is updated.

Copy link
Copy Markdown
Member Author

@elonazoulay elonazoulay Apr 19, 2022

Choose a reason for hiding this comment

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

This worked, thanks! I used instances, classes had the same errors that methods had. Let me know if it's ok to squash the commits.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good to squash. Thanks.

Copy link
Copy Markdown
Member

@hashhar hashhar left a comment

Choose a reason for hiding this comment

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

Looks good % comment.

I'm not sure if we need 2 versions for the "additional" tests like secured vs without auth. A single test class that exercises most things on 2 versions is sufficient. Rest can be tested with just the older version (since things like auth are generally not version sensitive).

@hashhar
Copy link
Copy Markdown
Member

hashhar commented Apr 19, 2022

@ebyhr Do you want to take a look at tests?

@elonazoulay
Copy link
Copy Markdown
Member Author

Updated, lmk when you have a chance.

@elonazoulay elonazoulay requested a review from hashhar April 19, 2022 15:32
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In other connectors the default is the oldest version. I think it makes more sense since generally version updates add things so we should have wider coverage for older versions.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Sounds good, I also renamed TestPinotWithoutAuthenticationIntegrationSmokeTestPreviousVersion to TestPinotWithoutAuthenticationIntegrationSmokeTestLatestVersion.

Copy link
Copy Markdown
Member

@hashhar hashhar left a comment

Choose a reason for hiding this comment

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

LGTM % comment.

Sorry for the delay here.

@hashhar
Copy link
Copy Markdown
Member

hashhar commented Apr 22, 2022

Also, please squash the commits now - seems like a single logical change.

@elonazoulay
Copy link
Copy Markdown
Member Author

Thanks @hashhar, appreciate all the time you spent reviewing this! lmk if the test name change and default version change look good.

Copy link
Copy Markdown
Member

@hashhar hashhar left a comment

Choose a reason for hiding this comment

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

Can you also update pinot.rst to fix the "Requirements" section. It still lists 0.8.0 as the minimum supported version which doesn't work anymore AFAIK? Needs to be bumped to 0.9.3?

@hashhar hashhar changed the title Upgrade Pinot Connector to use 0.9.3 Libraries Upgrade Pinot Connector to use 0.10.0 libraries Apr 25, 2022
@elonazoulay
Copy link
Copy Markdown
Member Author

Updated - pinot-0.8.0 will work also, but there are a few things which didn't work in pinot-0.8.0 that now work (related to column alias issues) - should I put a note that pinot-0.8.0 will mostly work or just leave it as is?

@github-actions github-actions bot added the docs label Apr 25, 2022
@hashhar
Copy link
Copy Markdown
Member

hashhar commented Apr 26, 2022

Let's leave as it is in that case. Since we don't test 0.8.0 it doesn't make sense to make claims about it. It's kinda implied, everything outside the specified range may or may not work.

@hashhar hashhar merged commit f568ce6 into trinodb:master Apr 26, 2022
@github-actions github-actions bot added this to the 379 milestone Apr 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants