Skip to content

feat(java): speed up zonemap reads#6906

Open
summaryzb wants to merge 1 commit into
lance-format:mainfrom
summaryzb:zonemap_speedup
Open

feat(java): speed up zonemap reads#6906
summaryzb wants to merge 1 commit into
lance-format:mainfrom
summaryzb:zonemap_speedup

Conversation

@summaryzb
Copy link
Copy Markdown

Replaces per-row JNI object construction with a single Arrow IPC byte stream returned across the JNI boundary, then decoded back to List in pure Java via the new ZonemapStatsCodec. The profiled hot path drops from O(N) JNI calls (one new_object + 3 method invocations per zone, plus per-value scalar_value_to_java) to O(1) — one byte[] crossing the boundary, regardless of zone count.

Tests:

  • New ZonemapStatsCodecTest: 9 tests on synthetic IPC streams covering empty/null bytes, null-in-non-nullable across all id columns, date/ timestamp round-trip, and multi-batch ordering.
  • ZonemapStatsTest extended with 6 integration tests covering VARCHAR, FLOAT8, BIT, DATEDAY, non-TZ TIMESTAMP, and all-null zones (was IntVector-only).

Replaces per-row JNI object construction with a single Arrow IPC byte
stream returned across the JNI boundary, then decoded back to
List<ZoneStats> in pure Java via the new ZonemapStatsCodec. The profiled
hot path drops from O(N) JNI calls (one new_object + 3 method invocations
per zone, plus per-value scalar_value_to_java) to O(1) — one byte[]
crossing the boundary, regardless of zone count.

Tests:
- New ZonemapStatsCodecTest: 9 tests on synthetic IPC streams covering
  empty/null bytes, null-in-non-nullable across all id columns, date/
  timestamp round-trip, and multi-batch ordering.
- ZonemapStatsTest extended with 6 integration tests covering VARCHAR,
  FLOAT8, BIT, DATEDAY, non-TZ TIMESTAMP, and all-null zones (was
  IntVector-only).

Change-Id: If0680e1be67c9c9323d7c6d34b8727f34a599068
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@github-actions github-actions Bot added enhancement New feature or request java labels May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request java

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant