Skip to content
Snippets Groups Projects
  • Nikita Pettik's avatar
    38ac17f3
    vinyl: bump dump_generation in case scheduler doesn't catch up with DDL · 38ac17f3
    Nikita Pettik authored
    It may turn out that dump_generation does not catch up with current
    generation and no other dump tasks are in progress. This may happen
    dump process is throttled due to errors. In this case generation is
    bumped but dump_generation is not (since dump is not completed). In
    turn, throttling opens a window for DDL operations. For instance, index
    dropping and creation of new one results in mentioned situation:
    
    box.snapshot() -- fails for some reason; next attempt at dumping will be
                   -- taken in one second.
    s:drop() -- drop index to be dumped
    s = box.schema.space.create('test', {engine = 'vinyl'})
    -- create new one (its mem generation is greater than scheduler's one)
    i = s:create_index('pk')
    
    Closes #4821
    38ac17f3
    History
    vinyl: bump dump_generation in case scheduler doesn't catch up with DDL
    Nikita Pettik authored
    It may turn out that dump_generation does not catch up with current
    generation and no other dump tasks are in progress. This may happen
    dump process is throttled due to errors. In this case generation is
    bumped but dump_generation is not (since dump is not completed). In
    turn, throttling opens a window for DDL operations. For instance, index
    dropping and creation of new one results in mentioned situation:
    
    box.snapshot() -- fails for some reason; next attempt at dumping will be
                   -- taken in one second.
    s:drop() -- drop index to be dumped
    s = box.schema.space.create('test', {engine = 'vinyl'})
    -- create new one (its mem generation is greater than scheduler's one)
    i = s:create_index('pk')
    
    Closes #4821
vy_scheduler.c 58.16 KiB