cshannon opened a new pull request, #5018:
URL: https://github.com/apache/accumulo/pull/5018

   This change switches getCompactionJob() rpc call to be an async REST call 
using Jetty and Jersey so that we can use long polling and not block while 
waiting for jobs on the queue. This is meant to demonstrate another alternative 
for async RPC as described in #5000 
   
   Jetty is configured to use Jackson and a custom serializer/deserializer to 
handle Thrift objects being serialized to json.
   
   Authentication has been set up to work with username/password, SSL, and also 
Kerberos. Right now for the prototype the authentication is working but a 
couple shortcuts were taken to get it working with the IT set up so some more 
work needs to be done before it could work outside ITs if we wanted to use it.
   
   Some notes about the prototype:
   
   1. There are ITs that demonstrate 
[SSL](https://github.com/cshannon/accumulo/blob/8bcc1a89029d8f8d0bb2fa0b370ee42f83876b30/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionSslIT.java)
 and 
[Kerberos](https://github.com/cshannon/accumulo/blob/8bcc1a89029d8f8d0bb2fa0b370ee42f83876b30/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionKerberosIT.java)
 working besides username and password. The Kerberos setup was based on 
[this](https://github.com/jetty/jetty.project/blob/jetty-11.0.24/jetty-client/src/test/java/org/eclipse/jetty/client/util/SPNEGOAuthenticationTest.java)
 unit test that is part of Jetty.
   2. For the HTTP client I decided to use the Jetty 
[client](https://jetty.org/docs/jetty/11/programming-guide/client/http.html) 
because the Kerberos test has an examples for using that. We could always 
switch to something like the Apache Http 5 client if we wanted.
   3. A few shortcuts were taken just to get things working for the proof of 
concept. Things like Http client connection pooling were not implemented and 
some of the authentication peices would need more work to work outside ITS.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to