⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dblqhinit.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* 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 */#include <pc.hpp>#define DBLQH_C#include "Dblqh.hpp"#include <ndb_limits.h>#define DEBUG(x) { ndbout << "LQH::" << x << endl; }void Dblqh::initData() {  caddfragrecFileSize = ZADDFRAGREC_FILE_SIZE;  cattrinbufFileSize = ZATTRINBUF_FILE_SIZE;  c_no_attrinbuf_recs= ZATTRINBUF_FILE_SIZE;  cdatabufFileSize = ZDATABUF_FILE_SIZE;  cfragrecFileSize = 0;  cgcprecFileSize = ZGCPREC_FILE_SIZE;  chostFileSize = MAX_NDB_NODES;  clcpFileSize = ZNO_CONCURRENT_LCP;  clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE;  clfoFileSize = ZLFO_FILE_SIZE;  clogFileFileSize = 0;  clogPartFileSize = ZLOG_PART_FILE_SIZE;  cpageRefFileSize = ZPAGE_REF_FILE_SIZE;  cscanrecFileSize = ZSCANREC_FILE_SIZE;  ctabrecFileSize = 0;  ctcConnectrecFileSize = 0;  ctcNodeFailrecFileSize = MAX_NDB_NODES;  addFragRecord = 0;  attrbuf = 0;  databuf = 0;  fragrecord = 0;  gcpRecord = 0;  hostRecord = 0;  lcpRecord = 0;  lcpLocRecord = 0;  logPartRecord = 0;  logFileRecord = 0;  logFileOperationRecord = 0;  logPageRecord = 0;  pageRefRecord = 0;  tablerec = 0;  tcConnectionrec = 0;  tcNodeFailRecord = 0;    // Records with constant sizes  cLqhTimeOutCount = 0;  cLqhTimeOutCheckCount = 0;  cbookedAccOps = 0;  c_redo_log_complete_frags = RNIL;}//Dblqh::initData()void Dblqh::initRecords() {  // Records with dynamic sizes  addFragRecord = (AddFragRecord*)allocRecord("AddFragRecord",					      sizeof(AddFragRecord), 					      caddfragrecFileSize);  attrbuf = (Attrbuf*)allocRecord("Attrbuf",				  sizeof(Attrbuf), 				  cattrinbufFileSize);  databuf = (Databuf*)allocRecord("Databuf",				  sizeof(Databuf), 				  cdatabufFileSize);  fragrecord = (Fragrecord*)allocRecord("Fragrecord",					sizeof(Fragrecord), 					cfragrecFileSize);  gcpRecord = (GcpRecord*)allocRecord("GcpRecord",				      sizeof(GcpRecord), 				      cgcprecFileSize);  hostRecord = (HostRecord*)allocRecord("HostRecord",					sizeof(HostRecord), 					chostFileSize);  lcpRecord = (LcpRecord*)allocRecord("LcpRecord",				      sizeof(LcpRecord), 				      clcpFileSize);  for(Uint32 i = 0; i<clcpFileSize; i++){    new (&lcpRecord[i])LcpRecord();  }  lcpLocRecord = (LcpLocRecord*)allocRecord("LcpLocRecord",					    sizeof(LcpLocRecord), 					    clcpLocrecFileSize);  logPartRecord = (LogPartRecord*)allocRecord("LogPartRecord",					      sizeof(LogPartRecord), 					      clogPartFileSize);  logFileRecord = (LogFileRecord*)allocRecord("LogFileRecord",					      sizeof(LogFileRecord),					      clogFileFileSize);  logFileOperationRecord = (LogFileOperationRecord*)    allocRecord("LogFileOperationRecord", 		sizeof(LogFileOperationRecord), 		clfoFileSize);  logPageRecord = (LogPageRecord*)allocRecord("LogPageRecord",					      sizeof(LogPageRecord),					      clogPageFileSize,					      false);  pageRefRecord = (PageRefRecord*)allocRecord("PageRefRecord",					      sizeof(PageRefRecord),					      cpageRefFileSize);  cscanNoFreeRec = cscanrecFileSize;  c_scanRecordPool.setSize(cscanrecFileSize);  c_scanTakeOverHash.setSize(64);  tablerec = (Tablerec*)allocRecord("Tablerec",				    sizeof(Tablerec), 				    ctabrecFileSize);  tcConnectionrec = (TcConnectionrec*)allocRecord("TcConnectionrec",						  sizeof(TcConnectionrec),						  ctcConnectrecFileSize);    m_commitAckMarkerPool.setSize(ctcConnectrecFileSize);  m_commitAckMarkerHash.setSize(1024);    tcNodeFailRecord = (TcNodeFailRecord*)allocRecord("TcNodeFailRecord",						    sizeof(TcNodeFailRecord),						    ctcNodeFailrecFileSize);    /*  ndbout << "FRAGREC SIZE = " << sizeof(Fragrecord) << endl;  ndbout << "TAB SIZE = " << sizeof(Tablerec) << endl;  ndbout << "GCP SIZE = " << sizeof(GcpRecord) << endl;  ndbout << "LCP SIZE = " << sizeof(LcpRecord) << endl;  ndbout << "LCPLOC SIZE = " << sizeof(LcpLocRecord) << endl;  ndbout << "LOGPART SIZE = " << sizeof(LogPartRecord) << endl;  ndbout << "LOGFILE SIZE = " << sizeof(LogFileRecord) << endl;  ndbout << "TC SIZE = " << sizeof(TcConnectionrec) << endl;  ndbout << "HOST SIZE = " << sizeof(HostRecord) << endl;  ndbout << "LFO SIZE = " << sizeof(LogFileOperationRecord) << endl;  ndbout << "PR SIZE = " << sizeof(PageRefRecord) << endl;  ndbout << "SCAN SIZE = " << sizeof(ScanRecord) << endl;*/  // Initialize BAT for interface to file system  NewVARIABLE* bat = allocateBat(2);  bat[1].WA = &logPageRecord->logPageWord[0];  bat[1].nrr = clogPageFileSize;  bat[1].ClusterSize = sizeof(LogPageRecord);  bat[1].bits.q = ZTWOLOG_PAGE_SIZE;  bat[1].bits.v = 5;}//Dblqh::initRecords()Dblqh::Dblqh(const class Configuration & conf):  SimulatedBlock(DBLQH, 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);  addRecSignal(GSN_KEYINFO, &Dblqh::execKEYINFO);  addRecSignal(GSN_LQHKEYREQ, &Dblqh::execLQHKEYREQ);  addRecSignal(GSN_LQHKEYREF, &Dblqh::execLQHKEYREF);  addRecSignal(GSN_COMMIT, &Dblqh::execCOMMIT);  addRecSignal(GSN_COMPLETE, &Dblqh::execCOMPLETE);  addRecSignal(GSN_LQHKEYCONF, &Dblqh::execLQHKEYCONF);#ifdef VM_TRACE  addRecSignal(GSN_TESTSIG, &Dblqh::execTESTSIG);#endif  addRecSignal(GSN_LQH_RESTART_OP, &Dblqh::execLQH_RESTART_OP);  addRecSignal(GSN_CONTINUEB, &Dblqh::execCONTINUEB);  addRecSignal(GSN_START_RECREQ, &Dblqh::execSTART_RECREQ);  addRecSignal(GSN_START_RECCONF, &Dblqh::execSTART_RECCONF);  addRecSignal(GSN_EXEC_FRAGREQ, &Dblqh::execEXEC_FRAGREQ);  addRecSignal(GSN_EXEC_FRAGCONF, &Dblqh::execEXEC_FRAGCONF);  addRecSignal(GSN_EXEC_FRAGREF, &Dblqh::execEXEC_FRAGREF);  addRecSignal(GSN_START_EXEC_SR, &Dblqh::execSTART_EXEC_SR);  addRecSignal(GSN_EXEC_SRREQ, &Dblqh::execEXEC_SRREQ);  addRecSignal(GSN_EXEC_SRCONF, &Dblqh::execEXEC_SRCONF);  addRecSignal(GSN_SCAN_HBREP, &Dblqh::execSCAN_HBREP);  addRecSignal(GSN_ALTER_TAB_REQ, &Dblqh::execALTER_TAB_REQ);  // Trigger signals, transit to from TUP  addRecSignal(GSN_CREATE_TRIG_REQ, &Dblqh::execCREATE_TRIG_REQ);  addRecSignal(GSN_CREATE_TRIG_CONF, &Dblqh::execCREATE_TRIG_CONF);  addRecSignal(GSN_CREATE_TRIG_REF, &Dblqh::execCREATE_TRIG_REF);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -