Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid serialization of isc_attach_database calls issued by EXECUTE STATEMENT implementation [CORE5648] #5914

Closed
firebird-issue-importer opened this issue Oct 24, 2017 · 9 comments

Comments

@firebird-issue-importer

Submitted by: @hvlad

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.

Commits: 5ef0c5b 0d0c9cc

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 24, 2017

Modified by: @hvlad

assignee: Vlad Khorsun [ hvlad ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 24, 2017

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 3.0.3 [ 10810 ]

Fix Version: 4.0 Beta 1 [ 10750 ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 24, 2017

Commented by: Sean Leyne (seanleyne)

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?

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 24, 2017

Commented by: @hvlad

Sean,

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

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 25, 2017

Commented by: Sean Leyne (seanleyne)

Vlad,

Then, how about:

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

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 25, 2017

Commented by: @hvlad

What is wrong with original description ?

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 25, 2017

Commented by: Sean Leyne (seanleyne)

Too geeky.

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

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Nov 13, 2017

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: No test => Done successfully

Test Specifics: [Architecture (SS/CS) specific]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Nov 13, 2017

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment