Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mv: handle different ERMs for base and view table #18816

Closed
wants to merge 1 commit into from

Commits on May 27, 2024

  1. mv: handle different ERMs for base and view table

    When calculating the base-view mapping while the topology
    is changing, we may encounter a situation where the base
    table noticed the change in its effective replication map
    while the view table hasn't, or vice-versa. This can happen
    because the ERM update may be performed during the preemption
    between taking the base ERM and view ERM, or, due to f2ff701,
    the update may have just been performed partially when we are
    taking the ERMs.
    
    Until now, we assumed that the ERMs are synchronized while calling
    finding the base-view endpoint mapping, so in particular, we were
    using the topology from the base's ERM to check the datacenters of
    all endpoints. Now that the ERMs are more likely to not be the same,
    we may try to get the datacenter of a view endpoint that doesn't
    exist in the base's topology, causing us to crash.
    
    This is fixed in this patch by using the view table's topology for
    endpoints coming from the view ERM. The mapping resulting from the
    call might now be a temporary mapping between endpoints in different
    topologies, but it still maps base and view replicas 1-to-1.
    
    Fixes: scylladb#17786
    Fixes: scylladb#18709
    wmitros committed May 27, 2024
    Configuration menu
    Copy the full SHA
    ed95782 View commit details
    Browse the repository at this point in the history