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

📄 dbacc.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 4 页
字号:
  Uint8 lockMode;  Uint8 lockOwner;  Uint8 nodeType;  Uint8 operation;  Uint8 opSimple;  Uint8 dirtyRead;  Uint8 commitDeleteCheckFlag;  Uint8 isAccLockReq;  Uint8 isUndoLogReq;}; /* p2c: size = 168 bytes */  typedef Ptr<Operationrec> OperationrecPtr;/* --------------------------------------------------------------------------------- *//* OVERFLOW_RECORD                                                                   *//* --------------------------------------------------------------------------------- */struct OverflowRecord {  Uint32 dirindex;  Uint32 nextOverRec;  Uint32 nextOverList;  Uint32 prevOverRec;  Uint32 prevOverList;  Uint32 overpage;  Uint32 nextfreeoverrec;};  typedef Ptr<OverflowRecord> OverflowRecordPtr;/* --------------------------------------------------------------------------------- *//* PAGE8                                                                             *//* --------------------------------------------------------------------------------- */struct Page8 {  Uint32 word32[2048];}; /* p2c: size = 8192 bytes */  typedef Ptr<Page8> Page8Ptr;/* --------------------------------------------------------------------------------- *//* ROOTFRAGMENTREC                                                                   *//*          DURING EXPAND FRAGMENT PROCESS, EACH FRAGMEND WILL BE EXPAND INTO TWO    *//*          NEW FRAGMENTS.TO MAKE THIS PROCESS EASIER, DURING ADD FRAGMENT PROCESS   *//*          NEXT FRAGMENT IDENTIIES WILL BE CALCULATED, AND TWO FRAGMENTS WILL BE    *//*          ADDED IN (NDBACC). THEREBY EXPAND OF FRAGMENT CAN BE PERFORMED QUICK AND *//*          EASY.THE NEW FRAGMENT ID SENDS TO TUP MANAGER FOR ALL OPERATION PROCESS. *//* --------------------------------------------------------------------------------- */struct Rootfragmentrec {  Uint32 scan[MAX_PARALLEL_SCANS_PER_FRAG];  Uint32 fragmentptr[2];  Uint32 fragmentid[2];  Uint32 lcpPtr;  Uint32 mytabptr;  Uint32 nextroot;  Uint32 roothashcheck;  Uint32 noOfElements;  Uint32 m_commit_count;  State rootState;}; /* p2c: size = 72 bytes */  typedef Ptr<Rootfragmentrec> RootfragmentrecPtr;/* --------------------------------------------------------------------------------- *//* SCAN_REC                                                                          *//* --------------------------------------------------------------------------------- */struct ScanRec {  enum ScanState {    WAIT_NEXT,      SCAN_DISCONNECT  };  enum ScanBucketState {    FIRST_LAP,    SECOND_LAP,    SCAN_COMPLETED  };  Uint32 activeLocalFrag;  Uint32 rootPtr;  Uint32 nextBucketIndex;  Uint32 scanNextfreerec;  Uint32 scanFirstActiveOp;  Uint32 scanFirstLockedOp;  Uint32 scanLastLockedOp;  Uint32 scanFirstQueuedOp;  Uint32 scanLastQueuedOp;  Uint32 scanUserptr;  Uint32 scanTrid1;  Uint32 scanTrid2;  Uint32 startNoOfBuckets;  Uint32 minBucketIndexToRescan;  Uint32 maxBucketIndexToRescan;  Uint32 scanOpsAllocated;  ScanBucketState scanBucketState;  ScanState scanState;  Uint16 scanLockHeld;  Uint32 scanUserblockref;  Uint32 scanMask;  Uint8 scanLockMode;  Uint8 scanKeyinfoFlag;  Uint8 scanTimer;  Uint8 scanContinuebCounter;  Uint8 scanReadCommittedFlag;};   typedef Ptr<ScanRec> ScanRecPtr;/* --------------------------------------------------------------------------------- *//* SR_VERSION_REC                                                                    *//* --------------------------------------------------------------------------------- */struct SrVersionRec {  Uint32 nextFreeSr;  Uint32 checkPointId;  Uint32 prevAddress;  Uint32 srUnused;	/* p2c: Not used */}; /* p2c: size = 16 bytes */  typedef Ptr<SrVersionRec> SrVersionRecPtr;/* --------------------------------------------------------------------------------- *//* TABREC                                                                            *//* --------------------------------------------------------------------------------- */struct Tabrec {  Uint32 fragholder[MAX_FRAG_PER_NODE];  Uint32 fragptrholder[MAX_FRAG_PER_NODE];  Uint32 tabUserPtr;  BlockReference tabUserRef;};  typedef Ptr<Tabrec> TabrecPtr;/* --------------------------------------------------------------------------------- *//* UNDOPAGE                                                                          *//* --------------------------------------------------------------------------------- */struct Undopage {  Uint32 undoword[8192];}; /* p2c: size = 32768 bytes */  typedef Ptr<Undopage> UndopagePtr;public:  Dbacc(const class Configuration &);  virtual ~Dbacc();  // pointer to TUP instance in this thread  Dbtup* c_tup;private:  BLOCK_DEFINES(Dbacc);  // Transit signals  void execDEBUG_SIG(Signal* signal);  void execCONTINUEB(Signal* signal);  void execACC_CHECK_SCAN(Signal* signal);  void execEXPANDCHECK2(Signal* signal);  void execSHRINKCHECK2(Signal* signal);  void execACC_OVER_REC(Signal* signal);  void execACC_SAVE_PAGES(Signal* signal);  void execNEXTOPERATION(Signal* signal);  void execREAD_PSUEDO_REQ(Signal* signal);  // Received signals  void execSTTOR(Signal* signal);  void execSR_FRAGIDREQ(Signal* signal);  void execLCP_FRAGIDREQ(Signal* signal);  void execLCP_HOLDOPREQ(Signal* signal);  void execEND_LCPREQ(Signal* signal);  void execACC_LCPREQ(Signal* signal);  void execSTART_RECREQ(Signal* signal);  void execACC_CONTOPREQ(Signal* signal);  void execACCKEYREQ(Signal* signal);  void execACCSEIZEREQ(Signal* signal);  void execACCFRAGREQ(Signal* signal);  void execACC_SRREQ(Signal* signal);  void execNEXT_SCANREQ(Signal* signal);  void execACC_ABORTREQ(Signal* signal);  void execACC_SCANREQ(Signal* signal);  void execACCMINUPDATE(Signal* signal);  void execACC_COMMITREQ(Signal* signal);  void execACC_TO_REQ(Signal* signal);  void execACC_LOCKREQ(Signal* signal);  void execFSOPENCONF(Signal* signal);  void execFSCLOSECONF(Signal* signal);  void execFSWRITECONF(Signal* signal);  void execFSREADCONF(Signal* signal);  void execNDB_STTOR(Signal* signal);  void execDROP_TAB_REQ(Signal* signal);  void execFSREMOVECONF(Signal* signal);  void execREAD_CONFIG_REQ(Signal* signal);  void execSET_VAR_REQ(Signal* signal);  void execDUMP_STATE_ORD(Signal* signal);  // Statement blocks  void ACCKEY_error(Uint32 fromWhere);  void commitDeleteCheck();  void initRootFragPageZero(RootfragmentrecPtr, Page8Ptr);  void initRootFragSr(RootfragmentrecPtr, Page8Ptr);  void initFragAdd(Signal*, Uint32 rootFragIndex, Uint32 rootIndex, FragmentrecPtr);  void initFragPageZero(FragmentrecPtr, Page8Ptr);  void initFragSr(FragmentrecPtr, Page8Ptr);  void initFragGeneral(FragmentrecPtr);  void verifyFragCorrect(FragmentrecPtr regFragPtr);  void sendFSREMOVEREQ(Signal* signal, Uint32 tableId);  void releaseFragResources(Signal* signal, Uint32 fragIndex);  void releaseRootFragRecord(Signal* signal, RootfragmentrecPtr rootPtr);  void releaseRootFragResources(Signal* signal, Uint32 tableId);  void releaseDirResources(Signal* signal,                           Uint32 fragIndex,                           Uint32 dirIndex,                           Uint32 startIndex);  void releaseDirectoryResources(Signal* signal,                                 Uint32 fragIndex,                                 Uint32 dirIndex,                                 Uint32 startIndex,                                 Uint32 directoryIndex);  void releaseOverflowResources(Signal* signal, FragmentrecPtr regFragPtr);  void releaseDirIndexResources(Signal* signal, FragmentrecPtr regFragPtr);  void releaseFragRecord(Signal* signal, FragmentrecPtr regFragPtr);  Uint32 remainingUndoPages();  void updateLastUndoPageIdWritten(Signal* signal, Uint32 aNewValue);  void updateUndoPositionPage(Signal* signal, Uint32 aNewValue);  void srCheckPage(Signal* signal);  void srCheckContainer(Signal* signal);  void initScanFragmentPart(Signal* signal);  Uint32 checkScanExpand(Signal* signal);  Uint32 checkScanShrink(Signal* signal);  void initialiseDirRec(Signal* signal);  void initialiseDirRangeRec(Signal* signal);  void initialiseFragRec(Signal* signal);  void initialiseFsConnectionRec(Signal* signal);  void initialiseFsOpRec(Signal* signal);  void initialiseLcpConnectionRec(Signal* signal);  void initialiseOperationRec(Signal* signal);  void initialiseOverflowRec(Signal* signal);  void initialisePageRec(Signal* signal);  void initialiseLcpPages(Signal* signal);  void initialiseRootfragRec(Signal* signal);  void initialiseScanRec(Signal* signal);  void initialiseSrVerRec(Signal* signal);  void initialiseTableRec(Signal* signal);  bool addfragtotab(Signal* signal, Uint32 rootIndex, Uint32 fragId);  void initOpRec(Signal* signal);  void sendAcckeyconf(Signal* signal);  Uint32 placeReadInLockQueue(Signal* signal);  void placeSerialQueueRead(Signal* signal);  void checkOnlyReadEntry(Signal* signal);  Uint32 getNoParallelTransaction(const Operationrec*);  void moveLastParallelQueue(Signal* signal);  void moveLastParallelQueueWrite(Signal* signal);  Uint32 placeWriteInLockQueue(Signal* signal);  void placeSerialQueueWrite(Signal* signal);  void expandcontainer(Signal* signal);  void shrinkcontainer(Signal* signal);  void nextcontainerinfoExp(Signal* signal);  void lcpCopyPage(Signal* signal);  void lcpUpdatePage(Signal* signal);  void checkUndoPages(Signal* signal);  void undoWritingProcess(Signal* signal);  void writeUndoDataInfo(Signal* signal);  void writeUndoHeader(Signal* signal,                        Uint32 logicalPageId,                        UndoHeader::UndoHeaderType pageType);  void writeUndoOpInfo(Signal* signal);  void checksumControl(Signal* signal, Uint32 checkPage);  void startActiveUndo(Signal* signal);  void releaseAndCommitActiveOps(Signal* signal);  void releaseAndCommitQueuedOps(Signal* signal);  void releaseAndAbortLockedOps(Signal* signal);  void containerinfo(Signal* signal);  bool getScanElement(Signal* signal);  void initScanOpRec(Signal* signal);  void nextcontainerinfo(Signal* signal);  void putActiveScanOp(Signal* signal);  void putOpScanLockQue();  void putReadyScanQueue(Signal* signal, Uint32 scanRecIndex);  void releaseScanBucket(Signal* signal);  void releaseScanContainer(Signal* signal);  void releaseScanRec(Signal* signal);  bool searchScanContainer(Signal* signal);  void sendNextScanConf(Signal* signal);  void setlock(Signal* signal);  void takeOutActiveScanOp(Signal* signal);  void takeOutScanLockQueue(Uint32 scanRecIndex);  void takeOutReadyScanQueue(Signal* signal);  void insertElement(Signal* signal);  void insertContainer(Signal* signal);  void addnewcontainer(Signal* signal);  void getfreelist(Signal* signal);  void increaselistcont(Signal* signal);  void seizeLeftlist(Signal* signal);  void seizeRightlist(Signal* signal);  Uint32 readTablePk(Uint32 localkey1);  void getElement(Signal* signal);  void getdirindex(Signal* signal);  void commitdelete(Signal* signal, bool systemRestart);  void deleteElement(Signal* signal);  void getLastAndRemove(Signal* signal);  void releaseLeftlist(Signal* signal);  void releaseRightlist(Signal* signal);  void checkoverfreelist(Signal* signal);  void abortOperation(Signal* signal);  void accAbortReqLab(Signal* signal, bool sendConf);  void commitOperation(Signal* signal);  void copyOpInfo(Signal* signal);  Uint32 executeNextOperation(Signal* signal);  void releaselock(Signal* signal);  void takeOutFragWaitQue(Signal* signal);  void check_lock_upgrade(Signal* signal, OperationrecPtr lock_owner,			  OperationrecPtr release_op);  void allocOverflowPage(Signal* signal);  bool getrootfragmentrec(Signal* signal, RootfragmentrecPtr&, Uint32 fragId);  void insertLockOwnersList(Signal* signal, const OperationrecPtr&);  void takeOutLockOwnersList(Signal* signal, const OperationrecPtr&);  void initFsOpRec(Signal* signal);  void initLcpConnRec(Signal* signal);  void initOverpage(Signal* signal);  void initPage(Signal* signal);  void initRootfragrec(Signal* signal);  void putOpInFragWaitQue(Signal* signal);  void putOverflowRecInFrag(Signal* signal);  void putRecInFreeOverdir(Signal* signal);  void releaseDirectory(Signal* signal);  void releaseDirrange(Signal* signal);  void releaseFsConnRec(Signal* signal);  void releaseFsOpRec(Signal* signal);  void releaseLcpConnectRec(Signal* signal);  void releaseOpRec(Signal* signal);  void releaseOverflowRec(Signal* signal);  void releaseOverpage(Signal* signal);  void releasePage(Signal* signal);  void releaseLcpPage(Signal* signal);  void releaseSrRec(Signal* signal);  void releaseLogicalPage(Fragmentrec * fragP, Uint32 logicalPageId);  void seizeDirectory(Signal* signal);  void seizeDirrange(Signal* signal);  void seizeFragrec(Signal* signal);  void seizeFsConnectRec(Signal* signal);  void seizeFsOpRec(Signal* signal);  void seizeLcpConnectRec(Signal* signal);  void seizeOpRec(Signal* signal);  void seizeOverRec(Signal* signal);  void seizePage(Signal* signal);  void seizeLcpPage(Page8Ptr&);  void seizeRootfragrec(Signal* signal);  void seizeScanRec(Signal* signal);  void seizeSrVerRec(Signal* signal);  void sendSystemerror(Signal* signal, int line);  void takeRecOutOfFreeOverdir(Signal* signal);  void takeRecOutOfFreeOverpage(Signal* signal);  void sendScanHbRep(Signal* signal, Uint32);  void addFragRefuse(Signal* signal, Uint32 errorCode);  void ndbsttorryLab(Signal* signal);  void srCloseDataFileLab(Signal* signal);  void acckeyref1Lab(Signal* signal, Uint32 result_code);  void insertelementLab(Signal* signal);  void startUndoLab(Signal* signal);  void checkNextFragmentLab(Signal* signal);  void endofexpLab(Signal* signal);  void endofshrinkbucketLab(Signal* signal);  void srStartUndoLab(Signal* signal);  void senddatapagesLab(Signal* signal);  void undoNext2Lab(Signal* signal);  void sttorrysignalLab(Signal* signal);  void sendholdconfsignalLab(Signal* signal);  void accIsLockedLab(Signal* signal);  void insertExistElemLab(Signal* signal);  void refaccConnectLab(Signal* signal);

⌨️ 快捷键说明

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