summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2016-07-25 15:41:34 +1000
committerStefan Metzmacher <metze@samba.org>2016-07-28 05:00:17 +0200
commit3314a09aafaa90adc5503c08baa4d6f965a2b7c5 (patch)
treea0babe09a874624fe66e875a7efae5a987062b4b /ctdb
parent47c400f42cc1eb72e134aefdb24e6dca70d71cad (diff)
downloadsamba-3314a09aafaa90adc5503c08baa4d6f965a2b7c5.tar.gz
ctdb-daemon: Drop implementation of global transaction controls
These were used in serial recovery and for restoring databases using older ctdb tool. New code uses database specific transaction controls. Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/include/ctdb_private.h4
-rw-r--r--ctdb/server/ctdb_control.c9
-rw-r--r--ctdb/server/ctdb_freeze.c100
3 files changed, 3 insertions, 110 deletions
diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h
index 5d7275e5bb8..cf30efdddcf 100644
--- a/ctdb/include/ctdb_private.h
+++ b/ctdb/include/ctdb_private.h
@@ -635,10 +635,6 @@ int32_t ctdb_control_db_transaction_cancel(struct ctdb_context *ctdb,
int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
TDB_DATA indata);
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id);
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb);
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id);
-
int32_t ctdb_control_wipe_database(struct ctdb_context *ctdb, TDB_DATA indata);
bool ctdb_db_frozen(struct ctdb_db_context *ctdb_db);
diff --git a/ctdb/server/ctdb_control.c b/ctdb/server/ctdb_control.c
index ea68bbfade4..f01815c93b1 100644
--- a/ctdb/server/ctdb_control.c
+++ b/ctdb/server/ctdb_control.c
@@ -439,12 +439,10 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
return ctdb_control_send_gratious_arp(ctdb, indata);
case CTDB_CONTROL_TRANSACTION_START:
- CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
- return ctdb_control_transaction_start(ctdb, *(uint32_t *)indata.dptr);
+ return control_not_implemented("TRANSACTION_START", NULL);
case CTDB_CONTROL_TRANSACTION_COMMIT:
- CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
- return ctdb_control_transaction_commit(ctdb, *(uint32_t *)indata.dptr);
+ return control_not_implemented("TRANSACTION_COMMIT", NULL);
case CTDB_CONTROL_WIPE_DATABASE:
CHECK_CONTROL_DATA_SIZE(sizeof(struct ctdb_transdb));
@@ -573,8 +571,7 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
return control_not_implemented("GET_DB_PRIORITY", "");
case CTDB_CONTROL_TRANSACTION_CANCEL:
- CHECK_CONTROL_DATA_SIZE(0);
- return ctdb_control_transaction_cancel(ctdb);
+ return control_not_implemented("TRANSACTION_CANCEL", NULL);
case CTDB_CONTROL_REGISTER_NOTIFY:
return ctdb_control_register_notify(ctdb, client_id, indata);
diff --git a/ctdb/server/ctdb_freeze.c b/ctdb/server/ctdb_freeze.c
index f198652065a..2666013744b 100644
--- a/ctdb/server/ctdb_freeze.c
+++ b/ctdb/server/ctdb_freeze.c
@@ -811,106 +811,6 @@ int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
}
/*
- start a transaction on all databases - used for recovery
- */
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id)
-{
- struct db_start_transaction_state state;
- int ret;
-
- if (!ctdb_db_all_frozen(ctdb)) {
- DEBUG(DEBUG_ERR, (__location__
- " failing transaction start while not frozen\n"));
- return -1;
- }
-
- state.transaction_id = id;
- state.transaction_started = ctdb->freeze_transaction_started;
-
- ret = ctdb_db_iterator(ctdb, db_start_transaction, &state);
- if (ret != 0) {
- return -1;
- }
-
- ctdb->freeze_transaction_started = true;
- ctdb->freeze_transaction_id = id;
-
- return 0;
-}
-
-/*
- cancel a transaction for all databases - used for recovery
- */
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb)
-{
- DEBUG(DEBUG_ERR,(__location__ " recovery transaction cancelled called\n"));
-
- ctdb_db_iterator(ctdb, db_cancel_transaction, NULL);
-
- ctdb->freeze_transaction_started = false;
-
- return 0;
-}
-
-/*
- commit transactions on all databases
- */
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id)
-{
- struct db_commit_transaction_state state;
- int i;
- int healthy_nodes = 0;
- int ret;
-
- if (!ctdb_db_all_frozen(ctdb)) {
- DEBUG(DEBUG_ERR, (__location__
- " failing transaction commit while not frozen\n"));
- return -1;
- }
-
- if (!ctdb->freeze_transaction_started) {
- DEBUG(DEBUG_ERR,(__location__ " transaction not started\n"));
- return -1;
- }
-
- if (id != ctdb->freeze_transaction_id) {
- DEBUG(DEBUG_ERR,(__location__ " incorrect transaction id 0x%x in commit\n", id));
- return -1;
- }
-
- DEBUG(DEBUG_DEBUG,(__location__ " num_nodes[%d]\n", ctdb->num_nodes));
- for (i=0; i < ctdb->num_nodes; i++) {
- DEBUG(DEBUG_DEBUG,(__location__ " node[%d].flags[0x%X]\n",
- i, ctdb->nodes[i]->flags));
- if (ctdb->nodes[i]->flags == 0) {
- healthy_nodes++;
- }
- }
- DEBUG(DEBUG_INFO,(__location__ " healthy_nodes[%d]\n", healthy_nodes));
-
- state.transaction_id = id;
- state.healthy_nodes = healthy_nodes;
-
- ret = ctdb_db_iterator(ctdb, db_commit_transaction, &state);
- if (ret != 0) {
- DEBUG(DEBUG_ERR, ("Cancel all transactions\n"));
- goto fail;
- }
-
- ctdb->freeze_transaction_started = false;
- ctdb->freeze_transaction_id = 0;
-
- return 0;
-
-fail:
- /* cancel any pending transactions */
- ctdb_db_iterator(ctdb, db_cancel_transaction, NULL);
- ctdb->freeze_transaction_started = false;
-
- return -1;
-}
-
-/*
wipe a database - only possible when in a frozen transaction
*/
int32_t ctdb_control_wipe_database(struct ctdb_context *ctdb, TDB_DATA indata)