github-actions[bot] commented on code in PR #27688:
URL: https://github.com/apache/doris/pull/27688#discussion_r1407288227


##########
be/src/olap/wal_manager.cpp:
##########
@@ -392,4 +392,63 @@
     return Status::OK();
 }
 
+Status WalManager::add_wal_cv_map(int64_t wal_id, std::shared_ptr<std::mutex> 
lock,
+                                  std::shared_ptr<std::condition_variable> cv) 
{
+    std::lock_guard<std::shared_mutex> wrlock(_wal_cv_lock);
+    auto it = _wal_lock_map.find(wal_id);
+    if (it != _wal_lock_map.end()) {
+        return Status::InternalError("wal {} is already in _wal_cv_map ", 
wal_id);
+    }
+    _wal_lock_map.emplace(wal_id, lock);
+    _wal_cv_map.emplace(wal_id, cv);
+    LOG(INFO) << "add  " << wal_id << " to _wal_cv_map";
+    return Status::OK();
+}
+Status WalManager::erase_wal_cv_map(int64_t wal_id) {

Review Comment:
   warning: method 'erase_wal_cv_map' can be made static 
[readability-convert-member-functions-to-static]
   
   be/src/olap/wal_manager.h:74:
   ```diff
   -     Status erase_wal_cv_map(int64_t wal_id);
   +     static Status erase_wal_cv_map(int64_t wal_id);
   ```
   



##########
be/src/olap/wal_manager.cpp:
##########
@@ -392,4 +392,63 @@ Status WalManager::get_wal_column_index(int64_t wal_id, 
std::vector<size_t>& col
     return Status::OK();
 }
 
+Status WalManager::add_wal_cv_map(int64_t wal_id, std::shared_ptr<std::mutex> 
lock,

Review Comment:
   warning: method 'add_wal_cv_map' can be made static 
[readability-convert-member-functions-to-static]
   
   ```suggestion
   static Status WalManager::add_wal_cv_map(int64_t wal_id, 
std::shared_ptr<std::mutex> lock,
   ```
   



##########
be/src/olap/wal_manager.cpp:
##########
@@ -392,4 +392,63 @@
     return Status::OK();
 }
 
+Status WalManager::add_wal_cv_map(int64_t wal_id, std::shared_ptr<std::mutex> 
lock,
+                                  std::shared_ptr<std::condition_variable> cv) 
{
+    std::lock_guard<std::shared_mutex> wrlock(_wal_cv_lock);
+    auto it = _wal_lock_map.find(wal_id);
+    if (it != _wal_lock_map.end()) {
+        return Status::InternalError("wal {} is already in _wal_cv_map ", 
wal_id);
+    }
+    _wal_lock_map.emplace(wal_id, lock);
+    _wal_cv_map.emplace(wal_id, cv);
+    LOG(INFO) << "add  " << wal_id << " to _wal_cv_map";
+    return Status::OK();
+}
+Status WalManager::erase_wal_cv_map(int64_t wal_id) {
+    std::lock_guard<std::shared_mutex> wrlock(_wal_cv_lock);
+    if (_wal_lock_map.erase(wal_id) && _wal_cv_map.erase(wal_id)) {
+        LOG(INFO) << "erase " << wal_id << " from _wal_cv_map";
+    } else {
+        return Status::InternalError("fail to erase wal {} from wal_cv_map", 
wal_id);
+    }
+    return Status::OK();
+}
+Status WalManager::wait_relay_wal_finish(int64_t wal_id) {
+    std::shared_ptr<std::mutex> lock = nullptr;
+    std::shared_ptr<std::condition_variable> cv = nullptr;
+    RETURN_IF_ERROR(get_lock_and_cv(wal_id, lock, cv));
+    std::unique_lock l(*(lock));
+    cv->wait(l);
+    LOG(INFO) << "get wal " << wal_id << ",finish wait";
+    RETURN_IF_ERROR(erase_wal_cv_map(wal_id));
+    LOG(INFO) << "erase wal " << wal_id;
+    return Status::OK();
+}
+
+Status WalManager::notify(int64_t wal_id) {

Review Comment:
   warning: method 'notify' can be made static 
[readability-convert-member-functions-to-static]
   
   be/src/olap/wal_manager.h:78:
   ```diff
   -     Status notify(int64_t wal_id);
   +     static Status notify(int64_t wal_id);
   ```
   



##########
be/src/runtime/runtime_state.h:
##########
@@ -240,6 +240,14 @@
 
     const std::string& import_label() { return _import_label; }
 
+    bool relay_wal() { return _relay_wal; }
+
+    void set_relay_wal(bool relay_wal) { _relay_wal = relay_wal; }
+
+    void set_txn_id(int64_t txn_id) { _txn_id = txn_id; }
+
+    int64_t txn_id() { return _txn_id; }

Review Comment:
   warning: method 'txn_id' can be made const 
[readability-make-member-function-const]
   
   ```suggestion
       int64_t txn_id() const { return _txn_id; }
   ```
   



##########
be/src/runtime/runtime_state.h:
##########
@@ -240,6 +240,14 @@ class RuntimeState {
 
     const std::string& import_label() { return _import_label; }
 
+    bool relay_wal() { return _relay_wal; }

Review Comment:
   warning: method 'relay_wal' can be made const 
[readability-make-member-function-const]
   
   ```suggestion
       bool relay_wal() const { return _relay_wal; }
   ```
   



##########
be/src/olap/wal_manager.cpp:
##########
@@ -392,4 +392,63 @@
     return Status::OK();
 }
 
+Status WalManager::add_wal_cv_map(int64_t wal_id, std::shared_ptr<std::mutex> 
lock,
+                                  std::shared_ptr<std::condition_variable> cv) 
{
+    std::lock_guard<std::shared_mutex> wrlock(_wal_cv_lock);
+    auto it = _wal_lock_map.find(wal_id);
+    if (it != _wal_lock_map.end()) {
+        return Status::InternalError("wal {} is already in _wal_cv_map ", 
wal_id);
+    }
+    _wal_lock_map.emplace(wal_id, lock);
+    _wal_cv_map.emplace(wal_id, cv);
+    LOG(INFO) << "add  " << wal_id << " to _wal_cv_map";
+    return Status::OK();
+}
+Status WalManager::erase_wal_cv_map(int64_t wal_id) {
+    std::lock_guard<std::shared_mutex> wrlock(_wal_cv_lock);
+    if (_wal_lock_map.erase(wal_id) && _wal_cv_map.erase(wal_id)) {
+        LOG(INFO) << "erase " << wal_id << " from _wal_cv_map";
+    } else {
+        return Status::InternalError("fail to erase wal {} from wal_cv_map", 
wal_id);
+    }
+    return Status::OK();
+}
+Status WalManager::wait_relay_wal_finish(int64_t wal_id) {
+    std::shared_ptr<std::mutex> lock = nullptr;
+    std::shared_ptr<std::condition_variable> cv = nullptr;
+    RETURN_IF_ERROR(get_lock_and_cv(wal_id, lock, cv));
+    std::unique_lock l(*(lock));
+    cv->wait(l);
+    LOG(INFO) << "get wal " << wal_id << ",finish wait";
+    RETURN_IF_ERROR(erase_wal_cv_map(wal_id));
+    LOG(INFO) << "erase wal " << wal_id;
+    return Status::OK();
+}
+
+Status WalManager::notify(int64_t wal_id) {
+    std::shared_ptr<std::mutex> lock = nullptr;
+    std::shared_ptr<std::condition_variable> cv = nullptr;
+    RETURN_IF_ERROR(get_lock_and_cv(wal_id, lock, cv));
+    std::unique_lock l(*(lock));
+    cv->notify_all();
+    LOG(INFO) << "get wal " << wal_id << ",notify all";
+    return Status::OK();
+}
+
+Status WalManager::get_lock_and_cv(int64_t wal_id, 
std::shared_ptr<std::mutex>& lock,

Review Comment:
   warning: method 'get_lock_and_cv' can be made static 
[readability-convert-member-functions-to-static]
   
   ```suggestion
   static Status WalManager::get_lock_and_cv(int64_t wal_id, 
std::shared_ptr<std::mutex>& lock,
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to