From 9e77d8601bb9b340322b9175ff4c7af1151e6050 Mon Sep 17 00:00:00 2001 From: Tobias Lindaaker Date: Tue, 3 Jan 2017 11:25:26 +0100 Subject: [PATCH] Add time units to the fields --- .../src/main/java/org/neo4j/time/Clocks.java | 5 ++--- .../org/neo4j/kernel/api/ExecutingQuery.java | 14 ++++++-------- .../neo4j/kernel/api/ExecutingQueryStatus.java | 2 +- .../kernel/api/ExecutingQueryStatusTest.java | 2 +- .../neo4j/kernel/api/ExecutingQueryTest.java | 18 +++++++++--------- .../builtinprocs/QueryStatusResult.java | 18 +++++++++--------- .../builtinprocs/ListQueriesProcedureTest.java | 12 ++++++------ 7 files changed, 34 insertions(+), 37 deletions(-) diff --git a/community/common/src/main/java/org/neo4j/time/Clocks.java b/community/common/src/main/java/org/neo4j/time/Clocks.java index 19ae1792f213d..63f4a7e11650e 100644 --- a/community/common/src/main/java/org/neo4j/time/Clocks.java +++ b/community/common/src/main/java/org/neo4j/time/Clocks.java @@ -77,8 +77,7 @@ public static FakeClock fakeClock( long initialTime, TimeUnit unit ) public static FakeClock fakeClock( TemporalAccessor initialTime ) { - FakeClock clock = new FakeClock( initialTime.getLong( ChronoField.INSTANT_SECONDS ), TimeUnit.SECONDS ); - clock.forward( initialTime.getLong( ChronoField.NANO_OF_SECOND ), TimeUnit.NANOSECONDS ); - return clock; + return new FakeClock( initialTime.getLong( ChronoField.INSTANT_SECONDS ), TimeUnit.SECONDS ) + .forward( initialTime.getLong( ChronoField.NANO_OF_SECOND ), TimeUnit.NANOSECONDS ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQuery.java b/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQuery.java index 1b13615dd59a7..e2211106d493c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQuery.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQuery.java @@ -20,7 +20,6 @@ package org.neo4j.kernel.api; import java.util.Map; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLongFieldUpdater; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -31,6 +30,7 @@ import org.neo4j.time.CpuClock; import org.neo4j.time.SystemNanoClock; +import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater; /** @@ -42,7 +42,6 @@ public class ExecutingQuery newUpdater( ExecutingQuery.class, "waitTimeNanos" ); private final long queryId; private final Locks.Tracer lockTracer = ExecutingQuery.this::waitForLock; - private final String username; private final QuerySource querySource; private final String queryText; @@ -97,7 +96,6 @@ public boolean equals( Object o ) ExecutingQuery that = (ExecutingQuery) o; return queryId == that.queryId; - } @Override @@ -136,7 +134,7 @@ public long startTime() return startTime; } - public long elapsedTime() + public long elapsedTimeMillis() { return clock.millis() - startTime; } @@ -144,14 +142,14 @@ public long elapsedTime() /** * @return the CPU time used by the query, in nanoseconds. */ - public long cpuTime() + public long cpuTimeMicros() { - return cpuClock.cpuTimeNanos( threadExecutingTheQuery ) - cpuTimeNanosWhenQueryStarted; + return NANOSECONDS.toMicros( cpuClock.cpuTimeNanos( threadExecutingTheQuery ) - cpuTimeNanosWhenQueryStarted ); } - public long waitTime() + public long waitTimeMillis() { - return TimeUnit.NANOSECONDS.toMillis( waitTimeNanos + status.waitTimeNanos( clock ) ); + return NANOSECONDS.toMillis( waitTimeNanos + status.waitTimeNanos( clock ) ); } @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQueryStatus.java b/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQueryStatus.java index f9b8258f61075..a95cd8b06081b 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQueryStatus.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/ExecutingQueryStatus.java @@ -82,7 +82,7 @@ Map toMap( SystemNanoClock clock ) { Map map = new HashMap<>(); map.put( "state", "WAITING" ); - map.put( "time", TimeUnit.NANOSECONDS.toMillis( waitTimeNanos( clock ) ) ); + map.put( "waitTimeMillis", TimeUnit.NANOSECONDS.toMillis( waitTimeNanos( clock ) ) ); map.put( "resourceType", resourceType.toString() ); map.put( "resourceIds", resourceIds ); return map; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryStatusTest.java b/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryStatusTest.java index 16e9133a80145..e5f31379b599e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryStatusTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryStatusTest.java @@ -62,7 +62,7 @@ public void shouldProduceSensibleMapRepresentationInWaitingState() throws Except // then Map expected = new HashMap<>(); expected.put( "state", "WAITING" ); - expected.put( "time", 17L ); + expected.put( "waitTimeMillis", 17L ); expected.put( "resourceType", "NODE" ); expected.put( "resourceIds", resourceIds ); assertEquals( expected, statusMap ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryTest.java b/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryTest.java index dec53de4fea38..0960c948298f6 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/ExecutingQueryTest.java @@ -65,7 +65,7 @@ public void shouldReportElapsedTime() throws Exception { // when clock.forward( 10, TimeUnit.SECONDS ); - long elapsedTime = query.elapsedTime(); + long elapsedTime = query.elapsedTimeMillis(); // then assertEquals( 10_000, elapsedTime ); @@ -86,13 +86,13 @@ public void shouldReportWaitTime() throws Exception // then assertThat( query.status(), CoreMatchers.>allOf( hasEntry( "state", "WAITING" ), - hasEntry( "time", 5_000L ), + hasEntry( "waitTimeMillis", 5_000L ), hasEntry( "resourceType", "NODE" ), hasEntry( equalTo( "resourceIds" ), longArray( 17 ) ) ) ); - assertEquals( 5_000, query.waitTime() ); + assertEquals( 5_000, query.waitTimeMillis() ); } assertEquals( singletonMap( "state", "RUNNING" ), query.status() ); - assertEquals( 5_000, query.waitTime() ); + assertEquals( 5_000, query.waitTimeMillis() ); // when clock.forward( 2, TimeUnit.SECONDS ); @@ -103,13 +103,13 @@ public void shouldReportWaitTime() throws Exception // then assertThat( query.status(), CoreMatchers.>allOf( hasEntry( "state", "WAITING" ), - hasEntry( "time", 1_000L ), + hasEntry( "waitTimeMillis", 1_000L ), hasEntry( "resourceType", "RELATIONSHIP" ), hasEntry( equalTo( "resourceIds" ), longArray( 612 ) ) ) ); - assertEquals( 6_000, query.waitTime() ); + assertEquals( 6_000, query.waitTimeMillis() ); } assertEquals( singletonMap( "state", "RUNNING" ), query.status() ); - assertEquals( 6_000, query.waitTime() ); + assertEquals( 6_000, query.waitTimeMillis() ); } @Test @@ -119,10 +119,10 @@ public void shouldReportCpuTime() throws Exception cpuClock.add( 60, TimeUnit.MILLISECONDS ); // when - long cpuTime = query.cpuTime(); + long cpuTime = query.cpuTimeMicros(); // then - assertEquals( 60_000_000, cpuTime ); + assertEquals( 60_000, cpuTime ); } private Locks.WaitEvent lock( String resourceType, long resourceId ) diff --git a/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/builtinprocs/QueryStatusResult.java b/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/builtinprocs/QueryStatusResult.java index faadb2dfd1150..b3efda1678eb1 100644 --- a/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/builtinprocs/QueryStatusResult.java +++ b/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/builtinprocs/QueryStatusResult.java @@ -44,9 +44,9 @@ public class QueryStatusResult public final String startTime; public final String elapsedTime; public final String connectionDetails; - public final long cpuTime; + public final long cpuTimeMicros; public final Map status; - public final long waitTime; + public final long waitTimeMillis; public final Map metaData; QueryStatusResult( ExecutingQuery q ) throws InvalidArgumentsException @@ -57,12 +57,12 @@ public class QueryStatusResult q.queryText(), q.queryParameters(), q.startTime(), - q.elapsedTime(), + q.elapsedTimeMillis(), q.querySource(), q.metaData(), - q.cpuTime(), + q.cpuTimeMicros(), q.status(), - q.waitTime() ); + q.waitTimeMillis() ); } private QueryStatusResult( @@ -74,9 +74,9 @@ private QueryStatusResult( long elapsedTime, QuerySource querySource, Map txMetaData, - long cpuTime, + long cpuTimeMicros, Map status, - long waitTime + long waitTimeMillis ) { this.queryId = queryId.toString(); this.username = username; @@ -86,9 +86,9 @@ private QueryStatusResult( this.elapsedTime = formatInterval( elapsedTime ); this.connectionDetails = querySource.toString(); this.metaData = txMetaData; - this.cpuTime = cpuTime; + this.cpuTimeMicros = cpuTimeMicros; this.status = status; - this.waitTime = waitTime; + this.waitTimeMillis = waitTimeMillis; } private static String formatTime( final long startTime ) diff --git a/enterprise/kernel/src/test/java/org/neo4j/kernel/enterprise/builtinprocs/ListQueriesProcedureTest.java b/enterprise/kernel/src/test/java/org/neo4j/kernel/enterprise/builtinprocs/ListQueriesProcedureTest.java index 04dbec31e76f2..f4e9f8d961f96 100644 --- a/enterprise/kernel/src/test/java/org/neo4j/kernel/enterprise/builtinprocs/ListQueriesProcedureTest.java +++ b/enterprise/kernel/src/test/java/org/neo4j/kernel/enterprise/builtinprocs/ListQueriesProcedureTest.java @@ -102,8 +102,8 @@ public void shouldProvideElapsedCpuTime() throws Exception Map data = getQueryListing( "MATCH (n) SET n.v = n.v + 1" ); // then - assertTrue( "should contain a 'cpuTime' field", data.containsKey( "cpuTime" ) ); - Object cpuTime1 = data.get( "cpuTime" ); + assertTrue( "should contain a 'cpuTimeMicros' field", data.containsKey( "cpuTimeMicros" ) ); + Object cpuTime1 = data.get( "cpuTimeMicros" ); assertThat( cpuTime1, instanceOf( Long.class ) ); assertTrue( "should contain a 'status' field", data.containsKey( "status" ) ); Object status = data.get( "status" ); @@ -113,17 +113,17 @@ public void shouldProvideElapsedCpuTime() throws Exception assertEquals( "WAITING", statusMap.get( "state" ) ); assertEquals( "NODE", statusMap.get( "resourceType" ) ); assertArrayEquals( new long[]{node.getId()}, (long[]) statusMap.get( "resourceIds" ) ); - assertTrue( "should contain a 'waitTime' field", data.containsKey( "waitTime" ) ); - Object waitTime1 = data.get( "waitTime" ); + assertTrue( "should contain a 'waitTimeMillis' field", data.containsKey( "waitTimeMillis" ) ); + Object waitTime1 = data.get( "waitTimeMillis" ); assertThat( waitTime1, instanceOf( Long.class ) ); // when data = getQueryListing( "MATCH (n) SET n.v = n.v + 1" ); // then - Long cpuTime2 = (Long) data.get( "cpuTime" ); + Long cpuTime2 = (Long) data.get( "cpuTimeMicros" ); assertThat( cpuTime2, greaterThan( (Long) cpuTime1 ) ); - Long waitTime2 = (Long) data.get( "waitTime" ); + Long waitTime2 = (Long) data.get( "waitTimeMillis" ); assertThat( waitTime2, greaterThan( (Long) waitTime1 ) ); } finally