From d73ab602e6eb6786696ad3190fd1199e6d4369f7 Mon Sep 17 00:00:00 2001 From: Ahmed Farghal Date: Thu, 6 Feb 2025 19:47:17 +0000 Subject: [PATCH] [MetadataServer] minor changes - Always flush metadata-server CFs on shutdown - INFO logging for leadership changes events ``` // intentionally left empty ``` --- crates/metadata-server/src/raft/server.rs | 7 +++++-- crates/metadata-server/src/raft/storage.rs | 22 +++++++++++++--------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/crates/metadata-server/src/raft/server.rs b/crates/metadata-server/src/raft/server.rs index 89122c4706..3f839a9289 100644 --- a/crates/metadata-server/src/raft/server.rs +++ b/crates/metadata-server/src/raft/server.rs @@ -656,8 +656,11 @@ impl Member { self.is_leader = self.raw_node.raft.leader_id == self.raw_node.raft.id; if previous_is_leader && !self.is_leader { - debug!("Lost metadata store leadership"); let known_leader = self.known_leader(); + info!( + possible_leader = ?known_leader, + "Lost metadata store leadership" + ); // todo we might fail some of the request too eagerly here because the answer might be // stored in the unapplied log entries. Better to fail the callbacks based on @@ -670,7 +673,7 @@ impl Member { self.fail_join_callbacks(|| JoinClusterError::NotLeader(known_leader.clone())); self.read_index_to_request_id.clear(); } else if !previous_is_leader && self.is_leader { - debug!("Won metadata store leadership"); + info!("Won metadata store leadership"); } } diff --git a/crates/metadata-server/src/raft/storage.rs b/crates/metadata-server/src/raft/storage.rs index 2e8770380c..9d75791398 100644 --- a/crates/metadata-server/src/raft/storage.rs +++ b/crates/metadata-server/src/raft/storage.rs @@ -8,14 +8,21 @@ // the Business Source License, use of this software will be governed // by the Apache License, Version 2.0. -use crate::raft::RaftConfiguration; -use crate::{util, StorageId}; +use std::array::TryFromSliceError; +use std::cell::RefCell; +use std::mem::size_of; +use std::sync::Arc; +use std::{error, mem}; + use bytes::{BufMut, BytesMut}; use flexbuffers::{DeserializationError, SerializationError}; use protobuf::{Message, ProtobufError}; use raft::eraftpb::{ConfState, Entry, Snapshot}; use raft::prelude::HardState; use raft::{GetEntriesContext, RaftState, Storage, StorageError}; +use rocksdb::{BoundColumnFamily, DBPinnableSlice, ReadOptions, WriteBatch, WriteOptions, DB}; +use tracing::debug; + use restate_rocksdb::{ CfName, CfPrefixPattern, DbName, DbSpecBuilder, IoMode, Priority, RocksDb, RocksDbManager, RocksError, @@ -24,13 +31,9 @@ use restate_types::config::{data_dir, MetadataServerOptions, RocksDbOptions}; use restate_types::errors::GenericError; use restate_types::live::BoxedLiveLoad; use restate_types::nodes_config::NodesConfiguration; -use rocksdb::{BoundColumnFamily, DBPinnableSlice, ReadOptions, WriteBatch, WriteOptions, DB}; -use std::array::TryFromSliceError; -use std::cell::RefCell; -use std::mem::size_of; -use std::sync::Arc; -use std::{error, mem}; -use tracing::debug; + +use crate::raft::RaftConfiguration; +use crate::{util, StorageId}; const DB_NAME: &str = "raft-metadata-store"; const RAFT_CF: &str = "raft"; @@ -117,6 +120,7 @@ impl RocksDbStorage { util::cf_options(options.rocksdb_memory_budget()), ) .ensure_column_families(cfs) + .add_to_flush_on_shutdown(CfPrefixPattern::ANY) .build() .expect("valid spec");