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

📄 dbdih.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 4 页
字号:
  void creatingGcpLab(Signal *, FileRecordPtr regFilePtr);  void openingGcpLab(Signal *, FileRecordPtr regFilePtr);  void openingTableLab(Signal *, FileRecordPtr regFilePtr);  void tableCreateLab(Signal *, FileRecordPtr regFilePtr);  void creatingGcpErrorLab(Signal *, FileRecordPtr regFilePtr);  void openingCopyGciErrorLab(Signal *, FileRecordPtr regFilePtr);  void creatingCopyGciErrorLab(Signal *, FileRecordPtr regFilePtr);  void openingGcpErrorLab(Signal *, FileRecordPtr regFilePtr);  void openingTableErrorLab(Signal *, FileRecordPtr regFilePtr);  void tableCreateErrorLab(Signal *, FileRecordPtr regFilePtr);  void closingGcpLab(Signal *, FileRecordPtr regFilePtr);  void closingGcpCrashLab(Signal *, FileRecordPtr regFilePtr);  void closingTableCrashLab(Signal *, FileRecordPtr regFilePtr);  void closingTableSrLab(Signal *, FileRecordPtr regFilePtr);  void tableCloseLab(Signal *, FileRecordPtr regFilePtr);  void tableCloseErrorLab(FileRecordPtr regFilePtr);  void readingGcpLab(Signal *, FileRecordPtr regFilePtr);  void readingTableLab(Signal *, FileRecordPtr regFilePtr);  void readingGcpErrorLab(Signal *, FileRecordPtr regFilePtr);  void readingTableErrorLab(Signal *, FileRecordPtr regFilePtr);  void writingCopyGciLab(Signal *, FileRecordPtr regFilePtr);  void writeInitGcpLab(Signal *, FileRecordPtr regFilePtr);  void tableWriteLab(Signal *, FileRecordPtr regFilePtr);  void writeInitGcpErrorLab(Signal *, FileRecordPtr regFilePtr);  void calculateHotSpare();  void checkEscalation();  void clearRestartInfoBits(Signal *);  void invalidateLcpInfoAfterSr();  bool isMaster();  bool isActiveMaster();  void emptyverificbuffer(Signal *, bool aContintueB);  Uint32 findHotSpare();  void handleGcpStateInMaster(Signal *, NodeRecordPtr failedNodeptr);  void initRestartInfo();  void initRestorableGciFiles();  void makeNodeGroups(Uint32 nodeArray[]);  void makePrnList(class ReadNodesConf * readNodes, Uint32 nodeArray[]);  void nodeResetStart();  void releaseTabPages(Uint32 tableId);  void replication(Uint32 noOfReplicas,                   NodeGroupRecordPtr NGPtr,                   FragmentstorePtr regFragptr);  void selectMasterCandidateAndSend(Signal *);  void setInitialActiveStatus();  void setLcpActiveStatusEnd();  void setLcpActiveStatusStart(Signal *);  void setNodeActiveStatus();  void setNodeGroups();  void setNodeInfo(Signal *);  void setNodeLcpActiveStatus();  void setNodeRestartInfoBits();  void startGcp(Signal *);  void readFragment(RWFragment* rf, FragmentstorePtr regFragptr);  Uint32 readPageWord(RWFragment* rf);  void readReplica(RWFragment* rf, ReplicaRecordPtr readReplicaPtr);  void readReplicas(RWFragment* rf, FragmentstorePtr regFragptr);  void readRestorableGci(Signal *, FileRecordPtr regFilePtr);  void readTabfile(Signal *, TabRecord* tab, FileRecordPtr regFilePtr);  void writeFragment(RWFragment* wf, FragmentstorePtr regFragptr);  void writePageWord(RWFragment* wf, Uint32 dataWord);  void writeReplicas(RWFragment* wf, Uint32 replicaStartIndex);  void writeRestorableGci(Signal *, FileRecordPtr regFilePtr);  void writeTabfile(Signal *, TabRecord* tab, FileRecordPtr regFilePtr);  void copyTabReq_complete(Signal* signal, TabRecordPtr tabPtr);  void gcpcommitreqLab(Signal *);  void gcpsavereqLab(Signal *);  void copyGciLab(Signal *, CopyGCIReq::CopyReason reason);  void storeNewLcpIdLab(Signal *);  void startLcpRoundLoopLab(Signal *, Uint32 startTableId, Uint32 startFragId);  void nodeFailCompletedCheckLab(Signal*, NodeRecordPtr failedNodePtr);  /**   *   */  void setLocalNodefailHandling(Signal*, Uint32 failedNodeId,				NodefailHandlingStep step);  void checkLocalNodefailComplete(Signal*, Uint32 failedNodeId,				  NodefailHandlingStep step);    void ndbsttorry10Lab(Signal *, Uint32 _line);  void createMutexes(Signal* signal, Uint32 no);  void createMutex_done(Signal* signal, Uint32 no, Uint32 retVal);  void crashSystemAtGcpStop(Signal *);  void sendFirstDictfragsreq(Signal *, TabRecordPtr regTabPtr);  void addtabrefuseLab(Signal *, ConnectRecordPtr regConnectPtr, Uint32 errorCode);  void GCP_SAVEhandling(Signal *, Uint32 nodeId);  void packTableIntoPagesLab(Signal *, Uint32 tableId);  void readPagesIntoTableLab(Signal *, Uint32 tableId);  void readPagesIntoFragLab(Signal *, RWFragment* rf);  void readTabDescriptionLab(Signal *, Uint32 tableId);  void copyTableLab(Signal *, Uint32 tableId);  void breakCopyTableLab(Signal *,                         TabRecordPtr regTabPtr,                         Uint32 nodeId);  void checkAddfragCompletedLab(Signal *,                                TabRecordPtr regTabPtr,                                Uint32 fragId);  void completeRestartLab(Signal *);  void readTableFromPagesLab(Signal *, TabRecordPtr regTabPtr);  void srPhase2ReadTableLab(Signal *, TabRecordPtr regTabPtr);  void checkTcCounterLab(Signal *);  void calculateKeepGciLab(Signal *, Uint32 tableId, Uint32 fragId);  void tableUpdateLab(Signal *, TabRecordPtr regTabPtr);  void checkLcpCompletedLab(Signal *);  void initLcpLab(Signal *, Uint32 masterRef, Uint32 tableId);  void startGcpLab(Signal *, Uint32 aWaitTime);  void checkGcpStopLab(Signal *);  void MASTER_GCPhandling(Signal *, Uint32 failedNodeId);  void MASTER_LCPhandling(Signal *, Uint32 failedNodeId);  void rnfTableNotReadyLab(Signal *, TabRecordPtr regTabPtr, Uint32 removeNodeId);  void startLcpTakeOverLab(Signal *, Uint32 failedNodeId);  void startLcpMasterTakeOver(Signal *, Uint32 failedNodeId);  void startGcpMasterTakeOver(Signal *, Uint32 failedNodeId);  void checkGcpOutstanding(Signal*, Uint32 failedNodeId);  void checkEmptyLcpComplete(Signal *);  void lcpBlockedLab(Signal *);  void breakCheckTabCompletedLab(Signal *, TabRecordPtr regTabptr);  void readGciFileLab(Signal *);  void openingCopyGciSkipInitLab(Signal *, FileRecordPtr regFilePtr);  void startLcpRoundLab(Signal *);  void gcpBlockedLab(Signal *);  void initialStartCompletedLab(Signal *);  void allNodesLcpCompletedLab(Signal *);  void nodeRestartPh2Lab(Signal *);  void initGciFilesLab(Signal *);  void dictStartConfLab(Signal *);  void nodeDictStartConfLab(Signal *);  void ndbStartReqLab(Signal *, BlockReference ref);  void nodeRestartStartRecConfLab(Signal *);  void dihCopyCompletedLab(Signal *);  void release_connect(ConnectRecordPtr ptr);  void copyTableNode(Signal *,                     CopyTableNode* ctn,                     NodeRecordPtr regNodePtr);  void startFragment(Signal *, Uint32 tableId, Uint32 fragId);  bool checkLcpAllTablesDoneInLqh();    void lcpStateAtNodeFailureLab(Signal *, Uint32 nodeId);  void copyNodeLab(Signal *, Uint32 tableId);  void copyGciReqLab(Signal *);  void allLab(Signal *,              ConnectRecordPtr regConnectPtr,              TabRecordPtr regTabPtr);  void tableCopyNodeLab(Signal *, TabRecordPtr regTabPtr);  void removeNodeFromTables(Signal *, Uint32 tableId, Uint32 nodeId);  void removeNodeFromTable(Signal *, Uint32 tableId, TabRecordPtr tabPtr);  void removeNodeFromTablesComplete(Signal* signal, Uint32 nodeId);    void packFragIntoPagesLab(Signal *, RWFragment* wf);  void startNextChkpt(Signal *);  void failedNodeLcpHandling(Signal*, NodeRecordPtr failedNodePtr);  void failedNodeSynchHandling(Signal *, NodeRecordPtr failedNodePtr);  void checkCopyTab(NodeRecordPtr failedNodePtr);  void initCommonData();  void initialiseRecordsLab(Signal *, Uint32 stepNo, Uint32, Uint32);  void findReplica(ReplicaRecordPtr& regReplicaPtr,                   Fragmentstore* fragPtrP, Uint32 nodeId);//------------------------------------// Node failure handling methods//------------------------------------  void startRemoveFailedNode(Signal *, NodeRecordPtr failedNodePtr);  void handleGcpTakeOver(Signal *, NodeRecordPtr failedNodePtr);  void handleLcpTakeOver(Signal *, NodeRecordPtr failedNodePtr);  void handleNewMaster(Signal *, NodeRecordPtr failedNodePtr);  void checkTakeOverInMasterAllNodeFailure(Signal*, NodeRecordPtr failedNode);  void checkTakeOverInMasterCopyNodeFailure(Signal*, Uint32 failedNodeId);  void checkTakeOverInMasterStartNodeFailure(Signal*, Uint32 takeOverPtr);  void checkTakeOverInNonMasterStartNodeFailure(Signal*, Uint32 takeOverPtr);  void handleLcpMasterTakeOver(Signal *, Uint32 nodeId);//------------------------------------// Replica record specific methods//------------------------------------  Uint32 findLogInterval(ConstPtr<ReplicaRecord> regReplicaPtr, 			 Uint32 startGci);  void findMinGci(ReplicaRecordPtr fmgReplicaPtr,                  Uint32& keeGci,                  Uint32& oldestRestorableGci);  bool findStartGci(ConstPtr<ReplicaRecord> fstReplicaPtr,                    Uint32 tfstStopGci,                    Uint32& tfstStartGci,                    Uint32& tfstLcp);  void newCrashedReplica(Uint32 nodeId, ReplicaRecordPtr ncrReplicaPtr);  void packCrashedReplicas(ReplicaRecordPtr pcrReplicaPtr);  void releaseReplicas(Uint32 replicaPtr);  void removeOldCrashedReplicas(ReplicaRecordPtr rocReplicaPtr);  void removeTooNewCrashedReplicas(ReplicaRecordPtr rtnReplicaPtr);  void seizeReplicaRec(ReplicaRecordPtr& replicaPtr);//------------------------------------// Methods operating on a fragment and// its connected replicas and nodes.//------------------------------------  void allocStoredReplica(FragmentstorePtr regFragptr,                          ReplicaRecordPtr& newReplicaPtr,                          Uint32 nodeId);  Uint32 extractNodeInfo(const Fragmentstore * fragPtr, Uint32 nodes[]);  bool findBestLogNode(CreateReplicaRecord* createReplica,                       FragmentstorePtr regFragptr,                       Uint32 startGci,                       Uint32 stopGci,                       Uint32 logNode,                       Uint32& fblStopGci);  bool findLogNodes(CreateReplicaRecord* createReplica,                    FragmentstorePtr regFragptr,                    Uint32 startGci,                    Uint32 stopGci);  void findToReplica(TakeOverRecord* regTakeOver,                     Uint32 replicaType,                     FragmentstorePtr regFragptr,                     ReplicaRecordPtr& ftrReplicaPtr);  void initFragstore(FragmentstorePtr regFragptr);  void insertBackup(FragmentstorePtr regFragptr, Uint32 nodeId);  void insertfraginfo(FragmentstorePtr regFragptr,                      Uint32 noOfBackups,                      Uint32* nodeArray);  void linkOldStoredReplica(FragmentstorePtr regFragptr,                            ReplicaRecordPtr replicaPtr);  void linkStoredReplica(FragmentstorePtr regFragptr,                         ReplicaRecordPtr replicaPtr);  void prepareReplicas(FragmentstorePtr regFragptr);  void removeNodeFromStored(Uint32 nodeId,                            FragmentstorePtr regFragptr,                            ReplicaRecordPtr replicaPtr,			    bool temporary);  void removeOldStoredReplica(FragmentstorePtr regFragptr,                              ReplicaRecordPtr replicaPtr);  void removeStoredReplica(FragmentstorePtr regFragptr,                           ReplicaRecordPtr replicaPtr);  void searchStoredReplicas(FragmentstorePtr regFragptr);  void updateNodeInfo(FragmentstorePtr regFragptr);//------------------------------------// Fragment allocation, deallocation and// find methods//------------------------------------  void allocFragments(Uint32 noOfFragments, TabRecordPtr regTabPtr);  void releaseFragments(TabRecordPtr regTabPtr);  void getFragstore(TabRecord *, Uint32 fragNo, FragmentstorePtr & ptr);  void initialiseFragstore();//------------------------------------// Page Record specific methods//------------------------------------  void allocpage(PageRecordPtr& regPagePtr);  void releasePage(Uint32 pageIndex);//------------------------------------// Table Record specific methods//------------------------------------  void initTable(TabRecordPtr regTabPtr);  void initTableFile(TabRecordPtr regTabPtr);  void releaseTable(TabRecordPtr tabPtr);  Uint32 findTakeOver(Uint32 failedNodeId);  void handleTakeOverMaster(Signal *, Uint32 takeOverPtr);  void handleTakeOverNewMaster(Signal *, Uint32 takeOverPtr);//------------------------------------// TakeOver Record specific methods//------------------------------------  void initTakeOver(TakeOverRecordPtr regTakeOverptr);  void seizeTakeOver(TakeOverRecordPtr& regTakeOverptr);  void allocateTakeOver(TakeOverRecordPtr& regTakeOverptr);  void releaseTakeOver(Uint32 takeOverPtr);  bool anyActiveTakeOver();  void checkToCopy();  void checkToCopyCompleted(Signal *);  bool checkToInterrupted(TakeOverRecordPtr& regTakeOverptr);  Uint32 getStartNode(Uint32 takeOverPtr);//------------------------------------// Methods for take over functionality//------------------------------------  void changeNodeGroups(Uint32 startNode, Uint32 nodeTakenOver);  void endTakeOver(Uint32 takeOverPtr);  void initStartTakeOver(const class StartToReq *, 			 TakeOverRecordPtr regTakeOverPtr);    void nodeRestartTakeOver(Signal *, Uint32 startNodeId);  void systemRestartTakeOverLab(Signal *);  void startTakeOver(Signal *,                     Uint32 takeOverPtr,                     Uint32 startNode,                     Uint32 toNode);  void sendStartTo(Signal *, Uint32 takeOverPtr);  void startNextCopyFragment(Signal *, Uint32 takeOverPtr);  void toCopyFragLab(Signal *, Uint32 takeOverPtr);  void startHsAddFragConfLab(Signal *);  void prepareSendCreateFragReq(Signal *, Uint32 takeOverPtr);  void sendUpdateTo(Signal *, Uint32 takeOverPtr, Uint32 updateState);  void toCopyCompletedLab(Signal *, TakeOverRecordPtr regTakeOverptr);  void takeOverCompleted(Uint32 aNodeId);  void sendEndTo(Signal *, Uint32 takeOverPtr);//------------------------------------// Node Record specific methods//------------------------------------  void checkStartTakeOver(Signal *);  void insertAlive(NodeRecordPtr newNodePtr);  void insertDeadNode(NodeRecordPtr removeNodePtr);  void removeAlive(NodeRecordPtr removeNodePtr);  void removeDeadNode(NodeRecordPtr removeNodePtr);  NodeRecord::NodeStatus getNodeStatus(Uint32 nodeId);  void setNodeStatus(Uint32 nodeId, NodeRecord::NodeStatus);  Sysfile::ActiveStatus getNodeActiveStatus(Uint32 nodeId);  void setNodeActiveStatus(Uint32 nodeId, Sysfile::ActiveStatus newStatus);  void setNodeLcpActiveStatus(Uint32 nodeId, bool newState);  bool getNodeLcpActiveStatus(Uint32 nodeId);  bool getAllowNodeStart(Uint32 nodeId);  void setAllowNodeStart(Uint32 nodeId, bool newState);  bool getNodeCopyCompleted(Uint32 nodeId);  void setNodeCopyCompleted(Uint32 nodeId, bool newState);  bool checkNodeAlive(Uint32 nodeId);  // Initialisation  void initData();  void initRecords();  // Variables to support record structures and their free lists  ApiConnectRecord *apiConnectRecord;  Uint32 capiConnectFileSize;  ConnectRecord *connectRecord;  Uint32 cfirstconnect;  Uint32 cconnectFileSize;  CreateReplicaRecord *createReplicaRecord;  Uint32 cnoOfCreateReplicas;  FileRecord *fileRecord;  Uint32 cfirstfreeFile;  Uint32 cfileFileSize;  Fragmentstore *fragmentstore;  Uint32 cfirstfragstore;  Uint32 cfragstoreFileSize;  Uint32 c_nextNodeGroup;  NodeGroupRecord *nodeGroupRecord;  NodeRecord *nodeRecord;  PageRecord *pageRecord;  Uint32 cfirstfreepage;  Uint32 cpageFileSize;  ReplicaRecord *replicaRecord;  Uint32 cfirstfreeReplica;  Uint32 cnoFreeReplicaRec;  Uint32 creplicaFileSize;  TabRecord *tabRecord;  Uint32 ctabFileSize;  TakeOverRecord *takeOverRecord;  Uint32 cfirstfreeTakeOver;  /*    2.4  C O M M O N    S T O R E D    V A R I A B L E S    ----------------------------------------------------  */  Uint32 cfirstVerifyQueue;  Uint32 clastVerifyQueue;  Uint32 cverifyQueueCounter;  /*------------------------------------------------------------------------*/  /*       THIS VARIABLE KEEPS THE REFERENCES TO FILE RECORDS THAT DESCRIBE */  /*       THE TWO FILES THAT ARE USED TO STORE THE VARIABLE CRESTART_INFO  */  /*       ON DISK.                                                         */  /*------------------------------------------------------------------------*/  Uint32 crestartInfoFile[2];  /*------------------------------------------------------------------------*/  /*       THIS VARIABLE KEEPS TRACK OF THE STATUS OF A GLOBAL CHECKPOINT   */  /*       PARTICIPANT. THIS IS NEEDED TO HANDLE A NODE FAILURE. WHEN A NODE*/  /*       FAILURE OCCURS IT IS EASY THAT THE PROTOCOL STOPS IF NO ACTION IS*/  /*       TAKEN TO PREVENT THIS. THIS VARIABLE ENSURES SUCH ACTION CAN BE  */  /*       TAKEN.                                                           */  /*------------------------------------------------------------------------*/  enum GcpParticipantState {    GCP_PARTICIPANT_READY = 0,    GCP_PARTICIPANT_PREPARE_RECEIVED = 1,    GCP_PARTICIPANT_COMMIT_RECEIVED = 2,    GCP_PARTICIPANT_TC_FINISHED = 3,    GCP_PARTICIPANT_COPY_GCI_RECEIVED = 4  };  GcpParticipantState cgcpParticipantState;  /*------------------------------------------------------------------------*/  /*       THESE VARIABLES ARE USED TO CONTROL THAT GCP PROCESSING DO NOT   */

⌨️ 快捷键说明

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