Re: [DSISCUSS] Remote Transactions

2021-03-18 Thread Stephen Mallette
I've created this issue for tracking: https://issues.apache.org/jira/browse/TINKERPOP-2537 and have pushed a branch for early review: https://github.com/apache/tinkerpop/tree/TINKERPOP-2537 The server-side is a bit of a copy/paste mess at the moment, so try not to pay attention there too much a

[jira] [Created] (TINKERPOP-2537) Support bytecode based requests in sessions and remote tx()

2021-03-18 Thread Stephen Mallette (Jira)
Stephen Mallette created TINKERPOP-2537: --- Summary: Support bytecode based requests in sessions and remote tx() Key: TINKERPOP-2537 URL: https://issues.apache.org/jira/browse/TINKERPOP-2537 Proje

Re: [DSISCUSS] Remote Transactions

2021-03-18 Thread Stephen Mallette
First of all, I managed to fumble my last code sample - sorry. You can either use the Transaction object explicitly like this: g = traversal().withRemote(conn) tx = g.tx() // Transaction object gtx = tx.begin() // GraphTraversalSource assert tx.isOpen() == true gtx.addV('person').iterate() gtx.ad

Re: [DISCUSS] Converging the worker pool was: [DISCUSS] Remote Transactions

2021-03-18 Thread Divij Vaidya
> > I suppose the > question is how would we ensure that each request for a session ends up > being executed on the same thread from the previous request if jobs are > randomly submitted to a worker pool? I haven't thought through the details, but on top of my head, we would have to maintain some

[DISCUSS] Converging the worker pool was: [DISCUSS] Remote Transactions

2021-03-18 Thread Stephen Mallette
I started a fresh thread for this topic Divij brought up, with more context: > In a scenario where we have both > session-less and sesion-ful requests being made to the server, the resource > allocation will not be fair and may lead to starvation for some requests. > This problem exists even today

Re: [DSISCUSS] Remote Transactions

2021-03-18 Thread Divij Vaidya
Great idea Stephen. I agree with standardizing the explicit transaction semantics in cases of remote server (implicit aka sessionless is already self explanatory) and unifying the syntax with embedded graph usage. Couple of notes: 1. I would favor the begin() instead of create() as it's closer to

Re: [DSISCUSS] Remote Transactions

2021-03-18 Thread Stephen Mallette
The Transaction object is a bit important with remote cases because it holds the reference to the session. With embedded use cases we generally adhere to ThreadLocal transactions so the Transaction implementation in that case is more of a controller for the current thread but for remote cases the T

[jira] [Commented] (TINKERPOP-2531) Gremlin .NET driver ConnectionPool can remain without connections if server is down for 1-2 minutes

2021-03-18 Thread ASF GitHub Bot (Jira)
[ https://issues.apache.org/jira/browse/TINKERPOP-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17304196#comment-17304196 ] ASF GitHub Bot commented on TINKERPOP-2531: --- radu-iviniciu commented on pul

Re: [DSISCUSS] Remote Transactions

2021-03-18 Thread Stephen Mallette
> We should just communicate clearly that a simple remote traversal already uses a transaction by default, That's a good point because even with this change we still have a situation where a single iterated remote traversal will generally mean a server managed commit/rollback, but in embedded mode

AW: [DSISCUSS] Remote Transactions

2021-03-18 Thread fh
I like the idea of adding transactions for remote traversals as they close a gap in functionality that we currently have for remote traversals. We should just communicate clearly that a simple remote traversal already uses a transaction by default, meaning that the server will roll back any chan