hubcio opened a new pull request, #4506: URL: https://github.com/apache/iggy/pull/4506
Backups refused requests without directing clients to a partition's primary. HTTP tried writes on every node, and partition lookup required send permission. Add command 105 for partition routes with send or poll permission, NotPrimary (89), and replica IDs in cluster metadata. Routes carry incarnation, frontier and view. HTTP forwards to the partition primary in one hop; stale routes cannot chain relays. Run reads, polls and metadata commit waits outside the connection drain. Serialize metadata writes per connection and serve QUIC streams concurrently to prevent stalls. The Rust SDK shares session state, correlates TCP/WebSocket replies by request ID and bounds QUIC requests by deadlines. Add a driver with cached routes, one link per replica and one mutation at a time per partition history and for metadata. Clients do not use the driver yet. Derive owner generations from metadata ops to fence recreated groups. IGGY-OWNERSHIP-HISTORY-5 rejects older data before modifying it. Fence old partition control frames with incarnation in reserved bytes, preserving header sizes and field offsets. Close the owner handoff, retirement and offset-transfer gaps found in #4456. Relay partition completions to the metadata primary and transfer emptied-table markers with offsets artifact v8. Exhausted partition repair windows escalate to state transfer. Rotations preserve the session ceiling and yield capacity; transfers reset repair budgets. Prove retained StartView history before committing or serving repair. Preserve unresolved proof across failed truncation and view changes, and retain acknowledged tails on commit-only updates. Metadata recovery protects pipeline-owned prepares; internal completions no longer become external reply attempts. Carry the transport disconnect fix from #4388 and retry relayed reads after primary failure. Simulator checks cover replacement histories and restarts. Keep unresolved requests through same-session re-login and transient refusals, bind the refusing endpoint and preserve committed-offset flags across restart. After offset file loss at boot, including all files or a whole kind directory, deleting the donor's last key can emit an emptied-table marker that drops those offsets on lagging receivers. That key may have been written after boot. Deleted groups remain only while stranded offsets are durable, avoiding permanent catalog retention for unreadable or unremovable files. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
