diff --git a/src/chunkserver/chunkserver_metrics.h b/src/chunkserver/chunkserver_metrics.h index 54e1b5657f..08f7bf26c2 100644 --- a/src/chunkserver/chunkserver_metrics.h +++ b/src/chunkserver/chunkserver_metrics.h @@ -185,7 +185,8 @@ class CSCopysetMetric { , copysetId_(0) , chunkCount_(nullptr) , snapshotCount_(nullptr) - , cloneChunkCount_(nullptr) {} + , cloneChunkCount_(nullptr) + , walSegmentCount_(nullptr) {} ~CSCopysetMetric() {} diff --git a/src/chunkserver/copyset_node.cpp b/src/chunkserver/copyset_node.cpp index 3184740d2e..ee31dfc25e 100755 --- a/src/chunkserver/copyset_node.cpp +++ b/src/chunkserver/copyset_node.cpp @@ -193,9 +193,7 @@ int CopysetNode::Init(const CopysetNodeOptions &options) { metric_->MonitorCurveSegmentLogStorage(logStorage); }; - std::shared_ptr lsOptions = - std::make_shared(options.walFilePool, - monitorMetricCb); + LogStorageOptions lsOptions(options.walFilePool, monitorMetricCb); // In order to get more copysetNode's information in CurveSegmentLogStorage // without using global variables. diff --git a/src/chunkserver/raftlog/curve_segment_log_storage.cpp b/src/chunkserver/raftlog/curve_segment_log_storage.cpp index 75856f9213..453a50ea35 100644 --- a/src/chunkserver/raftlog/curve_segment_log_storage.cpp +++ b/src/chunkserver/raftlog/curve_segment_log_storage.cpp @@ -47,10 +47,10 @@ namespace curve { namespace chunkserver { -std::shared_ptr StoreOptForCurveSegmentLogStorage( - std::shared_ptr options) { - static std::shared_ptr options_ = options; - if (nullptr != options) { +LogStorageOptions StoreOptForCurveSegmentLogStorage( + LogStorageOptions options) { + static LogStorageOptions options_; + if (nullptr != options.walFilePool) { options_ = options; } @@ -678,14 +678,14 @@ void CurveSegmentLogStorage::sync() { braft::LogStorage* CurveSegmentLogStorage::new_instance( const std::string& uri) const { - std::shared_ptr options = - StoreOptForCurveSegmentLogStorage(nullptr); + LogStorageOptions options = StoreOptForCurveSegmentLogStorage( + LogStorageOptions()); - CHECK(nullptr != options->walFilePool) << "wal file pool is null"; + CHECK(nullptr != options.walFilePool) << "wal file pool is null"; CurveSegmentLogStorage* logStorage = new CurveSegmentLogStorage( - uri, true, options->walFilePool); - options->monitorMetricCb(logStorage); + uri, true, options.walFilePool); + options.monitorMetricCb(logStorage); return logStorage; } diff --git a/src/chunkserver/raftlog/curve_segment_log_storage.h b/src/chunkserver/raftlog/curve_segment_log_storage.h index e76d88123f..50aea348e3 100644 --- a/src/chunkserver/raftlog/curve_segment_log_storage.h +++ b/src/chunkserver/raftlog/curve_segment_log_storage.h @@ -66,6 +66,7 @@ struct LogStorageOptions { std::shared_ptr walFilePool; std::function monitorMetricCb; + LogStorageOptions() = default; LogStorageOptions(std::shared_ptr walFilePool, std::function monitorMetricCb) : walFilePool(walFilePool), monitorMetricCb(monitorMetricCb) { @@ -80,8 +81,8 @@ struct LogStorageStatus { uint32_t walSegmentFileCount; }; -std::shared_ptr StoreOptForCurveSegmentLogStorage( - std::shared_ptr options); +LogStorageOptions StoreOptForCurveSegmentLogStorage( + LogStorageOptions options); void RegisterCurveSegmentLogStorageOrDie(); diff --git a/src/chunkserver/trash.cpp b/src/chunkserver/trash.cpp index 51c8c6c48a..e81b98d37b 100644 --- a/src/chunkserver/trash.cpp +++ b/src/chunkserver/trash.cpp @@ -331,5 +331,3 @@ uint32_t Trash::CountChunkNumInCopyset(const std::string ©setPath) { } // namespace chunkserver } // namespace curve - -