[ 
https://issues.apache.org/jira/browse/PHOENIX-6703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17531300#comment-17531300
 ] 

Istvan Toth commented on PHOENIX-6703:
--------------------------------------

I've run a quick test of the jetty-less phoenix-client-embedded.jar with 
phoenix_sandbox.py, and it started up and passed the smoke test.

The only network service I know that the client exposes are the metrics, which 
are exposed via JMX.

Even on the server side, Phoenix only implements coprocessors, and the actual 
network communication is handled by HBase. Of course, Jetty is provided by 
HBase on the server side classpath.

The clean solution would be finishing the PHOENIX-6053 refactor, which properly 
splits the client and server side phoenix code base, and removes the 
hbase-server dependency from the client side, but until then this is the best 
we can do. (Actually, we could probably remove more packages from the client, 
but this is the one that causes the problems)

If you check my WIP patch for PHOENIX-6053 you can see that it removes the 
hbase-server dependency completely from phoenix-core, which is the only module 
used by the JDBC phoenix-client in that version.
That patch only shuffles code and constants around classes so that the client 
doesn't need to pull constants from the coprocessor implementation classes 
(which pull in hbase-server), but otherwise doesn't change anything.

This shows that the hbase-server dependency on the client side is only 
accidental.

> Exclude Jetty and servlet-api from phoenix-client
> -------------------------------------------------
>
>                 Key: PHOENIX-6703
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6703
>             Project: Phoenix
>          Issue Type: Improvement
>          Components: core
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Major
>
> phoenix-client-embedded includes a Jetty server, and the Jetty API.
> I don't think that there is a legitimate reason to have a web server in a 
> JDBC driver.It adds bloat, and tries to do some stuff at startup which takes 
> time.
> More pressingly, the shaded javax.servlet classes conflict with minicluster, 
> which breaks the tests in phoenix-queryserver.
> Remove Jetty and the Servlet API from the shaded phoenix-client JAR.
> We could also consider excluding these dependencies in phoenix-core.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to