[
https://issues.apache.org/jira/browse/TINKERPOP-1870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16326356#comment-16326356
]
Artem Aliev commented on TINKERPOP-1870:
----------------------------------------
The fix I provided could be simplified. VertexRemoteSet extends RemoteSet now
for backward compatibility, just in case someone use it directly in
VertexPrograms. If it is fully internal structure It could become simple
synhronious MultiValue hash map. The map preserves traverser order for each
vertex.
> n^2 synchronious operation in OLAP WorkerExecutor.execute() method
> ------------------------------------------------------------------
>
> Key: TINKERPOP-1870
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1870
> Project: TinkerPop
> Issue Type: Improvement
> Reporter: Artem Aliev
> Priority: Major
>
> [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/WorkerExecutor.java#L80-L93]
> This block of code iterates over all remote traverses to select one related
> to the current vertex and remove it. This operation is repeated for the next
> vertex and so one. For following example query it means n^2 operations (n is
> number of vertices). All of them in sync block. multi core spark executor
> will do this operations serial.
> {code}
> g.V().emit().repeat(both().dedup()).count().next()
> {code}
> See jvisualvm screenshot.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)