You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by fo...@apache.org on 2019/10/23 13:24:41 UTC
[parquet-mr] branch master updated: PARQUET-1444: Prefer ArrayList
over LinkedList (#583)
This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-mr.git
The following commit(s) were added to refs/heads/master by this push:
new 10b926f PARQUET-1444: Prefer ArrayList over LinkedList (#583)
10b926f is described below
commit 10b926f021a6a441685c01d3dfe32c7ef07b1900
Author: belugabehr <12...@users.noreply.github.com>
AuthorDate: Wed Oct 23 09:24:00 2019 -0400
PARQUET-1444: Prefer ArrayList over LinkedList (#583)
---
.../org/apache/parquet/hadoop/ColumnChunkPageReadStore.java | 12 +++++++-----
.../apache/parquet/thrift/BufferedProtocolReadToWrite.java | 4 ++--
.../java/org/apache/parquet/thrift/ParquetReadProtocol.java | 4 ++--
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageReadStore.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageReadStore.java
index 2e646e7..3067e2b 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageReadStore.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageReadStore.java
@@ -19,12 +19,14 @@
package org.apache.parquet.hadoop;
import java.io.IOException;
+import java.util.ArrayDeque;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.PrimitiveIterator;
+import java.util.Queue;
+
import org.apache.parquet.bytes.BytesInput;
import org.apache.parquet.column.ColumnDescriptor;
import org.apache.parquet.column.page.DataPage;
@@ -61,7 +63,7 @@ class ColumnChunkPageReadStore implements PageReadStore, DictionaryPageReadStore
private final BytesInputDecompressor decompressor;
private final long valueCount;
- private final List<DataPage> compressedPages;
+ private final Queue<DataPage> compressedPages;
private final DictionaryPage compressedDictionaryPage;
// null means no page synchronization is required; firstRowIndex will not be returned by the pages
private final OffsetIndex offsetIndex;
@@ -71,7 +73,7 @@ class ColumnChunkPageReadStore implements PageReadStore, DictionaryPageReadStore
ColumnChunkPageReader(BytesInputDecompressor decompressor, List<DataPage> compressedPages,
DictionaryPage compressedDictionaryPage, OffsetIndex offsetIndex, long rowCount) {
this.decompressor = decompressor;
- this.compressedPages = new LinkedList<DataPage>(compressedPages);
+ this.compressedPages = new ArrayDeque<DataPage>(compressedPages);
this.compressedDictionaryPage = compressedDictionaryPage;
long count = 0;
for (DataPage p : compressedPages) {
@@ -89,10 +91,10 @@ class ColumnChunkPageReadStore implements PageReadStore, DictionaryPageReadStore
@Override
public DataPage readPage() {
- if (compressedPages.isEmpty()) {
+ final DataPage compressedPage = compressedPages.poll();
+ if (compressedPage == null) {
return null;
}
- DataPage compressedPage = compressedPages.remove(0);
final int currentPageIndex = pageIndex++;
return compressedPage.accept(new DataPage.Visitor<DataPage>() {
@Override
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/thrift/BufferedProtocolReadToWrite.java b/parquet-thrift/src/main/java/org/apache/parquet/thrift/BufferedProtocolReadToWrite.java
index 54aac6d..2e76642 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/thrift/BufferedProtocolReadToWrite.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/thrift/BufferedProtocolReadToWrite.java
@@ -19,7 +19,7 @@
package org.apache.parquet.thrift;
import java.nio.ByteBuffer;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import org.apache.thrift.TException;
@@ -140,7 +140,7 @@ public class BufferedProtocolReadToWrite implements ProtocolPipe {
*/
@Override
public void readOne(TProtocol in, TProtocol out) throws TException {
- List<Action> buffer = new LinkedList<Action>();
+ List<Action> buffer = new ArrayList<Action>(1);
try{
boolean hasFieldsIgnored = readOneStruct(in, buffer, thriftType);
if (hasFieldsIgnored) {
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/thrift/ParquetReadProtocol.java b/parquet-thrift/src/main/java/org/apache/parquet/thrift/ParquetReadProtocol.java
index b72c85c..c85b13b 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/thrift/ParquetReadProtocol.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/thrift/ParquetReadProtocol.java
@@ -20,9 +20,9 @@ package org.apache.parquet.thrift;
import java.nio.ByteBuffer;
+import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Deque;
-import java.util.LinkedList;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TField;
@@ -43,7 +43,7 @@ class ParquetReadProtocol extends ParquetProtocol {
super("read");
}
- private Deque<TProtocol> events = new LinkedList<TProtocol>();
+ private Deque<TProtocol> events = new ArrayDeque<TProtocol>();
public void add(TProtocol p) {
events.addLast(p);