#java #sql #ignite
#java #sql #ignite
Вопрос:
Тест на apache ignite 2.7.0 и 2.3.0, если данные кэша не записываются, sql-запрос выполняется быстро, но когда я записываю данные, sql-запрос становится медленным, почему?
И как ускорить sql-запрос при записи данных в кэш apache ignite? Или как разделить чтение и запись кэша в apache ignite?
Определите объект кэша ABData, как показано ниже, и загрузите 3000 ABDATA с помощью Streamer.добавьте метод 10 раз. Каждый раз после того, как мы уже загрузили все ABData (предположим, через 10 минут, это означает, что 3000 ABDATA были добавлены в ignite cache), запускаем SqlFieldQuery(‘select * from ABData’), все ABDATA возвращаются в течение 5 миллисекунд. Но каждый раз, когда 3000 ABDATA все еще загружаются (например, каждый раз перед загрузкой ABData мы запускаем другой поток для запроса ABData с помощью SqlFieldQuery), запускаем SqlFieldQuery(‘select * from ABData’), все ABDATA возвращаются через 100 миллисекунд.
public class ABData {
@QuerySqlField(index = true)
private String code;
@QuerySqlField(index = false)
private String configData;
@QuerySqlField(index = false)
private Integer categoryID;
}
Комментарии:
1. К сожалению, трудно ответить, не понимая ваших запросов или рабочей нагрузки.
2. Я обновил вопрос, посмотрим, может ли это помочь вам понять.
Ответ №1:
Трудно сказать, что здесь происходит. Я предлагаю вам отладить эту проблему, взяв, например, трассировки стека и попытавшись выяснить, на что тратится время / где происходит блокировка.
Тогда в вашем сценарии могут возникнуть некоторые проблемы, такие как создание недолговечных серверных узлов для выполнения потоковой передачи данных. Они будут запускать перебалансировку, когда они приходят или уходят.