WL#5563: MTS: Prototype for Slave parallelized by db name
Affects: Server-Prototype Only
—
Status: Complete
OBJECTIVE
---------
To deliver a prototype implementation of Slave executing events in
parallel with specifics of the events logical partitioning per
database.
To demonstrate improved performance.
The work is a necessary part of WL#5569.
FEATURES
--------
a. full support for Query_log_event and Rows_log_event
b. no commit coordination between transactions belonging to different databases
c. no limits to the engine type
d. a transaction does not touch more than one database (a conceptual limitation
of the parent WL);
Technical limitations
---------------------
The prototype simplifies few routines that will be addressed in the production
WL.
a. recovery after crash is even less "supported" as it is currently w/o WL#2775;
b. show-slave-status to display last executed positions will be inaccurate -
optimistic -
may not always (eventually yes) correspond to the low-water-mark;
c. error handling will be simplified in not to have retries for
temporary failing transactions;
d. event skipping via sql_slave_skip_counter won't work;
e. static number of workers in the worker pool;
f. temporary tables are not supported in the query log event;
g. no fall-back to the sequential applying if some conflict (like temp table)
is discovered.
h. neither transaction nor DDL can modify more than one db;
Architecture description
------------------------
Can be found in WL#5569.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.