Субъекты Service Fabric. Как правильно удалить постоянное состояние субъекта на жестком диске кластера?

Делая свой POC на основе акторов сервисной фабрики, я хотел знать, удаляется ли постоянное состояние актера, когда актер и его состояние явно удаляются.

Когда актер создан, я вижу, что файл с именем ActorStateStore создается в одном из подкаталогов SfDevCluster. Я предполагаю, что этот файл используется для хранения состояния актера, когда класс актера имеет [StatePersistence(StatePersistence.Persisted)] приписывать. Проблема в том, что актер создан, и я явно удаляю его состояние с помощью RemoveStateAsync("stateName") и удалите самого актера serviceProxy.DeleteActorAsync(actorId, default(CancellationToken))размер ActorStateStore остается прежним.

Я также пытался наблюдать за поведением сборщика мусора во время выполнения этой проблемы, но, похоже, он не удаляет какие-либо данные из файла ActorStateStore.

Я прочитал в документации: "Среда актера хранит некоторые метаданные о каждом существующем актере. Удаление всех состояний актера не приводит к удалению метаданных об этом актере". Так может кто-нибудь объяснить правильный способ удаления этих метаданных с диска?

С наилучшими пожеланиями,

Александр


Упомянутый вами файл - это файл локальной базы данных ese, из которого удаляются строки данных об удаленном актере. Как размер файла базы данных отличается от состояния и удаления субъекта.

Мика Маккитрик - облачный инженер @Microsoft

Вы можете найти полный ответ здесь.

0 ответов

Другие вопросы по тегам