[jira] [Commented] (TINKERPOP-2445) Speed up client initialization

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239816#comment-17239816
 ] 

ASF GitHub Bot commented on TINKERPOP-2445:
---

divijvaidya commented on a change in pull request #1360:
URL: https://github.com/apache/tinkerpop/pull/1360#discussion_r531741315



##
File path: pom.xml
##
@@ -721,6 +722,18 @@ limitations under the License.
 
 
 
+

Review comment:
   Thank you for helping fix this Stephen. Appreciate it 🥇 





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Speed up client initialization
> --
>
> Key: TINKERPOP-2445
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2445
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: driver
>Affects Versions: 3.5.0, 3.4.8
>Reporter: Divij Vaidya
>Priority: Minor
>  Labels: breaking
> Attachments: screenshot-1.png
>
>
> The current Java client has a lot of initialization overhead. Some of the 
> things we could do to trim the fat are:
> 1. Parallelize the connection creation inside a connection pool, i.e. make 
> [this for 
> loop|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java]
>  parallel. 
>  2. Do not create a bootstrap [for every 
> connection|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java#L111].
>  A single bootstrap could be reused.
> 3. Remove SASL Handler from the pipeline after negotiation is complete for a 
> connection.
> 4. Do not initialize SASL Handler if not required.
> As part of this task, we should profile the start-up time and identify other 
> places where we could optimize the start-up time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (TINKERPOP-2468) Stabilize shouldProcessSessionRequestsInOrder() test

2020-11-27 Thread Divij Vaidya (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Divij Vaidya closed TINKERPOP-2468.
---
Fix Version/s: 3.4.9
   3.5.0
   Resolution: Fixed

> Stabilize shouldProcessSessionRequestsInOrder() test
> 
>
> Key: TINKERPOP-2468
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2468
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Assignee: Divij Vaidya
>Priority: Minor
> Fix For: 3.5.0, 3.4.9
>
>
> This test has been failing somewhat randomly on Travis lately:
> {code}
> [ERROR] 
> shouldProcessSessionRequestsInOrder(org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest)
>   Time elapsed: 9.593 s  <<< FAILURE!
> java.lang.AssertionError: 
> Expected: iterable containing ["five", "zero"]
>  but: item 0: was "zero"
>   at 
> org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest.shouldProcessSessionRequestsInOrder(GremlinDriverIntegrateTest.java:621)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2468) Stabilize shouldProcessSessionRequestsInOrder() test

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239812#comment-17239812
 ] 

ASF GitHub Bot commented on TINKERPOP-2468:
---

divijvaidya merged pull request #1365:
URL: https://github.com/apache/tinkerpop/pull/1365


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Stabilize shouldProcessSessionRequestsInOrder() test
> 
>
> Key: TINKERPOP-2468
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2468
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Assignee: Divij Vaidya
>Priority: Minor
>
> This test has been failing somewhat randomly on Travis lately:
> {code}
> [ERROR] 
> shouldProcessSessionRequestsInOrder(org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest)
>   Time elapsed: 9.593 s  <<< FAILURE!
> java.lang.AssertionError: 
> Expected: iterable containing ["five", "zero"]
>  but: item 0: was "zero"
>   at 
> org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest.shouldProcessSessionRequestsInOrder(GremlinDriverIntegrateTest.java:621)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: [DISCUSS] Accepting gremlint donation

2020-11-27 Thread Øyvind Sæbø
>
> By
> the way, can gremlint still run completely in browser or does it need
> nodejs at this point?

Yes, it's still possible to run it purely in the browser. This is still how
it's used on Gremlint.com.

Would it help make any of your work easier if there were an actual antlr
> grammar for Gremlin?

I'm not sure. I don't have any experience with it, but I'll look into it.

.NET might not be hard to format but I sense translation will not be easy
> given how easily Gremlin loses types
>
Good point.

As for progress news, we managed to wrap up the internal Gremlint IP
transfer process this week, so I hope we can fill out the ICLA and CCLA
next week. I'll add the ASF licence headers to the files early next week as
well.

ons. 25. nov. 2020 kl. 12:57 skrev Stephen Mallette :

