Ignite и MySQL - Неожиданное количество обновленных записей - PullRequest
0 голосов
/ 21 мая 2018

У меня есть кэш

@Bean
  CacheConfiguration persistenceCacheConfiguration(
    CacheJdbcPojoStoreFactory<Long, SequencesEntity> storeFactory) {
    CacheConfiguration<Long, SequencesEntity> configuration = new CacheConfiguration<>(
      PERSISTENCE_CACHE_NAME);
    configuration.setIndexedTypes(Long.class, SequencesEntity.class);
    configuration.setReadThrough(true);
    configuration.setWriteThrough(true);
    configuration.setCacheStoreFactory(storeFactory);
    configuration.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
    return configuration;
  }

, и я использую базу данных MySQL.

Когда я обновляю данные в кеше, Ignite выполняет следующий метод и запрос:

CacheAbstractJdbcStore.write

Запрос:

INSERT INTO table (id, stream_name, value) VALUES (1,'my',100000000001) ON DUPLICATE KEY UPDATE stream_name = VALUES(stream_name), value = VALUES(value)    

Возвращает 2 затронутых строки.Это правильно - https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html

При ON DUPLICATE KEY UPDATE значение затронутых строк на строку равно 1, если строка вставлена ​​как новая строка, и 2, если существующая строка обновлена.

И запись воспламенения в журнал ПРЕДУПРЕЖДАЕТ (это исходный код воспламенения):

if (updCnt != 1)
                        U.warn(log, "Unexpected number of updated entries [table=" + em.fullTableName() +
                            ", entry=" + entry + "expected=1, actual=" + updCnt + "]");

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

1 Ответ

0 голосов
/ 22 мая 2018

Это похоже на ошибку.Подано https://issues.apache.org/jira/browse/IGNITE-8550 для этого.Кроме этого, я могу только предложить вам игнорировать это предупреждение.

...