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

ASF GitHub Bot commented on TINKERPOP-1490:
-------------------------------------------

Github user aboudreault commented on the issue:

    https://github.com/apache/tinkerpop/pull/478
  
    @davebshow @aholmberg (PYTHON) I must agree that my initial thought is that 
we should try to avoid the coupling with tornado. However, since tornado is 
already used internally, it might get better performance since it is optimzed 
and non thread-safe for the loop. 
    
    If I understand correctly, a custom RemoteConnection will need to return 
its own future type. Isn't a bit confusing for the user that he will get 
different future types? I was seeing the RemoteConnection as the transport 
layer and that it was transparently pluggable. With this change, we see that it 
has an impact on the API of the query response. IMO, for that reason, we might 
want to consider a specialized handling of the future returned by the traversal 
query.


> Provider a Future based Traversal.async(Function<Traversal,V>) terminal step
> ----------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1490
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1490
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: language-variant, process
>    Affects Versions: 3.2.2
>            Reporter: Marko A. Rodriguez
>
> [~mbroecheler] had the idea of adding a {{Traversal.async()}} method. This is 
> important for not only avoiding thread locking on a query in Gremlin, but 
> also, it will allow single threaded language variants like Gremlin-JavaScript 
> to use callbacks for processing query results.
> {code}
> Future<List<String>> result = 
> g.V().out().values("name").async(Traversal::toList)
> {code}
> {code}
> Future<List<String>> result = g.V().out().name.async{it.toList()}
> {code}
> {code}
> g.V().out().values('name').async((err,names) => {
>   // I don't know JavaScript, but ...
>   return list(names);
> }) 
> {code}
> ...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to