Skip to content

Commit

Permalink
AER-5941 - for AP uniform balance, target claims must be in full-size…
Browse files Browse the repository at this point in the history
…d (not namespace-cluster-sized) array, since ns_sl_ix is used to map to this array.
  • Loading branch information
gooding470 committed Oct 2, 2018
1 parent 500335a commit 8d18840
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
2 changes: 1 addition & 1 deletion as/include/fabric/partition_balance.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ void process_pb_tasks(cf_queue* tq);
void balance_namespace_ap(struct as_namespace_s* ns, cf_queue* mq);
uint32_t rack_count(const struct as_namespace_s* ns);
void fill_translation(int translation[], const struct as_namespace_s* ns);
void init_target_claims(uint32_t n_replicas, uint32_t n_nodes, uint32_t* target_claims);
void init_target_claims_ap(const struct as_namespace_s* ns, const int translation[], uint32_t* target_claims);
void fill_namespace_rows(const cf_node* full_node_seq, const sl_ix_t* full_sl_ix, cf_node* ns_node_seq, sl_ix_t* ns_sl_ix, const struct as_namespace_s* ns, const int translation[]);
void uniform_adjust_row(cf_node* node_seq, uint32_t n_nodes, sl_ix_t* ns_sl_ix, uint32_t n_replicas, uint32_t* claims, const uint32_t* target_claims, const uint32_t* rack_ids, uint32_t n_racks);
void rack_aware_adjust_row(cf_node* ns_node_seq, sl_ix_t* ns_sl_ix, uint32_t replication_factor, const uint32_t* rack_ids, uint32_t n_ids, uint32_t n_racks, uint32_t start_n);
Expand Down
5 changes: 2 additions & 3 deletions as/src/fabric/partition_balance.c
Original file line number Diff line number Diff line change
Expand Up @@ -729,14 +729,13 @@ balance_namespace_ap(as_namespace* ns, cf_queue* mq)
}

uint32_t claims_size = ns->prefer_uniform_balance ?
ns->replication_factor * ns->cluster_size : 0;
ns->replication_factor * g_cluster_size : 0;
uint32_t claims[claims_size];
uint32_t target_claims[claims_size];

if (ns->prefer_uniform_balance) {
memset(claims, 0, sizeof(claims));
init_target_claims(ns->replication_factor, ns->cluster_size,
target_claims);
init_target_claims_ap(ns, translation, target_claims);
}

uint32_t ns_pending_immigrations = 0;
Expand Down
6 changes: 3 additions & 3 deletions as/src/fabric/partition_balance_ce.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ rack_count(const as_namespace* ns)
}

void
init_target_claims(uint32_t n_replicas, uint32_t n_nodes,
uint32_t* replicas_target_claims)
init_target_claims_ap(const as_namespace* ns, const int translation[],
uint32_t* target_claims)
{
cf_crash(AS_PARTITION, "CE code called init_target_claims()");
cf_crash(AS_PARTITION, "CE code called init_target_claims_ap()");
}

void
Expand Down

0 comments on commit 8d18840

Please sign in to comment.