Возможно ли InvalidStateStoreException при получении хранилища состояний из ProcessorContext?

Oracle не постоянно обновляет свою статистику о таблицах и разделах, поскольку это будет слишком тяжело. После анализа таблицы статистика (например, те, что указаны в user_tab_partitions) будут обновлены. Поскольку у Oracle теперь разные статистические данные, оптимизатор может очень хорошо создавать разные планы выполнения для ваших запросов и, таким образом, влиять на производительность.

1
задан Dima Svider 18 January 2019 в 17:37
поделиться

1 ответ

Может ли возникать исключение InvalidStateStoreException, когда локальное хранилище состояний получается из контекста ProcessorContext внутри Processor :: init или Transformer :: init, т.е.

Нет. init() не будет вызвано, пока магазин не будет готов. Таким образом, InvalidStateStoreException никогда не произойдет.

Мы храним ссылку на KeyValueStore userStore и используем ее позже для изменения userStore внутри Punctuator :: punctuate. Стоит ли беспокоиться о получении исключения InvalidStateStoreException при любых операциях put / get / delete с этим хранилищем?

Нет. Вы можете смело читать / писать в магазине. InvalidStateStoreException никогда не произойдет. punctuate() выполняется тем же потоком, что и process(), и это гарантирует, что хранилище готово при вызове punctuate().

0
ответ дан Matthias J. Sax 18 January 2019 в 17:37
поделиться