Skip to content

Commit a531698

Browse files
committed
Add only Serializer benchmark for V1 and V2
1 parent cbbeebd commit a531698

File tree

4 files changed

+97
-1
lines changed

4 files changed

+97
-1
lines changed

performance/src/test/com/clickhouse/benchmark/clients/Components.java

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
package com.clickhouse.benchmark.clients;
22

33
import com.clickhouse.benchmark.data.DataSet;
4+
import com.clickhouse.client.api.data_formats.RowBinaryFormatWriter;
5+
import com.clickhouse.client.api.insert.InsertResponse;
46
import com.clickhouse.client.api.internal.ClickHouseLZ4OutputStream;
7+
import com.clickhouse.data.ClickHouseColumn;
8+
import com.clickhouse.data.ClickHouseDataProcessor;
9+
import com.clickhouse.data.ClickHouseFormat;
510
import com.clickhouse.data.ClickHouseOutputStream;
11+
import com.clickhouse.data.ClickHousePassThruStream;
12+
import com.clickhouse.data.ClickHouseRecord;
13+
import com.clickhouse.data.ClickHouseSerializer;
614
import com.clickhouse.data.stream.Lz4OutputStream;
715
import net.jpountz.lz4.LZ4Factory;
816
import org.openjdk.jmh.annotations.Benchmark;
917
import org.slf4j.Logger;
1018
import org.slf4j.LoggerFactory;
1119

1220
import java.io.ByteArrayOutputStream;
21+
import java.io.OutputStream;
22+
import java.util.List;
23+
import java.util.Map;
1324

1425
public class Components extends BenchmarkBase {
1526
private static final Logger LOGGER = LoggerFactory.getLogger(Components.class);
@@ -42,4 +53,70 @@ public void CompressingOutputStreamV2(DataState dataState) {
4253
LOGGER.error("Error: ", e);
4354
}
4455
}
56+
57+
private OutputStream createEmptyOutputStream() {
58+
return new OutputStream() {
59+
private long count = 0;
60+
61+
@Override
62+
public void write(int b) {
63+
count++;
64+
}
65+
66+
@Override
67+
public void write(byte[] b) {
68+
count += b.length;
69+
}
70+
71+
@Override
72+
public void write(byte[] b, int off, int len) {
73+
count += len;
74+
}
75+
76+
@Override
77+
public void flush() {
78+
79+
}
80+
81+
@Override
82+
public void close() {
83+
}
84+
};
85+
}
86+
@Benchmark
87+
public void SerializerOutputStreamV1(DataState dataState) {
88+
OutputStream empty = createEmptyOutputStream();
89+
90+
try {
91+
ClickHouseOutputStream chos = ClickHouseOutputStream.of(empty);
92+
ClickHouseDataProcessor p = dataState.dataSet.getClickHouseDataProcessor();
93+
ClickHouseSerializer[] serializers = p.getSerializers(getClientV1().getConfig(), p.getColumns());
94+
for (ClickHouseRecord record : dataState.dataSet.getClickHouseRecords()) {
95+
for (int i = 0; i < serializers.length; i++) {
96+
serializers[i].serialize(record.getValue(i), chos);
97+
}
98+
}
99+
chos.flush();
100+
} catch (Exception e) {
101+
LOGGER.error("Error: ", e);
102+
}
103+
}
104+
105+
@Benchmark
106+
public void SerializerOutputStreamV2(DataState dataState) {
107+
OutputStream empty = createEmptyOutputStream();
108+
try {
109+
RowBinaryFormatWriter w = new RowBinaryFormatWriter(empty, dataState.dataSet.getSchema(), ClickHouseFormat.RowBinary);
110+
List<ClickHouseColumn> columns = dataState.dataSet.getSchema().getColumns();
111+
for (Map<String, Object> row : dataState.dataSet.getRows()) {
112+
for (ClickHouseColumn column : columns) {
113+
w.setValue(column.getColumnName(),row.get(column.getColumnName()));
114+
}
115+
w.commitRow();
116+
}
117+
empty.flush();
118+
} catch (Exception e) {
119+
LOGGER.error("Error: ", e);
120+
}
121+
}
45122
}

performance/src/test/com/clickhouse/benchmark/data/DataSet.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ default InputStream getInputStream(int rowId, ClickHouseFormat format) {
4444

4545
List<ClickHouseRecord> getClickHouseRecords();
4646

47+
List<Map<String, Object>> getRowsLimit(int numRows);
48+
49+
List<ClickHouseRecord> getClickHouseRecordsLimit(int numRows);
50+
4751
void setClickHouseRecords(List<ClickHouseRecord> records);
4852

4953
void setClickHouseDataProcessor(ClickHouseDataProcessor dataProcessor);

performance/src/test/com/clickhouse/benchmark/data/FileDataSet.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,14 @@ public List<byte[]> getBytesList(ClickHouseFormat format) {
117117
public List<Map<String, Object>> getRows() {
118118
return data;
119119
}
120+
@Override
121+
public List<Map<String, Object>> getRowsLimit(int numRows) {
122+
return data.subList(0, numRows);
123+
}
124+
@Override
125+
public List<ClickHouseRecord> getClickHouseRecordsLimit(int numRows) {
126+
return clickHouseRecords.subList(0, numRows);
127+
}
120128

121129
@Override
122130
public ClickHouseFormat getFormat() {

performance/src/test/com/clickhouse/benchmark/data/SimpleDataSet.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,14 @@ public List<Map<String, Object>> getRows() {
150150
public List<ClickHouseRecord> getClickHouseRecords() {
151151
return clickHouseRecords;
152152
}
153-
153+
@Override
154+
public List<Map<String, Object>> getRowsLimit(int numRows) {
155+
return data.subList(0, numRows);
156+
}
157+
@Override
158+
public List<ClickHouseRecord> getClickHouseRecordsLimit(int numRows) {
159+
return clickHouseRecords.subList(0, numRows);
160+
}
154161
@Override
155162
public void setClickHouseRecords(List<ClickHouseRecord> records) {
156163
clickHouseRecords = records;

0 commit comments

Comments
 (0)