[tinkerpop] 01/02: Adding JMH based benchmarking module with initial traversal benchmarks based on Marko's processor benchmarks.
This is an automated email from the ASF dual-hosted git repository. twilmes pushed a commit to branch tp4-jmh in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 12f732872b7adf402a8484f88424d6cb6b8fb11c Author: Ted Wilmes AuthorDate: Tue Apr 9 15:06:01 2019 -0500 Adding JMH based benchmarking module with initial traversal benchmarks based on Marko's processor benchmarks. --- java/machine/machine-perf-test/pom.xml | 142 + .../benchmark/machine/PipesTraversalBenchmark.java | 27 .../machine/RxParallelTraversalBenchmark.java | 27 .../machine/RxSerialTraversalBenchmark.java| 27 .../benchmark/util/AbstractBenchmarkBase.java | 123 ++ .../benchmark/util/AbstractProcessorBenchmark.java | 69 ++ .../util/AbstractTraversalBenchmarkBase.java | 37 ++ .../tinkerpop/benchmark/util/ProcessorType.java| 23 .../tinkerpop/benchmark/util/WithProcessor.java| 32 + java/machine/pom.xml | 1 + 10 files changed, 508 insertions(+) diff --git a/java/machine/machine-perf-test/pom.xml b/java/machine/machine-perf-test/pom.xml new file mode 100644 index 000..2bbfa98 --- /dev/null +++ b/java/machine/machine-perf-test/pom.xml @@ -0,0 +1,142 @@ + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + +machine +org.apache.tinkerpop +4.0.0-SNAPSHOT + +4.0.0 +Apache TinkerPop :: Machine :: Machine-Perf-Test +machine-perf-test + + +1.21 + +true +${skipBenchmarks} + + + + +org.apache.tinkerpop +machine-core +${project.version} + + +org.apache.tinkerpop +gremlin +${project.version} + + +org.apache.tinkerpop +pipes +${project.version} + + +org.apache.tinkerpop +rxjava +${project.version} + + + +org.openjdk.jmh +jmh-core +${jmh.version} + + +org.openjdk.jmh +jmh-generator-annprocess +${jmh.version} +provided + + + +org.junit.jupiter +junit-jupiter-api +${junit.version} + + +org.junit.jupiter +junit-jupiter-engine +${junit.version} + + + + + +maven-deploy-plugin + +true + + + +org.apache.maven.plugins +maven-surefire-plugin + + ${project.build.sourceDirectory} + ${project.build.outputDirectory} + +**/*Benchmark*.java + + +**/*$*.class +**/Abstract* +**/*_jmhType* + + + ${project.build.directory}/reports/benchmark/ +-server -Xms2g -Xmx2g +10 +10 +2 + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + +shade + + + false + + +org.openjdk.jmh.Main + + + + +*:* + +META-INF/*.SF +META-INF/*.DSA +META-INF/*.RSA + + + + + + + + + + \ No newline at end of file diff --git a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/machine/PipesTraversalBenchmark.java b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/machine/PipesTraversalBenchmark.java new file mode 100644 index 000..8ce9ebc --- /dev/null +++
[tinkerpop] 02/02: Updated config reference after rebase.
This is an automated email from the ASF dual-hosted git repository. twilmes pushed a commit to branch tp4-jmh in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit cb1fc2ec9ecb0f3c5f86e9cf847077a23ae85eb5 Author: Ted Wilmes AuthorDate: Tue Apr 9 16:17:44 2019 -0500 Updated config reference after rebase. --- .../org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java index 1da0d31..64b8af6 100644 --- a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java +++ b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java @@ -55,7 +55,7 @@ public class AbstractProcessorBenchmark extends AbstractBenchmarkBase { break; case RX_PARALLEL: g = g.withProcessor(RxJavaProcessor.class, -Map.of(RxJavaProcessor.RXJAVA_THREADS, Runtime.getRuntime().availableProcessors() - 1)); +Map.of(RxJavaProcessor.RX_THREAD_POOL_SIZE, Runtime.getRuntime().availableProcessors() - 1)); break; default: throw new RuntimeException("Unrecognized processor type");
[tinkerpop] branch tp4-jmh created (now cb1fc2e)
This is an automated email from the ASF dual-hosted git repository. twilmes pushed a change to branch tp4-jmh in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. at cb1fc2e Updated config reference after rebase. This branch includes the following new commits: new 12f7328 Adding JMH based benchmarking module with initial traversal benchmarks based on Marko's processor benchmarks. new cb1fc2e Updated config reference after rebase. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[tinkerpop] branch master updated: Minor text fix now that we use SHA512 CTR
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/master by this push: new 14f638a Minor text fix now that we use SHA512 CTR 14f638a is described below commit 14f638a49745a8e592272cf19bc3c3ab78ae542e Author: Stephen Mallette AuthorDate: Tue Apr 9 16:57:07 2019 -0400 Minor text fix now that we use SHA512 CTR --- docs/site/home/downloads.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/site/home/downloads.html b/docs/site/home/downloads.html index c7d4326..8501e53 100644 --- a/docs/site/home/downloads.html +++ b/docs/site/home/downloads.html @@ -155,7 +155,7 @@ limitations under the License. gpg --verify apache-gremlin-console-x.y.z-bin.zip.asc apache-gremlin-console-x.y.z-bin.zip -Alternatively, consider verifying the SHA512 signature on the files. An SHA512 signature consists of 40 hex characters. +Alternatively, consider verifying the SHA512 signature on the files. An SHA512 signature consists of 128 hex characters. Ensure that the generated signature string matches the signature string published in the files above.
[tinkerpop] branch tp4 updated: learned about Disposable. Got rid of the AtomicBoolean in AbstractRxJava. Both serial and parallel processors support real-time streaming of results.
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new ec18e21 learned about Disposable. Got rid of the AtomicBoolean in AbstractRxJava. Both serial and parallel processors support real-time streaming of results. ec18e21 is described below commit ec18e214bee503fc3fe94a1557c14f63df395bd7 Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 13:20:28 2019 -0600 learned about Disposable. Got rid of the AtomicBoolean in AbstractRxJava. Both serial and parallel processors support real-time streaming of results. --- .../tinkerpop/machine/processor/rxjava/AbstractRxJava.java | 5 +++-- .../tinkerpop/machine/processor/rxjava/ParallelRxJava.java | 9 + .../apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java | 8 +++- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java index 4da0657..22a6e9e 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.machine.processor.rxjava; +import io.reactivex.disposables.Disposable; import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.processor.Processor; import org.apache.tinkerpop.machine.traverser.Traverser; @@ -33,7 +34,7 @@ public abstract class AbstractRxJava implements Processor { static final int MAX_REPETITIONS = 8; // TODO: this needs to be a dynamic configuration boolean executed = false; -final AtomicBoolean alive = new AtomicBoolean(Boolean.FALSE); +Disposable disposable; final TraverserSet starts = new TraverserSet<>(); final TraverserSet ends = new TraverserSet<>(); final Compilation compilation; @@ -63,8 +64,8 @@ public abstract class AbstractRxJava implements Processor { public void reset() { this.starts.clear(); this.ends.clear(); +this.disposable = null; this.executed = false; -this.alive.set(Boolean.FALSE); } protected abstract void prepareFlow(); diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java index daa8bd4..8828e5e 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java @@ -63,22 +63,23 @@ public final class ParallelRxJava extends AbstractRxJava { protected void prepareFlow() { if (!this.executed) { this.executed = true; -this.alive.set(Boolean.TRUE); -this.compile( +this.disposable = this.compile( ParallelFlowable.from(Flowable.fromIterable(this.starts)). runOn(Schedulers.from(this.threadPool)), this.compilation). doOnNext(this.ends::add). sequential(). doFinally(() -> { -this.alive.set(Boolean.FALSE); if (null != this.bytecodeId) { // only the parent compilation should close the thread pool this.threadPool.shutdown(); RxJavaProcessor.THREAD_POOLS.remove(this.bytecodeId); } }). -blockingSubscribe(); // thread this so results can be received before computation completes +subscribe(); // don't block the execution so results can be streamed back in real-time } +while (!this.disposable.isDisposed() && this.ends.isEmpty()) { +// only return if there is a result ready from the flow (or the flow is dead) +} } // EXECUTION PLAN COMPILER diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java index 183f043..87d2c97 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java @@ -52,13
[tinkerpop] branch tp4 updated: More work on ParallelRxJava thread pools. I also added SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded traversal execution play well togeth
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new 53d5623 More work on ParallelRxJava thread pools. I also added SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded traversal execution play well together. They do. 53d5623 is described below commit 53d5623e34436a6debfc2adfde58a5a385b0724d Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 13:02:40 2019 -0600 More work on ParallelRxJava thread pools. I also added SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded traversal execution play well together. They do. --- .../tinkerpop/machine/AbstractTestSuite.java | 15 +++--- .../machine/processor/beam/SimpleRemoteTest.java | 15 -- .../machine/processor/pipes/SimpleRemoteTest.java | 15 -- .../machine/processor/rxjava/ParallelRxJava.java | 11 +-- .../machine/processor/rxjava/RxJavaProcessor.java | 15 +++--- .../processor/rxjava/strategy/RxJavaStrategy.java | 8 .../machine/processor/rxjava/RxJavaBenchmark.java | 4 ++-- .../processor/rxjava/SimpleLocalParallelTest.java | 2 +- ...rialTest.java => SimpleRemoteParallelTest.java} | 23 +- .../processor/rxjava/SimpleRemoteSerialTest.java | 15 -- 10 files changed, 77 insertions(+), 46 deletions(-) diff --git a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java index 8524292..822636e 100644 --- a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java +++ b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java @@ -40,16 +40,17 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public abstract class AbstractTestSuite { protected Machine machine; -protected TraversalSource g; +TraversalSource g; -public AbstractTestSuite(final Machine machine, final Bytecode source) { +AbstractTestSuite(final Machine machine, final Bytecode source) { this.machine = machine; this.g = Gremlin.traversal(machine); -BytecodeUtil.mergeSourceInstructions(source, TraversalUtil.getBytecode(g)); +BytecodeUtil.mergeSourceInstructions(source, TraversalUtil.getBytecode(this.g)); } @AfterAll public void shutdown() { +this.g.close(); this.machine.close(); } @@ -69,4 +70,12 @@ public abstract class AbstractTestSuite { assertFalse(traversal.hasNext()); } +public static void sleep(final int time) { +try { +Thread.sleep(time); +} catch (final InterruptedException e) { +// do nothing +} +} + } diff --git a/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java b/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java index 5b3448a..72fac52 100644 --- a/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java +++ b/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java @@ -18,12 +18,14 @@ */ package org.apache.tinkerpop.machine.processor.beam; +import org.apache.tinkerpop.machine.AbstractTestSuite; import org.apache.tinkerpop.machine.SimpleTestSuite; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.species.remote.MachineServer; import org.apache.tinkerpop.machine.species.remote.RemoteMachine; import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; import java.util.Map; @@ -46,14 +48,15 @@ public class SimpleRemoteTest extends SimpleTestSuite { super(RemoteMachine.open(, "localhost", ), BYTECODE); } +@AfterEach +void delayShutdown() { +AbstractTestSuite.sleep(100); +} + @AfterAll -static void stopServer() { +void stopServer() { SERVER.close(); -try { -Thread.sleep(10); -} catch (final InterruptedException e) { - -} +AbstractTestSuite.sleep(100); } } \ No newline at end of file diff --git a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java b/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java index 5e0b32b..f895ada 100644 --- a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java +++
[GitHub] [tinkerpop] spmallette commented on issue #1075: Docker gremlin-server test script
spmallette commented on issue #1075: Docker gremlin-server test script URL: https://github.com/apache/tinkerpop/pull/1075#issuecomment-481362889 This works nicely for me. Was able to start up Gremlin Server with the above command and then run c# tests out of the debugger in Rider. Looking at the file changes on this PR, it looks like a fair bit of copy/paste of our existing config files to `docker/` - is that right? or are there substantive changes in those new files? if not substantive and they are just copies, can we figure out how to single source them somehow so that we don't have to remember to update both places when we have a change? i put a fair bit of effort into trying to unify the `gremlin-server-integration*.yaml` test files - would be nice to just have a single set to work with that drives all tests if we can. 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 With regards, Apache Git Services
[tinkerpop] branch tp4 updated: thread pool hell. I have it so RxJavaStrategy analyzes nested compilations to see if they are 'simple' or not. if they are simple, then a serial flow is used to execute
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new ef0fd1f thread pool hell. I have it so RxJavaStrategy analyzes nested compilations to see if they are 'simple' or not. if they are simple, then a serial flow is used to execute it. This way, we don't exhaust the threadpool with overly threaded nests of compilations. RxJavaStrategy is the first complex strategy. It uses the new Bytecode hiearchy to assoicate a thread pool with the root bytecode. ef0fd1f is described below commit ef0fd1f3a6f87939ebd063f14f078cf47750f3ac Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 11:51:42 2019 -0600 thread pool hell. I have it so RxJavaStrategy analyzes nested compilations to see if they are 'simple' or not. if they are simple, then a serial flow is used to execute it. This way, we don't exhaust the threadpool with overly threaded nests of compilations. RxJavaStrategy is the first complex strategy. It uses the new Bytecode hiearchy to assoicate a thread pool with the root bytecode. --- .../machine/processor/rxjava/ParallelRxJava.java | 2 +- .../machine/processor/rxjava/RxJavaProcessor.java | 4 ++-- .../machine/processor/rxjava/SerialRxJava.java | 2 +- .../processor/rxjava/strategy/RxJavaStrategy.java | 27 -- .../machine/processor/rxjava/RxJavaBenchmark.java | 6 ++--- .../processor/rxjava/SimpleLocalParallelTest.java | 2 +- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java index 5b81368..9c9476d 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java @@ -64,8 +64,8 @@ public final class ParallelRxJava extends AbstractRxJava { runOn(Schedulers.from(this.threadPool)), this.compilation). doOnNext(this.ends::add). sequential(). -doOnComplete(() -> this.alive.set(Boolean.FALSE)). doFinally(() -> { +this.alive.set(Boolean.FALSE); if (this.compilation.getBytecode().getParent().isEmpty()) // only the parent compilation should close the thread pool this.threadPool.shutdown(); }). diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java index be5d850..e9792eb 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java @@ -56,8 +56,8 @@ public final class RxJavaProcessor implements ProcessorFactory { public Processor mint(final Compilation compilation) { final int threads = (int) this.configuration.getOrDefault(RxJavaProcessor.RXJAVA_THREADS, 0); final String id = (String) BytecodeUtil.getSourceInstructions(BytecodeUtil.getRootBytecode(compilation.getBytecode()), RX_BYCODE_ID).get(0).args()[0]; -final ExecutorService threadPool = RxJavaProcessor.THREAD_POOLS.compute(id, (key, value) -> null == value && threads > 0 ? Executors.newCachedThreadPool() : value); -// System.out.println(id + "--" + threadPool + "---" + THREAD_POOLS); +final ExecutorService threadPool = threads > 0 ? RxJavaProcessor.THREAD_POOLS.computeIfAbsent(id, key -> Executors.newFixedThreadPool(threads)) : null; +// System.out.println(id + "::" + threads + "--" + threadPool); return null == threadPool ? new SerialRxJava<>(compilation) : new ParallelRxJava<>(compilation, threadPool); diff --git a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java index ace99b4..183f043 100644 --- a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java +++ b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java @@ -55,7 +55,7 @@ public final class SerialRxJava extends AbstractRxJava { this.alive.set(Boolean.TRUE);
[GitHub] [tinkerpop] spmallette edited a comment on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
spmallette edited a comment on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481354208 I think that your implementation should configure `ReferenceElementStrategy` (which for 3.4.0 is enabled by default in Gremlin Server sample init files): https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/ReferenceElementStrategy.java and which will detach your elements at iteration time when building the `ResponseMessage`. No new transaction will be opened on serialization. If you don't like the "references" that `ReferenceElementStrategy` produces then you could write your own strategy to produce "detached" objects just as easily to same effect - just used `DetachedFactory` rather than `ReferenceFactory`: https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java That should solve your problem without this change - right? 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 With regards, Apache Git Services
[GitHub] [tinkerpop] spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481354208 I think that your implementation should configure `ReferenceElementStrategy` (which for 3.4.0 is enabled by default): https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/ReferenceElementStrategy.java and which will detach your elements at iteration time when building the `ResponseMessage`. No new transaction will be opened on serialization. If you don't like the "references" that `ReferenceElementStrategy` produces then you could write your own strategy to produce "detached" objects just as easily to same effect - just used `DetachedFactory` rather than `ReferenceFactory`: https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java That should solve your problem without this change - right? 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 With regards, Apache Git Services
[tinkerpop] branch tp4 updated: nested Bytecode now knows about its parent bytecode. It is also possible to walk the Bytecode tree up to the root. This is used to share information between Compilation
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new ae6ac40 nested Bytecode now knows about its parent bytecode. It is also possible to walk the Bytecode tree up to the root. This is used to share information between Compilations such as thread pool info in ParallelRxJava. Noticing a weird relationship between ProcessorFactory and Compilation. Need to think things through. Anywho, for now ParallelRxJava traverasls share a common thread pool for their execution. Need to get smart and not thread simple nests so we don't spawn so ma [...] ae6ac40 is described below commit ae6ac400ba1eb511ab52995dad430dda12365d99 Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 09:03:34 2019 -0600 nested Bytecode now knows about its parent bytecode. It is also possible to walk the Bytecode tree up to the root. This is used to share information between Compilations such as thread pool info in ParallelRxJava. Noticing a weird relationship between ProcessorFactory and Compilation. Need to think things through. Anywho, for now ParallelRxJava traverasls share a common thread pool for their execution. Need to get smart and not thread simple nests so we don't spawn so many threads. --- .../tinkerpop/language/gremlin/TraversalUtil.java | 5 +- .../language/gremlin/common/CommonTraversal.java | 6 +-- .../language/gremlin/core/CoreTraversal.java | 6 +-- .../tinkerpop/machine/bytecode/Bytecode.java | 33 +++- .../tinkerpop/machine/bytecode/BytecodeUtil.java | 24 + .../tinkerpop/machine/bytecode/Instruction.java| 16 ++ .../machine/bytecode/compiler/Compilation.java | 8 +++ .../tinkerpop/machine/util/StringFactory.java | 5 ++ .../tinkerpop/machine/bytecode/BytecodeTest.java | 60 ++ .../machine/processor/rxjava/ParallelRxJava.java | 13 ++--- .../machine/processor/rxjava/RxJavaProcessor.java | 22 ++-- .../processor/rxjava/strategy/RxJavaStrategy.java | 20 ++-- .../machine/processor/rxjava/RxJavaBenchmark.java | 2 +- .../processor/rxjava/SimpleLocalParallelTest.java | 2 +- 14 files changed, 183 insertions(+), 39 deletions(-) diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java index efdf824..3587e4c 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java @@ -45,9 +45,8 @@ public final class TraversalUtil { } public static Traversal insertRepeatInstruction(final AbstractTraversal traversal, final char type, final Object argument) { -final Instruction lastInstruction = traversal.bytecode.lastInstruction(); -if (lastInstruction.op().equals(Symbols.REPEAT)) -lastInstruction.addArgs(type, argument); +if (traversal.bytecode.lastInstruction().op().equals(Symbols.REPEAT)) +traversal.bytecode.addArgs(type, argument); else traversal.addInstruction(Symbols.REPEAT, type, argument); return traversal; diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java index 7d44169..95aeb51 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java @@ -61,13 +61,13 @@ public class CommonTraversal extends AbstractTraversal { @Override public Traversal by(final String byString) { -this.bytecode.lastInstruction().addArg(byString); +this.bytecode.addArgs(byString); return this; } @Override public Traversal by(final Traversal byTraversal) { - this.bytecode.lastInstruction().addArg(TraversalUtil.getBytecode(byTraversal)); +this.bytecode.addArgs(TraversalUtil.getBytecode(byTraversal)); return this; } @@ -78,7 +78,7 @@ public class CommonTraversal extends AbstractTraversal { @Override public Traversal by(final Traversal byTraversal, final Order order) { - this.bytecode.lastInstruction().addArgs(TraversalUtil.getBytecode(byTraversal), order.name()); +this.bytecode.addArgs(TraversalUtil.getBytecode(byTraversal), order.name()); return this; } diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java
[GitHub] [tinkerpop] moayad86 opened a new pull request #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
moayad86 opened a new pull request #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094 https://issues.apache.org/jira/browse/TINKERPOP-2195 An improvement is to do the serialisation first, and add a finally block to the try...catch statement, where transaction commit can take place. More information in the ticket. 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 With regards, Apache Git Services
[tinkerpop] branch tp4 updated: cleaned up Traverser species equals() and hashCode() some more. Scary to have faults in those.
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new a633015 cleaned up Traverser species equals() and hashCode() some more. Scary to have faults in those. a633015 is described below commit a633015216f1646b0efa876003dd3f07b8e9e834 Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 06:58:46 2019 -0600 cleaned up Traverser species equals() and hashCode() some more. Scary to have faults in those. --- .../apache/tinkerpop/machine/traverser/species/COP_Traverser.java | 6 -- .../apache/tinkerpop/machine/traverser/species/COR_Traverser.java | 7 ++- .../tinkerpop/machine/traverser/species/ProjectedTraverser.java| 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java index 24ad297..f2bda7a 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java @@ -57,12 +57,14 @@ public class COP_Traverser extends CO_Traverser { @Override public boolean equals(final Object other) { -return other instanceof COP_Traverser && ((COP_Traverser) other).object.equals(this.object); +return other instanceof COP_Traverser && +((COP_Traverser) other).object.equals(this.object) && +((COP_Traverser) other).path.equals(this.path); } @Override public int hashCode() { -return this.object.hashCode(); // TODO: include path +return this.object.hashCode() ^ this.path.hashCode(); } @Override diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java index ba4184a..d5ed29c 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java @@ -29,7 +29,7 @@ public class COR_Traverser extends CO_Traverser { private short loops = 0; -public COR_Traverser(final Coefficient coefficient, final S object) { +COR_Traverser(final Coefficient coefficient, final S object) { super(coefficient, object); } @@ -62,4 +62,9 @@ public class COR_Traverser extends CO_Traverser { this.object.equals(((COR_Traverser) other).object) && this.loops == ((COR_Traverser) other).loops; } + +@Override +public int hashCode() { +return super.hashCode() ^ this.loops; +} } diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java index 935a516..fe6c7a4 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java @@ -83,7 +83,8 @@ public class ProjectedTraverser implements Traverser { @Override public boolean equals(final Object object) { -return object instanceof ProjectedTraverser && this.baseTraverser.equals(((ProjectedTraverser) object).baseTraverser); +return object instanceof ProjectedTraverser && +this.baseTraverser.equals(((ProjectedTraverser) object).baseTraverser); } @Override
[tinkerpop] branch tp4 updated: found a bug in COR_Traverser that was showing up in looping in Pipes. Didn't do equals() correctly and TraverserSet traversers were merging inappropriatly.
This is an automated email from the ASF dual-hosted git repository. okram pushed a commit to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/tp4 by this push: new e252855 found a bug in COR_Traverser that was showing up in looping in Pipes. Didn't do equals() correctly and TraverserSet traversers were merging inappropriatly. e252855 is described below commit e252855c136126b19a09aaacb592c61c535d909b Author: Marko A. Rodriguez AuthorDate: Tue Apr 9 06:53:02 2019 -0600 found a bug in COR_Traverser that was showing up in looping in Pipes. Didn't do equals() correctly and TraverserSet traversers were merging inappropriatly. --- .../apache/tinkerpop/machine/traverser/species/COR_Traverser.java | 7 +++ .../main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java| 2 +- .../org/apache/tinkerpop/machine/processor/pipes/BranchStep.java | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java index b9ccc67..ba4184a 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java @@ -55,4 +55,11 @@ public class COR_Traverser extends CO_Traverser { clone.coefficient.multiply(function.coefficient()); return clone; } + +@Override +public boolean equals(final Object other) { +return other instanceof COR_Traverser && +this.object.equals(((COR_Traverser) other).object) && +this.loops == ((COR_Traverser) other).loops; +} } diff --git a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java index 31177e4..862ff71 100644 --- a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java +++ b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java @@ -225,7 +225,7 @@ public class SimpleTestSuite extends AbstractTestSuite { g.inject(1L).repeat(union(incr(), __.incr().incr())).times(2)); } -//@Test +@Test void g_injectX1X_repeatXunionXincr__incr_incrXX_timesX3X() { verify(List.of(4L, 5L, 5L, 6L, 5L, 6L, 6L, 7L), g.inject(1L).repeat(union(incr(), __.incr().incr())).times(3)); diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java index 0ef8280..667af99 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java @@ -71,8 +71,8 @@ final class BranchStep extends AbstractStep { } } if (!found) { -for (final Compilation defaultBranches : this.defaultBranches) { -((MultiIterator>) this.nextTraversers).addIterator(defaultBranches.addTraverser(traverser.clone())); +for (final Compilation defaultBranch : this.defaultBranches) { +((MultiIterator>) this.nextTraversers).addIterator(defaultBranch.addTraverser(traverser.clone())); } } }
[tinkerpop] branch TINKERPOP-2181 deleted (was db335da)
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a change to branch TINKERPOP-2181 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. was db335da TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
[GitHub] [tinkerpop] spmallette commented on issue #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console
spmallette commented on issue #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console URL: https://github.com/apache/tinkerpop/pull/1088#issuecomment-481221194 And here's the support for breaking infinite loops on `master`: https://github.com/apache/tinkerpop/commit/7062595b72108e9545eaceb62e45b4ea7d946ed6 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 With regards, Apache Git Services
[tinkerpop] branch master updated: Support loop interruption in Console with ctrl+c
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git The following commit(s) were added to refs/heads/master by this push: new 7062595 Support loop interruption in Console with ctrl+c 7062595 is described below commit 7062595b72108e9545eaceb62e45b4ea7d946ed6 Author: Stephen Mallette AuthorDate: Tue Apr 9 07:56:40 2019 -0400 Support loop interruption in Console with ctrl+c Couldn't support this with older versions of groovysh/jline so versions before the 3.4.2 line won't be able to break out of while(true){} types of situations. CTR --- .../groovy/org/apache/tinkerpop/gremlin/console/Console.groovy | 7 +++ .../apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy| 10 +- .../console/jsr223/GephiRemoteAcceptorIntegrateTest.java | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy index 9324f6d..d275dc2 100644 --- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy +++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy @@ -47,12 +47,9 @@ import org.codehaus.groovy.tools.shell.IO import org.codehaus.groovy.tools.shell.InteractiveShellRunner import org.codehaus.groovy.tools.shell.commands.SetCommand import org.fusesource.jansi.Ansi -import picocli.CommandLine import sun.misc.Signal import sun.misc.SignalHandler -import java.util.concurrent.atomic.AtomicBoolean - /** * @author Stephen Mallette (http://stephen.genoprime.com) */ @@ -99,7 +96,7 @@ class Console { } }) -groovy = new GremlinGroovysh(mediator) +groovy = new GremlinGroovysh(mediator, io) def commandsToRemove = groovy.getRegistry().commands().findAll { it instanceof SetCommand } commandsToRemove.each { groovy.getRegistry().remove(it) } @@ -121,6 +118,8 @@ class Console { imports.getFieldClasses().collect { Mediator.IMPORT_STATIC_SPACE + it.getCanonicalName() + Mediator.IMPORT_WILDCARD}.each{ groovy.execute(it) } final InteractiveShellRunner runner = new InteractiveShellRunner(groovy, handlePrompt) +runner.reader.setHandleUserInterrupt(false) +runner.reader.setHandleLitteralNext(false) runner.setErrorHandler(handleError) try { final FileHistory history = new FileHistory(new File(ConsoleFs.HISTORY_FILE)) diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy index f5fa16a..96015db 100644 --- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy +++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy @@ -18,9 +18,13 @@ */ package org.apache.tinkerpop.gremlin.console +import groovy.transform.ThreadInterrupt import org.apache.tinkerpop.gremlin.console.commands.GremlinSetCommand +import org.codehaus.groovy.control.CompilerConfiguration +import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer import org.codehaus.groovy.tools.shell.Command import org.codehaus.groovy.tools.shell.Groovysh +import org.codehaus.groovy.tools.shell.IO import org.codehaus.groovy.tools.shell.ParseCode import org.codehaus.groovy.tools.shell.Parser import org.codehaus.groovy.tools.shell.util.CommandArgumentParser @@ -33,8 +37,12 @@ import org.codehaus.groovy.tools.shell.util.CommandArgumentParser class GremlinGroovysh extends Groovysh { private final Mediator mediator +private final static CompilerConfiguration compilerConfig = new CompilerConfiguration(CompilerConfiguration.DEFAULT) {{ +addCompilationCustomizers(new ASTTransformationCustomizer(ThreadInterrupt.class)) +}} -public GremlinGroovysh(final Mediator mediator) { +public GremlinGroovysh(final Mediator mediator, final IO io) { +super(io, compilerConfig) this.mediator = mediator } diff --git a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java index 9a1c541..b1f8eff 100644 --- a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java +++ b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java @@ -55,7 +55,7 @@ import static org.junit.Assert.assertThat; * @author Stephen Mallette (http://stephen.genoprime.com) */ public class
[tinkerpop] branch tp33 updated (bc2c3f5 -> ccdc7c2)
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a change to branch tp33 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. from bc2c3f5 Merge pull request #1087 from apache/TINKERPOP-2191 add db335da TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console add ccdc7c2 Merge branch 'TINKERPOP-2181' into tp33 No new revisions were added by this update. Summary of changes: CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-applications.asciidoc | 25 +++ docs/src/upgrade/release-3.3.x.asciidoc| 17 + .../tinkerpop/gremlin/console/Console.groovy | 67 - .../gremlin/console/GremlinGroovysh.groovy | 84 -- .../tinkerpop/gremlin/console/Mediator.groovy | 7 ++ 6 files changed, 146 insertions(+), 55 deletions(-)
[GitHub] [tinkerpop] spmallette merged pull request #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console
spmallette merged pull request #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console URL: https://github.com/apache/tinkerpop/pull/1088 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 With regards, Apache Git Services
[tinkerpop] branch master updated (87fe157 -> ed318bb)
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. from 87fe157 Merge pull request #1093 from nastra/negative-text-predicates new db335da TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console new ccdc7c2 Merge branch 'TINKERPOP-2181' into tp33 new ed318bb Merge branch 'tp33' The 15093 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-applications.asciidoc | 25 +++ docs/src/upgrade/release-3.3.x.asciidoc| 17 + .../tinkerpop/gremlin/console/Console.groovy | 67 - .../gremlin/console/GremlinGroovysh.groovy | 84 -- .../tinkerpop/gremlin/console/Mediator.groovy | 7 ++ 6 files changed, 146 insertions(+), 55 deletions(-)
[GitHub] [tinkerpop] spmallette commented on issue #1076: TINKERPOP-2112 Fold property() so that T values can work in any order
spmallette commented on issue #1076: TINKERPOP-2112 Fold property() so that T values can work in any order URL: https://github.com/apache/tinkerpop/pull/1076#issuecomment-481198197 Ok - this is finally good now. I rolled back an eager attempt at improvement around cardinality checks on the graph when folding. That proved to be a mess because we don't do a great job enforcing behavior for that in our test suite so every graph is a little different unfortunately. The current approach to folding seems to fix the initial problem reported with `T.id` (and some other noted issues) without breaking existing behavior. 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 With regards, Apache Git Services
[tinkerpop] branch TINKERPOP-2112 updated (e99496a -> 14d1fd0)
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a change to branch TINKERPOP-2112 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. discard e99496a TINKERPOP-2112 Fold property() so that T values can work in any order new 70c8f7e Bump GMavenPlus to 1.6.3 CTR new 9334272 TINKERPOP-2180: Make sure user.working_dir is still respected properly new 62158d2 TINKERPOP-2180: Fix -l DEBUG new 06cc959 TINKERPOP-2179: Have SerializationException extend IOException new b59d779 Merge pull request #1083 from newkek/TINKERPOP-2179 new 0769976 Implemented EdgeLabelVerificationStrategy new bc2c3f5 Merge pull request #1087 from apache/TINKERPOP-2191 new 14d1fd0 TINKERPOP-2112 Fold property() so that T values can work in any order This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (e99496a) \ N -- N -- N refs/heads/TINKERPOP-2112 (14d1fd0) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 14083 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc| 38 + gremlin-console/src/main/bin/gremlin.sh| 13 +- .../src/test/python/tests/test_console.py | 5 + .../tinkerpop/gremlin/jsr223/CoreImports.java | 2 + .../EdgeLabelVerificationStrategy.java | 131 ++ .../structure/io/graphson/GraphSONModule.java | 5 + .../gremlin/structure/io/gryo/GryoVersion.java | 7 +- .../EdgeLabelVerificationStrategyTest.java | 188 + .../gremlin/driver/ser/SerializationException.java | 8 +- .../gremlin/driver/SerializationExceptionTest.java | 31 ++-- pom.xml| 2 +- 12 files changed, 408 insertions(+), 23 deletions(-) create mode 100644 gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategy.java create mode 100644 gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java copy gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/DirectionTest.java => gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/SerializationExceptionTest.java (59%)
[tinkerpop] branch TINKERPOP-2112 updated (5ccdf56 -> e99496a)
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a change to branch TINKERPOP-2112 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git. discard 5ccdf56 TINKERPOP-2112 Fold property() so that T values can work in any order new e99496a TINKERPOP-2112 Fold property() so that T values can work in any order This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (5ccdf56) \ N -- N -- N refs/heads/TINKERPOP-2112 (e99496a) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 14076 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../traversal/dsl/graph/GraphTraversal.java| 23 +- .../strategy/decoration/EventStrategyTest.java | 2 +- .../neo4j/structure/trait/MultiMetaNeo4jTrait.java | 3 ++- 3 files changed, 12 insertions(+), 16 deletions(-)