diff options
author | unknown <jan@hundin.mysql.fi> | 2005-03-01 08:17:03 +0200 |
---|---|---|
committer | unknown <jan@hundin.mysql.fi> | 2005-03-01 08:17:03 +0200 |
commit | ea24940fbaa9f4e55f41843c2441fad7c2af5689 (patch) | |
tree | 86f1e3f4fc1565ef7597f6d0135662c8af203012 /innobase/log | |
parent | 108702a34e37bae22f117a3a7e18e7cead3e63c8 (diff) | |
download | mariadb-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.c | 26 |
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; |