Issue Details (XML | Word | Printable)

Key: CORE-5648
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vlad Khorsun
Reporter: Vlad Khorsun
Votes: 0
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Avoid serialization of isc_attach_database calls issued by EXECUTE STATEMENT implementation

Created: 24/Oct/17 10:03 AM   Updated: 13/Nov/17 08:24 AM
Component/s: Engine
Affects Version/s: 2.5.0, 2.5.1, 2.5.2, 2.5.2 Update 1, 2.5.3, 2.1.7, 2.5.4, 2.5.5, 4.0 Initial, 3.0.0, 2.5.6, 3.0.1, 2.5.7, 3.0.2, 4.0 Alpha 1
Fix Version/s: 3.0.3, 4.0 Beta 1

Environment:
Super Server and Super Classic architectures.
Classic is not affected.

QA Status: Done successfully
Test Specifics: Architecture (SS/CS) specific


 Description  « Hide
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.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Sean Leyne added a comment - 24/Oct/17 04:52 PM
Vlad,

Based on your description of the change, I would suggest that the summary/description of the change be edited to:

Allow parallel EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE from multiple Firebird sessions/attachments


Thoughts?


Vlad Khorsun added a comment - 24/Oct/17 06:43 PM
Sean,

EXEC STMT already run in parallel, the issue is about attachment stage only, not about execution stage

Sean Leyne added a comment - 25/Oct/17 05:32 PM
Vlad,

Then, how about:

  Allow parallel initialization of EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE from multiple Firebird sessions/attachments

Vlad Khorsun added a comment - 25/Oct/17 05:39 PM
What is wrong with original description ?

Sean Leyne added a comment - 25/Oct/17 05:53 PM
Too geeky.

Users/Release note reader want summary that describe tissue from an external POV, how the issue presents in operation/use.