Превышено время ожидания блокировки транзакции NDB CannotAcquireLockException
Я использую кластер MySQL NDB с архитектурой мастер-мастер. Насколько я понимаю, если я буду искать некоторые данные, не основанные на идентификаторах, это затронет все узлы NDB. Если один узел не может получить блокировку из-за того, что строка заблокирована другой транзакцией и истекло время ожидания, я получу исключение "Время ожидания блокировки".
Приложение, которое подключается к этой БД, является стандартной пружинной загрузкой с hibernate (база данных-платформа: org.hibernate.dialect.MySQL5InnoDBDialect database: MYSQL)
Некоторые транзакции доступны только для чтения. Транзакция, выполняющая чтение, подходит для значений до или после (относительно другой транзакции). В соответствии с этим, если я не добавлю "LOCK IN SHARE MODE". это произойдет естественно.
Мой метод аннотирован с помощью: @Transactional(readOnly = true)
Есть ли что-то еще, что я должен сделать, чтобы убедиться, что мое приложение просто читает, не ожидая или не блокируя другую транзакцию?