[
https://issues.apache.org/jira/browse/TINKERPOP-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15280139#comment-15280139
]
ASF GitHub Bot commented on TINKERPOP-1293:
-------------------------------------------
Github user okram commented on a diff in the pull request:
https://github.com/apache/incubator-tinkerpop/pull/310#discussion_r62851083
--- Diff:
tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java
---
@@ -54,6 +56,12 @@
*/
public final class TinkerGraphComputer implements GraphComputer {
+ static {
+ // GraphFilters are expensive w/ TinkerGraphComputer as everything
is already in memory
--- End diff --
`TinkerGraphComputer` already has the entire graph loaded in memory. Thus,
when you add a `GraphFilter`, what I'm doing is creating a `Set<Object>` of
edge IDs that are allowed. Then, every `Vertex.edges()` is filtered by
`edge.id() in Set<Object>`. Its lame. As such, edge-based `GraphFilters` are
expensive in `TinkerGraphComputer`.
> Implement GraphFilterStrategy as a default registration for GraphComputer
> -------------------------------------------------------------------------
>
> Key: TINKERPOP-1293
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1293
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.2.0-incubating
> Reporter: Marko A. Rodriguez
> Assignee: Marko A. Rodriguez
> Fix For: 3.2.1
>
>
> {{GraphFilterStrategy}} would be a {{TraversalStrategy}} for
> {{GraphComputers}}. It will inspect the {{Traversal}} and decide the
> {{computer.vertices(...).edges(...)}} to use.
> Some rules:
> 1. If the traversal is part of an OLAP chain, don't apply strategy.
> 2. If the traversal is persist edges, then don't {{edges(...)}} or
> {{vertices(...)}}.
> 3. If the traversal is persist vertex properties, then don't do
> {{vertices(...)}}.
> Shouldn't be too difficult. Basically looking for:
> 1. {{VertexStep}} labels for edges.
> 2. {{HasStep}} containers for vertices and edges.
> From there, we can get fancy with {{outE().has("stars",gt(4))}}-style
> {{edges(...)}}. However, basic element-label based filtering should be easy.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)