Skip to content

Upgrade Sparkey to 3.5.0#5827

Merged
clairemcginty merged 1 commit intospotify:mainfrom
spkrka:krka/sparkey-upgrade
Dec 15, 2025
Merged

Upgrade Sparkey to 3.5.0#5827
clairemcginty merged 1 commit intospotify:mainfrom
spkrka:krka/sparkey-upgrade

Conversation

@spkrka
Copy link
Copy Markdown
Member

@spkrka spkrka commented Dec 14, 2025

Summary

  • Upgrade Sparkey from 3.2.5 to 3.5.0
  • Replace deprecated ThreadLocalSparkeyReader with Sparkey.open()

Changes from 3.2.5 to 3.5.0

3.5.0

  • Java 22+ optimizations with MemorySegment-based implementations for zero-copy I/O
  • Performance improvements for uncompressed files (up to 38% faster with 8 threads)
  • Support for values larger than 2GB on Java 22+
  • VLQ optimization with inlined reads in uncompressed hash lookups
  • Type safety improvements with covariant return types

3.4.0

  • Performance optimizations with readFullyCompare() method (11-17% improvement in high-concurrency workloads)
  • SIMD optimizations for byte array comparisons on Java 9+
  • PooledSparkeyReader improvements with lock-free atomic operations
  • Fixed thread-safety bug in PooledSparkeyReader.getAsEntry()

3.3.0

  • Default implementation change: Sparkey.open() now returns PooledSparkeyReader instead of ThreadLocalSparkeyReader
  • PooledSparkeyReader provides better memory safety for Java 21+ applications using virtual threads
  • ThreadLocalSparkeyReader is deprecated but available via Sparkey.openThreadLocalReader()

Code changes

  • Updated build.sbt: sparkeyVersion from 3.2.5 to 3.5.0
  • Updated SparkeyUri.scala: replaced explicit ThreadLocalSparkeyReader usage with Sparkey.open()
  • Updated import from com.spotify.sparkey.extra.ThreadLocalSparkeyReader to com.spotify.sparkey.Sparkey

Test plan

  • Compilation successful

🤖 Generated with Claude Code

Changes from 3.2.5 to 3.5.0:

## 3.5.0
- Java 22+ optimizations with MemorySegment-based implementations for
  zero-copy I/O
- Performance improvements for uncompressed files (up to 38% faster with
  8 threads)
- Support for values larger than 2GB on Java 22+
- VLQ optimization with inlined reads in uncompressed hash lookups
- Type safety improvements with covariant return types

## 3.4.0
- Performance optimizations with readFullyCompare() method (11-17%
  improvement in high-concurrency workloads)
- SIMD optimizations for byte array comparisons on Java 9+
- PooledSparkeyReader improvements with lock-free atomic operations
- Fixed thread-safety bug in PooledSparkeyReader.getAsEntry()

## 3.3.0
- Default implementation change: Sparkey.open() now returns
  PooledSparkeyReader instead of ThreadLocalSparkeyReader
- PooledSparkeyReader provides better memory safety for Java 21+
  applications using virtual threads
- ThreadLocalSparkeyReader is deprecated but available via
  Sparkey.openThreadLocalReader()

Code changes:
- Replaced explicit ThreadLocalSparkeyReader usage with Sparkey.open()
- Updated imports from com.spotify.sparkey.extra.ThreadLocalSparkeyReader
  to com.spotify.sparkey.Sparkey

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Dec 14, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 61.48%. Comparing base (88294b9) to head (e797b81).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5827      +/-   ##
==========================================
- Coverage   61.49%   61.48%   -0.01%     
==========================================
  Files         317      317              
  Lines       11650    11650              
  Branches      818      818              
==========================================
- Hits         7164     7163       -1     
- Misses       4486     4487       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@clairemcginty clairemcginty merged commit f1da427 into spotify:main Dec 15, 2025
11 checks passed
@spkrka spkrka deleted the krka/sparkey-upgrade branch December 16, 2025 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants