I think this makes sense.  Create an issue with your description then
create the PR on tp32 and reference that issue.

Robert Dale

On Tue, Dec 5, 2017 at 8:19 PM, Eugene Chung <[email protected]>
wrote:

> Hello, TinkerPop developers!
>
>
> I’m the user of JanusGraph, as you may know, which is the graph database
> on top of the gremlin server.
> Recently on the investigation of why the gremlin-server uses UUID as its
> request id,
> I saw that the Builder class of 
> org.apache.tinkerpop.gremlin.driver.message.RequestMessage
> class sets its requestId field as UUID.randomUUID() by default.
>
> But I think it should be fixed not to be set by default. The reasons are
> below;
>
> - UUID.randomUUID() uses SecureRandom which grabs the lock at JVM level,
>     which means whole threads calling this API compete against each other.
> - Getting random value from SecureRandom is somewhat CPU-intensive job.
> - If a gremlin client sends requestId by itself, the costs above are
> useless.
>
>
> If you guys think my suggestion is reasonable, I will make this as git
> pull request.
>
>
> Regards,
> Eugene
>
>
>
> p.s. Here’s my diff.
>
> Index: gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/
> driver/message/RequestMessage.java
> IDEA additional info:
> Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
> <+>UTF-8
> ===================================================================
> --- gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/
> driver/message/RequestMessage.java        (revision
> fa0a0ee64331bb1e67248137bd97fe001554ac10)
> +++ gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/
> driver/message/RequestMessage.java        (date 1512465656000)
> @@ -112,7 +112,7 @@
>       */
>      public static final class Builder {
>          public static final String OP_PROCESSOR_NAME = "";
> -        private UUID requestId = UUID.randomUUID();
> +        private UUID requestId;
>          private String op;
>          private String processor = OP_PROCESSOR_NAME;
>          private Map<String, Object> args = new HashMap<>();
> @@ -155,7 +155,7 @@
>           * Create the request message given the settings provided to the
> {@link Builder}.
>           */
>          public RequestMessage create() {
> -            return new RequestMessage(requestId, op, processor, args);
> +            return new RequestMessage(requestId == null ?
> UUID.randomUUID() : requestId, op, processor, args);
>          }
>      }
>
>
>

Reply via email to