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.