Параллельный запрос в HSQLDB - PullRequest
1 голос
/ 28 января 2011

возможно ли выполнить запрос параллельно с HSQLDB?Поскольку я не смог найти ничего в документации, я полагаю, что в оптимизаторе нет параллелизма.Но как насчет нескольких соединений с базой данных?Предположим, у меня работают 2 потока (и доступно 2 ядра), каждый из них имеет «частное» (отдельное) подключение к базе данных, и каждый из них пытается выполнить другой запрос (запрос к другой таблице).Будут ли такие запросы выполняться параллельно?

1 Ответ

0 голосов
/ 28 января 2011

HSQLDB 2.x является полностью многопоточным и выполняет такие запросы параллельно.

Как правило, каждый поток выполняет запросы отдельно от других потоков. Менеджер транзакций проверяет доступ к таблице и строке для каждого оператора и вводит ожидания текущего потока, если это необходимо, только когда другое соединение изменило таблицу или строку, о которой идет речь, в противном случае он позволяет потоку соединения продолжить. Если ваши операторы не изменяют данные, несколько потоков могут одновременно запрашивать одну и ту же таблицу или строки.

Ожидания вводятся на уровне таблицы в режиме LOCKS и на уровне строки в режиме MVCC.

См. HSQLDB Gide http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#snc_tx_tx_cc

...