mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-14 06:36:54 +00:00
The watermark now carries two witnesses recorded atomically with it: the view version its refresh produced (predicted, then verified, so a racing commit cannot leave it pointing at someone else's work) and the commit timestamp of the watermark's source manifest. Any later view commit or a source whose manifest timestamp disagrees -- a dropped and recreated table reuses version numbers, never timestamps -- invalidates the watermark and the refresh rebuilds instead of reporting NoOp over stale rows. Refreshes of one view are also serialized within the process by a per-view lock, closing the same-watermark double-append; cross-process remains the caller's boundary, stated in the module docs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>