mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-07 22:02:56 +00:00
refactor: let metasrv returns ref always (#1954)
This commit is contained in:
@@ -238,57 +238,46 @@ impl MetaSrv {
|
||||
&self.options
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn in_memory(&self) -> ResettableKvStoreRef {
|
||||
self.in_memory.clone()
|
||||
pub fn in_memory(&self) -> &ResettableKvStoreRef {
|
||||
&self.in_memory
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn kv_store(&self) -> KvStoreRef {
|
||||
self.kv_store.clone()
|
||||
pub fn kv_store(&self) -> &KvStoreRef {
|
||||
&self.kv_store
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn leader_cached_kv_store(&self) -> ResettableKvStoreRef {
|
||||
self.leader_cached_kv_store.clone()
|
||||
pub fn leader_cached_kv_store(&self) -> &ResettableKvStoreRef {
|
||||
&self.leader_cached_kv_store
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn meta_peer_client(&self) -> MetaPeerClientRef {
|
||||
self.meta_peer_client.clone()
|
||||
pub fn meta_peer_client(&self) -> &MetaPeerClientRef {
|
||||
&self.meta_peer_client
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn table_id_sequence(&self) -> SequenceRef {
|
||||
self.table_id_sequence.clone()
|
||||
pub fn table_id_sequence(&self) -> &SequenceRef {
|
||||
&self.table_id_sequence
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn selector(&self) -> SelectorRef {
|
||||
self.selector.clone()
|
||||
pub fn selector(&self) -> &SelectorRef {
|
||||
&self.selector
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn handler_group(&self) -> HeartbeatHandlerGroup {
|
||||
self.handler_group.clone()
|
||||
pub fn handler_group(&self) -> &HeartbeatHandlerGroup {
|
||||
&self.handler_group
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn election(&self) -> Option<ElectionRef> {
|
||||
self.election.clone()
|
||||
pub fn election(&self) -> Option<&ElectionRef> {
|
||||
self.election.as_ref()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn lock(&self) -> &DistLockRef {
|
||||
&self.lock
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn mailbox(&self) -> MailboxRef {
|
||||
self.mailbox.clone()
|
||||
pub fn mailbox(&self) -> &MailboxRef {
|
||||
&self.mailbox
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn ddl_manager(&self) -> &DdlManagerRef {
|
||||
&self.ddl_manager
|
||||
}
|
||||
@@ -304,12 +293,12 @@ impl MetaSrv {
|
||||
#[inline]
|
||||
pub fn new_ctx(&self) -> Context {
|
||||
let server_addr = self.options().server_addr.clone();
|
||||
let in_memory = self.in_memory();
|
||||
let kv_store = self.kv_store();
|
||||
let leader_cached_kv_store = self.leader_cached_kv_store();
|
||||
let meta_peer_client = self.meta_peer_client();
|
||||
let mailbox = self.mailbox();
|
||||
let election = self.election();
|
||||
let in_memory = self.in_memory.clone();
|
||||
let kv_store = self.kv_store.clone();
|
||||
let leader_cached_kv_store = self.leader_cached_kv_store.clone();
|
||||
let meta_peer_client = self.meta_peer_client.clone();
|
||||
let mailbox = self.mailbox.clone();
|
||||
let election = self.election.clone();
|
||||
let skip_all = Arc::new(AtomicBool::new(false));
|
||||
Context {
|
||||
server_addr,
|
||||
|
||||
@@ -36,35 +36,35 @@ pub fn make_admin_service(meta_srv: MetaSrv) -> Admin {
|
||||
let router = router.route(
|
||||
"/node-lease",
|
||||
node_lease::NodeLeaseHandler {
|
||||
meta_peer_client: meta_srv.meta_peer_client(),
|
||||
meta_peer_client: meta_srv.meta_peer_client().clone(),
|
||||
},
|
||||
);
|
||||
|
||||
let router = router.route(
|
||||
"/heartbeat",
|
||||
heartbeat::HeartBeatHandler {
|
||||
meta_peer_client: meta_srv.meta_peer_client(),
|
||||
meta_peer_client: meta_srv.meta_peer_client().clone(),
|
||||
},
|
||||
);
|
||||
|
||||
let router = router.route(
|
||||
"/catalogs",
|
||||
meta::CatalogsHandler {
|
||||
kv_store: meta_srv.kv_store(),
|
||||
kv_store: meta_srv.kv_store().clone(),
|
||||
},
|
||||
);
|
||||
|
||||
let router = router.route(
|
||||
"/schemas",
|
||||
meta::SchemasHandler {
|
||||
kv_store: meta_srv.kv_store(),
|
||||
kv_store: meta_srv.kv_store().clone(),
|
||||
},
|
||||
);
|
||||
|
||||
let router = router.route(
|
||||
"/tables",
|
||||
meta::TablesHandler {
|
||||
kv_store: meta_srv.kv_store(),
|
||||
kv_store: meta_srv.kv_store().clone(),
|
||||
table_metadata_manager: meta_srv.table_metadata_manager().clone(),
|
||||
},
|
||||
);
|
||||
@@ -72,7 +72,7 @@ pub fn make_admin_service(meta_srv: MetaSrv) -> Admin {
|
||||
let router = router.route(
|
||||
"/table",
|
||||
meta::TableHandler {
|
||||
kv_store: meta_srv.kv_store(),
|
||||
kv_store: meta_srv.kv_store().clone(),
|
||||
table_metadata_manager: meta_srv.table_metadata_manager().clone(),
|
||||
},
|
||||
);
|
||||
@@ -80,14 +80,14 @@ pub fn make_admin_service(meta_srv: MetaSrv) -> Admin {
|
||||
let router = router.route(
|
||||
"/leader",
|
||||
leader::LeaderHandler {
|
||||
election: meta_srv.election(),
|
||||
election: meta_srv.election().cloned(),
|
||||
},
|
||||
);
|
||||
|
||||
let router = router.route(
|
||||
"/route",
|
||||
route::RouteHandler {
|
||||
kv_store: meta_srv.kv_store(),
|
||||
kv_store: meta_srv.kv_store().clone(),
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ impl ddl_task_server::DdlTask for MetaSrv {
|
||||
let ctx = SelectorContext {
|
||||
datanode_lease_secs: self.options().datanode_lease_secs,
|
||||
server_addr: self.options().server_addr.clone(),
|
||||
kv_store: self.kv_store(),
|
||||
meta_peer_client: self.meta_peer_client(),
|
||||
kv_store: self.kv_store().clone(),
|
||||
meta_peer_client: self.meta_peer_client().clone(),
|
||||
catalog: None,
|
||||
schema: None,
|
||||
table: None,
|
||||
|
||||
@@ -43,7 +43,7 @@ impl heartbeat_server::Heartbeat for MetaSrv {
|
||||
) -> GrpcResult<Self::HeartbeatStream> {
|
||||
let mut in_stream = req.into_inner();
|
||||
let (tx, rx) = mpsc::channel(128);
|
||||
let handler_group = self.handler_group();
|
||||
let handler_group = self.handler_group().clone();
|
||||
let ctx = self.new_ctx();
|
||||
let _handle = common_runtime::spawn_bg(async move {
|
||||
let mut pusher_key = None;
|
||||
|
||||
@@ -85,8 +85,8 @@ impl router_server::Router for MetaSrv {
|
||||
let ctx = SelectorContext {
|
||||
datanode_lease_secs: self.options().datanode_lease_secs,
|
||||
server_addr: self.options().server_addr.clone(),
|
||||
kv_store: self.kv_store(),
|
||||
meta_peer_client: self.meta_peer_client(),
|
||||
kv_store: self.kv_store().clone(),
|
||||
meta_peer_client: self.meta_peer_client().clone(),
|
||||
catalog: Some(table_name.catalog_name.clone()),
|
||||
schema: Some(table_name.schema_name.clone()),
|
||||
table: Some(table_name.table_name.clone()),
|
||||
@@ -140,8 +140,8 @@ impl router_server::Router for MetaSrv {
|
||||
async fn handle_create(
|
||||
req: CreateRequest,
|
||||
ctx: SelectorContext,
|
||||
selector: SelectorRef,
|
||||
table_id_sequence: SequenceRef,
|
||||
selector: &SelectorRef,
|
||||
table_id_sequence: &SequenceRef,
|
||||
) -> Result<RouteResponse> {
|
||||
let CreateRequest {
|
||||
header,
|
||||
|
||||
Reference in New Issue
Block a user