Является ли TTL MapLtate для всего экземпляра MapState или для каждого элемента в MapState? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть MapState во флинке. И я установил ttl на 10 минут. Это ttl для всего экземпляра MapState или для каждого из элементов?

    val ttlConfig = StateTtlConfig
      .newBuilder(Time.minutes(10))
      .setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)
      .setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired)
      .build

      val myMapState: MapState[String, Upload] = ....

      myMapState.put("a", "x")

      // 5 minutes later
      myMapState.put("b", "y")

      // Again 6 minutes later, is the myMapState still available? 
      // I assume myMapState is still available and it still has key "b" for 4 minutes. Is that correct?



1 Ответ

0 голосов
/ 16 октября 2019

Привет, ваше предположение верно.

Если TTL настроен и значение состояния истекло, сохраненное значение будет очищено с максимальной эффективностью.

Таким образом, значение может все еще сохраняться, даже если TTL прошел, конфигурация видимости состояния будет контролировать, будет ли возвращено значение или нет.

  • StateTtlConfig.StateVisibility.NeverReturnExpired - истекшее значение никогда не возвращается

  • StateTtlConfig.StateVisibility.ReturnExpiredIfNotCleanedUp - возвращается, если все еще доступно

Подробнее о состоянии TTL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...