Loosen up synchronization in FileMonitor
----------------------------------------
Key: DERBY-5623
URL: https://issues.apache.org/jira/browse/DERBY-5623
Project: Derby
Issue Type: Improvement
Components: Services
Affects Versions: 10.8.2.2
Reporter: Knut Anders Hatlen
When opening a large number of databases in parallel, many threads get stuck
for a long time in FileMonitor, as reported in this thread on derby-user:
http://mail-archives.apache.org/mod_mbox/db-derby-user/201202.mbox/%3CCAEQ8c00vx0yFrwWyjm%3Dt_Yd%2BuuKGOL%3DSgpYfQuYghOOPgdN8-w%40mail.gmail.com%3E
The synchronization in FileMonitor is only needed because the monitor instance
is also used as a shared PrivilegedExceptionAction instance. Since all
databases share one FileMonitor instance, threads that access any of these
methods are serialized. If each method created its own PrivilegedAction or
PrivilegedExceptionAction instance instead of using the monitor's run() method,
these methods wouldn't need synchronization.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira