Skip to content

Commit e232ba6

Browse files
committed
refactor(FQDN): feather refator on idl/dsn.layer2.thrift
1 parent b72274f commit e232ba6

File tree

67 files changed

+1983
-1553
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1983
-1553
lines changed

idl/dsn.layer2.thrift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ struct partition_configuration
3636
1:dsn.gpid pid;
3737
2:i64 ballot;
3838
3:i32 max_replica_count;
39-
4:dsn.rpc_address primary;
40-
5:list<dsn.rpc_address> secondaries;
41-
6:list<dsn.rpc_address> last_drops;
39+
4:dsn.rpc_address primary1;
40+
5:list<dsn.rpc_address> secondaries1;
41+
6:list<dsn.rpc_address> last_drops1;
4242
7:i64 last_committed_decree;
4343
8:i32 partition_flags;
44-
9:optional dsn.host_port hp_primary;
45-
10:optional list<dsn.host_port> hp_secondaries;
46-
11:optional list<dsn.host_port> hp_last_drops;
44+
9:optional dsn.host_port hp_primary1;
45+
10:optional list<dsn.host_port> hp_secondaries1;
46+
11:optional list<dsn.host_port> hp_last_drops1;
4747
}
4848

4949
struct query_cfg_request

src/client/partition_resolver_simple.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ void partition_resolver_simple::query_config_reply(error_code err,
306306
LOG_DEBUG_PREFIX("query config reply, gpid = {}, ballot = {}, primary = {}",
307307
new_pc.pid,
308308
new_pc.ballot,
309-
FMT_HOST_PORT_AND_IP(new_pc, primary));
309+
FMT_HOST_PORT_AND_IP(new_pc, primary1));
310310

311311
auto it2 = _config_cache.find(new_pc.pid.get_partition_index());
312312
if (it2 == _config_cache.end()) {
@@ -414,14 +414,18 @@ void partition_resolver_simple::handle_pending_requests(std::deque<request_conte
414414
host_port partition_resolver_simple::get_host_port(const partition_configuration &pc) const
415415
{
416416
if (_app_is_stateful) {
417-
return pc.hp_primary;
417+
host_port primary;
418+
GET_HOST_PORT(pc, primary1, primary);
419+
return primary;
418420
}
419421

420-
if (pc.hp_last_drops.empty()) {
422+
std::vector<host_port> last_drops;
423+
GET_HOST_PORTS(pc, last_drops1, last_drops);
424+
if (last_drops.empty()) {
421425
return host_port();
422426
}
423427

424-
return pc.hp_last_drops[rand::next_u32(0, pc.last_drops.size() - 1)];
428+
return last_drops[rand::next_u32(0, last_drops.size() - 1)];
425429
}
426430

427431
error_code partition_resolver_simple::get_host_port(int partition_index, /*out*/ host_port &hp)

src/client/replication_ddl_client.cpp

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,19 @@ dsn::error_code replication_ddl_client::wait_app_ready(const std::string &app_na
167167
int ready_count = 0;
168168
for (int i = 0; i < partition_count; i++) {
169169
const auto &pc = query_resp.partitions[i];
170-
if (pc.hp_primary && (pc.hp_secondaries.size() + 1 >= max_replica_count)) {
171-
ready_count++;
170+
host_port primary;
171+
GET_HOST_PORT(pc, primary1, primary);
172+
if (!primary) {
173+
continue;
174+
}
175+
176+
std::vector<host_port> secondaries;
177+
GET_HOST_PORTS(pc, secondaries1, secondaries);
178+
if (secondaries.size() + 1 < max_replica_count) {
179+
continue;
172180
}
181+
182+
ready_count++;
173183
}
174184
if (ready_count == partition_count) {
175185
std::cout << app_name << " is ready now: (" << ready_count << "/" << partition_count
@@ -435,11 +445,16 @@ dsn::error_code replication_ddl_client::list_apps(const dsn::app_status::type st
435445
int read_unhealthy = 0;
436446
for (const auto &pc : pcs) {
437447
int replica_count = 0;
438-
if (pc.hp_primary) {
448+
host_port primary;
449+
GET_HOST_PORT(pc, primary1, primary);
450+
if (primary) {
439451
replica_count++;
440452
}
441-
replica_count += pc.hp_secondaries.size();
442-
if (pc.hp_primary) {
453+
454+
std::vector<host_port> secondaries;
455+
GET_HOST_PORTS(pc, secondaries1, secondaries);
456+
replica_count += secondaries.size();
457+
if (primary) {
443458
if (replica_count >= pc.max_replica_count) {
444459
fully_healthy++;
445460
} else if (replica_count < 2) {
@@ -573,13 +588,18 @@ dsn::error_code replication_ddl_client::list_nodes(const dsn::replication::node_
573588
}
574589

575590
for (const auto &pc : pcs) {
576-
if (pc.hp_primary) {
577-
auto find = tmp_map.find(pc.hp_primary);
591+
host_port primary;
592+
GET_HOST_PORT(pc, primary1, primary);
593+
if (primary) {
594+
auto find = tmp_map.find(primary);
578595
if (find != tmp_map.end()) {
579596
find->second.primary_count++;
580597
}
581598
}
582-
for (const auto &secondary : pc.hp_secondaries) {
599+
600+
std::vector<host_port> secondaries;
601+
GET_HOST_PORTS(pc, secondaries1, secondaries);
602+
for (const auto &secondary : secondaries) {
583603
auto find = tmp_map.find(secondary);
584604
if (find != tmp_map.end()) {
585605
find->second.secondary_count++;
@@ -766,14 +786,18 @@ dsn::error_code replication_ddl_client::list_app(const std::string &app_name,
766786
int read_unhealthy = 0;
767787
for (const auto &pc : pcs) {
768788
int replica_count = 0;
769-
if (pc.hp_primary) {
789+
host_port primary;
790+
GET_HOST_PORT(pc, primary1, primary);
791+
if (primary) {
770792
replica_count++;
771-
node_stat[pc.hp_primary].first++;
793+
node_stat[primary].first++;
772794
total_prim_count++;
773795
}
774-
replica_count += pc.hp_secondaries.size();
775-
total_sec_count += pc.hp_secondaries.size();
776-
if (pc.hp_primary) {
796+
std::vector<host_port> secondaries;
797+
GET_HOST_PORTS(pc, secondaries1, secondaries);
798+
replica_count += secondaries.size();
799+
total_sec_count += secondaries.size();
800+
if (primary) {
777801
if (replica_count >= pc.max_replica_count) {
778802
fully_healthy++;
779803
} else if (replica_count < 2) {
@@ -783,14 +807,14 @@ dsn::error_code replication_ddl_client::list_app(const std::string &app_name,
783807
write_unhealthy++;
784808
read_unhealthy++;
785809
}
786-
for (const auto &secondary : pc.hp_secondaries) {
810+
for (const auto &secondary : secondaries) {
787811
node_stat[secondary].second++;
788812
}
789813
tp_details.add_row(pc.pid.get_partition_index());
790814
tp_details.append_data(pc.ballot);
791815
tp_details.append_data(fmt::format("{}/{}", replica_count, pc.max_replica_count));
792-
tp_details.append_data(pc.hp_primary ? pc.hp_primary.to_string() : "-");
793-
tp_details.append_data(fmt::format("[{}]", fmt::join(pc.hp_secondaries, ",")));
816+
tp_details.append_data(primary ? primary.to_string() : "-");
817+
tp_details.append_data(fmt::format("[{}]", fmt::join(secondaries, ",")));
794818
}
795819
mtp.add(std::move(tp_details));
796820

src/common/json_helper.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -717,14 +717,14 @@ NON_MEMBER_JSON_SERIALIZATION(dsn::partition_configuration,
717717
pid,
718718
ballot,
719719
max_replica_count,
720-
primary,
721-
secondaries,
722-
last_drops,
720+
primary1,
721+
secondaries1,
722+
last_drops1,
723723
last_committed_decree,
724724
partition_flags,
725-
hp_primary,
726-
hp_secondaries,
727-
hp_last_drops)
725+
hp_primary1,
726+
hp_secondaries1,
727+
hp_last_drops1)
728728

729729
NON_MEMBER_JSON_SERIALIZATION(dsn::app_info,
730730
status,

src/common/replication_common.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,18 @@ int32_t replication_options::app_mutation_2pc_min_replica_count(int32_t app_max_
173173
rc.pid = pc.pid;
174174
rc.ballot = pc.ballot;
175175
rc.learner_signature = invalid_signature;
176-
SET_OBJ_IP_AND_HOST_PORT(rc, primary, pc, primary);
176+
SET_OBJ_IP_AND_HOST_PORT(rc, primary, pc, primary1);
177177

178-
if (node == pc.hp_primary) {
178+
host_port primary;
179+
GET_HOST_PORT(pc, primary1, primary);
180+
if (node == primary) {
179181
rc.status = partition_status::PS_PRIMARY;
180182
return true;
181183
}
182184

183-
if (utils::contains(pc.hp_secondaries, node)) {
185+
std::vector<host_port> secondaries;
186+
GET_HOST_PORTS(pc, secondaries1, secondaries);
187+
if (utils::contains(secondaries, node)) {
184188
rc.status = partition_status::PS_SECONDARY;
185189
return true;
186190
}

src/common/replication_other_types.h

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "consensus_types.h"
3737
#include "replica_admin_types.h"
3838
#include "common/replication_enums.h"
39+
#include "runtime/rpc/dns_resolver.h"
3940
#include "runtime/rpc/rpc_address.h"
4041
#include "runtime/rpc/rpc_host_port.h"
4142

@@ -53,19 +54,19 @@ typedef int64_t decree;
5354

5455
inline bool is_primary(const partition_configuration &pc, const host_port &node)
5556
{
56-
return node && pc.hp_primary == node;
57+
return node && pc.hp_primary1 == node;
5758
}
5859
inline bool is_primary(const partition_configuration &pc, const rpc_address &node)
5960
{
60-
return node && pc.primary == node;
61+
return node && pc.primary1 == node;
6162
}
6263
inline bool is_secondary(const partition_configuration &pc, const host_port &node)
6364
{
64-
return node && utils::contains(pc.hp_secondaries, node);
65+
return node && utils::contains(pc.hp_secondaries1, node);
6566
}
6667
inline bool is_secondary(const partition_configuration &pc, const rpc_address &node)
6768
{
68-
return node && utils::contains(pc.secondaries, node);
69+
return node && utils::contains(pc.secondaries1, node);
6970
}
7071
inline bool is_member(const partition_configuration &pc, const host_port &node)
7172
{
@@ -79,16 +80,24 @@ inline bool is_partition_config_equal(const partition_configuration &pc1,
7980
const partition_configuration &pc2)
8081
{
8182
// secondaries no need to be same order
82-
for (const auto &pc1_secondary : pc1.hp_secondaries) {
83+
std::vector<host_port> pc1_secondaries;
84+
GET_HOST_PORTS(pc1, secondaries1, pc1_secondaries);
85+
for (const auto &pc1_secondary : pc1_secondaries) {
8386
if (!is_secondary(pc2, pc1_secondary)) {
8487
return false;
8588
}
8689
}
90+
8791
// last_drops is not considered into equality check
92+
host_port pc1_primary;
93+
GET_HOST_PORT(pc1, primary1, pc1_primary);
94+
host_port pc2_primary;
95+
GET_HOST_PORT(pc2, primary1, pc2_primary);
96+
std::vector<host_port> pc2_secondaries;
97+
GET_HOST_PORTS(pc2, secondaries1, pc2_secondaries);
8898
return pc1.ballot == pc2.ballot && pc1.pid == pc2.pid &&
89-
pc1.max_replica_count == pc2.max_replica_count && pc1.primary == pc2.primary &&
90-
pc1.hp_primary == pc2.hp_primary && pc1.secondaries.size() == pc2.secondaries.size() &&
91-
pc1.hp_secondaries.size() == pc2.hp_secondaries.size() &&
99+
pc1.max_replica_count == pc2.max_replica_count && pc1_primary == pc2_primary &&
100+
pc1_secondaries.size() == pc2_secondaries.size() &&
92101
pc1.last_committed_decree == pc2.last_committed_decree;
93102
}
94103

src/meta/backup_engine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void backup_engine::backup_app_partition(const gpid &pid)
182182
_is_backup_failed = true;
183183
return;
184184
}
185-
partition_primary = app->pcs[pid.get_partition_index()].hp_primary;
185+
partition_primary = app->pcs[pid.get_partition_index()].hp_primary1;
186186
}
187187

188188
if (!partition_primary) {

src/meta/cluster_balance_policy.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,12 +226,17 @@ bool cluster_balance_policy::get_app_migration_info(std::shared_ptr<app_state> a
226226
info.partitions.reserve(app->pcs.size());
227227
for (const auto &pc : app->pcs) {
228228
std::map<host_port, partition_status::type> pstatus_map;
229-
pstatus_map[pc.hp_primary] = partition_status::PS_PRIMARY;
230-
if (pc.hp_secondaries.size() != pc.max_replica_count - 1) {
229+
host_port primary;
230+
GET_HOST_PORT(pc, primary1, primary);
231+
pstatus_map[primary] = partition_status::PS_PRIMARY;
232+
233+
std::vector<host_port> secondaries;
234+
GET_HOST_PORTS(pc, secondaries1, secondaries);
235+
if (secondaries.size() != pc.max_replica_count - 1) {
231236
// partition is unhealthy
232237
return false;
233238
}
234-
for (const auto &secondary : pc.hp_secondaries) {
239+
for (const auto &secondary : secondaries) {
235240
pstatus_map[secondary] = partition_status::PS_SECONDARY;
236241
}
237242
info.partitions.push_back(std::move(pstatus_map));
@@ -548,7 +553,7 @@ bool cluster_balance_policy::apply_move(const move_info &move,
548553
// add into the migration list and selected_pid
549554
partition_configuration pc;
550555
pc.pid = move.pid;
551-
SET_IP_AND_HOST_PORT_BY_DNS(pc, primary, primary_hp);
556+
SET_IP_AND_HOST_PORT_BY_DNS(pc, primary1, primary_hp);
552557
list[move.pid] = generate_balancer_request(*_global_view->apps, pc, move.type, source, target);
553558
_migration_result->emplace(
554559
move.pid, generate_balancer_request(*_global_view->apps, pc, move.type, source, target));

src/meta/duplication/meta_duplication_service.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -548,8 +548,8 @@ void meta_duplication_service::check_follower_app_if_create_completed(
548548
const host_port secondary2("localhost", 34803);
549549

550550
partition_configuration pc;
551-
SET_IP_AND_HOST_PORT_BY_DNS(pc, primary, primary);
552-
SET_IPS_AND_HOST_PORTS_BY_DNS(pc, secondaries, secondary1, secondary2);
551+
SET_IP_AND_HOST_PORT_BY_DNS(pc, primary1, primary);
552+
SET_IPS_AND_HOST_PORTS_BY_DNS(pc, secondaries1, secondary1, secondary2);
553553
resp.partitions.emplace_back(pc);
554554
}
555555
});
@@ -562,17 +562,17 @@ void meta_duplication_service::check_follower_app_if_create_completed(
562562
query_err = ERR_INCONSISTENT_STATE;
563563
} else {
564564
for (const auto &pc : resp.partitions) {
565-
if (!pc.hp_primary) {
565+
if (!pc.hp_primary1) {
566566
query_err = ERR_INACTIVE_STATE;
567567
break;
568568
}
569569

570-
if (pc.hp_secondaries.empty()) {
570+
if (pc.hp_secondaries1.empty()) {
571571
query_err = ERR_NOT_ENOUGH_MEMBER;
572572
break;
573573
}
574574

575-
for (const auto &secondary : pc.hp_secondaries) {
575+
for (const auto &secondary : pc.hp_secondaries1) {
576576
if (!secondary) {
577577
query_err = ERR_INACTIVE_STATE;
578578
break;

src/meta/load_balance_policy.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ generate_balancer_request(const app_mapper &apps,
177177
ans = "copy_secondary";
178178
result.balance_type = balancer_request_type::copy_secondary;
179179
result.action_list.emplace_back(
180-
new_proposal_action(pc.hp_primary, to, config_type::CT_ADD_SECONDARY_FOR_LB));
180+
new_proposal_action(pc.hp_primary1, to, config_type::CT_ADD_SECONDARY_FOR_LB));
181181
result.action_list.emplace_back(
182-
new_proposal_action(pc.hp_primary, from, config_type::CT_REMOVE));
182+
new_proposal_action(pc.hp_primary1, from, config_type::CT_REMOVE));
183183
break;
184184
default:
185185
CHECK(false, "");
@@ -567,7 +567,7 @@ void ford_fulkerson::update_decree(int node_id, const node_state &ns)
567567
{
568568
ns.for_each_primary(_app->app_id, [&, this](const gpid &pid) {
569569
const auto &pc = _app->pcs[pid.get_partition_index()];
570-
for (const auto &secondary : pc.hp_secondaries) {
570+
for (const auto &secondary : pc.hp_secondaries1) {
571571
auto i = _host_port_id.find(secondary);
572572
CHECK(i != _host_port_id.end(), "invalid secondary: {}", secondary);
573573
_network[node_id][i->second]++;

src/meta/meta_backup_service.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ void policy_context::start_backup_partition_unlocked(gpid pid)
532532
pid, cold_backup_constant::PROGRESS_FINISHED, dsn::host_port());
533533
return;
534534
}
535-
partition_primary = app->pcs[pid.get_partition_index()].hp_primary;
535+
partition_primary = app->pcs[pid.get_partition_index()].hp_primary1;
536536
}
537537
if (!partition_primary) {
538538
LOG_WARNING("{}: partition {} doesn't have a primary now, retry to backup it later",

src/meta/meta_bulk_load_ingestion_context.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,12 @@ void ingestion_context::partition_node_info::create(const partition_configuratio
4949
{
5050
pid = pc.pid;
5151
std::unordered_set<host_port> current_nodes;
52-
current_nodes.insert(pc.hp_primary);
53-
for (const auto &secondary : pc.hp_secondaries) {
52+
host_port primary;
53+
GET_HOST_PORT(pc, primary1, primary);
54+
current_nodes.insert(primary);
55+
std::vector<host_port> secondaries;
56+
GET_HOST_PORTS(pc, secondaries1, secondaries);
57+
for (const auto &secondary : secondaries) {
5458
current_nodes.insert(secondary);
5559
}
5660
for (const auto &node : current_nodes) {

0 commit comments

Comments
 (0)