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

📄 dbtc.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 5 页
字号:
  void setupIndexOpReturn(ApiConnectRecord* regApiPtr,			  TcConnectRecord* regTcPtr);  void saveTriggeringOpState(Signal* signal,			     TcConnectRecord* trigOp);  void restoreTriggeringOpState(Signal* signal, 				TcConnectRecord* trigOp);  void continueTriggeringOp(Signal* signal, 			    TcConnectRecord* trigOp);  void scheduleFiredTrigger(ApiConnectRecordPtr* transPtr,                             TcConnectRecordPtr* opPtr);  void executeTriggers(Signal* signal, ApiConnectRecordPtr* transPtr);  void executeTrigger(Signal* signal,                      TcFiredTriggerData* firedTriggerData,                      ApiConnectRecordPtr* transPtr,                      TcConnectRecordPtr* opPtr);  void executeIndexTrigger(Signal* signal,                           TcDefinedTriggerData* definedTriggerData,                           TcFiredTriggerData* firedTriggerData,                           ApiConnectRecordPtr* transPtr,                           TcConnectRecordPtr* opPtr);  void insertIntoIndexTable(Signal* signal,                             TcFiredTriggerData* firedTriggerData,                             ApiConnectRecordPtr* transPtr,                            TcConnectRecordPtr* opPtr,                            TcIndexData* indexData,                            bool holdOperation = false);  void deleteFromIndexTable(Signal* signal,                             TcFiredTriggerData* firedTriggerData,                             ApiConnectRecordPtr* transPtr,                            TcConnectRecordPtr* opPtr,                            TcIndexData* indexData,                            bool holdOperation = false);  void releaseFiredTriggerData(DLFifoList<TcFiredTriggerData>* triggers);  // Generated statement blocks  void warningHandlerLab(Signal* signal, int line);  void systemErrorLab(Signal* signal, int line);  void sendSignalErrorRefuseLab(Signal* signal);  void scanTabRefLab(Signal* signal, Uint32 errCode);  void diFcountReqLab(Signal* signal, ScanRecordPtr);  void signalErrorRefuseLab(Signal* signal);  void abort080Lab(Signal* signal);  void packKeyData000Lab(Signal* signal, BlockReference TBRef, Uint32 len);  void abortScanLab(Signal* signal, ScanRecordPtr, Uint32 errCode, 		    bool not_started = false);  void sendAbortedAfterTimeout(Signal* signal, int Tcheck);  void abort010Lab(Signal* signal);  void abort015Lab(Signal* signal);  void packLqhkeyreq(Signal* signal, BlockReference TBRef);  void packLqhkeyreq040Lab(Signal* signal,                           UintR anAttrBufIndex,                           BlockReference TBRef);  void packLqhkeyreq040Lab(Signal* signal);  void returnFromQueuedDeliveryLab(Signal* signal);  void startTakeOverLab(Signal* signal);  void toCompleteHandlingLab(Signal* signal);  void toCommitHandlingLab(Signal* signal);  void toAbortHandlingLab(Signal* signal);  void abortErrorLab(Signal* signal);  void nodeTakeOverCompletedLab(Signal* signal);  void ndbsttorry010Lab(Signal* signal);  void commit020Lab(Signal* signal);  void complete010Lab(Signal* signal);  void releaseAtErrorLab(Signal* signal);  void seizeDatabuferrorLab(Signal* signal);  void scanAttrinfoLab(Signal* signal, UintR Tlen);  void seizeAttrbuferrorLab(Signal* signal);  void attrinfoDihReceivedLab(Signal* signal);  void aiErrorLab(Signal* signal);  void attrinfo020Lab(Signal* signal);  void scanReleaseResourcesLab(Signal* signal);  void scanCompletedLab(Signal* signal);  void scanError(Signal* signal, ScanRecordPtr, Uint32 errorCode);  void diverify010Lab(Signal* signal);  void intstartphase2x010Lab(Signal* signal);  void intstartphase3x010Lab(Signal* signal);  void sttorryLab(Signal* signal);  void abortBeginErrorLab(Signal* signal);  void tabStateErrorLab(Signal* signal);  void wrongSchemaVersionErrorLab(Signal* signal);  void noFreeConnectionErrorLab(Signal* signal);  void tckeyreq050Lab(Signal* signal);  void timeOutFoundLab(Signal* signal, UintR anAdd, Uint32 errCode);  void completeTransAtTakeOverLab(Signal* signal, UintR TtakeOverInd);  void completeTransAtTakeOverDoLast(Signal* signal, UintR TtakeOverInd);  void completeTransAtTakeOverDoOne(Signal* signal, UintR TtakeOverInd);  void timeOutLoopStartLab(Signal* signal, Uint32 apiConnectPtr);  void initialiseRecordsLab(Signal* signal, UintR Tdata0, Uint32, Uint32);  void tckeyreq020Lab(Signal* signal);  void intstartphase2x020Lab(Signal* signal);  void intstartphase1x010Lab(Signal* signal);  void startphase1x010Lab(Signal* signal);  void lqhKeyConf_checkTransactionState(Signal * signal,					ApiConnectRecord * const regApiPtr);  void checkDropTab(Signal* signal);  void checkScanActiveInFailedLqh(Signal* signal,				  Uint32 scanPtrI,				  Uint32 failedNodeId);  void checkScanFragList(Signal*, Uint32 failedNodeId, ScanRecord * scanP, 			 LocalDLList<ScanFragRec>::Head&);  void nodeFailCheckTransactions(Signal*,Uint32 transPtrI,Uint32 failedNodeId);  void checkNodeFailComplete(Signal* signal, Uint32 failedNodeId, Uint32 bit);    // Initialisation  void initData();  void initRecords();  // Transit signals  ApiConnectRecord *apiConnectRecord;  ApiConnectRecordPtr apiConnectptr;  UintR capiConnectFilesize;  TcConnectRecord *tcConnectRecord;  TcConnectRecordPtr tcConnectptr;  UintR ctcConnectFilesize;  CacheRecord *cacheRecord;  CacheRecordPtr cachePtr;  UintR ccacheFilesize;  AttrbufRecord *attrbufRecord;  AttrbufRecordPtr attrbufptr;  UintR cattrbufFilesize;  HostRecord *hostRecord;  HostRecordPtr hostptr;  UintR chostFilesize;  NdbNodeBitmask c_alive_nodes;  GcpRecord *gcpRecord;  GcpRecordPtr gcpPtr;  UintR cgcpFilesize;  TableRecord *tableRecord;  UintR ctabrecFilesize;  UintR thashValue;  UintR tdistrHashValue;  UintR ttransid_ptr;  UintR cfailure_nr;  UintR coperationsize;  UintR ctcTimer;  ApiConnectRecordPtr tmpApiConnectptr;  UintR tcheckGcpId;  struct TransCounters {    enum { Off, Timer, Started } c_trans_status;    UintR cattrinfoCount;    UintR ctransCount;    UintR ccommitCount;    UintR creadCount;    UintR csimpleReadCount;    UintR cwriteCount;    UintR cabortCount;    UintR cconcurrentOp;    Uint32 c_scan_count;    Uint32 c_range_scan_count;    void reset () {       cattrinfoCount = ctransCount = ccommitCount = creadCount =	csimpleReadCount = cwriteCount = cabortCount =	c_scan_count = c_range_scan_count = 0;     }    Uint32 report(Signal* signal){      signal->theData[0] = NDB_LE_TransReportCounters;      signal->theData[1] = ctransCount;      signal->theData[2] = ccommitCount;      signal->theData[3] = creadCount;      signal->theData[4] = csimpleReadCount;      signal->theData[5] = cwriteCount;      signal->theData[6] = cattrinfoCount;      signal->theData[7] = cconcurrentOp;      signal->theData[8] = cabortCount;      signal->theData[9] = c_scan_count;      signal->theData[10] = c_range_scan_count;      return 11;    }  } c_counters;    Uint16 cownNodeid;  Uint16 terrorCode;  UintR cfirstfreeAttrbuf;  UintR cfirstfreeTcConnect;  UintR cfirstfreeApiConnectCopy;  UintR cfirstfreeCacheRec;  UintR cfirstgcp;  UintR clastgcp;  UintR cfirstfreeGcp;  UintR cfirstfreeScanrec;  TableRecordPtr tabptr;  UintR cfirstfreeApiConnectFail;  UintR cfirstfreeApiConnect;  UintR cfirstfreeDatabuf;  BlockReference cdihblockref;  BlockReference cownref;                   /* OWN BLOCK REFERENCE */  ApiConnectRecordPtr timeOutptr;  ScanRecord *scanRecord;  UintR cscanrecFileSize;  UnsafeArrayPool<ScanFragRec> c_scan_frag_pool;  ScanFragRecPtr scanFragptr;  UintR cscanFragrecFileSize;  UintR cdatabufFilesize;  BlockReference cdictblockref;  BlockReference cerrorBlockref;  BlockReference clqhblockref;  BlockReference cndbcntrblockref;  Uint16 csignalKey;  Uint16 csystemnodes;  Uint16 cnodes[4];  NodeId cmasterNodeId;  UintR cnoParallelTakeOver;  TimeOutCheckState ctimeOutCheckFragActive;  UintR ctimeOutCheckFragCounter;  UintR ctimeOutCheckCounter;  UintR ctimeOutValue;  UintR ctimeOutCheckDelay;  Uint32 ctimeOutCheckHeartbeat;  Uint32 ctimeOutCheckLastHeartbeat;  Uint32 ctimeOutMissedHeartbeats;  Uint32 c_appl_timeout_value;  SystemStartState csystemStart;  TimeOutCheckState ctimeOutCheckActive;  BlockReference capiFailRef;  UintR cpackedListIndex;  Uint16 cpackedList[MAX_NODES];  UintR capiConnectClosing[MAX_NODES];  UintR con_lineNodes;  DatabufRecord *databufRecord;  DatabufRecordPtr databufptr;  DatabufRecordPtr tmpDatabufptr;  UintR treqinfo;  UintR ttransid1;  UintR ttransid2;  UintR tabortInd;  NodeId tnodeid;  BlockReference tblockref;  LqhTransConf::OperationStatus ttransStatus;  UintR ttcOprec;  NodeId tfailedNodeId;  Uint8 tcurrentReplicaNo;  Uint8 tpad1;  UintR tgci;  UintR tapplRef;  UintR tapplOprec;  UintR tindex;  UintR tmaxData;  UintR tmp;  UintR tnodes;  BlockReference tusersblkref;  UintR tuserpointer;  UintR tloadCode;  UintR tconfig1;  UintR tconfig2;  UintR cdata[32];  UintR ctransidFailHash[512];  UintR ctcConnectFailHash[1024];    /**   * Commit Ack handling   */public:  struct CommitAckMarker {    Uint32 transid1;    Uint32 transid2;    union { Uint32 nextPool; Uint32 nextHash; };    Uint32 prevHash;    Uint32 apiConnectPtr;    Uint16 apiNodeId;    Uint16 noOfLqhs;    Uint16 lqhNodeId[MAX_REPLICAS];    inline bool equal(const CommitAckMarker & p) const {      return ((p.transid1 == transid1) && (p.transid2 == transid2));    }        inline Uint32 hashValue() const {      return transid1;    }  };private:  typedef Ptr<CommitAckMarker> CommitAckMarkerPtr;  typedef DLHashTable<CommitAckMarker>::Iterator CommitAckMarkerIterator;    ArrayPool<CommitAckMarker>   m_commitAckMarkerPool;  DLHashTable<CommitAckMarker> m_commitAckMarkerHash;    void execTC_COMMIT_ACK(Signal* signal);  void sendRemoveMarkers(Signal*, const CommitAckMarker *);  void sendRemoveMarker(Signal* signal, 			NodeId nodeId,			Uint32 transid1, 			Uint32 transid2);  void removeMarkerForFailedAPI(Signal* signal, Uint32 nodeId, Uint32 bucket);  bool getAllowStartTransaction() const {    if(getNodeState().getSingleUserMode())      return true;    return getNodeState().startLevel < NodeState::SL_STOPPING_2;  }    void checkAbortAllTimeout(Signal* signal, Uint32 sleepTime);  struct AbortAllRecord {    AbortAllRecord(){ clientRef = 0; }    Uint32 clientData;    BlockReference clientRef;        Uint32 oldTimeOutValue;  };  AbortAllRecord c_abortRec;  /************************** API CONNECT RECORD ***********************/  /* *******************************************************************/  /* THE API CONNECT RECORD CONTAINS THE CONNECTION RECORD TO WHICH THE*/  /* APPLICATION CONNECTS. THE APPLICATION CAN SEND ONE OPERATION AT A */  /* TIME. IT CAN SEND A NEW OPERATION IMMEDIATELY AFTER SENDING THE   */  /* PREVIOUS OPERATION. THEREBY SEVERAL OPERATIONS CAN BE ACTIVE IN   */  /* ONE TRANSACTION WITHIN TC. THIS IS ACHIEVED BY USING THE API      */  /* CONNECT RECORD. EACH ACTIVE OPERATION IS HANDLED BY THE TC        */  /* CONNECT RECORD. AS SOON AS THE TC CONNECT RECORD HAS SENT THE     */  /* REQUEST TO THE LQH IT IS READY TO RECEIVE NEW OPERATIONS. THE     */  /* LQH CONNECT RECORD TAKES CARE OF WAITING FOR AN OPERATION TO      */  /* COMPLETE. WHEN AN OPERATION HAS COMPLETED ON THE LQH CONNECT      */  /* RECORD A NEW OPERATION CAN BE STARTED ON THIS LQH CONNECT RECORD. */  /*******************************************************************>*/  /*                                                                   */  /*       API CONNECT RECORD ALIGNED TO BE 256 BYTES                  */  /*******************************************************************>*/  /************************** TC CONNECT RECORD ************************/  /* *******************************************************************/  /* TC CONNECT RECORD KEEPS ALL INFORMATION TO CARRY OUT A TRANSACTION*/  /* THE TRANSACTION CONTROLLER ESTABLISHES CONNECTIONS TO DIFFERENT   */  /* BLOCKS TO CARRY OUT THE TRANSACTION. THERE CAN BE SEVERAL RECORDS */  /* PER ACTIVE TRANSACTION. THE TC CONNECT RECORD COOPERATES WITH THE */  /* API CONNECT RECORD FOR COMMUNICATION WITH THE API AND WITH THE    */  /* LQH CONNECT RECORD FOR COMMUNICATION WITH THE LQH'S INVOLVED IN   */  /* THE TRANSACTION. TC CONNECT RECORD IS PERMANENTLY CONNECTED TO A  */  /* RECORD IN DICT AND ONE IN DIH. IT CONTAINS A LIST OF ACTIVE LQH   */  /* CONNECT RECORDS AND A LIST OF STARTED BUT NOT ACTIVE LQH CONNECT  */  /* RECORDS. IT DOES ALSO CONTAIN A LIST OF ALL OPERATIONS THAT ARE   */  /* EXECUTED WITH THE TC CONNECT RECORD.                              */  /*******************************************************************>*/  /*       TC_CONNECT RECORD ALIGNED TO BE 128 BYTES                   */  /*******************************************************************>*/  UintR cfirstfreeTcConnectFail;  /* POINTER FOR THE LQH RECORD*/  /* ************************ HOS

⌨️ 快捷键说明

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