You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Assuming we only have two vnodes and there are consecutive tombstones in upstream MV/Table state, which is possible when there is a temporal filter in the upstream:
With arrangement backfill, vnode_1 and vnode_2 are iterated independently and on seeing a barrier, backfill will stop in the current epoch as long as there is at least one visible row emitted in either of the two vnode iterator. Therefore, it is possible that the slow vnode will never update its current position and can hardly make progress in the next epoch because the consecutive tombstones will be repetitively scanned. Consider the following case:
In epoch1, vnode_1 and vnode_2 start the backfill snapshot read by scanning the upstream table independently.
vnode_1 scans [pk_1, pk_(N+1)] and emits pk_(N+2) -> row.
vnode_2 is slightly slower and just scans [pk_1, pk_(M-1)], which are all tombstones.
epoch2 comes. Backfill is interrupted. vnode_1's position is updated to pk_(N+2) while vnode_2's position remains to be left unbounded.
Error message/log
No response
To Reproduce
No response
Expected behavior
No response
How did you deploy RisingWave?
No response
The version of RisingWave
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
Given that we target at releasing the 1st version of serverless backfill in v1.11, which can fundamentally solve this issue because backfill will no longer be interrupted. I wonder whether we still need to fix arrangement backfill in this corner case.
Describe the bug
Assuming we only have two vnodes and there are consecutive tombstones in upstream MV/Table state, which is possible when there is a temporal filter in the upstream:
With arrangement backfill,
vnode_1
andvnode_2
are iterated independently and on seeing a barrier, backfill will stop in the current epoch as long as there is at least one visible row emitted in either of the two vnode iterator. Therefore, it is possible that the slow vnode will never update its current position and can hardly make progress in the next epoch because the consecutive tombstones will be repetitively scanned. Consider the following case:[pk_1, pk_(N+1)]
and emitspk_(N+2) -> row
.[pk_1, pk_(M-1)]
, which are all tombstones.pk_(N+2)
while vnode_2's position remains to be left unbounded.Error message/log
No response
To Reproduce
No response
Expected behavior
No response
How did you deploy RisingWave?
No response
The version of RisingWave
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: