Чтение неопубликованных разделов Volatile слоя против лучших практик? - PullRequest
2 голосов
/ 23 апреля 2019

Я использую слой OLP Volatile в качестве бэк-энда панели мониторинга в реальном времени (средняя частота обновления составляет около 5 секунд).Данные разделены по идентификаторам источника, и набор идентификаторов источника сильно меняется со временем.

Я понимаю, что рекомендуется в документации - publish разделы вашего изменчивого уровня;однако, в отличие от upload, publish - это дорогостоящая операция, и я считаю, что она не предназначена для выполнения каждые несколько секунд.

Итак, что я делал до сих пор, я пропускаю publishпри записи данных на слой:

val writeEngine =
    DataEngine().writeEngine("hrn:of:my:catalog", new StableBlobIdGenerator(123L))
writeEngine.put(
  NewPartition(
    partition = "source-id-1",
    layer = "my-volatile-layer",
    data = someData
  )
)

и считывании данных с использованием того же blobIdGenerator, что и априори:

readEngine
  .getDataAsBytes(new ReferencePartition(
    version = 123L,
    partition = "source-id-1",
    layer = "my-volatile-layer",
    dataHandle = (new StableBlobIdGenerator(123L)).generateBlobId(NewPartition(
      partition = "source-id-1",
      layer = "my-volatile-layer",
      data = NewPartition.ByteArrayData(Array.emptyByteArray)
    ))
  ))

Я понимаю, что воспринимаю слой Volatile как-хранилище значений ключей памяти, и я понимаю, что не смогу увидеть свои данные в интерфейсе консоли OLP;но программно данные все еще загружаются и читаются.Это законное использование API Volatile?

1 Ответ

0 голосов
/ 08 мая 2019

Допустимо использовать энергозависимый слой в качестве хранилища значений ключей даже без публикации метаданных. Пока дескрипторы данных известны, это нормально. Метаданные полезны, если вам нужен запрос по метке времени или идентификатору раздела (если дескриптор данных неизвестен).

Если вы решите опубликовать метаданные для вашего изменчивого слоя, было бы наиболее эффективно просто инициализировать публикацию и загружать метаданные при добавлении или удалении разделов, просто не отправляйте задание публикации для завершения.

...