Skip to content

Commit a575fcc

Browse files
Fill in ExecutionContext
1 parent 0a9b5a2 commit a575fcc

File tree

5 files changed

+13
-25
lines changed

5 files changed

+13
-25
lines changed

executor/src/integrationTest/java/org/neo4j/gds/executor/MemoryEstimationExecutorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ void setup() throws Exception {
7474
.builder()
7575
.databaseId(DatabaseId.of(db.databaseName()))
7676
.dependencyResolver(GraphDatabaseApiProxy.dependencyResolver(db))
77+
.memoryEstimationContext(new MemoryEstimationContext(true))
7778
.returnColumns(ProcedureReturnColumns.EMPTY)
7879
.log(Log.noOpLog())
7980
.taskRegistryFactory(EmptyTaskRegistryFactory.INSTANCE)

executor/src/integrationTest/java/org/neo4j/gds/executor/ProcedureExecutorTest.java

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import org.junit.jupiter.api.AfterEach;
2323
import org.junit.jupiter.api.BeforeEach;
2424
import org.junit.jupiter.api.Test;
25-
import org.neo4j.common.DependencyResolver;
26-
import org.neo4j.configuration.Config;
2725
import org.neo4j.gds.api.CloseableResourceRegistry;
2826
import org.neo4j.gds.api.GraphStore;
2927
import org.neo4j.gds.api.NodeLookup;
@@ -48,7 +46,6 @@
4846
import java.time.Duration;
4947
import java.util.HashSet;
5048
import java.util.Map;
51-
import java.util.Optional;
5249
import java.util.Set;
5350

5451
import static org.assertj.core.api.Assertions.assertThat;
@@ -143,25 +140,7 @@ private ExecutionContext executionContext(TaskStore taskStore) {
143140
.nodeLookup(NodeLookup.EMPTY)
144141
.userLogRegistryFactory(EmptyUserLogRegistryFactory.INSTANCE)
145142
.metrics(Metrics.DISABLED)
146-
.dependencyResolver(new DependencyResolver() {
147-
@Override
148-
public <T> T resolveDependency(Class<T> aClass, SelectionStrategy selectionStrategy) {
149-
if (aClass == Config.class){
150-
return (T) Config.defaults();
151-
}
152-
throw new IllegalStateException("What are you doing here, young one?");
153-
}
154-
155-
@Override
156-
public <T> Optional<T> resolveOptionalDependency(Class<T> aClass) {
157-
return Optional.empty();
158-
}
159-
160-
@Override
161-
public boolean containsDependency(Class<?> aClass) {
162-
return false;
163-
}
164-
})
143+
.memoryEstimationContext(new MemoryEstimationContext(true))
165144
.build();
166145
}
167146

executor/src/main/java/org/neo4j/gds/executor/ExecutionContext.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public interface ExecutionContext {
4545

4646
DatabaseId databaseId();
4747

48+
@Nullable
4849
DependencyResolver dependencyResolver();
4950

5051
MemoryEstimationContext memoryEstimationContext();
@@ -114,8 +115,8 @@ public boolean containsDependency(Class<?> type) {
114115
}
115116
};
116117

117-
118118
MemoryEstimationContext EMPTY_MEMORY_CONTEXT = new MemoryEstimationContext(false);
119+
119120
ExecutionContext EMPTY = new ExecutionContext() {
120121

121122
@Override

pipeline/src/test/java/org/neo4j/gds/ml/pipeline/linkPipeline/LinkPredictionTrainingPipelineTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ void deriveRelationshipWeightProperty() {
185185
var executionContext = ImmutableExecutionContext.builder()
186186
.databaseId(DatabaseId.of(""))
187187
.dependencyResolver(ExecutionContext.EMPTY_DEPENDENCY_RESOLVER)
188+
.memoryEstimationContext(ExecutionContext.EMPTY_MEMORY_CONTEXT)
188189
.username("")
189190
.terminationMonitor(TerminationMonitor.EMPTY)
190191
.closeableResourceRegistry(CloseableResourceRegistry.EMPTY)
@@ -229,6 +230,7 @@ void deriveRelationshipWeightPropertyFromTrainedModel() {
229230
var executionContext = ImmutableExecutionContext.builder()
230231
.databaseId(DatabaseId.of(""))
231232
.dependencyResolver(ExecutionContext.EMPTY_DEPENDENCY_RESOLVER)
233+
.memoryEstimationContext(ExecutionContext.EMPTY_MEMORY_CONTEXT)
232234
.username("")
233235
.modelCatalog(modelCatalog)
234236
.terminationMonitor(TerminationMonitor.EMPTY)
@@ -273,6 +275,7 @@ void notDerivePropertyFromUnweightedTrainedModel() {
273275
var executionContext = ImmutableExecutionContext.builder()
274276
.databaseId(DatabaseId.of(""))
275277
.dependencyResolver(ExecutionContext.EMPTY_DEPENDENCY_RESOLVER)
278+
.memoryEstimationContext(ExecutionContext.EMPTY_MEMORY_CONTEXT)
276279
.username("")
277280
.modelCatalog(modelCatalog)
278281
.terminationMonitor(TerminationMonitor.EMPTY)

proc/common/src/main/java/org/neo4j/gds/BaseProc.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@
2626
import org.neo4j.gds.core.utils.warnings.UserLogRegistryFactory;
2727
import org.neo4j.gds.executor.ExecutionContext;
2828
import org.neo4j.gds.executor.ImmutableExecutionContext;
29+
import org.neo4j.gds.executor.MemoryEstimationContext;
2930
import org.neo4j.gds.logging.LogAdapter;
3031
import org.neo4j.gds.metrics.Metrics;
3132
import org.neo4j.gds.procedures.GraphDataScienceProcedures;
3233
import org.neo4j.gds.procedures.ProcedureCallContextReturnColumns;
33-
import org.neo4j.gds.transaction.TransactionCloseableResourceRegistry;
34-
import org.neo4j.gds.transaction.TransactionNodeLookup;
3534
import org.neo4j.gds.termination.TransactionTerminationMonitor;
3635
import org.neo4j.gds.transaction.DatabaseTransactionContext;
3736
import org.neo4j.gds.transaction.EmptyTransactionContext;
37+
import org.neo4j.gds.transaction.TransactionCloseableResourceRegistry;
3838
import org.neo4j.gds.transaction.TransactionContext;
39+
import org.neo4j.gds.transaction.TransactionNodeLookup;
3940
import org.neo4j.graphdb.GraphDatabaseService;
4041
import org.neo4j.graphdb.Transaction;
4142
import org.neo4j.internal.kernel.api.procs.ProcedureCallContext;
@@ -82,12 +83,15 @@ protected String username() {
8283
}
8384

8485
public ExecutionContext executionContext() {
86+
8587
return databaseService == null
8688
? ExecutionContext.EMPTY
8789
: ImmutableExecutionContext
8890
.builder()
8991
.databaseId(databaseId())
9092
.dependencyResolver(GraphDatabaseApiProxy.dependencyResolver(databaseService))
93+
//Base Proc is only used by pregel generated codes which have have same min-max expectation so fine
94+
.memoryEstimationContext(new MemoryEstimationContext(true))
9195
.log(new LogAdapter(log))
9296
.returnColumns(new ProcedureCallContextReturnColumns(callContext))
9397
.userLogRegistryFactory(userLogRegistryFactory)

0 commit comments

Comments
 (0)