|
Today, the MigrationSourceManager may emit up to two op entries upon the commit of a chunk migration (one to signal the arrival of the first collection chunk on the recipient, another to report the eviction of the last collection chunk from the donor).
For the latter, all the conditions required by change streams are guaranteed:
- the op entry generation follows the commit on the config server while user writes are still blocked,
- at-least-once delivery is guaranteed upon stepdown
But for the former, it turns out that:
- the op entry generation precedes the commit on the config server
- at the time of the generation, user writes are not yet blocked
- there are no guarantees for at-least-once delivery upon stepdown.
This may lead to potential event loss scenarios within specific time windows.
|