> On Fri, Nov 20, 2020 at 3:49 PM Øyvind Sæbø  wrote:
>
> > Yes, I think it makes sense to continue with the general discussion in
> the
> > meantime:) It could also help make sure that I don't develop Gremlint in
> a
> > direction which will impose unnecessary restrictions in the future. I've
> > included some of my thoughts to your questions below:
> >
> > 1.
> > Gremlint is currently an installable JavaScript package, so for all
> > JavaScript projects using npm it can already be installed and called as a
> > function. I imagine it would also be easy to set up a
> Gremlint-as-a-service
> > API with Node.js to work with non-JavaScript projects.
> >
>
> At the risk of greater complexity to documentation generation perhaps a
> local nodejs service might work. A shame nashorn never quite took off or
> else we could have perhaps embedded it for more direct usage with Gremlin
> Console. I wonder if we could actually get rid of Gremlin Console usage
> though if there was a more convenient way to do formatting/translation. By
> the way, can gremlint still run completely in browser or does it need
> nodejs at this point?
>
>
> > 2 & 4.
> > I think Gremlint as a translator could make sense. Currently it
> essentially
> > just translates Groovy-Gremlin to an (almost) language-agnostic syntax
> > tree, adds formatting information based on a config object and then
> > recreates a Groovy Gremlin query. But it could just as well recreate the
> > query as a JavaScript or Python Gremlin query. I think it would be
> > relatively easy to make Gremlint translate from any Groovy-esque Gremlin
> > implementation to another Gremlin implementation by simply replacing the
> > function which is currently used to recreate the query from the formatted
> > syntax tree.
> >
>
> Would it help make any of your work easier if there were an actual antlr
> grammar for Gremlin?
>
>
> > 3.
> > I've already tried to keep Gremlint a bit language agnostic by leaving
> all
> > non-Gremlin code around and between queries unaltered. In most cases, any
> > code Gremlint doesn't understand inside a query is just handled as if it
> > was a single word, and left as is. I'm not too familiar with
> > language-specific differences between different Gremlin-implementations,
> > but it is my impression that it should already handle JavaScript Gremlin
> > quite well. For .NET I assume I would need to add support for more than
> > just single-quote strings (this would come in handy for all languages),
> and
> > for Python Gremlin it would need to handle backslashes between each new
> > line of the query. Gremlin for Clojure would probably be more challenging
> > (fun fact: The Gremlint parser is actually based on a Clojure parser I
> > wrote earlier).
> >
>
> .NET might not be hard to format but I sense translation will not be easy
> given how easily Gremlin loses types
>
>
> > Food for thought:
> > One thing I've been a bit back and forth on is whether it would be
> > preferable if Gremlint is super-robust and accepts and formats any
> language
> > you pass it with minimal configuration, or if it should only accept one
> > Gremlin implementation "at once" and require the user to manually specify
> > the language of their input.
> >
>
> From the perspective of a user interface, I don't think it's necessary to
> have too much magic. Ifi t could simply detect a language and make a good
> guess at it and then allow users more fine grained control from there that
> would be pretty impressive, but if they had to wholly make the step of
> selecting the language themselves I don't think that's terrible.
>
>
> >
> > fre. 20. nov. 2020 kl. 14:53 skrev Stephen Mallette <
> spmalle...@gmail.com
> > >:
> >
> > > Thanks for another update. Nice to know you're still moving along with
> > > improvements there. Perhaps we could continue with general discussions
> > > about Gremlint while we wait for legal issues to settle? For instance,
> > one
> > > of the things on my mind is how to make gremlint functionality as
> > available
> > > as possible to the various use cases we say each day. Obviously, it
> > > currently handles the most common one of providing a place to paste
> some
> > > Gremlin in a 

[jira] [Commented] (TINKERPOP-2468) Stabilize shouldProcessSessionRequestsInOrder() test

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239743#comment-17239743
 ] 

ASF GitHub Bot commented on TINKERPOP-2468:
---

spmallette commented on pull request #1365:
URL: https://github.com/apache/tinkerpop/pull/1365#issuecomment-734892391


   VOTE +1



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Stabilize shouldProcessSessionRequestsInOrder() test
> 
>
> Key: TINKERPOP-2468
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2468
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Assignee: Divij Vaidya
>Priority: Minor
>
> This test has been failing somewhat randomly on Travis lately:
> {code}
> [ERROR] 
> shouldProcessSessionRequestsInOrder(org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest)
>   Time elapsed: 9.593 s  <<< FAILURE!
> java.lang.AssertionError: 
> Expected: iterable containing ["five", "zero"]
>  but: item 0: was "zero"
>   at 
> org.apache.tinkerpop.gremlin.server.GremlinDriverIntegrateTest.shouldProcessSessionRequestsInOrder(GremlinDriverIntegrateTest.java:621)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (TINKERPOP-2409) js: DriverRemoteConnection never times out if server uri not available.

2020-11-27 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette closed TINKERPOP-2409.
---
Fix Version/s: 3.4.9
   3.5.0
 Assignee: Stephen Mallette
   Resolution: Fixed

> js: DriverRemoteConnection never times out if server uri not available.
> ---
>
> Key: TINKERPOP-2409
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2409
> Project: TinkerPop
>  Issue Type: Bug
>  Components: javascript
>Affects Versions: 3.4.8
>Reporter: Philip
>Assignee: Stephen Mallette
>Priority: Major
> Fix For: 3.5.0, 3.4.9
>
>
> constructor...
>  const authenticator = new 
> PlainTextSaslAuthenticator(userName,dbData.password)
>  this.dc = new DriverRemoteConnection(connectionStrArray.join(''), \{ 
> authenticator })
>     this.graph = new Graph()
>   
>  function code...
>      const g = this.graph.traversal().withRemote(this.dc)
>    let count = await g.V().count().next()
>    console.log(count)
>   
>  This works great with a connection but with no connection it failed with a 
> crash error in 3.3.8 - not ideal  but was manageable as code is always run as 
> a dynamic object per. In 3.4.8 when there is no connection it never resolves 
> or times out so it just hangs. 
> I haven't found a work around as yet
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2409) js: DriverRemoteConnection never times out if server uri not available.

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239712#comment-17239712
 ] 

ASF GitHub Bot commented on TINKERPOP-2409:
---

spmallette merged pull request #1364:
URL: https://github.com/apache/tinkerpop/pull/1364


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> js: DriverRemoteConnection never times out if server uri not available.
> ---
>
> Key: TINKERPOP-2409
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2409
> Project: TinkerPop
>  Issue Type: Bug
>  Components: javascript
>Affects Versions: 3.4.8
>Reporter: Philip
>Priority: Major
>
> constructor...
>  const authenticator = new 
> PlainTextSaslAuthenticator(userName,dbData.password)
>  this.dc = new DriverRemoteConnection(connectionStrArray.join(''), \{ 
> authenticator })
>     this.graph = new Graph()
>   
>  function code...
>      const g = this.graph.traversal().withRemote(this.dc)
>    let count = await g.V().count().next()
>    console.log(count)
>   
>  This works great with a connection but with no connection it failed with a 
> crash error in 3.3.8 - not ideal  but was manageable as code is always run as 
> a dynamic object per. In 3.4.8 when there is no connection it never resolves 
> or times out so it just hangs. 
> I haven't found a work around as yet
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (TINKERPOP-2479) Provide a way to set a custom GraphSONMapper for :bytecode command

2020-11-27 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette closed TINKERPOP-2479.
---
Fix Version/s: 3.4.9
   3.5.0
   Resolution: Fixed

> Provide a way to set a custom GraphSONMapper for :bytecode command
> --
>
> Key: TINKERPOP-2479
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2479
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: console
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Assignee: Stephen Mallette
>Priority: Major
> Fix For: 3.5.0, 3.4.9
>
>
> Allow for something like:
> {code}
> gremlin> m = GraphSONMapper.build().create()
> ==>org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper@69d6a7cd
> gremlin> :bc config m 
> ==>Configured bytecode serializer
> {code} 
> With this fine grained control of that mapper users can add custom 
> serializers and we will better support graph providers who might have custom 
> classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (TINKERPOP-2478) Console byte code translator has issues with "new Date()"

