stephen mallette commented on TINKERPOP-932:

I sense that barring some obscene change to TinkerPop's transactional model, we 
won't get much closer to a solution for this than what was done on 
TINKERPOP-1442. The only additional change left that I think I could do is to 
implement a "force" option on a close request that would just interrupt the 
thread running the session and orphan the transactions leaving it up to the 
graph implementation to sort out what to do with them. In a sense, a "force" 
might be better than awaiting a timeout (e.g. you have a long/infinite timeout 
for an OLAP job). Of course, an "interrupt" is merely a suggestion to stop the 
thread in the session so, that might not even doing anything at the end of the 
day depending on the script. 

If there are no other ideas on this, I will try to implement a "force" option 
in the manner I just described. If for some reason that isn't possible then I 
will just close this barring no new ideas.

> Add ability to cancel script execution associated with a Gremlin Server 
> Session 
> --------------------------------------------------------------------------------
>                 Key: TINKERPOP-932
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-932
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.0.2-incubating
>            Reporter: Zachary Kurey
>            Assignee: stephen mallette
>             Fix For: 3.2.3
> Currently with a {{SessionedClient}} there is no way to cancel a long running 
> script and the client has to depend on Gremlin Server side configured 
> timeouts before they can execute another script associated with the same 
> session id.
> There is a way we can forcefully close a session from the client side, or 
> just close the entire Gremlin client.  But it would be useful for client side 
> applications to be able to cancel script execution, have its intermediate 
> effects rolled back, and be able to continue interacting with the session 
> without losing session variable state maintained on the Gremlin server side.
> Unsure where this should live at an API level, since canceling by session id 
> isn't relevant for all {{Client}} implementations.  If somehow when the 
> {{CompletableFuture<ResultSet>}} returned by {{Client.submitAsync}} could do 
> this when the {{Future}} is canceled, that would be a nice way to bridge 
> implementations.

This message was sent by Atlassian JIRA

Reply via email to