From 59673cd222b69c8e82b0fd56d6f51fdb4fb2be6b Mon Sep 17 00:00:00 2001 From: ntisseyre Date: Wed, 10 Apr 2024 19:27:46 -0500 Subject: [PATCH] Making lazy-load relations TRUE by default Signed-off-by: ntisseyre [cql-tests][tp-tests] --- .../JanusGraphOperationCountingTest.java | 6 +++--- .../janusgraph/graphdb/JanusGraphTest.java | 9 ++++++++- .../StandardTransactionBuilder.java | 2 +- .../inmemory/InMemoryLazyLoadGraphTest.java | 20 ------------------- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java index 8c5de41dfa2..a96aa69db37 100644 --- a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java +++ b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java @@ -318,14 +318,14 @@ public void testKCVSAccess1() { v = getV(tx,v); assertCount(2, v.properties()); verifyStoreMetrics(EDGESTORE_NAME, ImmutableMap.of(M_GET_SLICE, 2L)); //1 verify vertex existence, 1 for query - verifyTypeCacheMetrics(3, 4); + verifyTypeCacheMetrics(3, 2); tx.commit(); tx = graph.buildTransaction().groupName(metricsPrefix).start(); v = getV(tx,v); assertCount(2, v.properties()); verifyStoreMetrics(EDGESTORE_NAME, ImmutableMap.of(M_GET_SLICE, 4L)); //1 verify vertex existence, 1 for query - verifyTypeCacheMetrics(3, 4); + verifyTypeCacheMetrics(3, 2); tx.commit(); //Check type index lookup caching @@ -343,7 +343,7 @@ public void testKCVSAccess1() { assertNotNull(v.value("name")); assertCount(1, v.query().direction(Direction.BOTH).edges()); verifyStoreMetrics(EDGESTORE_NAME, ImmutableMap.of(M_GET_SLICE, 11L)); //1 verify vertex existence, 3 for query - verifyTypeCacheMetrics(5, 10); + verifyTypeCacheMetrics(5, 9); tx.commit(); verifyLockingOverwrite(3); diff --git a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java index 19cd0c3e8e8..d179bbfe0b2 100644 --- a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java +++ b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java @@ -156,6 +156,7 @@ import org.janusgraph.testutil.TestGraphConfigs; import org.janusgraph.util.IDUtils; import org.janusgraph.util.stats.MetricManager; +import org.junit.Assert; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -2644,7 +2645,8 @@ public void testPropertyIdAccessInDifferentTransaction() { // access property id in new transaction graph.tx().commit(); - assertEquals(expectedId, p.id()); + Exception exception = Assert.assertThrows(IllegalStateException.class, p::id); + assertEquals(exception.getMessage(), "Any lazy load operation is not supported when transaction is already closed."); } /** @@ -6286,10 +6288,15 @@ protected TraversalMetrics testLimitedBatch(Supplier> trave } private void assertEqualResultWithAndWithoutLimitBatchSize(Supplier> traversal) { + boolean isLazyLoad = ((StandardJanusGraphTx) tx).getConfiguration().isLazyLoadRelations(); clopen(option(USE_MULTIQUERY), true, option(LIMITED_BATCH), true); final List resultLimitedBatch = traversal.get().toList(); + if (isLazyLoad) resultLimitedBatch.forEach(Object::hashCode); + clopen(option(USE_MULTIQUERY), true, option(LIMITED_BATCH), false); final List resultUnimitedBatch = traversal.get().toList(); + if (isLazyLoad) resultUnimitedBatch.forEach(Object::hashCode); + clopen(option(USE_MULTIQUERY), false); final List resultNoMultiQuery = traversal.get().toList(); diff --git a/janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/StandardTransactionBuilder.java b/janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/StandardTransactionBuilder.java index 18285ee8d5a..a9e9570e6d2 100644 --- a/janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/StandardTransactionBuilder.java +++ b/janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/StandardTransactionBuilder.java @@ -88,7 +88,7 @@ public class StandardTransactionBuilder implements TransactionConfiguration, Tra private boolean skipDBCacheRead; - private boolean isLazyLoadRelations; + private boolean isLazyLoadRelations = true; private MultiQueryHasStepStrategyMode hasStepStrategyMode; diff --git a/janusgraph-inmemory/src/test/java/org/janusgraph/graphdb/inmemory/InMemoryLazyLoadGraphTest.java b/janusgraph-inmemory/src/test/java/org/janusgraph/graphdb/inmemory/InMemoryLazyLoadGraphTest.java index b91b2482baa..e31fbced57d 100644 --- a/janusgraph-inmemory/src/test/java/org/janusgraph/graphdb/inmemory/InMemoryLazyLoadGraphTest.java +++ b/janusgraph-inmemory/src/test/java/org/janusgraph/graphdb/inmemory/InMemoryLazyLoadGraphTest.java @@ -14,15 +14,9 @@ package org.janusgraph.graphdb.inmemory; -import org.apache.tinkerpop.gremlin.structure.VertexProperty; -import org.janusgraph.core.JanusGraphVertex; import org.janusgraph.diskstorage.configuration.WriteConfiguration; import org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder; import org.janusgraph.graphdb.database.LazyLoadGraphTest; -import org.junit.jupiter.api.Test; - -import static org.junit.Assert.assertThrows; -import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Matthias Broecheler (me@matthiasb.com) @@ -36,18 +30,4 @@ public void open(WriteConfiguration config) { tx = graph.buildTransaction().start(); mgmt = graph.openManagement(); } - - @Override @Test - public void testPropertyIdAccessInDifferentTransaction() { - JanusGraphVertex v1 = graph.addVertex(); - Object expectedId = v1.property("name", "foo").id(); - graph.tx().commit(); - - VertexProperty p = getOnlyElement(v1.properties("name")); - - // access property id in new transaction - graph.tx().commit(); - Exception exception = assertThrows(IllegalStateException.class, p::id); - assertEquals(exception.getMessage(), "Any lazy load operation is not supported when transaction is already closed."); - } }