diff options
author | alexbogo <alexbogo@ydb.tech> | 2022-10-18 15:26:34 +0300 |
---|---|---|
committer | alexbogo <alexbogo@ydb.tech> | 2022-10-18 15:26:34 +0300 |
commit | 28a69e75259ba949f9d8cc24bc30c738272635ce (patch) | |
tree | c24bd0eed9d05e1047d9052ad68543982afa27fd | |
parent | cab6b0b6313a7a5a5be6f2761197e0e555f84d06 (diff) | |
download | ydb-28a69e75259ba949f9d8cc24bc30c738272635ce.tar.gz |
[ymq] detect queue changes by version changes
init
-rw-r--r-- | ydb/core/ymq/actor/events.h | 6 | ||||
-rw-r--r-- | ydb/core/ymq/actor/service.cpp | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/ydb/core/ymq/actor/events.h b/ydb/core/ymq/actor/events.h index b0e631b6e21..e79221fd520 100644 --- a/ydb/core/ymq/actor/events.h +++ b/ydb/core/ymq/actor/events.h @@ -764,16 +764,16 @@ struct TSqsEvents { }; struct TEvInsertQueueCounters : public NActors::TEventLocal<TEvInsertQueueCounters, EvInsertQueueCounters> { - TEvInsertQueueCounters(const TString& user, const TString& queue, ui64 leaderTabletId) + TEvInsertQueueCounters(const TString& user, const TString& queue, ui64 version) : User(user) , Queue(queue) - , LeaderTabletId(leaderTabletId) + , Version(version) { } TString User; TString Queue; - ui64 LeaderTabletId; + ui64 Version; }; struct TEvUserSettingsChanged : public NActors::TEventLocal<TEvUserSettingsChanged, EvUserSettingsChanged> { diff --git a/ydb/core/ymq/actor/service.cpp b/ydb/core/ymq/actor/service.cpp index 7a264a37696..06c5fc049c4 100644 --- a/ydb/core/ymq/actor/service.cpp +++ b/ydb/core/ymq/actor/service.cpp @@ -1034,7 +1034,7 @@ std::map<TString, TSqsService::TQueueInfoPtr>::iterator TSqsService::AddQueue(co folderCntrIter = user->FolderCounters_.insert(std::make_pair(folderId, user->Counters_->CreateFolderCounters(folderId, true))).first; } if (!insertCounters) { - Schedule(timeToInsertCounters - now, new TSqsEvents::TEvInsertQueueCounters(userName, queue, leaderTabletId)); + Schedule(timeToInsertCounters - now, new TSqsEvents::TEvInsertQueueCounters(userName, queue, version)); } auto ret = user->Queues_.insert(std::make_pair(queue, TQueueInfoPtr(new TQueueInfo( @@ -1245,9 +1245,9 @@ void TSqsService::HandleInsertQueueCounters(TSqsEvents::TEvInsertQueueCounters:: return; } const auto& queue = queueIt->second; - if (queue->LeaderTabletId_ != ev->Get()->LeaderTabletId) { - LOG_SQS_WARN("Don't insert queue [" << ev->Get()->Queue << "] counters: leader tablet is not as expected. Expected: " - << ev->Get()->LeaderTabletId << ". Real: " << queue->LeaderTabletId_); + if (queue->Version_ != ev->Get()->Version) { + LOG_SQS_WARN("Don't insert queue [" << ev->Get()->Queue << "] counters: queue version is not as expected. Expected: " + << ev->Get()->Version << ". Real: " << queue->Version_); return; } |