[
https://issues.apache.org/jira/browse/TINKERPOP3-741?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stephen mallette updated TINKERPOP3-741:
----------------------------------------
Description:
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.
was:
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.
> 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
> Affects Versions: 3.0.0-incubating
> 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)