mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
zkutil: add remove with retries [#METR-16024]
This commit is contained in:
parent
be684446bd
commit
8d0e842dde
@ -100,6 +100,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
void remove(const std::string & path, int32_t version = -1);
|
void remove(const std::string & path, int32_t version = -1);
|
||||||
|
|
||||||
|
/** Удаляет ноду. В случае сетевых ошибок пробует удалять повторно.
|
||||||
|
* Ошибка ZNONODE для второй и последующих попыток игнорируется
|
||||||
|
*/
|
||||||
|
void removeWithRetries(const std::string & path, int32_t version = -1);
|
||||||
|
|
||||||
/** Не бросает исключение при следующих ошибках:
|
/** Не бросает исключение при следующих ошибках:
|
||||||
* - Такой ноды нет.
|
* - Такой ноды нет.
|
||||||
* - У ноды другая версия.
|
* - У ноды другая версия.
|
||||||
|
@ -294,6 +294,15 @@ void ZooKeeper::remove(const std::string & path, int32_t version)
|
|||||||
check(tryRemove(path, version), path);
|
check(tryRemove(path, version), path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZooKeeper::removeWithRetries(const std::string & path, int32_t version)
|
||||||
|
{
|
||||||
|
size_t attempt;
|
||||||
|
int code = tryRemoveWithRetries(path, version, &attempt);
|
||||||
|
|
||||||
|
if (!(code == ZOK || (code == ZNONODE && attempt > 0)))
|
||||||
|
throw KeeperException(code, path);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t ZooKeeper::tryRemove(const std::string & path, int32_t version)
|
int32_t ZooKeeper::tryRemove(const std::string & path, int32_t version)
|
||||||
{
|
{
|
||||||
int32_t code = removeImpl(path, version);
|
int32_t code = removeImpl(path, version);
|
||||||
|
Loading…
Reference in New Issue
Block a user