krishvishal opened a new pull request, #3786: URL: https://github.com/apache/iggy/pull/3786
## Problem `create_topic` returns on metadata commit; the owning shard publishes the partition only after `build_partition_fresh` (mkdir, segment open, fallocate). A produce issued right after races materialisation, on every shard. `partition_reconciler` carried a TODO for a materialisation barrier: stop non-owners seeding `shards_table` rows, have the owner push its row to peers, so row presence implies the partition exists. Rejected. It turns a deterministic hash cache into a distributed readiness protocol whose deltas need ordering, retry and repair, and it gives up level-triggered repair (a pass re-derives every row from committed metadata, so a lost row is rewritten). The owner can decide all of it locally. ## Approach Resolve at the owner; `shards_table` stays a hint. * `router::route_typed` falls back to `calculate_shard_assignment` on a missing row, so an early frame reaches the future owner. * `park_if_unmaterialised` holds it until the matching `InsertOwned`, then re-queues onto that shard's inbox. * `serves_committed_incarnation` refuses a namespace whose committed `created_revision` disagrees with the row epoch, so a mid-teardown request cannot be acked against an incarnation about to be erased. Tombstoned namespace, park overflow, and a namespace the shard gave up building all reply with a retriable status. No silence, so no lockstep transport waits out its read timeout. -- 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]
