From 6b22969e19db71b97f65cb7b677714483ef98b58 Mon Sep 17 00:00:00 2001 From: Nathaniel Bauernfeind Date: Fri, 3 Nov 2023 19:48:43 -0600 Subject: [PATCH] Use Long for EvaluationNumber in all Places --- .../table/impl/perf/PerformanceEntry.java | 6 +++--- .../impl/perf/QueryPerformanceNugget.java | 18 ++++++++--------- .../impl/perf/QueryPerformanceRecorder.java | 20 ++++++++++--------- .../UpdatePerformanceStreamPublisher.java | 4 ++-- .../table/impl/util/AsyncErrorImpl.java | 4 ++-- .../impl/util/AsyncErrorStreamPublisher.java | 12 +++++------ .../engine/table/impl/util/EngineMetrics.java | 11 +++++----- .../util/QueryOperationPerformanceImpl.java | 4 ++-- ...ryOperationPerformanceStreamPublisher.java | 10 ++++------ .../table/impl/util/QueryPerformanceImpl.java | 4 ++-- .../util/QueryPerformanceStreamPublisher.java | 7 ++----- .../QueryOperationPerformanceLogLogger.java | 8 ++++---- .../QueryPerformanceLogLogger.java | 13 ++++++------ .../server/session/SessionState.java | 4 ++-- 14 files changed, 61 insertions(+), 64 deletions(-) diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/PerformanceEntry.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/PerformanceEntry.java index e3ee21cf02b..19ecf2b0e24 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/PerformanceEntry.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/PerformanceEntry.java @@ -19,7 +19,7 @@ */ public class PerformanceEntry extends BasePerformanceEntry implements TableListener.Entry { private final int id; - private final int evaluationNumber; + private final long evaluationNumber; private final int operationNumber; private final String description; private final String callerLine; @@ -42,7 +42,7 @@ public class PerformanceEntry extends BasePerformanceEntry implements TableListe private final RuntimeMemory.Sample startSample; private final RuntimeMemory.Sample endSample; - PerformanceEntry(final int id, final int evaluationNumber, final int operationNumber, + PerformanceEntry(final int id, final long evaluationNumber, final int operationNumber, final String description, final String callerLine, final String updateGraphName) { this.id = id; this.evaluationNumber = evaluationNumber; @@ -144,7 +144,7 @@ public int getId() { return id; } - public int getEvaluationNumber() { + public long getEvaluationNumber() { return evaluationNumber; } diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceNugget.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceNugget.java index 31378c1eeb7..a367fb3df42 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceNugget.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceNugget.java @@ -32,8 +32,8 @@ public class QueryPerformanceNugget extends BasePerformanceEntry implements Seri */ static final QueryPerformanceNugget DUMMY_NUGGET = new QueryPerformanceNugget(); - private final int evaluationNumber; - private final int parentEvaluationNumber; + private final long evaluationNumber; + private final long parentEvaluationNumber; private final int operationNumber; private final int parentOperationNumber; private final int depth; @@ -68,7 +68,7 @@ public class QueryPerformanceNugget extends BasePerformanceEntry implements Seri * @param evaluationNumber A unique identifier for the query evaluation that triggered this nugget creation * @param description The operation description */ - QueryPerformanceNugget(final int evaluationNumber, final int parentEvaluationNumber, final String description) { + QueryPerformanceNugget(final long evaluationNumber, final long parentEvaluationNumber, final String description) { this(evaluationNumber, parentEvaluationNumber, NULL_INT, NULL_INT, NULL_INT, description, false, true, NULL_LONG); } @@ -88,8 +88,8 @@ public class QueryPerformanceNugget extends BasePerformanceEntry implements Seri * @param inputSize The size of the input data */ QueryPerformanceNugget( - final int evaluationNumber, - final int parentEvaluationNumber, + final long evaluationNumber, + final long parentEvaluationNumber, final int operationNumber, final int parentOperationNumber, final int depth, @@ -133,8 +133,8 @@ public class QueryPerformanceNugget extends BasePerformanceEntry implements Seri private QueryPerformanceNugget() { startMemorySample = null; endMemorySample = null; - evaluationNumber = NULL_INT; - parentEvaluationNumber = NULL_INT; + evaluationNumber = NULL_LONG; + parentEvaluationNumber = NULL_LONG; operationNumber = NULL_INT; parentOperationNumber = NULL_INT; depth = 0; @@ -225,11 +225,11 @@ public String toString() { + ":" + callerLine; } - public int getEvaluationNumber() { + public long getEvaluationNumber() { return evaluationNumber; } - public int getParentEvaluationNumber() { + public long getParentEvaluationNumber() { return parentEvaluationNumber; } diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceRecorder.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceRecorder.java index 2739f1e7d2f..037f202dafe 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceRecorder.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/QueryPerformanceRecorder.java @@ -40,7 +40,7 @@ public class QueryPerformanceRecorder implements Serializable { private static final long serialVersionUID = 2L; private static final String[] packageFilters; - private volatile boolean hasSubQuery; + private volatile boolean mustLogForHierarchicalConsistency; private QueryPerformanceNugget queryNugget; private final ArrayList operationNuggets = new ArrayList<>(); @@ -102,7 +102,7 @@ private QueryPerformanceRecorder() { * @param description A description for the query. */ public void startQuery(final String description) { - startQuery(description, QueryConstants.NULL_INT); + startQuery(description, QueryConstants.NULL_LONG); } /** @@ -111,7 +111,7 @@ public void startQuery(final String description) { * @param description A description for the query. * @param parentEvaluationNumber The evaluation number of the parent query. */ - public synchronized void startQuery(final String description, final int parentEvaluationNumber) { + public synchronized void startQuery(final String description, final long parentEvaluationNumber) { clear(); final int evaluationNumber = queriesProcessed.getAndIncrement(); queryNugget = new QueryPerformanceNugget(evaluationNumber, parentEvaluationNumber, description); @@ -291,7 +291,7 @@ synchronized boolean releaseNugget(QueryPerformanceNugget nugget) { } public interface EntrySetter { - void set(int evaluationNumber, int operationNumber, boolean uninstrumented); + void set(long evaluationNumber, int operationNumber, boolean uninstrumented); } public synchronized QueryPerformanceNugget getOuterNugget() { @@ -300,7 +300,7 @@ public synchronized QueryPerformanceNugget getOuterNugget() { // returns true if uninstrumented code data was captured. public void setQueryData(final EntrySetter setter) { - final int evaluationNumber; + final long evaluationNumber; final int operationNumber; boolean uninstrumented = false; synchronized (this) { @@ -326,7 +326,9 @@ public void setQueryData(final EntrySetter setter) { } public void accumulate(@NotNull final QueryPerformanceRecorder subQuery) { - hasSubQuery = true; + if (subQuery.mustLogForHierarchicalConsistency()) { + mustLogForHierarchicalConsistency = true; + } queryNugget.addBaseEntry(subQuery.queryNugget); } @@ -337,12 +339,12 @@ private void clear() { userNuggetStack.clear(); } - public int getEvaluationNumber() { + public long getEvaluationNumber() { return queryNugget.getEvaluationNumber(); } - public boolean hasSubQuery() { - return hasSubQuery; + public boolean mustLogForHierarchicalConsistency() { + return mustLogForHierarchicalConsistency || !operationNuggets.isEmpty(); } public synchronized QueryPerformanceNugget getQueryLevelPerformanceData() { diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/UpdatePerformanceStreamPublisher.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/UpdatePerformanceStreamPublisher.java index c65126084f0..ff63b96eec6 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/UpdatePerformanceStreamPublisher.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/perf/UpdatePerformanceStreamPublisher.java @@ -22,7 +22,7 @@ class UpdatePerformanceStreamPublisher implements StreamPublisher { private static final TableDefinition DEFINITION = TableDefinition.of( ColumnDefinition.ofString("ProcessUniqueId"), ColumnDefinition.ofInt("EntryId"), - ColumnDefinition.ofInt("EvaluationNumber"), + ColumnDefinition.ofLong("EvaluationNumber"), ColumnDefinition.ofInt("OperationNumber"), ColumnDefinition.ofString("EntryDescription"), ColumnDefinition.ofString("EntryCallerLine"), @@ -70,7 +70,7 @@ public void register(@NotNull StreamConsumer consumer) { public synchronized void add(IntervalLevelDetails intervalLevelDetails, PerformanceEntry performanceEntry) { chunks[0].asWritableObjectChunk().add(EngineMetrics.getProcessInfo().getId().value()); chunks[1].asWritableIntChunk().add(performanceEntry.getId()); - chunks[2].asWritableIntChunk().add(performanceEntry.getEvaluationNumber()); + chunks[2].asWritableLongChunk().add(performanceEntry.getEvaluationNumber()); chunks[3].asWritableIntChunk().add(performanceEntry.getOperationNumber()); chunks[4].asWritableObjectChunk().add(performanceEntry.getDescription()); chunks[5].asWritableObjectChunk().add(performanceEntry.getCallerLine()); diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorImpl.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorImpl.java index f13d3799136..45cf2166e00 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorImpl.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorImpl.java @@ -39,7 +39,7 @@ public void add( @Nullable TableListener.Entry entry, @Nullable TableListener.Entry sourceEntry, Throwable originalException) { - final int evaluationNumber; + final long evaluationNumber; final int operationNumber; final String description; if (entry instanceof PerformanceEntry) { @@ -52,7 +52,7 @@ public void add( operationNumber = QueryConstants.NULL_INT; description = null; } - final int sourceEvaluationNumber; + final long sourceEvaluationNumber; final int sourceOperationNumber; final String sourceDescription; if (sourceEntry instanceof PerformanceEntry) { diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorStreamPublisher.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorStreamPublisher.java index f719fe2d623..d891df9e041 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorStreamPublisher.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/AsyncErrorStreamPublisher.java @@ -20,10 +20,10 @@ class AsyncErrorStreamPublisher implements StreamPublisher { private static final TableDefinition DEFINITION = TableDefinition.of( ColumnDefinition.ofTime("Time"), - ColumnDefinition.ofInt("EvaluationNumber"), + ColumnDefinition.ofLong("EvaluationNumber"), ColumnDefinition.ofInt("OperationNumber"), ColumnDefinition.ofString("Description"), - ColumnDefinition.ofInt("SourceQueryEvaluationNumber"), + ColumnDefinition.ofLong("SourceQueryEvaluationNumber"), ColumnDefinition.ofInt("SourceQueryOperationNumber"), ColumnDefinition.ofString("SourceQueryDescription"), ColumnDefinition.of("Cause", Type.ofCustom(Throwable.class))); @@ -51,18 +51,18 @@ public void register(@NotNull StreamConsumer consumer) { public synchronized void add( long timeNanos, - int evaluationNumber, + long evaluationNumber, int operationNumber, String description, - int sourceQueryEvaluationNumber, + long sourceQueryEvaluationNumber, int sourceQueryOperationNumber, String sourceQueryDescription, Throwable cause) { chunks[0].asWritableLongChunk().add(timeNanos); - chunks[1].asWritableIntChunk().add(evaluationNumber); + chunks[1].asWritableLongChunk().add(evaluationNumber); chunks[2].asWritableIntChunk().add(operationNumber); chunks[3].asWritableObjectChunk().add(description); - chunks[4].asWritableIntChunk().add(sourceQueryEvaluationNumber); + chunks[4].asWritableLongChunk().add(sourceQueryEvaluationNumber); chunks[5].asWritableIntChunk().add(sourceQueryOperationNumber); chunks[6].asWritableObjectChunk().add(sourceQueryDescription); chunks[7].asWritableObjectChunk().add(cause); diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/EngineMetrics.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/EngineMetrics.java index 0cb84223bf4..18dd1443180 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/EngineMetrics.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/EngineMetrics.java @@ -19,7 +19,6 @@ import io.deephaven.process.ProcessInfoConfig; import io.deephaven.stats.Driver; import io.deephaven.stats.StatsIntradayLogger; -import io.deephaven.util.QueryConstants; import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -122,17 +121,17 @@ public void logQueryProcessingResults(@NotNull final QueryProcessingResults resu "queryProcessingResults.getRecorder().getQueryLevelPerformanceData()"); synchronized (qplLogger) { - qplLogger.log(results.getRecorder().getEvaluationNumber(), results, queryNugget); + qplLogger.log(results, queryNugget); } final List nuggets = results.getRecorder().getOperationLevelPerformanceData(); synchronized (qoplLogger) { - if (results.getRecorder().hasSubQuery() || !nuggets.isEmpty()) { + if (results.getRecorder().mustLogForHierarchicalConsistency()) { // if this query has sub queries or op nuggets add log an entry to enable hierarchical consistency - qoplLogger.log(queryNugget.getOperationNumber(), queryNugget); + qoplLogger.log(queryNugget); } - for (QueryPerformanceNugget n : nuggets) { - qoplLogger.log(n.getOperationNumber(), n); + for (QueryPerformanceNugget nugget : nuggets) { + qoplLogger.log(nugget); } } } catch (final Exception e) { diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceImpl.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceImpl.java index d3bca54f85b..814fdeca0c1 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceImpl.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceImpl.java @@ -39,8 +39,8 @@ public Table blinkTable() { } @Override - public void log(Flags flags, int operationNumber, QueryPerformanceNugget nugget) throws IOException { + public void log(Flags flags, QueryPerformanceNugget nugget) throws IOException { publisher.add(id.value(), nugget); - qoplLogger.log(flags, operationNumber, nugget); + qoplLogger.log(flags, nugget); } } diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceStreamPublisher.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceStreamPublisher.java index a588c63df97..c46f3d3910d 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceStreamPublisher.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryOperationPerformanceStreamPublisher.java @@ -12,9 +12,7 @@ import io.deephaven.stream.StreamChunkUtils; import io.deephaven.stream.StreamConsumer; import io.deephaven.stream.StreamPublisher; -import io.deephaven.time.DateTimeUtils; import io.deephaven.util.BooleanUtils; -import io.deephaven.util.QueryConstants; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -23,8 +21,8 @@ class QueryOperationPerformanceStreamPublisher implements StreamPublisher { private static final TableDefinition DEFINITION = TableDefinition.of( ColumnDefinition.ofString("ProcessUniqueId"), - ColumnDefinition.ofInt("EvaluationNumber"), - ColumnDefinition.ofInt("ParentEvaluationNumber"), + ColumnDefinition.ofLong("EvaluationNumber"), + ColumnDefinition.ofLong("ParentEvaluationNumber"), ColumnDefinition.ofInt("OperationNumber"), ColumnDefinition.ofInt("ParentOperationNumber"), ColumnDefinition.ofInt("Depth"), @@ -73,8 +71,8 @@ public synchronized void add( final QueryPerformanceNugget nugget) { chunks[0].asWritableObjectChunk().add(id); - chunks[1].asWritableIntChunk().add(nugget.getEvaluationNumber()); - chunks[2].asWritableIntChunk().add(nugget.getParentEvaluationNumber()); + chunks[1].asWritableLongChunk().add(nugget.getEvaluationNumber()); + chunks[2].asWritableLongChunk().add(nugget.getParentEvaluationNumber()); chunks[3].asWritableIntChunk().add(nugget.getOperationNumber()); chunks[4].asWritableIntChunk().add(nugget.getParentOperationNumber()); chunks[5].asWritableIntChunk().add(nugget.getDepth()); diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceImpl.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceImpl.java index c65de4f5a7c..311cbb906b0 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceImpl.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceImpl.java @@ -40,9 +40,9 @@ public Table blinkTable() { } @Override - public void log(Flags flags, long evaluationNumber, QueryProcessingResults queryProcessingResults, + public void log(Flags flags, QueryProcessingResults queryProcessingResults, QueryPerformanceNugget nugget) throws IOException { publisher.add(id.value(), queryProcessingResults, nugget); - qplLogger.log(flags, evaluationNumber, queryProcessingResults, nugget); + qplLogger.log(flags, queryProcessingResults, nugget); } } diff --git a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceStreamPublisher.java b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceStreamPublisher.java index 0f3e11bf1a4..7551f98498c 100644 --- a/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceStreamPublisher.java +++ b/engine/table/src/main/java/io/deephaven/engine/table/impl/util/QueryPerformanceStreamPublisher.java @@ -14,7 +14,6 @@ import io.deephaven.stream.StreamConsumer; import io.deephaven.stream.StreamPublisher; import io.deephaven.util.BooleanUtils; -import io.deephaven.util.QueryConstants; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -71,12 +70,10 @@ public synchronized void add( chunks[0].asWritableObjectChunk().add(id); // ColumnDefinition.ofLong("EvaluationNumber") - final int en = nugget.getEvaluationNumber(); - chunks[1].asWritableLongChunk().add(en == QueryConstants.NULL_INT ? QueryConstants.NULL_LONG : en); + chunks[1].asWritableLongChunk().add(nugget.getEvaluationNumber()); // ColumnDefinition.ofLong("ParentEvaluationNumber") - final int pen = nugget.getParentEvaluationNumber(); - chunks[2].asWritableLongChunk().add(pen == QueryConstants.NULL_INT ? QueryConstants.NULL_LONG : pen); + chunks[2].asWritableLongChunk().add(nugget.getParentEvaluationNumber()); // ColumnDefinition.ofTime("StartTime"); chunks[3].asWritableLongChunk().add(nugget.getStartClockTime()); diff --git a/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryOperationPerformanceLogLogger.java b/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryOperationPerformanceLogLogger.java index a981c646b09..b9ba707353e 100644 --- a/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryOperationPerformanceLogLogger.java +++ b/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryOperationPerformanceLogLogger.java @@ -13,17 +13,17 @@ * queries. */ public interface QueryOperationPerformanceLogLogger { - default void log(final int operationNumber, final QueryPerformanceNugget nugget) throws IOException { - log(DEFAULT_INTRADAY_LOGGER_FLAGS, operationNumber, nugget); + default void log(final QueryPerformanceNugget nugget) throws IOException { + log(DEFAULT_INTRADAY_LOGGER_FLAGS, nugget); } - void log(final Row.Flags flags, final int operationNumber, final QueryPerformanceNugget nugget) throws IOException; + void log(Row.Flags flags, QueryPerformanceNugget nugget) throws IOException; enum Noop implements QueryOperationPerformanceLogLogger { INSTANCE; @Override - public void log(Flags flags, int operationNumber, QueryPerformanceNugget nugget) throws IOException { + public void log(Flags flags, QueryPerformanceNugget nugget) throws IOException { } } diff --git a/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryPerformanceLogLogger.java b/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryPerformanceLogLogger.java index 1d534683a44..082dff4c2f9 100644 --- a/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryPerformanceLogLogger.java +++ b/engine/table/src/main/java/io/deephaven/engine/tablelogger/QueryPerformanceLogLogger.java @@ -14,20 +14,21 @@ * each will have its own set of query performance log entries. */ public interface QueryPerformanceLogLogger { - default void log(final long evaluationNumber, final QueryProcessingResults queryProcessingResults, + default void log( + final QueryProcessingResults queryProcessingResults, final QueryPerformanceNugget nugget) throws IOException { - log(DEFAULT_INTRADAY_LOGGER_FLAGS, evaluationNumber, queryProcessingResults, nugget); + log(DEFAULT_INTRADAY_LOGGER_FLAGS, queryProcessingResults, nugget); } - void log(final Row.Flags flags, final long evaluationNumber, final QueryProcessingResults queryProcessingResults, - final QueryPerformanceNugget nugget) throws IOException; + void log(Row.Flags flags, QueryProcessingResults queryProcessingResults, QueryPerformanceNugget nugget) + throws IOException; enum Noop implements QueryPerformanceLogLogger { INSTANCE; @Override - public void log(Flags flags, long evaluationNumber, QueryProcessingResults queryProcessingResults, - QueryPerformanceNugget nugget) throws IOException { + public void log(Flags flags, QueryProcessingResults queryProcessingResults, QueryPerformanceNugget nugget) + throws IOException { } } diff --git a/server/src/main/java/io/deephaven/server/session/SessionState.java b/server/src/main/java/io/deephaven/server/session/SessionState.java index cf303b5e258..a8175503635 100644 --- a/server/src/main/java/io/deephaven/server/session/SessionState.java +++ b/server/src/main/java/io/deephaven/server/session/SessionState.java @@ -933,9 +933,9 @@ private void doExport() { try (final SafeCloseable ignored1 = session.executionContext.open()) { try (final SafeCloseable ignored2 = LivenessScopeStack.open()) { queryProcessingResults = new QueryProcessingResults(QueryPerformanceRecorder.getInstance()); - final int parentEvaluationNumber = queryPerformanceRecorder != null + final long parentEvaluationNumber = queryPerformanceRecorder != null ? queryPerformanceRecorder.getEvaluationNumber() - : QueryConstants.NULL_INT; + : QueryConstants.NULL_LONG; QueryPerformanceRecorder.getInstance().startQuery( "ExportObject#doWork(session=" + session.sessionId + ",exportId=" + logIdentity + ")", parentEvaluationNumber);