Слияние кода завершено, страница обновится автоматически
Каждый раз перед выполнением операции removeMetadataCompleteCountDownLatch.countDown()
следует проверить количество latch'ов. Если latchCount == 1
, это указывает на то, что это последнее подтверждение завершения удаления метаданных. В этом случае сначала необходимо удалить метаданные на локальном Controller-узле и установить this.rebalanceSlotInfo = null;
. После этого можно выполнить последнюю операцию removeMetadataCompleteCountDownLatch.countDown()
. Это гарантирует, что присваивание значения переменной rebalanceSlotInfo
после пробуждения потока для повторного балансирования не будет мешаться другим потокам.
Исходный код представлен ниже: