diff --git a/src/config.rs b/src/config.rs index 9d1658f..b751693 100644 --- a/src/config.rs +++ b/src/config.rs @@ -63,9 +63,10 @@ pub struct Address { pub shard: usize, pub database: String, pub role: Role, - pub instance_index: usize, + pub replica_number: usize, + pub address_index: usize, pub username: String, - pub poolname: String, + pub pool_name: String, } impl Default for Address { @@ -75,11 +76,12 @@ impl Default for Address { host: String::from("127.0.0.1"), port: String::from("5432"), shard: 0, - instance_index: 0, + address_index: 0, + replica_number: 0, database: String::from("database"), role: Role::Replica, username: String::from("username"), - poolname: String::from("poolname"), + pool_name: String::from("pool_name"), } } } @@ -88,11 +90,11 @@ impl Address { /// Address name (aka database) used in `SHOW STATS`, `SHOW DATABASES`, and `SHOW POOLS`. pub fn name(&self) -> String { match self.role { - Role::Primary => format!("{}_shard_{}_primary", self.poolname, self.shard), + Role::Primary => format!("{}_shard_{}_primary", self.pool_name, self.shard), Role::Replica => format!( "{}_shard_{}_replica_{}", - self.poolname, self.shard, self.instance_index + self.pool_name, self.shard, self.replica_number ), } } diff --git a/src/pool.rs b/src/pool.rs index cbb9b43..ac5bc91 100644 --- a/src/pool.rs +++ b/src/pool.rs @@ -102,6 +102,7 @@ impl ConnectionPool { let shard = &pool_config.shards[&shard_idx]; let mut pools = Vec::new(); let mut servers = Vec::new(); + let mut address_index = 0; let mut replica_number = 0; for server in shard.servers.iter() { @@ -120,13 +121,15 @@ impl ConnectionPool { host: server.0.clone(), port: server.1.to_string(), role: role, - instance_index: replica_number, + address_index, + replica_number, shard: shard_idx.parse::().unwrap(), username: user_info.username.clone(), - poolname: pool_name.clone(), + pool_name: pool_name.clone(), }; address_id += 1; + address_index += 1; if role == Role::Replica { replica_number += 1; @@ -276,7 +279,7 @@ impl ConnectionPool { self.stats.client_waiting(process_id, address.id); // Check if we can connect - let mut conn = match self.databases[address.shard][address.instance_index] + let mut conn = match self.databases[address.shard][address.address_index] .get() .await {