2020-11-27 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette closed TINKERPOP-2478.
---
Fix Version/s: 3.4.9
   3.5.0
 Assignee: Stephen Mallette
   Resolution: Fixed

> Console byte code translator has issues with "new Date()"
> -
>
> Key: TINKERPOP-2478
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2478
> Project: TinkerPop
>  Issue Type: Bug
>  Components: console
>Affects Versions: 3.4.8
> Environment: Gremlin Console on Mac OS with TinkerGraph
>Reporter: Kelvin R. Lawrence
>Assignee: Stephen Mallette
>Priority: Minor
> Fix For: 3.5.0, 3.4.9
>
>
> Attempting to do the following results in an error:
> {code:java}
> gremlin> :bc from g.addV().property('date',new Date())
> No signature of method: groovysh_evaluate.newDate() is applicable for 
> argument types: () values: []  {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2479) Provide a way to set a custom GraphSONMapper for :bytecode command

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239710#comment-17239710
 ] 

ASF GitHub Bot commented on TINKERPOP-2479:
---

spmallette merged pull request #1361:
URL: https://github.com/apache/tinkerpop/pull/1361


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Provide a way to set a custom GraphSONMapper for :bytecode command
> --
>
> Key: TINKERPOP-2479
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2479
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: console
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Assignee: Stephen Mallette
>Priority: Major
>
> Allow for something like:
> {code}
> gremlin> m = GraphSONMapper.build().create()
> ==>org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper@69d6a7cd
> gremlin> :bc config m 
> ==>Configured bytecode serializer
> {code} 
> With this fine grained control of that mapper users can add custom 
> serializers and we will better support graph providers who might have custom 
> classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2445) Speed up client initialization

2020-11-27 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239696#comment-17239696
 ] 

ASF GitHub Bot commented on TINKERPOP-2445:
---

spmallette commented on a change in pull request #1360:
URL: https://github.com/apache/tinkerpop/pull/1360#discussion_r531623301



##
File path: pom.xml
##
@@ -721,6 +722,18 @@ limitations under the License.
 
 
 
+

Review comment:
   Figured out the fix i think: 8ea559e13e8e877a85c02d73178a675f31ac42b0 - 
builds for me locally now with `mvn clean install`.  will keep an eye on travis 
for the full build though.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Speed up client initialization
> --
>
> Key: TINKERPOP-2445
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2445
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: driver
>Affects Versions: 3.5.0, 3.4.8
>Reporter: Divij Vaidya
>Priority: Minor
>  Labels: breaking
> Attachments: screenshot-1.png
>
>
> The current Java client has a lot of initialization overhead. Some of the 
> things we could do to trim the fat are:
> 1. Parallelize the connection creation inside a connection pool, i.e. make 
> [this for 
> loop|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java]
>  parallel. 
>  2. Do not create a bootstrap [for every 
> connection|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java#L111].
>  A single bootstrap could be reused.
> 3. Remove SASL Handler from the pipeline after negotiation is complete for a 
> connection.
> 4. Do not initialize SASL Handler if not required.
> As part of this task, we should profile the start-up time and identify other 
> places where we could optimize the start-up time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2473) Allow TraversalStrategy instances to be merged

2020-11-27 Thread Marc de Lignie (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239694#comment-17239694
 ] 

Marc de Lignie commented on TINKERPOP-2473:
---

Yes, indeed, "must-be-present" is close to "must-not-be-removed". You are also 
right about the workaround, although the Gremlin Server docs now describe 
"implicit", "passive" and "active" authorization strategies, where the implicit 
one does not use the Authorizer interface but relies on restricting traversal 
strategies that can not be removed or replaced. So, it is does not seem 
consistent to release an Authorizer feature without resolving 
TINKERPOP-2473/TINKERPOP-669.

