summaryrefslogtreecommitdiff
path: root/storage/ndb/src/kernel
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-02-13 13:12:47 +0100
committerunknown <jonas@perch.ndb.mysql.com>2006-02-13 13:12:47 +0100
commit192abbc6b8bd9fa6c5506700d41138007546f576 (patch)
treeaabff54e32ae46f09d14ed24bf5bc81ea0d69a2a /storage/ndb/src/kernel
parentd5fad326488bd5413ccf73c16fe9ea9f0dfc0c93 (diff)
downloadmariadb-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')
-rw-r--r--storage/ndb/src/kernel/SimBlockList.cpp45
-rw-r--r--storage/ndb/src/kernel/blocks/backup/Backup.hpp4
-rw-r--r--storage/ndb/src/kernel/blocks/backup/BackupInit.cpp12
-rw-r--r--storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp26
-rw-r--r--storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp8
-rw-r--r--storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp12
-rw-r--r--storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp3
-rw-r--r--storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp7
-rw-r--r--storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp21
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp16
-rw-r--r--storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp9
-rw-r--r--storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp31
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp8
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp20
-rw-r--r--storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp4
-rw-r--r--storage/ndb/src/kernel/blocks/lgman.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/lgman.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp14
-rw-r--r--storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp10
-rw-r--r--storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp4
-rw-r--r--storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/pgman.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/pgman.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/record_types.hpp (renamed from storage/ndb/src/kernel/vm/ArrayList.hpp)18
-rw-r--r--storage/ndb/src/kernel/blocks/restore.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/restore.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/suma/Suma.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/suma/Suma.hpp2
-rw-r--r--storage/ndb/src/kernel/blocks/suma/SumaInit.cpp4
-rw-r--r--storage/ndb/src/kernel/blocks/trix/Trix.cpp8
-rw-r--r--storage/ndb/src/kernel/blocks/trix/Trix.hpp7
-rw-r--r--storage/ndb/src/kernel/blocks/tsman.cpp10
-rw-r--r--storage/ndb/src/kernel/blocks/tsman.hpp2
-rw-r--r--storage/ndb/src/kernel/vm/DLHashTable.hpp2
-rw-r--r--storage/ndb/src/kernel/vm/DLHashTable2.hpp3
-rw-r--r--storage/ndb/src/kernel/vm/Pool.hpp (renamed from storage/ndb/src/kernel/vm/ArrayFifoList.hpp)31
-rw-r--r--storage/ndb/src/kernel/vm/RecordPool.hpp169
-rw-r--r--storage/ndb/src/kernel/vm/SimBlockList.hpp2
-rw-r--r--storage/ndb/src/kernel/vm/SimulatedBlock.cpp10
-rw-r--r--storage/ndb/src/kernel/vm/SimulatedBlock.hpp18
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;