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

Add rack-aware load balancing policy #73

Merged
merged 5 commits into from
Jan 18, 2023

Commits on Jan 2, 2023

  1. Display the query plans in case of failed test

    The out was not helpful for understanding the failure of
    a test.
    Printing the query plans will help.
    martin-sucha committed Jan 2, 2023
    Configuration menu
    Copy the full SHA
    808c54d View commit details
    Browse the repository at this point in the history
  2. Use count argument in run_policy

    This argument was not used anywhere, it worked by chance
    since it had the same value everywhere.
    martin-sucha committed Jan 2, 2023
    Configuration menu
    Copy the full SHA
    dda8bab View commit details
    Browse the repository at this point in the history
  3. Explicitly specify consistency level in run_policy

    The Datstax C++ driver has default ONE,
    the Scylla fork has LOCAL_ONE.
    martin-sucha committed Jan 2, 2023
    Configuration menu
    Copy the full SHA
    c095807 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    21e8c0f View commit details
    Browse the repository at this point in the history
  5. Add rack-aware load balancing policy

    We need to prefer local rack as there are higher network costs
    when communicating with nodes in remote rack.
    
    This policy prefers nodes from the local rack, then local datacenter
    and then other nodes.
    
    The new RackAwarePolicy is similar to DCAwarePolicy,
    but does not have the deprecated options.
    TokenAwarePolicy and other code needed to be modified
    so that the local rack is propagated.
    
    The TokenAware policy was changed to prefer replicas in remote
    rack / remote DC before trying non-replica nodes.
    It does not make much sense to not try the replicas and
    trying the replicas simplifies the code as now we have three
    levels local/remote/remote2.
    
    This change might not be backwards-compatible,
    we don't know what exactly this project guarantees in terms of
    backwards compatibility.
    
    Co-Authored-By: Peter Navrátil <[email protected]>
    martin-sucha and Peter Navrátil committed Jan 2, 2023
    Configuration menu
    Copy the full SHA
    9691ec0 View commit details
    Browse the repository at this point in the history