SQL-запрос работает медленно при записи данных в кеш на кластер воспламенения Apache - PullRequest
0 голосов
/ 29 марта 2019

Тест на apache ignite 2.7.0 и 2.3.0, если данные кеша не пишутся, SQL-запрос выполняется быстро, но когда я пишу данные, SQL-запрос становится медленным, почему?

И каксделать SQL-запрос быстро, когда данные записываются в кэш apache ignite?Или как разделить чтение и запись в кеш на apache ignite?

Определите сущность ABData кеша, как показано ниже, и загрузите 3000 ABDatas с помощью метода Streamer.add 10 раз.Каждый раз после того, как мы уже загрузили все ABData (предположим, что через 10 минут это означает, что 3000 ABDatas были добавлены в кэш воспламенения), запускайте SqlFieldQuery ('select * from ABData'), все ABDatas возвращаются в течение 5 миллисекунд.Но каждый раз, когда 3000 ABDatas все еще находится в загрузке (например, каждый раз перед загрузкой ABData, мы запускаем другой поток для запроса ABData с помощью SqlFieldQuery), запускаем SqlFieldQuery ('select * from ABData'), все ABDatas возвращаются после 100миллисекунды.

public class ABData {

    @QuerySqlField(index = true)
    private String code;

    @QuerySqlField(index = false)
    private String configData;

    @QuerySqlField(index = false)
    private Integer categoryID;

}

1 Ответ

0 голосов
/ 02 апреля 2019

Трудно сказать, что здесь происходит.Я предлагаю вам отладить эту проблему, взяв, например, трассировку стека и попытавшись выяснить, где тратится время / где происходит блокировка.

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

...