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

📄 dblqh.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 5 页
字号:
/* 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 DBLQH_H#define DBLQH_H#include <pc.hpp>#include <ndb_limits.h>#include <SimulatedBlock.hpp>#include <DLList.hpp>#include <DLFifoList.hpp>#include <DLHashTable.hpp>#include <NodeBitmask.hpp>#include <signaldata/LCP.hpp>#include <signaldata/LqhTransConf.hpp>#include <signaldata/LqhFrag.hpp>// primary key is stored in TUP#include <../dbtup/Dbtup.hpp>#ifdef DBLQH_C// Constants/* ------------------------------------------------------------------------- *//*       CONSTANTS USED WHEN MASTER REQUESTS STATE OF COPY FRAGMENTS.        *//* ------------------------------------------------------------------------- */#define ZCOPY_CLOSING 0#define ZCOPY_ONGOING 1#define ZCOPY_ACTIVATION 2/* ------------------------------------------------------------------------- *//*       STATES FOR THE VARIABLE GCP_LOG_PART_STATE                          *//* ------------------------------------------------------------------------- */#define ZIDLE 0#define ZWAIT_DISK 1#define ZON_DISK 2#define ZACTIVE 1/* ------------------------------------------------------------------------- *//*       STATES FOR THE VARIABLE CSR_PHASES_STARTED                          *//* ------------------------------------------------------------------------- */#define ZSR_NO_PHASE_STARTED 0#define ZSR_PHASE1_COMPLETED 1#define ZSR_PHASE2_COMPLETED 2#define ZSR_BOTH_PHASES_STARTED 3/* ------------------------------------------------------------------------- *//*       THE NUMBER OF PAGES IN A MBYTE, THE TWO LOGARITHM OF THIS.          *//*       THE NUMBER OF MBYTES IN A LOG FILE.                                 *//*       THE MAX NUMBER OF PAGES READ/WRITTEN FROM/TO DISK DURING            *//*       A WRITE OR READ.                                                    *//* ------------------------------------------------------------------------- */#define ZNOT_DIRTY 0#define ZDIRTY 1#define ZREAD_AHEAD_SIZE 8/* ------------------------------------------------------------------------- *//*       CONSTANTS OF THE LOG PAGES                                          *//* ------------------------------------------------------------------------- */#define ZPAGE_HEADER_SIZE 32#define ZNO_MBYTES_IN_FILE 16#define ZPAGE_SIZE 8192#define ZPAGES_IN_MBYTE 32#define ZTWOLOG_NO_PAGES_IN_MBYTE 5#define ZTWOLOG_PAGE_SIZE 13#define ZMAX_MM_BUFFER_SIZE 32     // Main memory window during log execution#define ZMAX_PAGES_WRITTEN 8    // Max pages before writing to disk (=> config)#define ZMIN_READ_BUFFER_SIZE 2       // Minimum number of pages to execute log#define ZMIN_LOG_PAGES_OPERATION 10   // Minimum no of pages before stopping#define ZPOS_CHECKSUM 0#define ZPOS_LOG_LAP 1#define ZPOS_MAX_GCI_COMPLETED 2#define ZPOS_MAX_GCI_STARTED 3#define ZNEXT_PAGE 4#define ZPREV_PAGE 5#define ZPOS_VERSION 6#define ZPOS_NO_LOG_FILES 7#define ZCURR_PAGE_INDEX 8#define ZLAST_LOG_PREP_REF 10#define ZPOS_DIRTY 11/* A number of debug items written in the page header of all log files */#define ZPOS_LOG_TIMER 12#define ZPOS_PAGE_I 13#define ZPOS_PLACE_WRITTEN_FROM 14#define ZPOS_PAGE_NO 15#define ZPOS_PAGE_FILE_NO 16#define ZPOS_WORD_WRITTEN 17#define ZPOS_IN_WRITING 18#define ZPOS_PREV_PAGE_NO 19#define ZPOS_IN_FREE_LIST 20/* ------------------------------------------------------------------------- *//*       CONSTANTS FOR THE VARIOUS REPLICA AND NODE TYPES.                   *//* ------------------------------------------------------------------------- */#define ZPRIMARY_NODE 0#define ZBACKUP_NODE 1#define ZSTANDBY_NODE 2#define ZTC_NODE 3#define ZLOG_NODE 3/* ------------------------------------------------------------------------- *//*       VARIOUS CONSTANTS USED AS FLAGS TO THE FILE MANAGER.                *//* ------------------------------------------------------------------------- */#define ZOPEN_READ 0#define ZOPEN_WRITE 1#define ZOPEN_READ_WRITE 2#define ZVAR_NO_LOG_PAGE_WORD 1#define ZLIST_OF_PAIRS 0#define ZLIST_OF_PAIRS_SYNCH 16#define ZARRAY_OF_PAGES 1#define ZLIST_OF_MEM_PAGES 2#define ZLIST_OF_MEM_PAGES_SYNCH 18#define ZCLOSE_NO_DELETE 0#define ZCLOSE_DELETE 1#define ZPAGE_ZERO 0/* ------------------------------------------------------------------------- *//*       THE FOLLOWING CONSTANTS ARE USED TO DESCRIBE THE TYPES OF           *//*       LOG RECORDS, THE SIZE OF THE VARIOUS LOG RECORD TYPES AND           *//*       THE POSITIONS WITHIN THOSE LOG RECORDS.                             *//* ------------------------------------------------------------------------- *//* ------------------------------------------------------------------------- *//*       THESE CONSTANTS DESCRIBE THE SIZES OF VARIOUS TYPES OF LOG REORDS.  *//*       NEXT_LOG_SIZE IS ACTUALLY ONE. THE REASON WE SET IT TO 2 IS TO      *//*       SIMPLIFY THE CODE SINCE OTHERWISE HAVE TO USE A SPECIAL VERSION     *//*       OF READ_LOGWORD WHEN READING LOG RECORD TYPE                        *//*       SINCE NEXT MBYTE TYPE COULD BE THE VERY LAST WORD IN THE MBYTE.     *//*       BY SETTING IT TO 2 WE ENSURE IT IS NEVER THE VERY LAST WORD         *//*       IN THE MBYTE.                                                       *//* ------------------------------------------------------------------------- */#define ZFD_HEADER_SIZE 3#define ZFD_PART_SIZE 48#define ZLOG_HEAD_SIZE 6#define ZNEXT_LOG_SIZE 2#define ZABORT_LOG_SIZE 3#define ZCOMMIT_LOG_SIZE 9#define ZCOMPLETED_GCI_LOG_SIZE 2/* ------------------------------------------------------------------------- *//*       THESE CONSTANTS DESCRIBE THE TYPE OF A LOG RECORD.                  *//*       THIS IS THE FIRST WORD OF A LOG RECORD.                             *//* ------------------------------------------------------------------------- */#define ZNEW_PREP_OP_TYPE 0#define ZPREP_OP_TYPE 1#define ZCOMMIT_TYPE 2#define ZABORT_TYPE 3#define ZFD_TYPE 4#define ZFRAG_SPLIT_TYPE 5#define ZNEXT_LOG_RECORD_TYPE 6#define ZNEXT_MBYTE_TYPE 7#define ZCOMPLETED_GCI_TYPE 8#define ZINVALID_COMMIT_TYPE 9/* ------------------------------------------------------------------------- *//*       THE POSITIONS OF LOGGED DATA IN A FILE DESCRIPTOR LOG RECORD HEADER.*//*       ALSO THE MAXIMUM NUMBER OF FILE DESCRIPTORS IN A LOG RECORD.        *//* ------------------------------------------------------------------------- */#define ZPOS_LOG_TYPE 0#define ZPOS_NO_FD 1#define ZPOS_FILE_NO 2#define ZMAX_LOG_FILES_IN_PAGE_ZERO 40/* ------------------------------------------------------------------------- *//*       THE POSITIONS WITHIN A PREPARE LOG RECORD AND A NEW PREPARE         *//*       LOG RECORD.                                                         *//* ------------------------------------------------------------------------- */#define ZPOS_HASH_VALUE 2#define ZPOS_SCHEMA_VERSION 3#define ZPOS_TRANS_TICKET 4#define ZPOS_OP_TYPE 5#define ZPOS_NO_ATTRINFO 6#define ZPOS_NO_KEYINFO 7/* ------------------------------------------------------------------------- *//*       THE POSITIONS WITHIN A COMMIT LOG RECORD.                           *//* ------------------------------------------------------------------------- */#define ZPOS_COMMIT_TRANSID1 1#define ZPOS_COMMIT_TRANSID2 2#define ZPOS_COMMIT_GCI 3#define ZPOS_COMMIT_TABLE_REF 4#define ZPOS_COMMIT_FRAGID 5#define ZPOS_COMMIT_FILE_NO 6#define ZPOS_COMMIT_START_PAGE_NO 7#define ZPOS_COMMIT_START_PAGE_INDEX 8#define ZPOS_COMMIT_STOP_PAGE_NO 9/* ------------------------------------------------------------------------- *//*       THE POSITIONS WITHIN A ABORT LOG RECORD.                            *//* ------------------------------------------------------------------------- */#define ZPOS_ABORT_TRANSID1 1#define ZPOS_ABORT_TRANSID2 2/* ------------------------------------------------------------------------- *//*       THE POSITION WITHIN A COMPLETED GCI LOG RECORD.                     *//* ------------------------------------------------------------------------- */#define ZPOS_COMPLETED_GCI 1/* ------------------------------------------------------------------------- *//*       THE POSITIONS WITHIN A NEW PREPARE LOG RECORD.                      *//* ------------------------------------------------------------------------- */#define ZPOS_NEW_PREP_FILE_NO 8#define ZPOS_NEW_PREP_PAGE_REF 9#define ZLAST_WRITE_IN_FILE 1#define ZENFORCE_WRITE 2/* ------------------------------------------------------------------------- *//*       CONSTANTS USED AS INPUT TO SUBROUTINE WRITE_LOG_PAGES AMONG OTHERS. *//* ------------------------------------------------------------------------- */#define ZNORMAL 0#define ZINIT 1/* ------------------------------------------------------------------------- *//*       CONSTANTS USED BY CONTINUEB TO DEDUCE WHICH CONTINUE SIGNAL IS TO   *//*       BE EXECUTED AS A RESULT OF THIS CONTINUEB SIGNAL.                   *//* ------------------------------------------------------------------------- */#define ZLOG_LQHKEYREQ 0#define ZPACK_LQHKEYREQ 1#define ZSEND_ATTRINFO 2#define ZSR_GCI_LIMITS 3#define ZSR_LOG_LIMITS 4#define ZSEND_EXEC_CONF 5#define ZEXEC_SR 6#define ZSR_FOURTH_COMP 7#define ZINIT_FOURTH 8#define ZTIME_SUPERVISION 9#define ZSR_PHASE3_START 10#define ZLQH_TRANS_NEXT 11#define ZLQH_RELEASE_AT_NODE_FAILURE 12#define ZSCAN_TC_CONNECT 13#define ZINITIALISE_RECORDS 14#define ZINIT_GCP_REC 15#define ZRESTART_OPERATIONS_AFTER_STOP 16#define ZCHECK_LCP_STOP_BLOCKED 17#define ZSCAN_MARKERS 18#define ZOPERATION_EVENT_REP 19#define ZPREP_DROP_TABLE 20/* ------------------------------------------------------------------------- *//*        NODE STATE DURING SYSTEM RESTART, VARIABLES CNODES_SR_STATE        *//*        AND CNODES_EXEC_SR_STATE.                                          *//* ------------------------------------------------------------------------- */#define ZSTART_SR 1#define ZEXEC_SR_COMPLETED 2/* ------------------------------------------------------------------------- *//*       CONSTANTS USED BY NODE STATUS TO DEDUCE THE STATUS OF A NODE.       *//* ------------------------------------------------------------------------- */#define ZNODE_UP 0#define ZNODE_DOWN 1/* ------------------------------------------------------------------------- *//*       START PHASES                                                        *//* ------------------------------------------------------------------------- */#define ZLAST_START_PHASE 255#define ZSTART_PHASE1 1#define ZSTART_PHASE2 2#define ZSTART_PHASE3 3#define ZSTART_PHASE4 4#define ZSTART_PHASE6 6/* ------------------------------------------------------------------------- *//*       CONSTANTS USED BY SCAN AND COPY FRAGMENT PROCEDURES                 *//* ------------------------------------------------------------------------- */#define ZSTORED_PROC_SCAN 0#define ZSTORED_PROC_COPY 2#define ZDELETE_STORED_PROC_ID 3//#define ZSCAN_NEXT 1//#define ZSCAN_NEXT_COMMIT 2//#define ZSCAN_NEXT_ABORT 12#define ZCOPY_COMMIT 3#define ZCOPY_REPEAT 4#define ZCOPY_ABORT 5#define ZCOPY_CLOSE 6//#define ZSCAN_CLOSE 6//#define ZEMPTY_FRAGMENT 0#define ZWRITE_LOCK 1#define ZSCAN_FRAG_CLOSED 2/* ------------------------------------------------------------------------- *//*       ERROR CODES ADDED IN VERSION 0.1 AND 0.2                            *//* ------------------------------------------------------------------------- */#define ZNOT_FOUND 1             // Not an error code, a return value#define ZNO_FREE_LQH_CONNECTION 414#define ZGET_DATAREC_ERROR 418#define ZGET_ATTRINBUF_ERROR 419#define ZNO_FREE_FRAGMENTREC 460 // Insert new fragment error code#define ZTAB_FILE_SIZE 464       // Insert new fragment error code + Start kernel#define ZNO_ADD_FRAGREC 465      // Insert new fragment error code/* ------------------------------------------------------------------------- *//*       ERROR CODES ADDED IN VERSION 0.3                                    *//* ------------------------------------------------------------------------- */#define ZTAIL_PROBLEM_IN_LOG_ERROR 410#define ZGCI_TOO_LOW_ERROR 429        // GCP_SAVEREF error code#define ZTAB_STATE_ERROR 474          // Insert new fragment error code#define ZTOO_NEW_GCI_ERROR 479        // LCP Start error/* ------------------------------------------------------------------------- *//*       ERROR CODES ADDED IN VERSION 0.4                                    *//* ------------------------------------------------------------------------- */#define ZNO_FREE_FRAG_SCAN_REC_ERROR 490 // SCAN_FRAGREF error code#define ZCOPY_NO_FRAGMENT_ERROR 491      // COPY_FRAGREF error code#define ZTAKE_OVER_ERROR 499#define ZCOPY_NODE_ERROR 1204#define ZTOO_MANY_COPY_ACTIVE_ERROR 1208 // COPY_FRAG and COPY_ACTIVEREF code#define ZCOPY_ACTIVE_ERROR 1210          // COPY_ACTIVEREF error code#define ZNO_TC_CONNECT_ERROR 1217        // Simple Read + SCAN/* ------------------------------------------------------------------------- *//*       ERROR CODES ADDED IN VERSION 1.X                                    *//* ------------------------------------------------------------------------- *///#define ZSCAN_BOOK_ACC_OP_ERROR 1219   // SCAN_FRAGREF error code#define ZFILE_CHANGE_PROBLEM_IN_LOG_ERROR 1220#define ZTEMPORARY_REDO_LOG_FAILURE 1221#define ZNO_FREE_MARKER_RECORDS_ERROR 1222#define ZNODE_SHUTDOWN_IN_PROGESS 1223#define ZTOO_MANY_FRAGMENTS 1224#define ZTABLE_NOT_DEFINED 1225#define ZDROP_TABLE_IN_PROGRESS 1226#define ZINVALID_SCHEMA_VERSION 1227/* ------------------------------------------------------------------------- *//*       ERROR CODES ADDED IN VERSION 2.X                                    *//* ------------------------------------------------------------------------- */#define ZNODE_FAILURE_ERROR 400/* ------------------------------------------------------------------------- *//*       ERROR CODES FROM ACC                                                *//* ------------------------------------------------------------------------- */#define ZNO_TUPLE_FOUND 626#define ZTUPLE_ALREADY_EXIST 630/* ------------------------------------------------------------------------- *//*       ERROR CODES FROM TUP                                                *//* ------------------------------------------------------------------------- */#define ZSEARCH_CONDITION_FALSE 899#define ZUSER_ERROR_CODE_LIMIT 6000#endif/**  * @class dblqh * * @section secIntro Introduction * * Dblqh is the coordinator of the LDM.  Dblqh is responsible for  * performing operations on tuples.  It does this job with help of  * Dbacc block (that manages the index structures) and Dbtup

⌨️ 快捷键说明

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