apache / apache/arrow-java

[Java] Slow LZ4 compression using java Arrow 12.0.0

Open
#192 2 comments 0 reactions 0 assignees View on GitHub
Type: bug
Dominant language
Java
Stars
94
Forks
152
Avg merge
3d 16h
Merged PRs (30d)
11

Description

### Describe the bug, including details regarding any error messages, version, and platform.

500 MB of arrow data took a few hours to compress. A 5GB selection ran for a couple of days and did not complete. The one that did worked fine once it was done and I was able to read it back in and use it. Without compression, data writes out fine in a much shorter time frame for both. Using the following code to set up my writer:
```
ArrowFileWriter writer = new ArrowFileWriter(root, null, Channels.newChannel(fos), new HashMap<>(), IpcOption.DEFAULT, CommonsCompressionFactory.INSTANCE, CompressionUtil.CodecType.LZ4_FRAME));
```
Running code with:
```
java -version
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment GraalVM CE 22.3.2 (build 17.0.7+7-jvmci-22.3-b18)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.2 (build 17.0.7+7-jvmci-22.3-b18, mixed mode, sharing)
```

### Component(s)

Java

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported compression behavior with ArrowFileWriter, CommonsCompressionFactory, and CompressionUtil.CodecType.LZ4_FRAME using the Java and OpenJDK versions provided. Compare compressed and uncompressed write times for the reported data sizes; done means the cause of the excessive LZ4 runtime is identified and the issue has a verified resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.