diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-11-19 10:47:26 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-11-19 10:47:26 +0100 |
commit | 7d50a31b72be061ea6b9200b8118b8d01e60cf9c (patch) | |
tree | fa066994604bd43cf0bd9428c3aeb87d085b56c6 /storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp | |
parent | 79f8eeed86e81245a6c0b9059e3dc0363895085c (diff) | |
download | mariadb-git-7d50a31b72be061ea6b9200b8118b8d01e60cf9c.tar.gz |
ndb - bug#22696
Fix handling of multiple redo phases
- set correct state
- handle 4 phases, by moving START_FRAGCONF to end of phase instead of beginning...
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
remove unused state ACTIVE_REMOVE_AFTER
remove unused variable nextLcp
remove unused methods (BUILD_INDX)
add counter of outstanding GSN_EXEC_FRAGREQ
remove c_redo_complete_fragments cause it fits badly with functional multi-redo-phases
storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
remove unused stuff
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
1) set correct state before starting next non-empty REDO phase
2) move GSN_START_FRAGCONF to execFRAGCONF instead of when sending GSN_EXEC_FRAGREQ
or fragments with 4 redo-phases would never be complete...
storage/ndb/test/ndbapi/testSystemRestart.cpp:
testcase
storage/ndb/test/run-test/daily-basic-tests.txt:
testcase
Diffstat (limited to 'storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp')
-rw-r--r-- | storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp index 95cad98b81c..62add0cf503 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp +++ b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp @@ -585,7 +585,6 @@ public: enum ExecSrStatus { IDLE = 0, - ACTIVE_REMOVE_AFTER = 1, ACTIVE = 2 }; /** @@ -869,11 +868,6 @@ public: * heard of. */ Uint8 fragDistributionKey; - /** - * The identity of the next local checkpoint this fragment - * should perform. - */ - Uint8 nextLcp; /** * How many local checkpoints does the fragment contain */ @@ -2097,10 +2091,6 @@ private: void execEXEC_SRCONF(Signal* signal); void execREAD_PSEUDO_REQ(Signal* signal); - void build_acc(Signal*, Uint32 fragPtrI); - void execBUILDINDXREF(Signal*signal); - void execBUILDINDXCONF(Signal*signal); - void execDUMP_STATE_ORD(Signal* signal); void execACC_ABORTCONF(Signal* signal); void execNODE_FAILREP(Signal* signal); @@ -2780,7 +2770,13 @@ private: /*THIS VARIABLE KEEPS TRACK OF HOW MANY FRAGMENTS THAT PARTICIPATE IN */ /*EXECUTING THE LOG. IF ZERO WE DON'T NEED TO EXECUTE THE LOG AT ALL. */ /* ------------------------------------------------------------------------- */ - UintR cnoFragmentsExecSr; + Uint32 cnoFragmentsExecSr; + + /** + * This is no of sent GSN_EXEC_FRAGREQ during this log phase + */ + Uint32 cnoOutstandingExecFragReq; + /* ------------------------------------------------------------------------- */ /*THIS VARIABLE KEEPS TRACK OF WHICH OF THE FIRST TWO RESTART PHASES THAT */ /*HAVE COMPLETED. */ @@ -2801,7 +2797,6 @@ private: DLFifoList<Fragrecord> c_lcp_waiting_fragments; // StartFragReq'ed DLFifoList<Fragrecord> c_lcp_restoring_fragments; // Restoring as we speek DLFifoList<Fragrecord> c_lcp_complete_fragments; // Restored - DLFifoList<Fragrecord> c_redo_complete_fragments; // Redo'ed /* ------------------------------------------------------------------------- */ /*USED DURING SYSTEM RESTART, INDICATES THE OLDEST GCI THAT CAN BE RESTARTED */ |