summaryrefslogtreecommitdiff
path: root/sql/rpl_parallel.h
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2013-07-03 13:46:33 +0200
committerunknown <knielsen@knielsen-hq.org>2013-07-03 13:46:33 +0200
commit31a5edb5c27d2ecae8d19345e1a373d22246143a (patch)
tree506d6dc5296b26619b3880dac6df5dc7748111e6 /sql/rpl_parallel.h
parent1b3dc66e3117a09c95a00be2f649b975fdb25e2e (diff)
downloadmariadb-git-31a5edb5c27d2ecae8d19345e1a373d22246143a.tar.gz
MDEV-4506: Parallel replication. Intermediate commit.
Hook in the wait-for-prior-commit logic (not really tested yet). Clean up some resource maintenance around rpl_group_info (may still be some smaller issues there though). Add a ToDo list at the top of rpl_parallel.cc
Diffstat (limited to 'sql/rpl_parallel.h')
-rw-r--r--sql/rpl_parallel.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/sql/rpl_parallel.h b/sql/rpl_parallel.h
index c5bb39cb6fc..b0367efdea6 100644
--- a/sql/rpl_parallel.h
+++ b/sql/rpl_parallel.h
@@ -25,7 +25,6 @@ struct rpl_parallel_thread {
Log_event *ev;
struct rpl_group_info *rgi;
} *event_queue, *last_in_queue;
- rpl_parallel_thread *wait_for; /* ToDo: change this ... */
};
@@ -52,6 +51,14 @@ struct rpl_parallel_entry {
uint64 last_commit_id;
bool active;
rpl_parallel_thread *rpl_thread;
+ /*
+ The sub_id of the last transaction to commit within this domain_id.
+ Must be accessed under LOCK_parallel_entry protection.
+ */
+ uint64 last_committed_sub_id;
+ mysql_mutex_t LOCK_parallel_entry;
+ uint64 current_sub_id;
+ struct rpl_group_info *current_group_info;
};
struct rpl_parallel {
HASH domain_hash;
@@ -60,7 +67,7 @@ struct rpl_parallel {
rpl_parallel();
~rpl_parallel();
rpl_parallel_entry *find(uint32 domain_id);
- bool do_event(Relay_log_info *rli, Log_event *ev, THD *thd);
+ bool do_event(struct rpl_group_info *serial_rgi, Log_event *ev, THD *thd);
};