Я использую фильтр в ScanQuery, который выполняет некоторую логику, чем простая фильтрация, - она имеет состояние и создает некоторые агрегаты/счетчики. Нужно ли использовать поточно-безопасные структуры внутри этого фильтра или один раздел, отсканированный одним потоком?Является ли ScanQuery в Apache Ignite над одним разделом одно или многопоточным?
3
A
ответ
0
Код фильтра будет всегда выполняться одним потоком, если вы начнете один запрос сканирования и больше не будет выполняться сканирование, которое будет проходить параллельно по одному и тому же разделу.
Однако, основываясь на параметре ScanQuery.pageSize
, эта тема может отличаться.
Также убедитесь, что вы не выполняете операции, связанные с кешем, в логике вашего фильтра, поскольку это может привести к распределенным взаимоблокировкам.
Вам, вероятно, придется посмотреть код для реализации IgniteCache.query(), который вы используете для ответа на этот вопрос. –