diff --git a/td/telegram/AuthManager.cpp b/td/telegram/AuthManager.cpp index 36fbfb1db..ea54ea1d8 100644 --- a/td/telegram/AuthManager.cpp +++ b/td/telegram/AuthManager.cpp @@ -1041,7 +1041,7 @@ bool AuthManager::load_state() { return false; } - LOG(INFO) << "Load auth_state from db: " << tag("state", static_cast(db_state.state_)); + LOG(INFO) << "Load auth_state from database: " << tag("state", static_cast(db_state.state_)); if (db_state.state_ == State::WaitCode) { send_code_helper_ = std::move(db_state.send_code_helper_); terms_of_service_ = std::move(db_state.terms_of_service_); diff --git a/td/telegram/SecretChatActor.cpp b/td/telegram/SecretChatActor.cpp index 6c3f714a3..ce4784026 100644 --- a/td/telegram/SecretChatActor.cpp +++ b/td/telegram/SecretChatActor.cpp @@ -1416,7 +1416,7 @@ void SecretChatActor::on_save_changes_start(ChangesProcessor::Id sa saved_pfs_state_message_id_ = pfs_state_change.message_id; context_->secret_chat_db()->set_value(pfs_state_change); } - // NB: we may not wait till db is flushed, because every other change will be in the same binlog + // NB: we may not wait till database is flushed, because every other change will be in the same binlog for (auto &save_changes_finish : save_changes_finish_promises) { save_changes_finish.set_value(Unit()); } diff --git a/td/telegram/SecretChatActor.h b/td/telegram/SecretChatActor.h index 683f9fa5e..f5226b056 100644 --- a/td/telegram/SecretChatActor.h +++ b/td/telegram/SecretChatActor.h @@ -71,7 +71,7 @@ class SecretChatActor : public NetQueryCallback { virtual bool close_flag() = 0; // We don't want to expose the whole NetQueryDispatcher, MessagesManager and ContactsManager. - // So it is more clear which parts of MessagesManager is really used. And it is much easier to create tests. + // So it is more clear which parts of MessagesManager are really used. And it is much easier to create tests. virtual void send_net_query(NetQueryPtr query, ActorShared callback, bool ordered) = 0; virtual void on_update_secret_chat(int64 access_hash, UserId user_id, SecretChatState state, bool is_outbound, @@ -80,7 +80,7 @@ class SecretChatActor : public NetQueryCallback { // Promise must be set only after the update is processed. // // For example, one may set promise, after update was sent to binlog. It is ok, because SecretChatsActor will delete - // this update thought binlog too. So it wouldn't be deleted before update is saved. + // this update through binlog too. So it wouldn't be deleted before update is saved. // inbound messages virtual void on_inbound_message(UserId user_id, MessageId message_id, int32 date, @@ -113,7 +113,7 @@ class SecretChatActor : public NetQueryCallback { void add_inbound_message(unique_ptr message); // Outbound messages - // Promise will be set just after correspoiding logevent will be SENT to binlog. + // Promise will be set just after corresponding logevent will be SENT to binlog. void send_message(tl_object_ptr message, tl_object_ptr file, Promise<> promise); void send_message_action(tl_object_ptr action); @@ -137,7 +137,7 @@ class SecretChatActor : public NetQueryCallback { enum class State : int32 { Empty, SendRequest, SendAccept, WaitRequestResponse, WaitAcceptResponse, Ready, Closed }; static constexpr int32 MAX_RESEND_COUNT = 1000; - // We have git state that should be synchronized with db. + // We have git state that should be synchronized with the database. // It is splitted into several parts because: // 1. Some parts are BIG (auth_key, for example) and are rarely updated. // 2. Other are frequently updated, so probably should be as small as possible. @@ -459,13 +459,13 @@ class SecretChatActor : public NetQueryCallback { // This is completly flawed. // (A-start_save_to_binlog ----> B-start_save_to_binlog+change_memory ----> A-finish_save_to_binlog+surprise) // - // Instead I suggest general solution that is already used with SeqNoState and Qts - // 1. We APPLY CHANGE to memory immidiately AFTER correspoding EVENT is SENT to the binlog. - // 2. We SEND CHANGE to db only after correspoiding EVENT is SAVED to the binlog. - // 3. The we are able to ERASE EVENT just AFTER the CHANGE is SAVED to the binlog. + // Instead I suggest general solution that is already used with SeqNoState and qts + // 1. We APPLY CHANGE to memory immediately AFTER corresponding EVENT is SENT to the binlog. + // 2. We SEND CHANGE to database only after corresponding EVENT is SAVED to the binlog. + // 3. Then we are able to ERASE EVENT just AFTER the CHANGE is SAVED to the binlog. // // Actually the change will be saved to binlog too. - // So we can do it immidiatelly after EVENT is SENT to the binlog, because SEND CHANGE and ERASE EVENT will be + // So we can do it immediatelly after EVENT is SENT to the binlog, because SEND CHANGE and ERASE EVENT will be // ordered automatically. // // We will use common ChangeProcessor for all changes (inside one SecretChatActor). diff --git a/td/telegram/SecretChatsManager.cpp b/td/telegram/SecretChatsManager.cpp index 4da7ff5d8..3681dcf85 100644 --- a/td/telegram/SecretChatsManager.cpp +++ b/td/telegram/SecretChatsManager.cpp @@ -32,16 +32,16 @@ #include namespace td { -// + // qts and seq_no // Each EncryptedMessage (update_message) has qts. // Such updates must be handled in order of qts // // Qts should be handled on level of SecretChatsManager // 1. Each update can be received by SecretChatsManager multiple times. -// 2. Each update should be sent to SecretChatActor only once. (Thought SecretChatActor mustn't rely it) +// 2. Each update should be sent to SecretChatActor only once. (Though SecretChatActor mustn't rely it) // 3. Updates must be send in order of qts, without gaps. -// 4. SecretChatActor must notify SecretChatManager when update is processed (saved in db) +// 4. SecretChatActor must notify SecretChatManager when update is processed (saved in database) // 5. Only after all updates <= qts are processed by SecretChatActor, UpdatesManager should be // notified about new qts. // @@ -75,9 +75,6 @@ namespace td { // 5. Handling gaps. // TODO // Just fail chat. -// -// -// SecretChatsManager::SecretChatsManager(ActorShared<> parent) : parent_(std::move(parent)) { } @@ -87,7 +84,7 @@ void SecretChatsManager::start_up() { dummy_mode_ = true; return; } - // TODO: use db wrapper + // TODO: use database wrapper auto pmc = G()->td_db()->get_binlog_pmc(); auto qts_str = pmc->get("updates.qts"); if (!qts_str.empty()) { diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 90de8cb9e..f12deed17 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -3271,9 +3271,9 @@ td_api::object_ptr Td::get_fake_authorization_state_ DbKey Td::as_db_key(string key) { // Database will still be effectively not encrypted, but - // 1. sqlite db will be protected from corruption, because that's how sqlcipher works + // 1. SQLite database will be protected from corruption, because that's how sqlcipher works // 2. security through obscurity - // 3. no need for reencryption of sqlite db + // 3. no need for reencryption of SQLite database if (key.empty()) { return DbKey::raw_key("cucumber"); } diff --git a/td/telegram/TdDb.cpp b/td/telegram/TdDb.cpp index 507ffcd5f..d76235438 100644 --- a/td/telegram/TdDb.cpp +++ b/td/telegram/TdDb.cpp @@ -378,7 +378,7 @@ Status TdDb::init(int32 scheduler_id, const TdParameters ¶meters, DbKey key, } auto init_sqlite_status = init_sqlite(scheduler_id, parameters, new_sqlite_key, old_sqlite_key, *binlog_pmc); if (init_sqlite_status.is_error()) { - LOG(ERROR) << "Destroy bad sqlite db because of: " << init_sqlite_status; + LOG(ERROR) << "Destroy bad SQLite database because of " << init_sqlite_status; SqliteDb::destroy(get_sqlite_path(parameters)).ignore(); TRY_STATUS(init_sqlite(scheduler_id, parameters, new_sqlite_key, old_sqlite_key, *binlog_pmc)); } diff --git a/td/telegram/TopDialogManager.cpp b/td/telegram/TopDialogManager.cpp index f84496e95..3f168daa5 100644 --- a/td/telegram/TopDialogManager.cpp +++ b/td/telegram/TopDialogManager.cpp @@ -561,7 +561,7 @@ void TopDialogManager::loop() { } if (is_enabled_) { - // db sync + // database sync Timestamp db_sync_timeout; if (db_sync_state_ == SyncState::Ok) { if (first_unsync_change_) { diff --git a/td/telegram/files/FileDb.cpp b/td/telegram/files/FileDb.cpp index db5a8e561..32df0c157 100644 --- a/td/telegram/files/FileDb.cpp +++ b/td/telegram/files/FileDb.cpp @@ -35,7 +35,7 @@ Status drop_file_db(SqliteDb &db, int32 version) { Status fix_file_remote_location_key_bug(SqliteDb &db); Status init_file_db(SqliteDb &db, int32 version) { - LOG(INFO) << "Init file db " << tag("version", version); + LOG(INFO) << "Init file database " << tag("version", version); // Check if database exists TRY_RESULT(has_table, db.has_table("files")); @@ -143,7 +143,7 @@ class FileDb : public FileDbInterface { } void optimize_refs(const std::vector ids, Id main_id) { - LOG(INFO) << "Optimize ids in file db" << format::as_array(ids) << " " << main_id; + LOG(INFO) << "Optimize ids in file database" << format::as_array(ids) << " " << main_id; auto &pmc = file_pmc(); pmc.begin_transaction().ensure(); SCOPE_EXIT { @@ -248,7 +248,7 @@ class FileDb : public FileDbInterface { int attempt_count = 0; while (true) { if (attempt_count > 100) { - LOG(FATAL) << "cycle in files db?"; + LOG(FATAL) << "cycle in file database?"; } attempt_count++; @@ -281,7 +281,7 @@ class FileDb : public FileDbInterface { auto id_str = pmc.get(key); //LOG(DEBUG) << "Found id " << id_str << " by key " << format::as_hex_dump<4>(Slice(key)); if (id_str.empty()) { - return Status::Error("There is no such a key in db"); + return Status::Error("There is no such a key in database"); } return to_integer(id_str); } diff --git a/td/telegram/files/FileGcWorker.cpp b/td/telegram/files/FileGcWorker.cpp index eb568b2c1..f67ae95b4 100644 --- a/td/telegram/files/FileGcWorker.cpp +++ b/td/telegram/files/FileGcWorker.cpp @@ -26,7 +26,7 @@ int VERBOSITY_NAME(file_gc) = VERBOSITY_NAME(INFO); void FileGcWorker::do_remove_file(const FullFileInfo &info) { // LOG(WARNING) << "Gc remove file: " << tag("path", file) << tag("mtime", stat.mtime_nsec_ / 1000000000) // << tag("atime", stat.atime_nsec_ / 1000000000); - // TODO: remove file from db too. + // TODO: remove file from database too auto status = unlink(info.path); LOG_IF(WARNING, status.is_error()) << "Failed to unlink file during files gc: " << status; send_closure(G()->file_manager(), &FileManager::on_file_unlink, diff --git a/td/telegram/net/Session.h b/td/telegram/net/Session.h index 5323c04ff..c5882f929 100644 --- a/td/telegram/net/Session.h +++ b/td/telegram/net/Session.h @@ -91,11 +91,11 @@ class Session final } }; - // When connection is closed, mark all queries without ack as unknown + // When connection is closed, mark all queries without ack as unknown. // Ask state of all unknown queries when new connection is created. // // Just re-ask answer_id each time we get information about it. - // Thought mtproto::Connection must ensure delivery of such query + // Though mtproto::Connection must ensure delivery of such query. int32 dc_id_; enum class Mode : int8 { Tcp, Http } mode_ = Mode::Tcp; diff --git a/tddb/td/db/SqliteConnectionSafe.h b/tddb/td/db/SqliteConnectionSafe.h index 03adff944..4b4ea0be6 100644 --- a/tddb/td/db/SqliteConnectionSafe.h +++ b/tddb/td/db/SqliteConnectionSafe.h @@ -40,12 +40,12 @@ class SqliteConnectionSafe { } void close() { - LOG(INFO) << "Close sqlite db " << tag("path", name_); + LOG(INFO) << "Close SQLite database " << tag("path", name_); lsls_connection_.clear_values(); } void close_and_destroy() { close(); - LOG(INFO) << "Destroy sqlite db " << tag("path", name_); + LOG(INFO) << "Destroy SQLite database " << tag("path", name_); SqliteDb::destroy(name_).ignore(); } diff --git a/tddb/td/db/SqliteDb.cpp b/tddb/td/db/SqliteDb.cpp index 46af4e6bf..91a7bb49c 100644 --- a/tddb/td/db/SqliteDb.cpp +++ b/tddb/td/db/SqliteDb.cpp @@ -62,7 +62,7 @@ Status SqliteDb::init(CSlice path, bool *was_created) { int rc = sqlite3_open_v2(path.c_str(), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE /*| SQLITE_OPEN_SHAREDCACHE*/, nullptr); if (rc != SQLITE_OK) { - auto res = Status::Error(PSLICE() << "Failed to open db: " << detail::RawSqliteDb::last_error(db)); + auto res = Status::Error(PSLICE() << "Failed to open database: " << detail::RawSqliteDb::last_error(db)); sqlite3_close(db); return res; } @@ -92,9 +92,9 @@ void SqliteDb::trace(bool flag) { Status SqliteDb::exec(CSlice cmd) { CHECK(!empty()); char *msg; - VLOG(sqlite) << "Start exec " << tag("cmd", cmd) << tag("db", raw_->db()); + VLOG(sqlite) << "Start exec " << tag("query", cmd) << tag("database", raw_->db()); auto rc = sqlite3_exec(raw_->db(), cmd.c_str(), nullptr, nullptr, &msg); - VLOG(sqlite) << "Finish exec " << tag("cmd", cmd) << tag("db", raw_->db()); + VLOG(sqlite) << "Finish exec " << tag("query", cmd) << tag("database", raw_->db()); if (rc != SQLITE_OK) { CHECK(msg != nullptr); return Status::Error(PSLICE() << tag("query", cmd) << " failed: " << msg); @@ -175,7 +175,7 @@ Status SqliteDb::change_key(CSlice path, const DbKey &new_db_key, const DbKey &o auto new_key = db_key_to_sqlcipher_key(new_db_key); if (old_db_key.is_empty() && !new_db_key.is_empty()) { LOG(DEBUG) << "ENCRYPT"; - PerfWarningTimer timer("Encrypt sqlite database", 0.1); + PerfWarningTimer timer("Encrypt SQLite database", 0.1); auto tmp_path = path.str() + ".ecnrypted"; TRY_STATUS(destroy(tmp_path)); @@ -190,7 +190,7 @@ Status SqliteDb::change_key(CSlice path, const DbKey &new_db_key, const DbKey &o TRY_STATUS(rename(tmp_path, path)); } else if (!old_db_key.is_empty() && new_db_key.is_empty()) { LOG(DEBUG) << "DECRYPT"; - PerfWarningTimer timer("Decrypt sqlite database", 0.1); + PerfWarningTimer timer("Decrypt SQLite database", 0.1); auto tmp_path = path.str() + ".ecnrypted"; TRY_STATUS(destroy(tmp_path)); @@ -203,7 +203,7 @@ Status SqliteDb::change_key(CSlice path, const DbKey &new_db_key, const DbKey &o TRY_STATUS(rename(tmp_path, path)); } else { LOG(DEBUG) << "REKEY"; - PerfWarningTimer timer("Rekey sqlite database", 0.1); + PerfWarningTimer timer("Rekey SQLite database", 0.1); TRY_STATUS(db.exec(PSLICE() << "PRAGMA rekey = " << new_key)); } @@ -219,7 +219,7 @@ Result SqliteDb::get_statement(CSlice statement) { sqlite3_stmt *stmt = nullptr; auto rc = sqlite3_prepare_v2(get_native(), statement.c_str(), static_cast(statement.size()) + 1, &stmt, nullptr); if (rc != SQLITE_OK) { - return Status::Error(PSLICE() << "Failed to prepare sqlite " << tag("stmt", statement) << raw_->last_error()); + return Status::Error(PSLICE() << "Failed to prepare SQLite " << tag("statement", statement) << raw_->last_error()); } CHECK(stmt != nullptr) << statement; return SqliteStatement(stmt, raw_); diff --git a/tddb/td/db/SqliteStatement.cpp b/tddb/td/db/SqliteStatement.cpp index d76c2cfcd..4f9e8e453 100644 --- a/tddb/td/db/SqliteStatement.cpp +++ b/tddb/td/db/SqliteStatement.cpp @@ -22,7 +22,7 @@ int printExplainQueryPlan(StringBuilder &sb, sqlite3_stmt *pStmt) { return SQLITE_ERROR; } - sb << "Explain " << tag("cmd", zSql); + sb << "Explain query " << zSql; char *zExplain = sqlite3_mprintf("EXPLAIN QUERY PLAN %s", zSql); if (zExplain == nullptr) { return SQLITE_NOMEM; @@ -41,7 +41,7 @@ int printExplainQueryPlan(StringBuilder &sb, sqlite3_stmt *pStmt) { int iFrom = sqlite3_column_int(pExplain, 2); const char *zDetail = reinterpret_cast(sqlite3_column_text(pExplain, 3)); - sb << "\n" << iSelectid << " " << iOrder << " " << iFrom << " " << zDetail; + sb << '\n' << iSelectid << ' ' << iOrder << ' ' << iFrom << ' ' << zDetail; } return sqlite3_finalize(pExplain); @@ -176,11 +176,11 @@ Status SqliteStatement::step() { if (state_ == Finish) { return Status::Error("One has to reset statement"); } - VLOG(sqlite) << "Start step " << tag("cmd", sqlite3_sql(stmt_.get())) << tag("stmt", stmt_.get()) - << tag("db", db_.get()); + VLOG(sqlite) << "Start step " << tag("query", sqlite3_sql(stmt_.get())) << tag("statement", stmt_.get()) + << tag("database", db_.get()); auto rc = sqlite3_step(stmt_.get()); - VLOG(sqlite) << "Finish step " << tag("cmd", sqlite3_sql(stmt_.get())) << tag("stmt", stmt_.get()) - << tag("db", db_.get()); + VLOG(sqlite) << "Finish step " << tag("query", sqlite3_sql(stmt_.get())) << tag("statement", stmt_.get()) + << tag("database", db_.get()); if (rc == SQLITE_ROW) { state_ = GotRow; return Status::OK();