You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2015/05/26 18:20:18 UTC
[jira] [Updated] (TINKERPOP3-704) Better Encapsulate Gremlin Server
Requests Around Transactions
[ https://issues.apache.org/jira/browse/TINKERPOP3-704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stephen mallette updated TINKERPOP3-704:
----------------------------------------
Fix Version/s: 3.0.0.GA
As it stands, the user needs to be responsible for self-iterating traversals that mutate the graph so that the script is properly executed within the same transaction. For example, one would expect to send:
{code}
x=g.addV().next();g.V(4216).addOutE("knows",x)
{code}
and have the newly created "out edge" returned. However, what happens there in sessionless requests is that the script evaluates to an {{Iterator}} which is iterated to results in a possibly different thread. If it happens as such, weirdness ensues as the thread-local nature of a transaction gets leaked. Technically, the script should have been submitted as:
{code}
x=g.addV().next();g.V(4216).addOutE("knows",x).next()
{code}
Gremlin Server could change to support iteration in the same thread as the script evaluation, but if that happens then users may still get weirdness (e.g. temporary ids in certain {{Graph}} implementations) in their iterated results as the transaction is not yet committed. Which would mean that in such cases they would have to send their script as:
{code}
x=g.addV().next();e=g.V(4216).addOutE("knows",x).next();graph.tx().commit();e
{code}
or something similar (again - depending on the graph). thinking...................
> Better Encapsulate Gremlin Server Requests Around Transactions
> --------------------------------------------------------------
>
> Key: TINKERPOP3-704
> URL: https://issues.apache.org/jira/browse/TINKERPOP3-704
> Project: TinkerPop 3
> Issue Type: Improvement
> Components: server
> Reporter: stephen mallette
> Assignee: stephen mallette
> Fix For: 3.0.0.GA
>
>
> See:
> https://github.com/thinkaurelius/titan/issues/1095
> for more information.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)