diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2006-02-13 13:12:47 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2006-02-13 13:12:47 +0100 |
commit | 192abbc6b8bd9fa6c5506700d41138007546f576 (patch) | |
tree | aabff54e32ae46f09d14ed24bf5bc81ea0d69a2a /storage/ndb/src/kernel | |
parent | d5fad326488bd5413ccf73c16fe9ea9f0dfc0c93 (diff) | |
download | mariadb-git-192abbc6b8bd9fa6c5506700d41138007546f576.tar.gz |
ndb - Change block constructor for more flexibility
Remove old typedef's ArrayFifoList, ArrayList
BitKeeper/deleted/.del-ArrayFifoList.hpp~7036ae04dd7e7bd2:
Delete: storage/ndb/src/kernel/vm/ArrayFifoList.hpp
BitKeeper/deleted/.del-ArrayList.hpp~44695d09b1a02179:
Delete: storage/ndb/src/kernel/vm/ArrayList.hpp
storage/ndb/src/kernel/SimBlockList.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/backup/BackupInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/lgman.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/lgman.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/pgman.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/pgman.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/restore.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/restore.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/suma/Suma.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/suma/SumaInit.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/trix/Trix.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/trix/Trix.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/tsman.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/tsman.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/vm/DLHashTable.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/vm/DLHashTable2.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/vm/SimBlockList.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/vm/SimulatedBlock.hpp:
Change block constructor for more flexibility
storage/ndb/src/kernel/blocks/record_types.hpp:
New BitKeeper file ``storage/ndb/src/kernel/blocks/record_types.hpp''
storage/ndb/src/kernel/vm/Pool.hpp:
New BitKeeper file ``storage/ndb/src/kernel/vm/Pool.hpp''
storage/ndb/src/kernel/vm/RecordPool.hpp:
New BitKeeper file ``storage/ndb/src/kernel/vm/RecordPool.hpp''
Diffstat (limited to 'storage/ndb/src/kernel')
59 files changed, 406 insertions, 230 deletions
diff --git a/storage/ndb/src/kernel/SimBlockList.cpp b/storage/ndb/src/kernel/SimBlockList.cpp index 8a1121f8cc8..0f0439e9773 100644 --- a/storage/ndb/src/kernel/SimBlockList.cpp +++ b/storage/ndb/src/kernel/SimBlockList.cpp @@ -69,7 +69,7 @@ void * operator new (size_t sz, SIMBLOCKLIST_DUMMY dummy){ #endif void -SimBlockList::load(const Configuration & conf){ +SimBlockList::load(Configuration & conf){ noOfBlocks = NO_OF_BLOCKS; theList = new SimulatedBlock * [noOfBlocks]; Dbdict* dbdict = 0; @@ -78,36 +78,39 @@ SimBlockList::load(const Configuration & conf){ Lgman* lg = 0; Tsman* ts = 0; + Block_context ctx = + { conf, * (Ndbd_mem_manager*)0 }; + SimulatedBlock * fs = 0; { Uint32 dl; const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator(); if(p && !ndb_mgm_get_int_parameter(p, CFG_DB_DISCLESS, &dl) && dl){ - fs = NEW_BLOCK(VoidFs)(conf); + fs = NEW_BLOCK(VoidFs)(ctx); } else { - fs = NEW_BLOCK(Ndbfs)(conf); + fs = NEW_BLOCK(Ndbfs)(ctx); } } - theList[0] = pg = NEW_BLOCK(Pgman)(conf); - theList[1] = lg = NEW_BLOCK(Lgman)(conf); - theList[2] = ts = NEW_BLOCK(Tsman)(conf, pg, lg); - theList[3] = NEW_BLOCK(Dbacc)(conf); - theList[4] = NEW_BLOCK(Cmvmi)(conf); + theList[0] = pg = NEW_BLOCK(Pgman)(ctx); + theList[1] = lg = NEW_BLOCK(Lgman)(ctx); + theList[2] = ts = NEW_BLOCK(Tsman)(ctx, pg, lg); + theList[3] = NEW_BLOCK(Dbacc)(ctx); + theList[4] = NEW_BLOCK(Cmvmi)(ctx); theList[5] = fs; - theList[6] = dbdict = NEW_BLOCK(Dbdict)(conf); - theList[7] = dbdih = NEW_BLOCK(Dbdih)(conf); - theList[8] = NEW_BLOCK(Dblqh)(conf); - theList[9] = NEW_BLOCK(Dbtc)(conf); - theList[10] = NEW_BLOCK(Dbtup)(conf, pg); - theList[11] = NEW_BLOCK(Ndbcntr)(conf); - theList[12] = NEW_BLOCK(Qmgr)(conf); - theList[13] = NEW_BLOCK(Trix)(conf); - theList[14] = NEW_BLOCK(Backup)(conf); - theList[15] = NEW_BLOCK(DbUtil)(conf); - theList[16] = NEW_BLOCK(Suma)(conf); - theList[17] = NEW_BLOCK(Dbtux)(conf); - theList[18] = NEW_BLOCK(Restore)(conf); + theList[6] = dbdict = NEW_BLOCK(Dbdict)(ctx); + theList[7] = dbdih = NEW_BLOCK(Dbdih)(ctx); + theList[8] = NEW_BLOCK(Dblqh)(ctx); + theList[9] = NEW_BLOCK(Dbtc)(ctx); + theList[10] = NEW_BLOCK(Dbtup)(ctx, pg); + theList[11] = NEW_BLOCK(Ndbcntr)(ctx); + theList[12] = NEW_BLOCK(Qmgr)(ctx); + theList[13] = NEW_BLOCK(Trix)(ctx); + theList[14] = NEW_BLOCK(Backup)(ctx); + theList[15] = NEW_BLOCK(DbUtil)(ctx); + theList[16] = NEW_BLOCK(Suma)(ctx); + theList[17] = NEW_BLOCK(Dbtux)(ctx); + theList[18] = NEW_BLOCK(Restore)(ctx); assert(NO_OF_BLOCKS == 19); } diff --git a/storage/ndb/src/kernel/blocks/backup/Backup.hpp b/storage/ndb/src/kernel/blocks/backup/Backup.hpp index 9ad244ed3e4..dcbd878b201 100644 --- a/storage/ndb/src/kernel/blocks/backup/Backup.hpp +++ b/storage/ndb/src/kernel/blocks/backup/Backup.hpp @@ -27,12 +27,12 @@ #include <SimpleProperties.hpp> #include <SLList.hpp> -#include <ArrayList.hpp> #include <DLFifoList.hpp> #include <SignalCounter.hpp> #include <blocks/mutexes.hpp> #include <NdbTCP.h> +#include <Array.hpp> /** * Backup - This block manages database backup and restore @@ -40,7 +40,7 @@ class Backup : public SimulatedBlock { public: - Backup(const Configuration & conf); + Backup(Block_context& ctx); virtual ~Backup(); BLOCK_DEFINES(Backup); diff --git a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp index a3ee655516c..48072fe946e 100644 --- a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp +++ b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp @@ -27,8 +27,8 @@ //extern const unsigned Ndbcntr::g_sysTableCount; -Backup::Backup(const Configuration & conf) : - SimulatedBlock(BACKUP, conf), +Backup::Backup(Block_context& ctx) : + SimulatedBlock(BACKUP, ctx), c_nodes(c_nodePool), c_backups(c_backupPool) { @@ -140,7 +140,7 @@ Backup::execREAD_CONFIG_REQ(Signal* signal) ndbrequire(req->noOfParameters == 0); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint32 noBackups = 0, noTables = 0, noAttribs = 0; @@ -185,7 +185,7 @@ Backup::execREAD_CONFIG_REQ(Signal* signal) c_pagePool.setSize(noPages + NO_OF_PAGES_META_FILE + 2); { // Init all tables - ArrayList<Table> tables(c_tablePool); + SLList<Table> tables(c_tablePool); TablePtr ptr; while(tables.seize(ptr)){ new (ptr.p) Table(c_attributePool, c_fragmentPool); @@ -194,7 +194,7 @@ Backup::execREAD_CONFIG_REQ(Signal* signal) } { - ArrayList<BackupFile> ops(c_backupFilePool); + SLList<BackupFile> ops(c_backupFilePool); BackupFilePtr ptr; while(ops.seize(ptr)){ new (ptr.p) BackupFile(* this, c_pagePool); @@ -203,7 +203,7 @@ Backup::execREAD_CONFIG_REQ(Signal* signal) } { - ArrayList<BackupRecord> recs(c_backupPool); + SLList<BackupRecord> recs(c_backupPool); BackupRecordPtr ptr; while(recs.seize(ptr)){ new (ptr.p) BackupRecord(* this, c_tablePool, diff --git a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp index 123b57ee31d..ab356acb715 100644 --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp @@ -47,15 +47,15 @@ EventLogger g_eventLogger; extern int simulate_error_during_shutdown; -Cmvmi::Cmvmi(const Configuration & conf) : - SimulatedBlock(CMVMI, conf) - ,theConfig((Configuration&)conf) +Cmvmi::Cmvmi(Block_context& ctx) : + SimulatedBlock(CMVMI, ctx) ,subscribers(subscriberPool) { BLOCK_CONSTRUCTOR(Cmvmi); Uint32 long_sig_buffer_size; - const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator(); + const ndb_mgm_configuration_iterator * p = + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndb_mgm_get_int_parameter(p, CFG_DB_LONG_SIGNAL_BUFFER, @@ -94,7 +94,7 @@ Cmvmi::Cmvmi(const Configuration & conf) : subscriberPool.setSize(5); - const ndb_mgm_configuration_iterator * db = theConfig.getOwnConfigIterator(); + const ndb_mgm_configuration_iterator * db = m_ctx.m_config.getOwnConfigIterator(); for(unsigned j = 0; j<LogLevel::LOGLEVEL_CATEGORIES; j++){ Uint32 logLevel; if(!ndb_mgm_get_int_parameter(db, CFG_MIN_LOGLEVEL+j, &logLevel)){ @@ -103,7 +103,7 @@ Cmvmi::Cmvmi(const Configuration & conf) : } } - ndb_mgm_configuration_iterator * iter = theConfig.getClusterConfigIterator(); + ndb_mgm_configuration_iterator * iter = m_ctx.m_config.getClusterConfigIterator(); for(ndb_mgm_first(iter); ndb_mgm_valid(iter); ndb_mgm_next(iter)){ jam(); Uint32 nodeId; @@ -318,7 +318,7 @@ Cmvmi::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint64 page_buffer = 64*1024*1024; @@ -365,7 +365,7 @@ void Cmvmi::execSTTOR(Signal* signal) } else { jam(); - if(theConfig.lockPagesInMainMemory()){ + if(m_ctx.m_config.lockPagesInMainMemory()){ int res = NdbMem_MemLockAll(); if(res != 0){ g_eventLogger.warning("Failed to memlock pages"); @@ -938,7 +938,7 @@ void Cmvmi::handleSET_VAR_REQ(Signal* signal) { switch (var) { case MaxNoOfSavedMessages: - theConfig.maxNoOfErrorLogs(val); + m_ctx.m_config.maxNoOfErrorLogs(val); sendSignal(CMVMI_REF, GSN_SET_VAR_CONF, signal, 1, JBB); break; @@ -959,12 +959,12 @@ void Cmvmi::handleSET_VAR_REQ(Signal* signal) { break; case TimeBetweenWatchDogCheck: - theConfig.timeBetweenWatchDogCheck(val); + m_ctx.m_config.timeBetweenWatchDogCheck(val); sendSignal(CMVMI_REF, GSN_SET_VAR_CONF, signal, 1, JBB); break; case StopOnError: - theConfig.stopOnError(val); + m_ctx.m_config.stopOnError(val); sendSignal(CMVMI_REF, GSN_SET_VAR_CONF, signal, 1, JBB); break; @@ -1086,9 +1086,9 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal) if (dumpState->args[0] == DumpStateOrd::CmvmiSetRestartOnErrorInsert){ if(signal->getLength() == 1) - theConfig.setRestartOnErrorInsert((int)NRT_NoStart_Restart); + m_ctx.m_config.setRestartOnErrorInsert((int)NRT_NoStart_Restart); else - theConfig.setRestartOnErrorInsert(signal->theData[1]); + m_ctx.m_config.setRestartOnErrorInsert(signal->theData[1]); } if (dumpState->args[0] == DumpStateOrd::CmvmiTestLongSigWithDelay) { diff --git a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp index f89c8f15e86..891ecc9610d 100644 --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp @@ -21,14 +21,14 @@ #include <SimulatedBlock.hpp> #include <LogLevel.hpp> -#include <ArrayList.hpp> +#include <DLList.hpp> /** * Cmvmi class */ class Cmvmi : public SimulatedBlock { public: - Cmvmi(const Configuration & conf); + Cmvmi(Block_context&); virtual ~Cmvmi(); private: @@ -79,8 +79,6 @@ private: LogLevel clogLevel; NdbNodeBitmask c_dbNodes; - class Configuration & theConfig; - /** * This struct defines the data needed for a EVENT_REP subscriber */ @@ -112,7 +110,7 @@ private: /** * List of current subscribers */ - ArrayList<EventRepSubscriber> subscribers; + DLList<EventRepSubscriber> subscribers; private: // Declared but not defined diff --git a/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp b/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp index 2794990d608..d94fff2595d 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp +++ b/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp @@ -606,7 +606,7 @@ struct Tabrec { typedef Ptr<Tabrec> TabrecPtr; public: - Dbacc(const class Configuration &); + Dbacc(Block_context&); virtual ~Dbacc(); // pointer to TUP instance in this thread diff --git a/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp b/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp index 768750e00ce..80fe82ed657 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp @@ -82,8 +82,8 @@ void Dbacc::initRecords() ctablesize); }//Dbacc::initRecords() -Dbacc::Dbacc(const class Configuration & conf): - SimulatedBlock(DBACC, conf), +Dbacc::Dbacc(Block_context& ctx): + SimulatedBlock(DBACC, ctx), c_tup(0) { BLOCK_CONSTRUCTOR(Dbacc); diff --git a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp index e146d2cc74b..2d6f579302c 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp @@ -325,7 +325,7 @@ void Dbacc::execREAD_CONFIG_REQ(Signal* signal) jamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_ACC_DIR_RANGE, &cdirrangesize)); diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp index 8c425428704..ba5920415e9 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp +++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp @@ -1476,8 +1476,8 @@ Dbdict::convertSchemaFileTo_5_0_6(XSchemaFile * xsf) /* ---------------------------------------------------------------- */ /* **************************************************************** */ -Dbdict::Dbdict(const class Configuration & conf): - SimulatedBlock(DBDICT, conf), +Dbdict::Dbdict(Block_context& ctx): + SimulatedBlock(DBDICT, ctx), c_attributeRecordHash(c_attributeRecordPool), c_file_hash(c_file_pool), c_filegroup_hash(c_filegroup_pool), @@ -1504,10 +1504,6 @@ Dbdict::Dbdict(const class Configuration & conf): { BLOCK_CONSTRUCTOR(Dbdict); - const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator(); - ndbrequire(p != 0); - - ndb_mgm_get_int_parameter(p, CFG_DB_NO_TRIGGERS, &c_maxNoOfTriggers); // Transit signals addRecSignal(GSN_DUMP_STATE_ORD, &Dbdict::execDUMP_STATE_ORD); addRecSignal(GSN_GET_TABINFOREQ, &Dbdict::execGET_TABINFOREQ); @@ -2019,10 +2015,12 @@ void Dbdict::execREAD_CONFIG_REQ(Signal* signal) jamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint32 attributesize, tablerecSize; + ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DB_NO_TRIGGERS, + &c_maxNoOfTriggers)); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DICT_ATTRIBUTE,&attributesize)); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DICT_TABLE, &tablerecSize)); diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp index 293632bb8b8..06a2747d671 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp +++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp @@ -23,7 +23,6 @@ #include <ndb_limits.h> #include <trigger_definitions.h> #include <pc.hpp> -#include <ArrayList.hpp> #include <DLHashTable.hpp> #include <DLFifoList.hpp> #include <CArray.hpp> @@ -646,7 +645,7 @@ public: void decrease_ref_count(Uint32 obj_ptr_i); public: - Dbdict(const class Configuration &); + Dbdict(Block_context& ctx); virtual ~Dbdict(); private: diff --git a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp index 166917b00d2..bba920b3c7e 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp +++ b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp @@ -21,7 +21,6 @@ #include <pc.hpp> #include <SimulatedBlock.hpp> #include "Sysfile.hpp" -#include <ArrayList.hpp> #include <SignalCounter.hpp> #include <signaldata/MasterLCP.hpp> @@ -570,7 +569,7 @@ public: typedef Ptr<TakeOverRecord> TakeOverRecordPtr; public: - Dbdih(const class Configuration &); + Dbdih(Block_context& ctx); virtual ~Dbdih(); struct RWFragment { @@ -1553,13 +1552,13 @@ private: * Pool/list of WaitGCPProxyRecord record */ ArrayPool<WaitGCPProxyRecord> waitGCPProxyPool; - ArrayList<WaitGCPProxyRecord> c_waitGCPProxyList; + DLList<WaitGCPProxyRecord> c_waitGCPProxyList; /** * Pool/list of WaitGCPMasterRecord record */ ArrayPool<WaitGCPMasterRecord> waitGCPMasterPool; - ArrayList<WaitGCPMasterRecord> c_waitGCPMasterList; + DLList<WaitGCPMasterRecord> c_waitGCPMasterList; void checkWaitGCPProxy(Signal*, NodeId failedNodeId); void checkWaitGCPMaster(Signal*, NodeId failedNodeId); diff --git a/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp index ca969a2300a..aaf27b351be 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp @@ -111,8 +111,8 @@ void Dbdih::initRecords() bat[21].bits.v = 5; }//Dbdih::initRecords() -Dbdih::Dbdih(const class Configuration & config): - SimulatedBlock(DBDIH, config), +Dbdih::Dbdih(Block_context& ctx): + SimulatedBlock(DBDIH, ctx), c_waitGCPProxyList(waitGCPProxyPool), c_waitGCPMasterList(waitGCPMasterPool) { diff --git a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp index b0fcfc342da..65d9f7f6653 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp @@ -1061,7 +1061,7 @@ void Dbdih::execREAD_CONFIG_REQ(Signal* signal) jamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequireErr(p != 0, NDBD_EXIT_INVALID_CONFIG); initData(); @@ -1147,7 +1147,7 @@ void Dbdih::execDIH_RESTARTREQ(Signal* signal) { jamEntry(); cntrlblockref = signal->theData[0]; - if(theConfiguration.getInitialStart()){ + if(m_ctx.m_config.getInitialStart()){ sendSignal(cntrlblockref, GSN_DIH_RESTARTREF, signal, 1, JBB); } else { readGciFileLab(signal); @@ -11456,7 +11456,7 @@ void Dbdih::initCommonData() memset(&sysfileData[0], 0, sizeof(sysfileData)); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); c_lcpState.clcpDelay = 20; diff --git a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp index 1dc3f14ce36..407cd8074ab 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp +++ b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp @@ -2068,7 +2068,7 @@ public: }; public: - Dblqh(const class Configuration &); + Dblqh(Block_context& ctx); virtual ~Dblqh(); void receive_keyinfo(Signal*, Uint32 * data, Uint32 len); diff --git a/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp index 06b52d9b31b..890aaeb00f3 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp @@ -158,8 +158,8 @@ void Dblqh::initRecords() bat[1].bits.v = 5; }//Dblqh::initRecords() -Dblqh::Dblqh(const class Configuration & conf): - SimulatedBlock(DBLQH, conf), +Dblqh::Dblqh(Block_context& ctx): + SimulatedBlock(DBLQH, ctx), c_lcp_waiting_fragments(c_fragment_pool), c_lcp_restoring_fragments(c_fragment_pool), c_lcp_complete_fragments(c_fragment_pool), @@ -167,25 +167,8 @@ Dblqh::Dblqh(const class Configuration & conf): m_commitAckMarkerHash(m_commitAckMarkerPool), c_scanTakeOverHash(c_scanRecordPool) { - Uint32 log_page_size= 0; BLOCK_CONSTRUCTOR(Dblqh); - const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator(); - ndbrequire(p != 0); - - ndb_mgm_get_int_parameter(p, CFG_DB_REDO_BUFFER, - &log_page_size); - - /** - * Always set page size in half MBytes - */ - clogPageFileSize= (log_page_size / sizeof(LogPageRecord)); - Uint32 mega_byte_part= clogPageFileSize & 15; - if (mega_byte_part != 0) { - jam(); - clogPageFileSize+= (16 - mega_byte_part); - } - addRecSignal(GSN_PACKED_SIGNAL, &Dblqh::execPACKED_SIGNAL); addRecSignal(GSN_DEBUG_SIG, &Dblqh::execDEBUG_SIG); addRecSignal(GSN_ATTRINFO, &Dblqh::execATTRINFO); diff --git a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp index eaf935da2c5..2b038259b1b 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp @@ -882,7 +882,7 @@ void Dblqh::execREAD_CONFIG_REQ(Signal* signal) jamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); cnoLogFiles = 8; @@ -890,6 +890,20 @@ void Dblqh::execREAD_CONFIG_REQ(Signal* signal) &cnoLogFiles)); ndbrequire(cnoLogFiles > 0); + Uint32 log_page_size= 0; + ndb_mgm_get_int_parameter(p, CFG_DB_REDO_BUFFER, + &log_page_size); + + /** + * Always set page size in half MBytes + */ + clogPageFileSize= (log_page_size / sizeof(LogPageRecord)); + Uint32 mega_byte_part= clogPageFileSize & 15; + if (mega_byte_part != 0) { + jam(); + clogPageFileSize+= (16 - mega_byte_part); + } + ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_LQH_TABLE, &ctabrecFileSize)); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_LQH_TC_CONNECT, &ctcConnectrecFileSize)); diff --git a/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp b/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp index da4629b5e79..430fa137c7f 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp +++ b/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp @@ -541,7 +541,7 @@ public: /** * The list of defined indexes */ - ArrayList<TcIndexData> c_theIndexes; + DLList<TcIndexData> c_theIndexes; UintR c_maxNumberOfIndexes; struct TcIndexOperation { @@ -746,7 +746,7 @@ public: UintR accumulatingIndexOp; UintR executingIndexOp; UintR tcIndxSendArray[6]; - ArrayList<TcIndexOperation> theSeizedIndexOperations; + DLList<TcIndexOperation> theSeizedIndexOperations; }; typedef Ptr<ApiConnectRecord> ApiConnectRecordPtr; @@ -1262,7 +1262,7 @@ public: typedef Ptr<TcFailRecord> TcFailRecordPtr; public: - Dbtc(const class Configuration &); + Dbtc(Block_context&); virtual ~Dbtc(); private: diff --git a/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp b/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp index 5c2df9d7a78..5a9d6b9f053 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp @@ -94,7 +94,7 @@ void Dbtc::initRecords() */ // Init all index operation records - ArrayList<TcIndexOperation> indexOps(c_theIndexOperationPool); + SLList<TcIndexOperation> indexOps(c_theIndexOperationPool); TcIndexOperationPtr ioptr; while(indexOps.seize(ioptr) == true) { p= ioptr.p; @@ -156,8 +156,8 @@ void Dbtc::initRecords() }//Dbtc::initRecords() -Dbtc::Dbtc(const class Configuration & conf): - SimulatedBlock(DBTC, conf), +Dbtc::Dbtc(Block_context& ctx): + SimulatedBlock(DBTC, ctx), c_theDefinedTriggers(c_theDefinedTriggerPool), c_firedTriggerHash(c_theFiredTriggerPool), c_maxNumberOfDefinedTriggers(0), @@ -169,7 +169,8 @@ Dbtc::Dbtc(const class Configuration & conf): { BLOCK_CONSTRUCTOR(Dbtc); - const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator(); + const ndb_mgm_configuration_iterator * p = + ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint32 transactionBufferMemory = 0; diff --git a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp index f7888a8059d..9da34a7324b 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp @@ -606,7 +606,7 @@ void Dbtc::execREAD_CONFIG_REQ(Signal* signal) jamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); initData(); diff --git a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp index 416fae812c3..0c0c0d702c3 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp +++ b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp @@ -21,7 +21,6 @@ #include <SimulatedBlock.hpp> #include <ndb_limits.h> #include <trigger_definitions.h> -#include <ArrayList.hpp> #include <AttributeHeader.hpp> #include <Bitmask.hpp> #include <signaldata/TupKey.hpp> @@ -947,16 +946,16 @@ ArrayPool<TupTriggerData> c_triggerPool; } m_attributes[2]; // Lists of trigger data for active triggers - ArrayList<TupTriggerData> afterInsertTriggers; - ArrayList<TupTriggerData> afterDeleteTriggers; - ArrayList<TupTriggerData> afterUpdateTriggers; - ArrayList<TupTriggerData> subscriptionInsertTriggers; - ArrayList<TupTriggerData> subscriptionDeleteTriggers; - ArrayList<TupTriggerData> subscriptionUpdateTriggers; - ArrayList<TupTriggerData> constraintUpdateTriggers; + DLList<TupTriggerData> afterInsertTriggers; + DLList<TupTriggerData> afterDeleteTriggers; + DLList<TupTriggerData> afterUpdateTriggers; + DLList<TupTriggerData> subscriptionInsertTriggers; + DLList<TupTriggerData> subscriptionDeleteTriggers; + DLList<TupTriggerData> subscriptionUpdateTriggers; + DLList<TupTriggerData> constraintUpdateTriggers; // List of ordered indexes - ArrayList<TupTriggerData> tuxCustomTriggers; + DLList<TupTriggerData> tuxCustomTriggers; Uint32 fragid[MAX_FRAG_PER_NODE]; Uint32 fragrec[MAX_FRAG_PER_NODE]; @@ -1158,7 +1157,7 @@ typedef Ptr<HostBuffer> HostBufferPtr; }; typedef Ptr<BuildIndexRec> BuildIndexPtr; ArrayPool<BuildIndexRec> c_buildIndexPool; - ArrayList<BuildIndexRec> c_buildIndexList; + DLList<BuildIndexRec> c_buildIndexList; Uint32 c_noOfBuildIndexRec; /** @@ -1347,7 +1346,7 @@ struct TupHeadInfo { Uint32 terrorCode; public: - Dbtup(const class Configuration &, Pgman*); + Dbtup(Block_context&, Pgman*); virtual ~Dbtup(); /* @@ -2012,7 +2011,7 @@ private: //------------------------------------------------------------------ // Trigger handling routines //------------------------------------------------------------------ - ArrayList<TupTriggerData>* + DLList<TupTriggerData>* findTriggerList(Tablerec* table, TriggerType::Value ttype, TriggerActionTime::Value ttime, @@ -2049,19 +2048,19 @@ private: Tablerec* regTablePtr); void fireImmediateTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* regOperPtr); void fireDeferredTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* regOperPtr); void fireDetachedTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* regOperPtr); void executeTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* regOperPtr); void executeTrigger(KeyReqStruct *req_struct, diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp index 767c2141c60..80bab364e44 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp @@ -56,7 +56,7 @@ void Dbtup::execTUP_DEALLOCREQ(Signal* signal) if (ptr->m_header_bits & Tuple_header::LCP_KEEP) { - ndbassert(ptr.p->m_header_bits & Tuple_header::FREED); + ndbassert(ptr->m_header_bits & Tuple_header::FREED); ptr->m_header_bits |= Tuple_header::FREED; return; } diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp index 38842e7fa03..e25e329ea9a 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp @@ -158,7 +158,7 @@ Dbtup::execDUMP_STATE_ORD(Signal* signal) return; }//if #endif -#ifdef VM_TRACE +#if defined VM_TRACE && 0 if (type == 1211){ ndbout_c("Startar modul test av Page Manager"); diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp index 9fdddceb0c0..715f53ac95e 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp @@ -51,8 +51,8 @@ void Dbtup::initData() init_list_sizes(); }//Dbtup::initData() -Dbtup::Dbtup(const class Configuration & conf, Pgman* pgman) - : SimulatedBlock(DBTUP, conf), +Dbtup::Dbtup(Block_context& ctx, Pgman* pgman) + : SimulatedBlock(DBTUP, ctx), c_lqh(0), m_pgman(this, pgman), c_extent_hash(c_extent_pool), @@ -280,7 +280,7 @@ void Dbtup::execREAD_CONFIG_REQ(Signal* signal) ljamEntry(); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_TUP_FRAG, &cnoOfFragrec)); @@ -335,7 +335,7 @@ void Dbtup::initRecords() unsigned i; Uint32 tmp; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_TUP_PAGE, &tmp)); diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp index a9cf39b28f9..cf71ed8f8e5 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp @@ -420,7 +420,7 @@ Dbtup::execBUILDINDXREQ(Signal* signal) tablePtr.p->m_attributes[MM].m_no_of_varsize > 0; if (DictTabInfo::isOrderedIndex(buildReq->getIndexType())) { ljam(); - const ArrayList<TupTriggerData>& triggerList = + const DLList<TupTriggerData>& triggerList = tablePtr.p->tuxCustomTriggers; TriggerPtr triggerPtr; diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp index 7f402bfdd43..99faeeb7b2f 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp @@ -36,13 +36,13 @@ /* ---------------------------------------------------------------- */ /* **************************************************************** */ -ArrayList<Dbtup::TupTriggerData>* +DLList<Dbtup::TupTriggerData>* Dbtup::findTriggerList(Tablerec* table, TriggerType::Value ttype, TriggerActionTime::Value ttime, TriggerEvent::Value tevent) { - ArrayList<TupTriggerData>* tlist = NULL; + DLList<TupTriggerData>* tlist = NULL; switch (ttype) { case TriggerType::SUBSCRIPTION: case TriggerType::SUBSCRIPTION_BEFORE: @@ -239,7 +239,7 @@ Dbtup::createTrigger(Tablerec* table, const CreateTrigReq* req) TriggerActionTime::Value ttime = req->getTriggerActionTime(); TriggerEvent::Value tevent = req->getTriggerEvent(); - ArrayList<TupTriggerData>* tlist = findTriggerList(table, ttype, ttime, tevent); + DLList<TupTriggerData>* tlist = findTriggerList(table, ttype, ttime, tevent); ndbrequire(tlist != NULL); TriggerPtr tptr; @@ -332,7 +332,7 @@ Dbtup::dropTrigger(Tablerec* table, const DropTrigReq* req, BlockNumber sender) // ndbout_c("Drop TupTrigger %u = %u %u %u %u by %u", triggerId, table, ttype, ttime, tevent, sender); - ArrayList<TupTriggerData>* tlist = findTriggerList(table, ttype, ttime, tevent); + DLList<TupTriggerData>* tlist = findTriggerList(table, ttype, ttime, tevent); ndbrequire(tlist != NULL); Ptr<TupTriggerData> ptr; @@ -548,7 +548,7 @@ end: void Dbtup::fireImmediateTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* const regOperPtr) { TriggerPtr trigPtr; @@ -570,7 +570,7 @@ Dbtup::fireImmediateTriggers(KeyReqStruct *req_struct, void Dbtup::fireDeferredTriggers(Signal* signal, KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* const regOperPtr) { TriggerPtr trigPtr; @@ -591,7 +591,7 @@ Dbtup::fireDeferredTriggers(Signal* signal, void Dbtup::fireDetachedTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* const regOperPtr) { @@ -620,7 +620,7 @@ Dbtup::fireDetachedTriggers(KeyReqStruct *req_struct, } void Dbtup::executeTriggers(KeyReqStruct *req_struct, - ArrayList<TupTriggerData>& triggerList, + DLList<TupTriggerData>& triggerList, Operationrec* regOperPtr) { TriggerPtr trigPtr; @@ -1103,7 +1103,7 @@ Dbtup::addTuxEntries(Signal* signal, Tablerec* regTabPtr) { TuxMaintReq* const req = (TuxMaintReq*)signal->getDataPtrSend(); - const ArrayList<TupTriggerData>& triggerList = regTabPtr->tuxCustomTriggers; + const DLList<TupTriggerData>& triggerList = regTabPtr->tuxCustomTriggers; TriggerPtr triggerPtr; Uint32 failPtrI; triggerList.first(triggerPtr); @@ -1224,7 +1224,7 @@ Dbtup::removeTuxEntries(Signal* signal, Tablerec* regTabPtr) { TuxMaintReq* const req = (TuxMaintReq*)signal->getDataPtrSend(); - const ArrayList<TupTriggerData>& triggerList = regTabPtr->tuxCustomTriggers; + const DLList<TupTriggerData>& triggerList = regTabPtr->tuxCustomTriggers; TriggerPtr triggerPtr; triggerList.first(triggerPtr); while (triggerPtr.i != RNIL) { diff --git a/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp b/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp index 0e7a6ba76dc..946504ec3a5 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp +++ b/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp @@ -102,7 +102,7 @@ class Configuration; class Dbtux : public SimulatedBlock { public: - Dbtux(const Configuration& conf); + Dbtux(Block_context& ctx); virtual ~Dbtux(); // pointer to TUP instance in this thread diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp index 9b6085439c3..a2e285078c0 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp @@ -17,8 +17,8 @@ #define DBTUX_GEN_CPP #include "Dbtux.hpp" -Dbtux::Dbtux(const Configuration& conf) : - SimulatedBlock(DBTUX, conf), +Dbtux::Dbtux(Block_context& ctx) : + SimulatedBlock(DBTUX, ctx), c_tup(0), c_descPageList(RNIL), #ifdef VM_TRACE @@ -165,7 +165,7 @@ Dbtux::execREAD_CONFIG_REQ(Signal* signal) Uint32 nScanOp; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_TUX_INDEX, &nIndex)); diff --git a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp index 8e3e2452a23..a8441be003d 100644 --- a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp +++ b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp @@ -49,8 +49,8 @@ * Constructors, startup, initializations **************************************************************************/ -DbUtil::DbUtil(const Configuration & conf) : - SimulatedBlock(DBUTIL, conf), +DbUtil::DbUtil(Block_context& ctx) : + SimulatedBlock(DBUTIL, ctx), c_runningPrepares(c_preparePool), c_seizingTransactions(c_transactionPool), c_runningTransactions(c_transactionPool), @@ -167,7 +167,7 @@ DbUtil::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); c_pagePool.setSize(10); diff --git a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp index 2d0fa250c2e..11e6f3a79f0 100644 --- a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp +++ b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp @@ -21,7 +21,6 @@ #include <SimulatedBlock.hpp> #include <NodeBitmask.hpp> -#include <ArrayList.hpp> #include <ArrayPool.hpp> #include <SLList.hpp> #include <DLList.hpp> @@ -36,6 +35,7 @@ #include <signaldata/UtilExecute.hpp> #include <signaldata/UtilLock.hpp> #include <SimpleProperties.hpp> +#include <Array.hpp> #define UTIL_WORDS_PER_PAGE 1023 @@ -61,7 +61,7 @@ class DbUtil : public SimulatedBlock { public: - DbUtil(const class Configuration & conf); + DbUtil(Block_context& ctx); virtual ~DbUtil(); BLOCK_DEFINES(DbUtil); diff --git a/storage/ndb/src/kernel/blocks/lgman.cpp b/storage/ndb/src/kernel/blocks/lgman.cpp index 69bdc4ddeab..d9e4776c247 100644 --- a/storage/ndb/src/kernel/blocks/lgman.cpp +++ b/storage/ndb/src/kernel/blocks/lgman.cpp @@ -50,8 +50,8 @@ extern EventLogger g_eventLogger; #define DEBUG_UNDO_EXECUTION 0 #define DEBUG_SEARCH_LOG_HEAD 0 -Lgman::Lgman(const Configuration & conf) : - SimulatedBlock(LGMAN, conf), +Lgman::Lgman(Block_context & ctx) : + SimulatedBlock(LGMAN, ctx), m_logfile_group_list(m_logfile_group_pool), m_logfile_group_hash(m_logfile_group_pool) { @@ -115,7 +115,7 @@ Lgman::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); diff --git a/storage/ndb/src/kernel/blocks/lgman.hpp b/storage/ndb/src/kernel/blocks/lgman.hpp index 01b5c636595..143f5c8ca1c 100644 --- a/storage/ndb/src/kernel/blocks/lgman.hpp +++ b/storage/ndb/src/kernel/blocks/lgman.hpp @@ -31,7 +31,7 @@ class Lgman : public SimulatedBlock { public: - Lgman(const Configuration & conf); + Lgman(Block_context& ctx); virtual ~Lgman(); BLOCK_DEFINES(Lgman); diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp index ced03676957..ffebce36757 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp @@ -152,7 +152,7 @@ public: static const SysTable g_sysTable_NDBEVENTS_0; public: - Ndbcntr(const class Configuration &); + Ndbcntr(Block_context&); virtual ~Ndbcntr(); private: diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp index b5843dcf432..d2e2f1d2335 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp @@ -35,8 +35,8 @@ void Ndbcntr::initRecords() // Records with dynamic sizes }//Ndbcntr::initRecords() -Ndbcntr::Ndbcntr(const class Configuration & conf): - SimulatedBlock(NDBCNTR, conf), +Ndbcntr::Ndbcntr(Block_context& ctx): + SimulatedBlock(NDBCNTR, ctx), cnoWaitrep6(0), cnoWaitrep7(0), c_stopRec(* this), diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp index 86c9aa36b94..91ee8d5aa47 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp @@ -137,7 +137,7 @@ void Ndbcntr::execCONTINUEB(Signal* signal) jam(); Uint32 to_3= 0; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndb_mgm_get_int_parameter(p, CFG_DB_START_FAILURE_TIMEOUT, &to_3); BaseString tmp; tmp.append("Shutting down node as total restart time exceeds " @@ -239,7 +239,7 @@ Ndbcntr::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); @@ -259,7 +259,7 @@ void Ndbcntr::execSTTOR(Signal* signal) switch (cstartPhase) { case 0: - if(theConfiguration.getInitialStart()){ + if(m_ctx.m_config.getInitialStart()){ jam(); c_fsRemoveCount = 0; clearFilesystem(signal); @@ -502,7 +502,7 @@ void Ndbcntr::execREAD_NODESCONF(Signal* signal) Uint32 to_3 = 0; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ndb_mgm_get_int_parameter(p, CFG_DB_START_PARTIAL_TIMEOUT, &to_1); @@ -1971,8 +1971,8 @@ Ndbcntr::execDUMP_STATE_ORD(Signal* signal) } if (dumpState->args[0] == DumpStateOrd::NdbcntrTestStopOnError){ - if (theConfiguration.stopOnError() == true) - ((Configuration&)theConfiguration).stopOnError(false); + if (m_ctx.m_config.stopOnError() == true) + ((Configuration&)m_ctx.m_config).stopOnError(false); const BlockReference tblockref = calcNdbCntrBlockRef(getOwnNodeId()); @@ -2098,7 +2098,7 @@ Ndbcntr::execSTOP_REQ(Signal* signal){ if(StopReq::getSystemStop(c_stopRec.stopReq.requestInfo)) { jam(); if(StopReq::getPerformRestart(c_stopRec.stopReq.requestInfo)){ - ((Configuration&)theConfiguration).stopOnError(false); + ((Configuration&)m_ctx.m_config).stopOnError(false); } } if(!c_stopRec.checkNodeFail(signal)){ diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp index ab50974ad64..feffc071d47 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp @@ -50,8 +50,8 @@ int pageSize( const NewVARIABLE* baseAddrRef ) } -Ndbfs::Ndbfs(const Configuration & conf) : - SimulatedBlock(NDBFS, conf), +Ndbfs::Ndbfs(Block_context& ctx) : + SimulatedBlock(NDBFS, ctx), scanningInProgress(false), theLastId(0), theRequestPool(0), @@ -98,11 +98,11 @@ Ndbfs::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); - theFileSystemPath.assfmt("%sndb_%u_fs%s", theConfiguration.fileSystemPath(), + theFileSystemPath.assfmt("%sndb_%u_fs%s", m_ctx.m_config.fileSystemPath(), getOwnNodeId(), DIR_SEPARATOR); - theBackupFilePath.assign(theConfiguration.backupFilePath()); + theBackupFilePath.assign(m_ctx.m_config.backupFilePath()); theRequestPool = new Pool<Request>; diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp index d80bde7d13e..d8db1d6a553 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp @@ -34,7 +34,7 @@ class Ndbfs : public SimulatedBlock { public: - Ndbfs(const class Configuration & conf); + Ndbfs(Block_context&); virtual ~Ndbfs(); virtual const char* get_filename(Uint32 fd) const; @@ -99,7 +99,7 @@ private: class VoidFs : public SimulatedBlock { public: - VoidFs(const class Configuration & conf); + VoidFs(Block_context&); virtual ~VoidFs(); protected: diff --git a/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp b/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp index 5a03d8bb1a0..4beb264507a 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp @@ -38,8 +38,8 @@ #define DEBUG(x) { ndbout << "FS::" << x << endl; } -VoidFs::VoidFs(const Configuration & conf) : - SimulatedBlock(NDBFS, conf) +VoidFs::VoidFs(Block_context & ctx) : + SimulatedBlock(NDBFS, ctx) { BLOCK_CONSTRUCTOR(VoidFs); diff --git a/storage/ndb/src/kernel/blocks/pgman.cpp b/storage/ndb/src/kernel/blocks/pgman.cpp index f8f0cef711c..a9cd6ae24e8 100644 --- a/storage/ndb/src/kernel/blocks/pgman.cpp +++ b/storage/ndb/src/kernel/blocks/pgman.cpp @@ -47,8 +47,8 @@ static bool g_dbg_lcp = false; #define DBG_LCP(x) if(g_dbg_lcp) ndbout << x #endif -Pgman::Pgman(const Configuration & conf) : - SimulatedBlock(PGMAN, conf), +Pgman::Pgman(Block_context& ctx) : + SimulatedBlock(PGMAN, ctx), m_file_map(m_data_buffer_pool), m_page_hashlist(m_page_entry_pool), m_page_stack(m_page_entry_pool), @@ -116,7 +116,7 @@ Pgman::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint64 page_buffer = 64*1024*1024; diff --git a/storage/ndb/src/kernel/blocks/pgman.hpp b/storage/ndb/src/kernel/blocks/pgman.hpp index 5c27fdd31e8..46817711638 100644 --- a/storage/ndb/src/kernel/blocks/pgman.hpp +++ b/storage/ndb/src/kernel/blocks/pgman.hpp @@ -236,7 +236,7 @@ class Pgman : public SimulatedBlock { public: - Pgman(const Configuration & conf); + Pgman(Block_context& ctx); virtual ~Pgman(); BLOCK_DEFINES(Pgman); diff --git a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp index b2202122aa1..5b69a0a921c 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp +++ b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp @@ -180,7 +180,7 @@ public: }; public: - Qmgr(const class Configuration &); + Qmgr(Block_context&); virtual ~Qmgr(); private: diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp index ef3b836d203..5d964acc016 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp +++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp @@ -45,8 +45,8 @@ void Qmgr::initRecords() // Records with dynamic sizes }//Qmgr::initRecords() -Qmgr::Qmgr(const class Configuration & conf) - : SimulatedBlock(QMGR, conf) +Qmgr::Qmgr(Block_context& ctx) + : SimulatedBlock(QMGR, ctx) { BLOCK_CONSTRUCTOR(Qmgr); diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp index d18375beeef..04e02a9e9ae 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp +++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp @@ -177,7 +177,7 @@ Qmgr::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); @@ -1406,7 +1406,7 @@ void Qmgr::initData(Signal* signal) * Timeouts */ const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); Uint32 hbDBDB = 1500; @@ -1437,7 +1437,7 @@ void Qmgr::initData(Signal* signal) sd->ticket.clear(); sd->mask.clear(); ndb_mgm_configuration_iterator * iter = - theConfiguration.getClusterConfigIterator(); + m_ctx.m_config.getClusterConfigIterator(); for (ndb_mgm_first(iter); ndb_mgm_valid(iter); ndb_mgm_next(iter)) { Uint32 tmp = 0; if (ndb_mgm_get_int_parameter(iter, CFG_NODE_ARBIT_RANK, &tmp) == 0 && diff --git a/storage/ndb/src/kernel/vm/ArrayList.hpp b/storage/ndb/src/kernel/blocks/record_types.hpp index 4b46347a39b..19822080085 100644 --- a/storage/ndb/src/kernel/vm/ArrayList.hpp +++ b/storage/ndb/src/kernel/blocks/record_types.hpp @@ -14,17 +14,15 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef ARRAY_LIST_HPP -#define ARRAY_LIST_HPP +#ifndef KERNEL_RECORDS_HPP +#define KERNEL_RECORDS_HPP -#include "ArrayPool.hpp" -#include "DLList.hpp" -#include "Array.hpp" +/** + * Record types + */ -template <class T> -class ArrayList : public DLList<T> { -public: - ArrayList(ArrayPool<T> & thePool) : DLList<T>(thePool) { } -}; +/** + * Resource groups + */ #endif diff --git a/storage/ndb/src/kernel/blocks/restore.cpp b/storage/ndb/src/kernel/blocks/restore.cpp index 498b0d4b012..ce38af2a64f 100644 --- a/storage/ndb/src/kernel/blocks/restore.cpp +++ b/storage/ndb/src/kernel/blocks/restore.cpp @@ -33,8 +33,8 @@ #define PAGES LCP_RESTORE_BUFFER -Restore::Restore(const Configuration & conf) : - SimulatedBlock(RESTORE, conf), +Restore::Restore(Block_context& ctx) : + SimulatedBlock(RESTORE, ctx), m_file_list(m_file_pool), m_file_hash(m_file_pool) { @@ -89,7 +89,7 @@ Restore::execREAD_CONFIG_REQ(Signal* signal) ndbrequire(req->noOfParameters == 0); const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); #if 0 diff --git a/storage/ndb/src/kernel/blocks/restore.hpp b/storage/ndb/src/kernel/blocks/restore.hpp index e1af7ddb163..02b204155ab 100644 --- a/storage/ndb/src/kernel/blocks/restore.hpp +++ b/storage/ndb/src/kernel/blocks/restore.hpp @@ -30,7 +30,7 @@ class Restore : public SimulatedBlock { public: - Restore(const Configuration & conf); + Restore(Block_context& ctx); virtual ~Restore(); BLOCK_DEFINES(Restore); diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.cpp b/storage/ndb/src/kernel/blocks/suma/Suma.cpp index a3859012139..76cce0ff254 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.cpp @@ -162,7 +162,7 @@ Suma::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); // SumaParticipant diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.hpp b/storage/ndb/src/kernel/blocks/suma/Suma.hpp index 0add7206813..9a54f056168 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.hpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.hpp @@ -38,7 +38,7 @@ class Suma : public SimulatedBlock { BLOCK_DEFINES(Suma); public: - Suma(const Configuration & conf); + Suma(Block_context& ctx); virtual ~Suma(); /** diff --git a/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp b/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp index b93c77968a1..a9b9727cf99 100644 --- a/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp +++ b/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp @@ -19,8 +19,8 @@ #include <Properties.hpp> #include <Configuration.hpp> -Suma::Suma(const Configuration & conf) : - SimulatedBlock(SUMA, conf), +Suma::Suma(Block_context& ctx) : + SimulatedBlock(SUMA, ctx), c_metaSubscribers(c_subscriberPool), c_removeDataSubscribers(c_subscriberPool), c_tables(c_tablePool), diff --git a/storage/ndb/src/kernel/blocks/trix/Trix.cpp b/storage/ndb/src/kernel/blocks/trix/Trix.cpp index bbb4549afca..6eea7f8ec29 100644 --- a/storage/ndb/src/kernel/blocks/trix/Trix.cpp +++ b/storage/ndb/src/kernel/blocks/trix/Trix.cpp @@ -40,8 +40,8 @@ /** * */ -Trix::Trix(const Configuration & conf) : - SimulatedBlock(TRIX, conf), +Trix::Trix(Block_context& ctx) : + SimulatedBlock(TRIX, ctx), c_theNodes(c_theNodeRecPool), c_masterNodeId(0), c_masterTrixRef(0), @@ -105,14 +105,14 @@ Trix::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); // Allocate pool sizes c_theAttrOrderBufferPool.setSize(100); c_theSubscriptionRecPool.setSize(100); - ArrayList<SubscriptionRecord> subscriptions(c_theSubscriptionRecPool); + DLList<SubscriptionRecord> subscriptions(c_theSubscriptionRecPool); SubscriptionRecPtr subptr; while(subscriptions.seize(subptr) == true) { new (subptr.p) SubscriptionRecord(c_theAttrOrderBufferPool); diff --git a/storage/ndb/src/kernel/blocks/trix/Trix.hpp b/storage/ndb/src/kernel/blocks/trix/Trix.hpp index 1d8db8c1bd1..dee5c4f7b42 100644 --- a/storage/ndb/src/kernel/blocks/trix/Trix.hpp +++ b/storage/ndb/src/kernel/blocks/trix/Trix.hpp @@ -20,7 +20,6 @@ #include <SimulatedBlock.hpp> #include <trigger_definitions.h> #include <DataBuffer.hpp> -#include <ArrayList.hpp> #include <SimpleProperties.hpp> #include <signaldata/DictTabInfo.hpp> #include <signaldata/CreateTrig.hpp> @@ -36,7 +35,7 @@ class Trix : public SimulatedBlock { public: - Trix(const class Configuration & conf); + Trix(Block_context&); virtual ~Trix(); public: @@ -89,7 +88,7 @@ private: /** * The list of other NDB nodes */ - ArrayList<NodeRecord> c_theNodes; + DLList<NodeRecord> c_theNodes; Uint32 c_masterNodeId; BlockReference c_masterTrixRef; @@ -136,7 +135,7 @@ private: /** * The list of other subscriptions */ - ArrayList<SubscriptionRecord> c_theSubscriptions; + DLList<SubscriptionRecord> c_theSubscriptions; // System start void execREAD_CONFIG_REQ(Signal* signal); diff --git a/storage/ndb/src/kernel/blocks/tsman.cpp b/storage/ndb/src/kernel/blocks/tsman.cpp index 3b1a09fbf12..aab02ad2f87 100644 --- a/storage/ndb/src/kernel/blocks/tsman.cpp +++ b/storage/ndb/src/kernel/blocks/tsman.cpp @@ -38,8 +38,9 @@ #define DBG_UNDO 0 -Tsman::Tsman(const Configuration & conf, class Pgman* pg, class Lgman* lg) : - SimulatedBlock(TSMAN, conf), +Tsman::Tsman(Block_context& ctx, + class Pgman* pg, class Lgman* lg) : + SimulatedBlock(TSMAN, ctx), m_file_hash(m_file_pool), m_tablespace_list(m_tablespace_pool), m_tablespace_hash(m_tablespace_pool), @@ -105,7 +106,7 @@ Tsman::execREAD_CONFIG_REQ(Signal* signal) Uint32 senderData = req->senderData; const ndb_mgm_configuration_iterator * p = - theConfiguration.getOwnConfigIterator(); + m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); @@ -430,7 +431,8 @@ Tsman::execDROP_FILEGROUP_REQ(Signal* signal){ bool Tsman::find_file_by_id(Ptr<Datafile>& ptr, - DLList<Datafile>::Head& head, Uint32 id) + DLList<Datafile>::Head& head, + Uint32 id) { LocalDLList<Datafile> list(m_file_pool, head); for(list.first(ptr); !ptr.isNull(); list.next(ptr)) diff --git a/storage/ndb/src/kernel/blocks/tsman.hpp b/storage/ndb/src/kernel/blocks/tsman.hpp index 4471f5effa2..33847f91fee 100644 --- a/storage/ndb/src/kernel/blocks/tsman.hpp +++ b/storage/ndb/src/kernel/blocks/tsman.hpp @@ -30,7 +30,7 @@ class Tsman : public SimulatedBlock { public: - Tsman(const Configuration & conf, class Pgman*, class Lgman*); + Tsman(Block_context&, Pgman*, Lgman*); virtual ~Tsman(); BLOCK_DEFINES(Tsman); diff --git a/storage/ndb/src/kernel/vm/DLHashTable.hpp b/storage/ndb/src/kernel/vm/DLHashTable.hpp index 319d12ea4fc..c75af11e33b 100644 --- a/storage/ndb/src/kernel/vm/DLHashTable.hpp +++ b/storage/ndb/src/kernel/vm/DLHashTable.hpp @@ -18,7 +18,7 @@ #define DL_HASHTABLE_HPP #include <ndb_global.h> -#include "ArrayList.hpp" +#include "ArrayPool.hpp" /** * DLHashTable implements a hashtable using chaining diff --git a/storage/ndb/src/kernel/vm/DLHashTable2.hpp b/storage/ndb/src/kernel/vm/DLHashTable2.hpp index 6b166331631..5df0e4d5356 100644 --- a/storage/ndb/src/kernel/vm/DLHashTable2.hpp +++ b/storage/ndb/src/kernel/vm/DLHashTable2.hpp @@ -18,8 +18,7 @@ #define DL_HASHTABLE2_HPP #include <ndb_global.h> - -#include "ArrayList.hpp" +#include "ArrayPool.hpp" /** * DLHashTable2 is a DLHashTable variant meant for cases where different diff --git a/storage/ndb/src/kernel/vm/ArrayFifoList.hpp b/storage/ndb/src/kernel/vm/Pool.hpp index b21bf449734..34938228020 100644 --- a/storage/ndb/src/kernel/vm/ArrayFifoList.hpp +++ b/storage/ndb/src/kernel/vm/Pool.hpp @@ -14,17 +14,30 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef ARRAY_FIFOLIST_HPP -#define ARRAY_FIFOLIST_HPP +#ifndef NDB_POOL_HPP +#define NDB_POOL_HPP -#include "ArrayPool.hpp" -#include "DLFifoList.hpp" -#include "Array.hpp" +#include <kernel_types.h> -template <class T> -class ArrayFifoList : public DLFifoList<T> { -public: - ArrayFifoList(ArrayPool<T> & thePool) : DLFifoList<T>(thePool) { } +struct Record_info +{ + Uint32 m_size; + Uint32 m_offset_next_pool; + Uint32 m_type_id; +}; + +struct Resource_limit +{ + Uint32 m_min; + Uint32 m_max; + Uint32 m_curr; + Uint32 m_resource_id; +}; + +struct Pool_context +{ + class SimulatedBlock* m_block; + struct Resource_limit* m_resource_limit; }; #endif diff --git a/storage/ndb/src/kernel/vm/RecordPool.hpp b/storage/ndb/src/kernel/vm/RecordPool.hpp new file mode 100644 index 00000000000..43af3d2ce14 --- /dev/null +++ b/storage/ndb/src/kernel/vm/RecordPool.hpp @@ -0,0 +1,169 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef RECORD_POOL_HPP +#define RECORD_POOL_HPP + +#include <kernel_types.h> +#include "Pool.hpp" + +template <typename T, typename P> +class RecordPool { +public: + RecordPool(); + ~RecordPool(); + + void init(Uint32 type_id, const Pool_context& pc); + + /** + * Update p value for ptr according to i value + */ + void getPtr(Ptr<T> &); + void getPtr(ConstPtr<T> &) const; + + /** + * Get pointer for i value + */ + T * getPtr(Uint32 i); + const T * getConstPtr(Uint32 i) const; + + /** + * Update p & i value for ptr according to <b>i</b> value + */ + void getPtr(Ptr<T> &, Uint32 i); + void getPtr(ConstPtr<T> &, Uint32 i) const; + + /** + * Allocate an object from pool - update Ptr + * + * Return i + */ + bool seize(Ptr<T> &); + + /** + * Return an object to pool + */ + void release(Uint32 i); + + /** + * Return an object to pool + */ + void release(Ptr<T> &); +private: + P m_pool; +}; + +template <typename T, typename P> +inline +RecordPool<T, P>::RecordPool() +{ +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::init(Uint32 type_id, const Pool_context& pc) +{ + Record_info ri; + ri.m_size = sizeof(T); + ri.m_offset_next_pool = offsetof(T, nextPool); + ri.m_type_id = type_id; + m_pool.init(ri, pc); +} + +template <typename T, typename P> +inline +RecordPool<T, P>::~RecordPool() +{ +} + + +template <typename T, typename P> +inline +void +RecordPool<T, P>::getPtr(Ptr<T> & ptr) +{ + ptr.p = static_cast<T*>(m_pool.getPtr(ptr.i)); +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::getPtr(ConstPtr<T> & ptr) const +{ + ptr.p = static_cast<const T*>(m_pool.getPtr(ptr.i)); +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::getPtr(Ptr<T> & ptr, Uint32 i) +{ + ptr.i = i; + ptr.p = static_cast<T*>(m_pool.getPtr(ptr.i)); +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::getPtr(ConstPtr<T> & ptr, Uint32 i) const +{ + ptr.i = i; + ptr.p = static_cast<const T*>(m_pool.getPtr(ptr.i)); +} + +template <typename T, typename P> +inline +T * +RecordPool<T, P>::getPtr(Uint32 i) +{ + return static_cast<T*>(m_pool.getPtr(i)); +} + +template <typename T, typename P> +inline +const T * +RecordPool<T, P>::getConstPtr(Uint32 i) const +{ + return static_cast<const T*>(m_pool.getPtr(i)); +} + +template <typename T, typename P> +inline +bool +RecordPool<T, P>::seize(Ptr<T> & ptr) +{ + return m_pool.seize(&ptr.i, (char**)&ptr.p); +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::release(Uint32 i) +{ + m_pool.release(i, m_pool.getPtr(i)); +} + +template <typename T, typename P> +inline +void +RecordPool<T, P>::release(Ptr<T> & ptr) +{ + m_pool.release(ptr.i, (char*)ptr.p); +} + + +#endif diff --git a/storage/ndb/src/kernel/vm/SimBlockList.hpp b/storage/ndb/src/kernel/vm/SimBlockList.hpp index cfe09701cc4..3204a50b03d 100644 --- a/storage/ndb/src/kernel/vm/SimBlockList.hpp +++ b/storage/ndb/src/kernel/vm/SimBlockList.hpp @@ -27,7 +27,7 @@ public: SimBlockList(); ~SimBlockList(); - void load(const Configuration & conf); + void load(Configuration & conf); void unload(); private: int noOfBlocks; diff --git a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp index c6434a8255e..15c7027afd8 100644 --- a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp +++ b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp @@ -46,11 +46,11 @@ // Constructor, Destructor // SimulatedBlock::SimulatedBlock(BlockNumber blockNumber, - const class Configuration & conf) + struct Block_context & ctx) : theNodeId(globalData.ownId), theNumber(blockNumber), theReference(numberToRef(blockNumber, globalData.ownId)), - theConfiguration(conf), + m_ctx(ctx), m_global_page_pool(globalData.m_global_page_pool), c_fragmentInfoHash(c_fragmentInfoPool), c_linearFragmentSendList(c_fragmentSendPool), @@ -724,9 +724,9 @@ SimulatedBlock::progError(int line, int err_code, const char* extra) const { // Pack status of interesting config variables // so that we can print them in error.log int magicStatus = - (theConfiguration.stopOnError()<<1) + - (theConfiguration.getInitialStart()<<2) + - (theConfiguration.getDaemonMode()<<3); + (m_ctx.m_config.stopOnError()<<1) + + (m_ctx.m_config.getInitialStart()<<2) + + (m_ctx.m_config.getDaemonMode()<<3); /* Add line number to block name */ diff --git a/storage/ndb/src/kernel/vm/SimulatedBlock.hpp b/storage/ndb/src/kernel/vm/SimulatedBlock.hpp index 3bb134a92cd..6fbc9be72ce 100644 --- a/storage/ndb/src/kernel/vm/SimulatedBlock.hpp +++ b/storage/ndb/src/kernel/vm/SimulatedBlock.hpp @@ -51,7 +51,7 @@ #include <signaldata/ReadConfig.hpp> #include <signaldata/UpgradeStartup.hpp> - +#include "ndbd_malloc_impl.hpp" /** * Something for filesystem access @@ -74,6 +74,12 @@ typedef struct NewVar NewBaseAddrBits bits; } NewVARIABLE; /* 128 bits */ +struct Block_context +{ + class Configuration& m_config; + class Ndbd_mem_manager& m_mm; +}; + class SimulatedBlock { friend class TraceLCP; friend class SafeCounter; @@ -93,8 +99,8 @@ protected: * Constructor */ SimulatedBlock(BlockNumber blockNumber, - const class Configuration & theConfiguration); - + struct Block_context & ctx); + /********************************************************** * Handling of execFunctions */ @@ -338,6 +344,7 @@ private: const BlockReference theReference; protected: + Block_context m_ctx; NewVARIABLE* allocateBat(int batSize); void freeBat(); static const NewVARIABLE* getBat (BlockNumber blockNo); @@ -379,11 +386,6 @@ protected: void warningEvent(const char * msg, ...) const ; /** - * The configuration object - */ - const class Configuration & theConfiguration; - - /** * Get node state */ const NodeState & getNodeState() const; |