The GitHub Actions job "Fory CI" on fory.git/main has failed.
Run started by GitHub user chaokunyang (triggered by chaokunyang).

Head commit for run:
9d02c8873754da243ee4f98890877e97e1149f70 / Pigsy-Monk <[email protected]>
feat(java): int array serializer support varint encoding (#3124)

## Why?

This PR adds variable-length encoding support for `int[]` arrays, which
provides space savings when arrays contain many small values. This is
particularly beneficial for use cases like sparse arrays, indices,
counters, and other scenarios where array values are predominantly small
integers.

## What does this PR do?

### Changes:

1. **Enhanced `IntArraySerializer` with variable-length encoding**:
- Added `writeInt32s()` method that uses `writeVarUint32()` for each
element
- Added `readInt32s()` method that uses `readVarInt32()` for each
element
   - Enabled via `compressIntArray()` configuration flag

3. **Added comprehensive test cases**:
- `testVariableLengthIntArray()`: Tests serialization/deserialization
correctness for int arrays
- `testVariableLengthIntArrayEncodingEfficiencyForSmallValues()`:
Demonstrates space efficiency for int arrays

### Technical Details:

- **IntArraySerializer**: Uses `writeVarUint32()` / `readVarInt32()` for
variable-length encoding
- Compression is only enabled when:
  - `compressIntArray()` is `true`

### Space Efficiency:

- **Int arrays with small values (0-127)**:
  - Fixed-length: 4 bytes/element
  - Variable-length: 1-2 bytes/element

Report URL: https://github.com/apache/fory/actions/runs/20907460289

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to