Снимите блокировку среды при каждом завершении транзакции - PullRequest
0 голосов
/ 26 мая 2020

Поскольку один процесс JVM может писать в Xodus, а другой JVM читать в одной и той же среде, каков правильный способ для процесса или метода JVM снимать блокировку среды в конце каждой транзакции? как таковые другие процессы JVM могли бы писать в ту же среду в своих соответствующих транзакциях?

1 Ответ

1 голос
/ 03 июня 2020

Файл xd.lck никогда не удаляется, он заблокирован Средой, которой разрешена запись. Подробности реализации см. В LockingManager .

Если одна среда находится в режиме записи, можно открыть другую (и несколько таких) в режиме прослушивания только для чтения для того же физического database:

final EnvironmentConfig config = new EnvironmentConfig().
            setLogDataReaderWriterProvider("jetbrains.exodus.io.WatchingFileDataReaderWriterProvider");
final Environment env = Environments.newInstance(dir, config); 

Этот способ открытия Environment можно использовать в той же или другой JVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...