Avoid serialization of isc_attach_database calls issued by EXECUTE STATEMENT
implementation
-------------------------------------------------------------------------------------------
Key: CORE-5648
URL: http://tracker.firebirdsql.org/browse/CORE-5648
Project: Firebird Core
Issue Type: Improvement
Components: Engine
Affects Versions: 4.0 Alpha 1, 3.0.2, 2.5.7, 3.0.1, 2.5.6, 3.0.0, 4.0
Initial, 2.5.5, 2.5.4, 2.1.7, 2.5.3, 2.5.2 Update 1, 2.5.2, 2.5.1, 2.5.0
Environment: Super Server and Super Classic architectures.
Classic is not affected.
Reporter: Vlad Khorsun
When EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE was introiduced in v2.5.0
there was informal agreement that calls of
isc_attach_database should be serialized to avoid deadlocks in fbclient
(reported by users from time to time, but never reproduced).
Such serialization is almost not visible by end users when all works as
expected, in particular when remote hosts can be reached via network.
But when there is some network issues, or when remote address is not available
there could be significant delays before isc_attach_database
returns corresponding error. Due to serialization of call of
isc_attach_database by the engine all other attachments running EXECUTE
STATEMENT
and connecting to the their remote databases should wait for the unlucky one.
Starting from v3 it seems we can remove this artificial limitation in the
engine and allow all attachments to call isc_attach_database
in parallel without serialization.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel