У меня есть три узла Cassandra с коэффициентом репликации пространства ключей, установленным на 3. В Kundera EntityManager я установил для свойства consistency.level значение QUORUM.
Иногда, когда происходит последовательная запись и чтение одной и той же записи в базе данных, я вижу, что чтение получает устаревшие данные.Когда я вручную проверяю базу данных, в записи появляются новые данные.См. Аналогичную проблему и после вставки новой записи, периодически при последующем чтении не удается найти запись в базе данных.Если я проверю вручную, запись существует.Попытался добавить flush () после каждого persist (), но это не помогло.Если после выполнения операции persist () менеджера сущностей я помещаю спящий код в код, то при последующем чтении всегда получаются новые данные.
Я где-то читал, что по умолчанию Кундера является синхронным, поэтому операции записи должны блокироваться, пока не будет достигнута согласованность.Как проверить, что уровень согласованности действительно действует для операций записи и чтения?Если я читаю свойства EntityManager в моем коде, он возвращает {consistency.level = QUORUM}.Я также попробовал следующее, но это не помогло.
@PersistenceContext(type = PersistenceContextType.EXTENDED, properties = {@PersistenceProperty(name="consistency.level", value="QUORUM")})
EntityManager entityManager;
Есть идеи, как это исправить?Спасибо.
Cassandra версии 3.11 и Kundera версии 3.12 (также пробовали с Kundera 3.13).