|
1 | 1 | # Version changelog |
2 | 2 |
|
| 3 | +## Release v1.1.0 |
| 4 | + |
| 5 | +### Major Changes |
| 6 | + |
| 7 | +- **License: Migrated from the Databricks License to the Apache License 2.0** |
| 8 | + |
| 9 | +### New Features and Improvements |
| 10 | + |
| 11 | +- **Arrow Flight Support (Experimental)**: Added support for ingesting Apache Arrow `VectorSchemaRoot` batches via Arrow Flight protocol |
| 12 | + - **Note**: Arrow Flight is not yet supported by default from the Zerobus server side. |
| 13 | + - New `ZerobusArrowStream` class with `ingestBatch()`, `waitForOffset()`, `flush()`, `close()`, `getUnackedBatches()` methods |
| 14 | + - New `ArrowStreamConfigurationOptions` for configuring Arrow streams (max inflight batches, recovery, timeouts, IPC compression) |
| 15 | + - Configurable IPC compression via `ArrowStreamConfigurationOptions.setIpcCompression()` (supports `LZ4_FRAME` and `ZSTD`) |
| 16 | + - New `createArrowStream()` and `recreateArrowStream()` methods on `ZerobusSdk` |
| 17 | + - Accepts `VectorSchemaRoot` directly via `ingestBatch()` (IPC serialization handled internally) |
| 18 | + - Arrow is opt-in: add `arrow-vector` and `arrow-memory-netty` as dependencies (provided scope, `>= 15.0.0`) |
| 19 | + |
| 20 | +### Bug Fixes |
| 21 | + |
| 22 | +- **Classloader Isolation Compatibility**: Fixed `NoClassDefFoundError` when using the SDK inside Spring Boot. JNI class references are now cached as `GlobalRef`s during `JNI_OnLoad`, so native daemon threads no longer rely on `FindClass` through the system classloader. |
| 23 | +- Fixed proto generation tool to skip reserved field numbers 19000-19999 for tables with more than 19000 columns |
| 24 | + |
| 25 | +### Internal Changes |
| 26 | + |
| 27 | +- Added `arrow-vector` 17.0.0 as provided dependency for Arrow Flight support |
| 28 | +- Added `arrow-memory-netty` 17.0.0 as test dependency for integration tests |
| 29 | +- Uses existing JNI Arrow Flight bindings from Rust SDK (`nativeCreateArrowStream`, `nativeIngestBatch`, etc.) |
| 30 | + |
| 31 | +### API Changes |
| 32 | + |
| 33 | +- Added `createArrowStream(String tableName, Schema schema, String clientId, String clientSecret)` to `ZerobusSdk` |
| 34 | +- Added `createArrowStream(String tableName, Schema schema, String clientId, String clientSecret, ArrowStreamConfigurationOptions options)` to `ZerobusSdk` |
| 35 | +- Added `recreateArrowStream(ZerobusArrowStream closedStream)` to `ZerobusSdk` |
| 36 | +- Added `ZerobusArrowStream` class with methods: `ingestBatch()`, `waitForOffset()`, `flush()`, `close()`, `getUnackedBatches()`, `isClosed()`, `getTableName()`, `getOptions()` |
| 37 | +- Added `ArrowStreamConfigurationOptions` class with fields: `maxInflightBatches`, `recovery`, `recoveryTimeoutMs`, `recoveryBackoffMs`, `recoveryRetries`, `serverLackOfAckTimeoutMs`, `flushTimeoutMs`, `connectionTimeoutMs`, `ipcCompression` |
| 38 | +- Added `IPCCompressionType` enum with values: `NONE`, `LZ4_FRAME`, `ZSTD` |
| 39 | +- Added optional dependency: `org.apache.arrow:arrow-vector >= 15.0.0` (provided scope) |
| 40 | + |
3 | 41 | ## Release v1.0.1 |
4 | 42 |
|
5 | 43 | ### Bug Fixes |
|
0 commit comments