Support for Presto 0.145 (work in progress) #179
Conversation
I don't feel particularly sure about these changes as its unclear how/where the output from Hive's "SHOW COLUMNS" can map to this cleanly
Still Broken -- airlift relies on Jetty 9.3.9, but 0.90 dropwizard uses 9.2. Dropwizard 1.0.x uses Jetty 9.3 series which may work
Required to support Jetty 9.3 series used by presto/airlift Still broken: Column data type mapping
@@ -25,7 +25,8 @@ dataSourceFactory: | |||
driverClass: com.mysql.jdbc.Driver | |||
user: MYSQL_USER | |||
password: MYSQl_PASSWORD | |||
url: jdbc:mysql://127.0.0.1:3306/MYSQL_DB_NAME | |||
# localhost or 127.0.0.1 don't work for some reason |
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.
This snuck in. Feel free to toss the change to this file.
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.
Could you simply revert this file?
Thanks @gwittel for having a crack at this. @bkyryliuk and I will try to review/test your change in the next few days. Do you mind updating the
to
as well as the compatibility-chart (https://github.com/airbnb/airpal#compatibility-chart). I'm not sure whether we should bump the version or merely state this only works with the 0.145 version of Presto. |
Updated. Did not rewrite history since the PR already existed. I figure this can be all squash merged once work in progress is all set/tested/etc. |
@gwittel whilst testing your change the query status bar isn't present and one needs to refresh the page in order to see 'My recent queries' update once the query has finished. Do you think this could be related to having deprecated Note for reference we're building using Presto version 0.145 though we're connecting to an older version of Presto. We're hoping to have our test cluster upgraded to 0.145 sometime next week. |
It seems odd that it would cause GUI breakage (unless the request is failing repeatedly and that's the net effect on the GUI). All I can think of is either the underlying HTTP request fails for some odd reason; or the changes upgrading across a few major versions of dropwizard broke the UI in another way. The |
Any movement on this? We'd really love to use Airpal against a newish presto -- anything we can do to help? |
Last week I re-added the Has anyone else tried testing @gwittel PR to see if they run into the same UI issue? |
any updates on merging this? We too would love to use Airpal with a newer version of presto. |
@eschuchmann we did some hacking internally to see if we could get this branch to work and were unable to, so there is more work to be done sadly. @drdee and @udnay could tell you more about what needs to be done. |
We finally upgraded our Presto test cluster to 0.145 last week though @bkyryliuk and myself have had no luck to date resolving the UI issue even after restoring @airhorns were you hitting the same issues as us, i.e. the UI wouldn't update with an additional row in the 'My recent queries' table when the query was running? |
@johnbodley IIRC, if you refresh (F5) the webpage then that row will show up in the |
@drdee with the current PR if one refreshes the page the |
Yes, definitely sub-optimal behavior. |
Sorry I haven't had time to look at this further on my side. Wild guess -- is it possible something is broken with the SSE servlet functionality? We've gone through a large Jersey upgrade via Dropwizard/Airlift. It would be interesting to trace the UI interaction and see if the SSE requests are working on both ends. |
hope this could be fixed soon! |
Is AirPal still under active development? We had been using it for some time, however it's been incompatible with recent versions of Presto so we can not use it. Just curious if there's a plan to keep this project going or not. |
Hi @natesammons-nasdaq, we are aware of the incompatability of Airpal with recent versions of Presto but we haven't found a solution around it yet. We will evaluate maintenance-related bugs with Airpal but we are not working on new feature development at this time. |
Hey @gwittel! I'm on the Data Tools team at Airbnb. You were right! I investigated into your issue and I found your problem is related to how dropwizard's gzip interacts with SSE. Unfortunately, the clients are unable to read from the eventstream because gzip is holding them in its buffer. These webpages are informative: https://java.net/jira/browse/JERSEY-3000 For some reason, even when I try setting the buffer size to 0KiB as outlined here: http://www.dropwizard.io/0.7.1/docs/manual/configuration.html#man-configuration-gzip The events still get lost in gzip-land. I looked into the red part of your diff and noticed this line, https://github.com/airbnb/airpal/pull/179/files#diff-1caa7ace00f5827f33c3aced0bb3717cL119 Which indicates that the previous version dropped gzip for similar reasons. If you update your reference.yml to like so
then gzip will no longer intercept the event stream, and updates will flow as normal. I noticed that specifically when I use presto-0.145, the progress bar is not filled in. I'm looking into that issue, but for now if you add those two lines to your reference.yml the main bug you were discussing will be fixed. |
Great news from @GabeLoins |
@GabeLoins Great job tracking that down. The old gzip code removed was for the HTTP client interacting with Presto APIs and not the HTTP server. However, end result is the same with the config :) I will push the gzip-enabled=false for now. However, should (can?) we hard disable this in code to prevent accidental breakage? |
…fered. Upon later dropwizard upgrade we should consider a more fine tuned approach using 'syncFlush=true' fix from dropwizard/dropwizard#1673.
I believe it's possible. Looking at LeDominik's solution in the dropwizard issue, dropwizard/dropwizard#1673, he seems to have found a solution. I'm not familiar enough with jetty to get it working, do you think you could @gwittel? Also, not sure if this solution is going to be any more reliable, it seems pretty sketchy. |
@gwittel is this ready to merge? Or are there updates you would still like to make? |
I think it depends how we feel about the known issues: Open issues as I see them:
Thoughts? |
|
Done. Seems to work but would be good to confirm if you have a real vs dev environment to test against. |
ok. tested out and looks good to me! I'll get someone with admin privs to merge this in. |
Opening this PR per request in Issue #145 (comment). Unfortunately I don't have time to work further on this, so hopefully someone can take this and run with it.
Please note that all caveats mentioned in that thread still apply (see my comment here #145 (comment)). This PR represents a work in progress. It compiles, and launches. However, I was unable to test functionality end to end. I'm not confident that things all work.
Two main risk points I'm less confident with my changes: