Ignite и MySQL - Неожиданное количество обновленных записей

0

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

@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, если существующая строка обновляется.

И ignite записывает в журнал WARN (он воспламеняет исходный код):

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

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

Теги:
spring
ignite

1 ответ

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню