You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/05/31 14:35:05 UTC
[kylin] branch master updated: Additional small performance
improvements (#651)
This is an automated email from the ASF dual-hosted git repository.
nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new 581299b Additional small performance improvements (#651)
581299b is described below
commit 581299bcb4d81540537d784fe0a468fecfd9c84e
Author: Michael Hausegger <ha...@googlemail.com>
AuthorDate: Fri May 31 16:35:00 2019 +0200
Additional small performance improvements (#651)
* Additional small performance improvements
---
.../org/apache/kylin/dict/TableColumnValueSortedEnumerator.java | 2 +-
.../java/org/apache/kylin/dict/TrieDictionaryForestBuilder.java | 2 +-
.../main/java/org/apache/kylin/dict/global/AppendDictNode.java | 4 ++--
.../src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java | 2 +-
.../java/org/apache/kylin/measure/topn/TopNCounterSerializer.java | 2 +-
.../main/java/org/apache/kylin/metadata/model/TableExtDesc.java | 2 +-
.../main/java/org/apache/kylin/engine/spark/SparkExecutable.java | 3 +--
jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java | 2 +-
.../org/apache/kylin/rest/controller/StreamingV2Controller.java | 2 +-
.../src/main/java/org/apache/kylin/rest/util/ValidateUtil.java | 2 +-
.../org/apache/kylin/stream/core/query/StreamingQueryProfile.java | 3 ++-
.../org/apache/kylin/stream/core/storage/columnar/RawRecord.java | 8 ++------
.../main/java/org/apache/kylin/stream/server/StreamingServer.java | 2 +-
.../java/org/apache/kylin/stream/server/rest/util/QueryUtil.java | 5 ++---
14 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueSortedEnumerator.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueSortedEnumerator.java
index 8f9f74f..df10745 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueSortedEnumerator.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueSortedEnumerator.java
@@ -72,7 +72,7 @@ public class TableColumnValueSortedEnumerator implements IDictionaryValueEnumera
@Override
public boolean moveNext() throws IOException {
- while (pq.size() > 0) {
+ while (!pq.isEmpty()) {
ReaderBuffer buffer = pq.poll();
String minEntry = buffer.pop();
this.colValue = minEntry;
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForestBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForestBuilder.java
index 10d63e1..e983910 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForestBuilder.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForestBuilder.java
@@ -89,7 +89,7 @@ public class TrieDictionaryForestBuilder<T> {
if (comp > 0) {
logger.info("values not in ascending order, previous '{}', current '{}'", previousValue, valueByteArray);
isOrdered = false;
- if (trees.size() > 0) {
+ if (!trees.isEmpty()) {
throw new IllegalStateException("Invalid input data. Unordered data cannot be split into multi trees");
}
}
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/global/AppendDictNode.java b/core-dictionary/src/main/java/org/apache/kylin/dict/global/AppendDictNode.java
index c25e9b0..cdae64a 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/global/AppendDictNode.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/global/AppendDictNode.java
@@ -113,7 +113,7 @@ public class AppendDictNode {
AppendDictNode p = this;
while (true) {
bytes.write(p.part, 0, p.part.length);
- if (p.isEndOfValue || p.children.size() == 0) {
+ if (p.isEndOfValue || p.children.isEmpty()) {
break;
}
p = p.children.get(0);
@@ -381,4 +381,4 @@ public class AppendDictNode {
}, 0);
}
}
-}
\ No newline at end of file
+}
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
index 6cae22b..b745ab6 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
@@ -233,7 +233,7 @@ public class SnapshotTable extends RootPersistentEntity implements IReadableTabl
void writeData(DataOutput out) throws IOException {
out.writeInt(rowIndices.size());
- if (rowIndices.size() > 0) {
+ if (!rowIndices.isEmpty()) {
int n = rowIndices.get(0).length;
out.writeInt(n);
diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
index aec8d6d..7dac160 100644
--- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
+++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
@@ -73,7 +73,7 @@ public class TopNCounterSerializer extends DataTypeSerializer<TopNCounter<ByteAr
public void serialize(TopNCounter<ByteArray> value, ByteBuffer out) {
double[] counters = value.getCounters();
List<Counter<ByteArray>> peek = value.topK(1);
- int keyLength = peek.size() > 0 ? peek.get(0).getItem().length() : 0;
+ int keyLength = !peek.isEmpty() ? peek.get(0).getItem().length() : 0;
out.putInt(value.getCapacity());
out.putInt(value.size());
out.putInt(keyLength);
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
index 74cc2db..0890e42 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
@@ -158,7 +158,7 @@ public class TableExtDesc extends RootPersistentEntity {
String[] cardi = cardinality.split(",");
- if (0 == this.columnStats.size()) {
+ if (this.columnStats.isEmpty()) {
for (int i = 0; i < cardi.length; i++) {
ColumnStats columnStat = new ColumnStats();
columnStat.setCardinality(Long.parseLong(cardi[i]));
diff --git a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java
index b5e8cce..a6cbc23 100644
--- a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java
+++ b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java
@@ -440,8 +440,7 @@ public class SparkExecutable extends AbstractExecutable {
}
private void attachSegmentsMetadataWithDict(List<CubeSegment> segments) throws IOException {
- Set<String> dumpList = new LinkedHashSet<>();
- dumpList.addAll(JobRelatedMetaUtil.collectCubeMetadata(segments.get(0).getCubeInstance()));
+ Set<String> dumpList = new LinkedHashSet<>(JobRelatedMetaUtil.collectCubeMetadata(segments.get(0).getCubeInstance()));
ResourceStore rs = ResourceStore.getStore(segments.get(0).getConfig());
for (CubeSegment segment : segments) {
dumpList.addAll(segment.getDictionaryPaths());
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
index 5465bd0..b51fb75 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
@@ -56,7 +56,7 @@ public class KylinResultSet extends AvaticaResultSet {
List<Object> paramValues = null;
if (!(statement instanceof KylinPreparedStatement)) {
params = null;
- } else if (params != null && params.size() > 0) {
+ } else if (params != null && !params.isEmpty()) {
paramValues = ((KylinPreparedStatement) statement).getParameterJDBCValues();
}
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingV2Controller.java b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingV2Controller.java
index 03862ca..f22ec89 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingV2Controller.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingV2Controller.java
@@ -218,7 +218,7 @@ public class StreamingV2Controller extends BasicController {
incompatibleMsgs.add(msg);
}
}
- if (incompatibleMsgs.size() > 0) {
+ if (!incompatibleMsgs.isEmpty()) {
logger.info("incompatible for hive and input table schema:{}", incompatibleMsgs);
throw new BadRequestException("incompatible for hive schema and input table schema:" + incompatibleMsgs);
}
diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/ValidateUtil.java b/server-base/src/main/java/org/apache/kylin/rest/util/ValidateUtil.java
index 1d56a71..fe957fc 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/util/ValidateUtil.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/util/ValidateUtil.java
@@ -149,7 +149,7 @@ public class ValidateUtil {
}
public void validateColumn(String project, String table, Collection<String> columns) throws IOException {
- Preconditions.checkState(columns != null && columns.size() > 0);
+ Preconditions.checkState(columns != null && !columns.isEmpty());
Set<String> cols = getAllColumns(project, table);
for (String c : columns) {
if (!cols.contains(c)) {
diff --git a/stream-core/src/main/java/org/apache/kylin/stream/core/query/StreamingQueryProfile.java b/stream-core/src/main/java/org/apache/kylin/stream/core/query/StreamingQueryProfile.java
index d121139..38e31ab 100644
--- a/stream-core/src/main/java/org/apache/kylin/stream/core/query/StreamingQueryProfile.java
+++ b/stream-core/src/main/java/org/apache/kylin/stream/core/query/StreamingQueryProfile.java
@@ -187,7 +187,8 @@ public class StreamingQueryProfile {
builder.append(properties.toString());
}
builder.append(" ");
- builder.append(duration + "ms");
+ builder.append(duration);
+ builder.append("ms");
return builder.toString();
}
}
diff --git a/stream-core/src/main/java/org/apache/kylin/stream/core/storage/columnar/RawRecord.java b/stream-core/src/main/java/org/apache/kylin/stream/core/storage/columnar/RawRecord.java
index 464778d..952419a 100644
--- a/stream-core/src/main/java/org/apache/kylin/stream/core/storage/columnar/RawRecord.java
+++ b/stream-core/src/main/java/org/apache/kylin/stream/core/storage/columnar/RawRecord.java
@@ -38,12 +38,8 @@ public class RawRecord {
if (another.getDimensions().length != dimensions.length || another.getMetrics().length != metrics.length) {
throw new IllegalStateException("cannot copy record with different schema");
}
- for (int i = 0; i < another.dimensions.length; i++) {
- this.dimensions[i] = another.dimensions[i];
- }
- for (int i = 0; i < another.metrics.length; i++) {
- this.metrics[i] = another.metrics[i];
- }
+ System.arraycopy(another.dimensions, 0, this.dimensions, 0, another.dimensions.length);
+ System.arraycopy(another.metrics, 0, this.metrics, 0, another.metrics.length);
}
public RawRecord clone() {
diff --git a/stream-receiver/src/main/java/org/apache/kylin/stream/server/StreamingServer.java b/stream-receiver/src/main/java/org/apache/kylin/stream/server/StreamingServer.java
index 01e4aa4..97dc883 100644
--- a/stream-receiver/src/main/java/org/apache/kylin/stream/server/StreamingServer.java
+++ b/stream-receiver/src/main/java/org/apache/kylin/stream/server/StreamingServer.java
@@ -511,7 +511,7 @@ public class StreamingServer implements ReplicaSetLeaderSelector.LeaderChangeLis
public void remoteSegmentBuildComplete(String cubeName, String segmentName) {
StreamingSegmentManager segmentManager = getStreamingSegmentManager(cubeName);
List<String> removedSegments = segmentManager.remoteSegmentBuildComplete(segmentName);
- if (removedSegments.size() > 0) {
+ if (!removedSegments.isEmpty()) {
resumeConsumerIfPaused(cubeName);
}
}
diff --git a/stream-receiver/src/main/java/org/apache/kylin/stream/server/rest/util/QueryUtil.java b/stream-receiver/src/main/java/org/apache/kylin/stream/server/rest/util/QueryUtil.java
index 200323c..aca1fd4 100644
--- a/stream-receiver/src/main/java/org/apache/kylin/stream/server/rest/util/QueryUtil.java
+++ b/stream-receiver/src/main/java/org/apache/kylin/stream/server/rest/util/QueryUtil.java
@@ -19,6 +19,7 @@
package org.apache.kylin.stream.server.rest.util;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
@@ -106,9 +107,7 @@ public class QueryUtil {
static {
for (String q : tableauTestQueries) {
HashSet<String> temp = new HashSet<String>();
- for (String token : q.split("[\r\n\t \\(\\)]")) {
- temp.add(token);
- }
+ Collections.addAll(temp, q.split("[\r\n\t \\(\\)]"));
temp.add("");
tableauTestQueriesInToken.add(temp);
}