Details
-
New Feature
-
Status: Needs Feedback (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
Description
SAMU-64 Allow administrators to enable or disable parallel replication on a per-table basis
Per-domain dedicated thread for processing ordered transactions. The thread is reserved from the total number of domain threads (controlled by slave_parallel_threads and slave_domain_parallel_threads). Whether the event goes to ordered thread depends on FL_ALLOW_PARALLEL flag as well as several other conditions. FL_ALLOW_PARALLEL is passed from master and is set for the event depending on master configuration directives. To allow dedicated slave on server one must enable it explicitly with configuration directive:
set global slave_ordered_thread= 1;
Originally it was controlled by skip_parallel_replication session variable which can be changed per-statement. This patch adds several more directives to control it on per-schema and per-table levels:
parallel_do_db
parallel_do_table
parallel_ignore_db
parallel_ignore_table
parallel_wild_do_table
parallel_wild_ignore_table
Each directive is comma-separated list of fully-qualified table names. Spaces after comma are ignored (but not before).
"Table" directives take precedence over "db" directives. "Do" directives take precedence over "ignore" directives. "Wild" directives are checked if "do" and "ignore" directives did not match.
If none of the above directives present everything is considered parallel. If any of the above directives present and the table did not match anything in the lists it is considered ordered.
Examples:
set @@global.parallel_do_db= "db_parallel"; set @@global.parallel_ignore_db= "db_serial"; set global parallel_do_table= "db_serial.t3, db_serial.t1"; set global parallel_wild_ignore_table= "db_parallel.non_parallel_%"
Normal behavior of ordered transaction is before start to wait any of prior transactions to commit: they get into different commit groups. But since all the ordered transactions (within one domain) go to a single thread we may avoid that restriction with this directive on slave:
set global slave_ordered_dont_wait= 1;
When set events without explicit FL_WAITED flag going to ordered thread nonetheless accept optimistic speculation. I.e. they get into same commit group with parallel events: ordered event is executed in parallel with parallel events.
Attachments
Issue Links
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
- relates to
-
SAMU-64 Loading...