> Allow TraversalStrategy instances to be merged
> --
>
> Key: TINKERPOP-2473
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2473
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Priority: Major
>
> Not sure if this is a great idea but it came up as part of TINKERPOP-2389 
> where there might be a need to assign both a client-side and server-side 
> {{SubgraphStrategy}}. Currently, while not explicit, you can't assign more 
> than one strategy of a particular type using {{withStrategies()}}. This task 
> would make that explicit and provide a direct way for mergeable strategies to 
> be pushed together into one. If we did that it would also simplify 
> {{OptionsStrategy}} usage in {{with()}} step which currently finds an 
> existing one first if present and then adds to it (otherwise creates it new). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2473) Allow TraversalStrategy instances to be merged

2020-11-27 Thread Stephen Mallette (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239659#comment-17239659
 ] 

Stephen Mallette commented on TINKERPOP-2473:
-

There was once a notion of "required" strategies on TINKERPOP-669 - perhaps 
that idea could be revived. I think it was meant more to ensure that system 
strategies (ones that need to be present for proper Gremlin execution) could 
not be removed but I imagine it could be resurrected with that idea in mind 
plus this new issue you bring up. 

With TINKERPOP-2389 the workaround to this issue would be to have an 
`Authorizer` that examines incoming requests and rejects calls to 
`withoutStrategies()`?

> Allow TraversalStrategy instances to be merged
> --
>
> Key: TINKERPOP-2473
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2473
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Priority: Major
>
> Not sure if this is a great idea but it came up as part of TINKERPOP-2389 
> where there might be a need to assign both a client-side and server-side 
> {{SubgraphStrategy}}. Currently, while not explicit, you can't assign more 
> than one strategy of a particular type using {{withStrategies()}}. This task 
> would make that explicit and provide a direct way for mergeable strategies to 
> be pushed together into one. If we did that it would also simplify 
> {{OptionsStrategy}} usage in {{with()}} step which currently finds an 
> existing one first if present and then adds to it (otherwise creates it new). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (TINKERPOP-2473) Allow TraversalStrategy instances to be merged

2020-11-27 Thread Marc de Lignie (Jira)


[ 
https://issues.apache.org/jira/browse/TINKERPOP-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239641#comment-17239641
 ] 

Marc de Lignie commented on TINKERPOP-2473:
---

Another issue with the application of traversal strategies is that a 
restricting strategy such a ReadOnlyStrategy can simply be removed remotely 
with a withoutStrategies(ReadOnlyStrategy). Although I can imagine cases where 
you would allow this on purpose, it clearly was not the intention of the 
authors because there even is a gremlin-server-modern-readonly.yaml example 
file that suggests that the graph is exposed as readonly. So, I feel there 
should be a list of restricting strategies (currently 
{color:#008000}"ReadOnlyStrategy"{color}, 
{color:#008000}"SubgraphStrategy"{color}, 
{color:#008000}"PartitionStrategy"{color},{color:#008000}"LambdaRestrictionStrategy"{color},
 {color:#008000}"EdgeLabelVerificationStrategy"{color}) that cannot be undone. 
If admins want to expose a graph with Gremlin Server in both the restricted and 
the unrestricted way, they can simply provide two differently named 
GraphTraversalSource instances.

I think this is best resolved as part of this issue (TINKERPOP-2473) and 
implies some changes in the application logic of the traversal strategies. What 
do you think?

The documentation I will push this afternoon as part of TINKERPOP-2389 adds 
some description about the application of traversal strategies (but covers the 
present situation), please feel free to use it for documentation of the present 
issue.

> Allow TraversalStrategy instances to be merged
> --
>
> Key: TINKERPOP-2473
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2473
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.4.8
>Reporter: Stephen Mallette
>Priority: Major
>
> Not sure if this is a great idea but it came up as part of TINKERPOP-2389 
> where there might be a need to assign both a client-side and server-side 
> {{SubgraphStrategy}}. Currently, while not explicit, you can't assign more 
> than one strategy of a particular type using {{withStrategies()}}. This task 
> would make that explicit and provide a direct way for mergeable strategies to 
> be pushed together into one. If we did that it would also simplify 
> {{OptionsStrategy}} usage in {{with()}} step which currently finds an 
> existing one first if present and then adds to it (otherwise creates it new). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)