summaryrefslogtreecommitdiff
path: root/innobase/log
diff options
context:
space:
mode:
authorunknown <jan@hundin.mysql.fi>2005-03-01 08:17:03 +0200
committerunknown <jan@hundin.mysql.fi>2005-03-01 08:17:03 +0200
commitea24940fbaa9f4e55f41843c2441fad7c2af5689 (patch)
tree86f1e3f4fc1565ef7597f6d0135662c8af203012 /innobase/log
parent108702a34e37bae22f117a3a7e18e7cead3e63c8 (diff)
downloadmariadb-git-ea24940fbaa9f4e55f41843c2441fad7c2af5689.tar.gz
Fixed XA recovery for InnoDB. Note that XA recovery is still disabled
until it has been comprehensive tested. innobase/log/log0log.c: Added general documentation of InnoDB redo-logs. innobase/trx/trx0roll.c: Prepared transactions are not rolled back in a recovery if innobase_force_recovery = 0. But they are rolled back if innobase_force_recovery > 0. innobase/trx/trx0trx.c: Disable the XA code in InnoDB crash recovery until it has been comprehensive tested. SHOW INNODB STATUS now prints different output for prepared transactions. innobase/trx/trx0undo.c: Do not unnecessary write X/Open XA XID. XID is written in the prepare. Space for a XID should be reserved at this stage. sql/ha_innodb.cc: Remove error.
Diffstat (limited to 'innobase/log')
-rw-r--r--innobase/log/log0log.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/innobase/log/log0log.c b/innobase/log/log0log.c
index 1ab91b71e8f..5915146b466 100644
--- a/innobase/log/log0log.c
+++ b/innobase/log/log0log.c
@@ -24,6 +24,32 @@ Created 12/9/1995 Heikki Tuuri
#include "trx0sys.h"
#include "trx0trx.h"
+/*
+General philosophy of InnoDB redo-logs:
+
+1) Every change to a contents of a data page must be done
+through mtr, which in mtr_commit() writes log records
+to the InnoDB redo log.
+
+2) Normally these changes are performed using a mlog_write_ulint()
+or similar function.
+
+3) In some page level operations only a code number of a
+c-function and its parameters are written to the log to
+reduce the size of the log.
+
+ 3a) You should not add parameters to these kind of functions
+ (e.g. trx_undo_header_create(), trx_undo_insert_header_reuse())
+
+ 3b) You should not add such functionality which either change
+ working when compared with the old or are dependent on data
+ outside of the page. These kind of functions should implement
+ self-contained page transformation and it should be unchanged
+ if you don't have very essential reasons to change log
+ semantics or format.
+
+*/
+
/* Current free limit of space 0; protected by the log sys mutex; 0 means
uninitialized */
ulint log_fsp_current_free_limit = 0;