stephen mallette created TINKERPOP3-741:
-------------------------------------------

             Summary: More Options For Transaction Retry
                 Key: TINKERPOP3-741
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-741
             Project: TinkerPop 3
          Issue Type: Improvement
          Components: structure
            Reporter: stephen mallette
            Assignee: Marko A. Rodriguez


Submitting a transactional workload for automatic retry currently looks like 
this:

{code}
public <R> Workload<R> submit(final Function<Graph, R> work);
{code>

but that doesn't take into account relatively recent changes that allow 
mutation operations to execute over a {{Traversal}}.  It also doesn't account 
for workload constructed over multiple requests in a session to Gremlin Server 
too well.

Maybe we do something like:

{code}
public <R> Workload<R> submit(final Function<Graph, R>... work);
public <R> Workload<R> submit(final Function<TraversalSource, R>... work);
public <R> Workload<R> submit(final Traversal... work);
{code}

I suppose it might need to return a {{List<R>}} or something like that so that 
each piece of the transaction could maintain its own result.

With respect to Gremlin Server and in-session requests, a driver could automate 
transaction retry by inserting scripts to a list variable on the server side 
until client-side {{commit()}} at which point that list could be {{submit}} for 
retry.





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

Reply via email to