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]
