Возможно ли одновременное использование встроенных баз данных (чтение/запись) на одном компьютере (без сервера) с разными процессами. А как насчет одновременного чтения/записи в одном многопоточном процессе?
Я пытаюсь выяснить, как параллелизм решается в HSQL, H2, Apache Derby и SQLite (через xerial JDBC), но я плохо понимаю этот механизм блокировки (MVCC, OCC и т. д.), поэтому мне нужен кто-то, чтобы исправить то, что я нашел.
- H2: Only one process possibly multithreaded can be connected to the database.
- Table level locking for writes read operations doesnt require lock and can be done concurrently with write (N readers one writer)
- MVCC — блокировка на уровне таблицы или строки для записи (N читателей один писатель??)
- Hsql: выглядит так же, как H2, но есть некоторые отличия в механизме MVCC.
- Apache Derby (JavaDB): Only one process possibly multithreaded can be connected to the database.
- Table level locking or row level locking for writes. Read operations doesnt require lock and can be done concurrently with writes (N readers one writer)
- SQLite (xerial JDBC): multiple processes can connect simultaneously but only one can do writting operations. (database locking).
- when there is a write lock other processes or threads cant perform read and write operations??