diff --git a/include/pika_admin.h b/include/pika_admin.h index 3ce6769f72..5c1f74d31e 100644 --- a/include/pika_admin.h +++ b/include/pika_admin.h @@ -190,11 +190,9 @@ class FlushallCmd : public Cmd { void Merge() override{}; Cmd* Clone() override { return new FlushallCmd(*this); } void FlushAllWithoutLock(); - void DoBinlog(std::shared_ptr sync_db_); private: void DoInitial() override; - std::string ToRedisProtocol() override; void DoWithoutLock(std::shared_ptr db); }; @@ -211,7 +209,7 @@ class FlushdbCmd : public Cmd { void Merge() override{}; Cmd* Clone() override { return new FlushdbCmd(*this); } void FlushAllDBsWithoutLock(); - std::string GetFlushDname() { return db_name_; } + std::string GetFlushDBname() { return db_name_; } private: std::string db_name_; diff --git a/src/pika_admin.cc b/src/pika_admin.cc index 8ff5014f60..e7b1131d26 100644 --- a/src/pika_admin.cc +++ b/src/pika_admin.cc @@ -559,19 +559,6 @@ void FlushallCmd::DoUpdateCache() { } } -// flushall convert flushdb writes to every db binlog -std::string FlushallCmd::ToRedisProtocol() { - std::string content; - content.reserve(RAW_ARGS_LEN); - RedisAppendLen(content, 1, "*"); - - // to flushdb cmd - std::string flushdb_cmd("flushdb"); - RedisAppendLenUint64(content, flushdb_cmd.size(), "$"); - RedisAppendContent(content, flushdb_cmd); - return content; -} - void FlushallCmd::FlushAllWithoutLock() { for (const auto& db_item : g_pika_server->GetDB()) { std::shared_ptr db = db_item.second; @@ -581,45 +568,17 @@ void FlushallCmd::FlushAllWithoutLock() { return; } DoWithoutLock(db); - DoBinlog(g_pika_rm->GetSyncMasterDBs()[p_info]); } if (res_.ok()) { res_.SetRes(CmdRes::kOk); } } -void FlushallCmd::DoBinlog(std::shared_ptr sync_db) { - if (res().ok() && is_write() && g_pika_conf->write_binlog()) { - std::shared_ptr conn_ptr = GetConn(); - std::shared_ptr resp_ptr = GetResp(); - // Consider that dummy cmd appended by system, both conn and resp are null. - if ((!conn_ptr || !resp_ptr) && (name_ != kCmdDummy)) { - if (!conn_ptr) { - LOG(WARNING) << sync_db->SyncDBInfo().ToString() << " conn empty."; - } - if (!resp_ptr) { - LOG(WARNING) << sync_db->SyncDBInfo().ToString() << " resp empty."; - } - res().SetRes(CmdRes::kErrOther); - return; - } - - Status s = sync_db->ConsensusProposeLog(shared_from_this()); - if (!s.ok()) { - LOG(WARNING) << sync_db->SyncDBInfo().ToString() << " Writing binlog failed, maybe no space left on device " - << s.ToString(); - res().SetRes(CmdRes::kErrOther, s.ToString()); - return; - } - } -} - void FlushallCmd::DoWithoutLock(std::shared_ptr db) { if (!db) { LOG(INFO) << "Flushall, but DB not found"; } else { db->FlushDBWithoutLock(); - DoUpdateCache(); } } @@ -643,15 +602,14 @@ void FlushdbCmd::Do() { if (db_->IsKeyScaning()) { res_.SetRes(CmdRes::kErrOther, "The keyscan operation is executing, Try again later"); } else { - std::lock_guard l_prw(db_->GetDBLock()); std::lock_guard s_prw(g_pika_rm->GetDBLock()); + std::lock_guard l_prw(db_->GetDBLock()); FlushAllDBsWithoutLock(); res_.SetRes(CmdRes::kOk); } } } - void FlushdbCmd::DoThroughDB() { Do(); } @@ -670,7 +628,6 @@ void FlushdbCmd::FlushAllDBsWithoutLock() { return; } DoWithoutLock(); - DoBinlog(); } void FlushdbCmd::DoWithoutLock() { @@ -683,7 +640,6 @@ void FlushdbCmd::DoWithoutLock() { //Floyd does not support flushdb by type LOG(ERROR) << "cannot flushdb by type in floyd"; } - DoUpdateCache(); } } diff --git a/src/pika_client_conn.cc b/src/pika_client_conn.cc index ce2e6d56ec..c5f0a09844 100644 --- a/src/pika_client_conn.cc +++ b/src/pika_client_conn.cc @@ -196,7 +196,7 @@ std::shared_ptr PikaClientConn::DoCmd(const PikaCmdArgsType& argv, const st if (c_ptr->res().ok() && c_ptr->is_write() && name() != kCmdNameExec) { if (c_ptr->name() == kCmdNameFlushdb) { auto flushdb = std::dynamic_pointer_cast(c_ptr); - SetTxnFailedFromDBs(flushdb->GetFlushDname()); + SetTxnFailedFromDBs(flushdb->GetFlushDBname()); } else if (c_ptr->name() == kCmdNameFlushall) { SetAllTxnFailed(); } else {