Skip to content

Commit ea43ced

Browse files
Initial commit
Signed-off-by: teodordelibasic-db <teodor.delibasic@databricks.com>
1 parent 44ed996 commit ea43ced

4 files changed

Lines changed: 359 additions & 105 deletions

File tree

rust/NEXT_CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
### Bug Fixes
1010

11+
- **Arrow Flight — acknowledgment deadlines remain active during graceful close** (Beta): a server close signal no longer pauses or extends an already-running batch deadline. Repeated close signals preserve the earliest recovery deadline, while a valid ACK already ready at either deadline is applied before recovery is considered.
1112
- **Arrow Flight — acknowledgment deadlines now start when work becomes pending** (Beta): no timer runs while the stream is idle. The timeout is an absolute deadline for the oldest pending batch: acknowledgments that leave that batch pending do not refresh it, replayed batches receive a fresh deadline on their recovered connection, and malformed or non-progressing responses cannot indefinitely postpone recovery. A valid acknowledgment already ready at expiry is applied before recovery is considered.
1213
- **Arrow Flight — invalid acknowledgment watermarks are rejected** (Beta): ACK progress is now monotonic, so delayed or duplicate responses cannot move the durable watermark backward. A response claiming more records than were actually submitted on the active connection is rejected without making buffered, unsent records appear durable.
1314
### Documentation

rust/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -804,8 +804,9 @@ For Arrow Flight streams *(Beta)*, `server_lack_of_ack_timeout_ms` is an
804804
absolute limit on how long a batch may remain pending, not an inactivity
805805
timeout. No timer runs while the stream is idle. Each batch's timer starts when
806806
it becomes pending and is not refreshed when earlier batches are acknowledged.
807-
Partial acknowledgments do not extend it. If recovery replays pending batches
808-
on a new connection, their deadlines restart relative to that connection.
807+
Partial acknowledgments and graceful close do not pause or extend it. If
808+
recovery replays pending batches on a new connection, their deadlines restart
809+
relative to that connection.
809810
Configure the timeout together with `max_inflight_batches` so the server can
810811
acknowledge a full allowed backlog within the timeout.
811812

rust/sdk/src/arrow_configuration.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@ pub struct ArrowStreamConfigurationOptions {
7070
///
7171
/// No timer runs while there are no pending batches. Each batch's timer starts when it
7272
/// becomes pending and is not refreshed when earlier batches are acknowledged. Partial
73-
/// acknowledgments do not extend it. Configure this timeout and `max_inflight_batches`
74-
/// so the server can acknowledge a full allowed backlog within the timeout.
73+
/// acknowledgments do not extend it, and graceful close does not pause it. Configure
74+
/// this timeout and `max_inflight_batches` so the server can acknowledge a full allowed
75+
/// backlog within the timeout.
7576
/// After recovery, replayed batches receive a fresh deadline relative to the recovered
7677
/// connection. If a batch remains pending when its deadline expires, the stream is
7778
/// considered failed and recovery is triggered (if enabled).

0 commit comments

Comments
 (0)