Skip to content

Commit fea6a04

Browse files
committed
fixed reallocation buffer in LZ4 stream
1 parent 50ffab2 commit fea6a04

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/AbstractBinaryFormatReader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ protected AbstractBinaryFormatReader(InputStream inputStream, QuerySettings quer
7373
protected Map<String, Object> currentRecord = new ConcurrentHashMap<>();
7474
protected Map<String, Object> nextRecord = new ConcurrentHashMap<>();
7575

76-
protected AtomicBoolean nextRecordEmpty = new AtomicBoolean(true);
76+
protected volatile boolean nextRecordEmpty = true;
7777

7878
/**
7979
* Reads next record into POJO object using set of serializers.
@@ -170,11 +170,11 @@ public boolean hasNext() {
170170
protected void readNextRecord() {
171171
initialState = false;
172172
try {
173-
nextRecordEmpty.set(true);
173+
nextRecordEmpty = true;
174174
if (!readRecord(nextRecord)) {
175175
endReached();
176176
} else {
177-
nextRecordEmpty.compareAndSet(true, false);
177+
nextRecordEmpty = false;
178178
}
179179
} catch (IOException e) {
180180
endReached();
@@ -188,7 +188,7 @@ public Map<String, Object> next() {
188188
return null;
189189
}
190190

191-
if (!nextRecordEmpty.get()) {
191+
if (!nextRecordEmpty) {
192192
Map<String, Object> tmp = currentRecord;
193193
currentRecord = nextRecord;
194194
nextRecord = tmp;

examples/demo-service/src/main/java/com/clickhouse/demo_service/DatasetController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ public List<VirtualDatasetRecord> directDatasetFetch(@RequestParam(name = "limit
107107
long duration = System.nanoTime() - start;
108108

109109
// report metrics (only for demonstration purposes)
110-
log.info(String.format("records: %d, read time: %d ms (%d bytes), client time: %d ms, server time: %d ms",
111-
result.size(), TimeUnit.NANOSECONDS.toMillis(duration), response.getReadBytes(),
110+
log.info(String.format("records: %d, read time: %d ms, client time: %d ms, server time: %d ms",
111+
result.size(), TimeUnit.NANOSECONDS.toMillis(duration),
112112
response.getMetrics().getMetric(ClientMetrics.OP_DURATION).getLong(),
113113
TimeUnit.NANOSECONDS.toMillis(response.getServerTime())));
114114

examples/demo-service/src/main/java/com/clickhouse/demo_service/DbConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ public Client chDirectClient(@Value("${db.url}") String dbUrl, @Value("${db.user
2121
// sets the maximum number of connections to the server at a time
2222
// this is important for services handling many concurrent requests to ClickHouse
2323
.setMaxConnections(100)
24-
.setSocketTcpNodelay(true)
25-
.setLZ4UncompressedBufferSize(1 * 1024 * 1024) // 1MB buffer size
26-
.setClientNetworkBufferSize(1 * 1024 * 1024) // 1MB buffer size
24+
.setLZ4UncompressedBufferSize(10 * 1024 * 1024) // 10MB buffer size
25+
.setClientNetworkBufferSize(10 * 1024 * 1024) // 10MB buffer size
2726
.allowBinaryReaderToReuseBuffers(true) // using buffer pool for binary reader
2827
.build();
2928
}

0 commit comments

Comments
 (0)