MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SumaInit.cpp
1 /*
2  Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 
18 #include "Suma.hpp"
19 
20 #include <Properties.hpp>
21 #include <Configuration.hpp>
22 
24  SimulatedBlock(SUMA, ctx),
25  c_tables(c_tablePool),
26  c_subscriptions(c_subscriptionPool),
27  c_gcp_list(c_gcp_pool),
28  m_current_gci(~(Uint64)0)
29 {
30  BLOCK_CONSTRUCTOR(Suma);
31 
32  // Add received signals
33  addRecSignal(GSN_READ_CONFIG_REQ, &Suma::execREAD_CONFIG_REQ);
34  addRecSignal(GSN_STTOR, &Suma::execSTTOR);
35  addRecSignal(GSN_NDB_STTOR, &Suma::execNDB_STTOR);
36  addRecSignal(GSN_DUMP_STATE_ORD, &Suma::execDUMP_STATE_ORD);
37  addRecSignal(GSN_DBINFO_SCANREQ, &Suma::execDBINFO_SCANREQ);
38  addRecSignal(GSN_READ_NODESCONF, &Suma::execREAD_NODESCONF);
39  addRecSignal(GSN_API_START_REP, &Suma::execAPI_START_REP, true);
40  addRecSignal(GSN_API_FAILREQ, &Suma::execAPI_FAILREQ);
41  addRecSignal(GSN_NODE_FAILREP, &Suma::execNODE_FAILREP);
42  addRecSignal(GSN_INCL_NODEREQ, &Suma::execINCL_NODEREQ);
43  addRecSignal(GSN_CONTINUEB, &Suma::execCONTINUEB);
44  addRecSignal(GSN_SIGNAL_DROPPED_REP, &Suma::execSIGNAL_DROPPED_REP, true);
45  addRecSignal(GSN_UTIL_SEQUENCE_CONF, &Suma::execUTIL_SEQUENCE_CONF);
46  addRecSignal(GSN_UTIL_SEQUENCE_REF, &Suma::execUTIL_SEQUENCE_REF);
47  addRecSignal(GSN_CREATE_SUBID_REQ,
48  &Suma::execCREATE_SUBID_REQ);
49 
50  addRecSignal(GSN_SUB_CREATE_CONF, &Suma::execSUB_CREATE_CONF);
51  addRecSignal(GSN_SUB_CREATE_REF, &Suma::execSUB_CREATE_REF);
52 
53  addRecSignal(GSN_SUB_START_CONF, &Suma::execSUB_START_CONF);
54  addRecSignal(GSN_SUB_START_REF, &Suma::execSUB_START_REF);
55 
56  addRecSignal(GSN_SUMA_START_ME_REQ, &Suma::execSUMA_START_ME_REQ);
57  addRecSignal(GSN_SUMA_START_ME_REF, &Suma::execSUMA_START_ME_REF);
58  addRecSignal(GSN_SUMA_START_ME_CONF, &Suma::execSUMA_START_ME_CONF);
59  addRecSignal(GSN_SUMA_HANDOVER_REQ, &Suma::execSUMA_HANDOVER_REQ);
60  addRecSignal(GSN_SUMA_HANDOVER_REF, &Suma::execSUMA_HANDOVER_REF);
61  addRecSignal(GSN_SUMA_HANDOVER_CONF, &Suma::execSUMA_HANDOVER_CONF);
62 
63  addRecSignal(GSN_SUB_GCP_COMPLETE_ACK,
64  &Suma::execSUB_GCP_COMPLETE_ACK);
65 
66  addRecSignal(GSN_STOP_ME_REQ,
68 
72  addRecSignal(GSN_SUB_CREATE_REQ, &Suma::execSUB_CREATE_REQ);
73  addRecSignal(GSN_SUB_REMOVE_REQ, &Suma::execSUB_REMOVE_REQ);
74  addRecSignal(GSN_SUB_START_REQ, &Suma::execSUB_START_REQ);
75  addRecSignal(GSN_SUB_STOP_REQ, &Suma::execSUB_STOP_REQ);
76  addRecSignal(GSN_SUB_SYNC_REQ, &Suma::execSUB_SYNC_REQ);
77 
81  addRecSignal(GSN_DROP_TAB_CONF, &Suma::execDROP_TAB_CONF);
82  addRecSignal(GSN_ALTER_TAB_REQ, &Suma::execALTER_TAB_REQ);
83  addRecSignal(GSN_CREATE_TAB_CONF, &Suma::execCREATE_TAB_CONF);
84 
85  addRecSignal(GSN_GET_TABINFO_CONF, &Suma::execGET_TABINFO_CONF);
86  addRecSignal(GSN_GET_TABINFOREF, &Suma::execGET_TABINFOREF);
87 
88  addRecSignal(GSN_DICT_LOCK_REF, &Suma::execDICT_LOCK_REF);
89  addRecSignal(GSN_DICT_LOCK_CONF, &Suma::execDICT_LOCK_CONF);
90 
94  addRecSignal(GSN_DIH_SCAN_TAB_REF, &Suma::execDIH_SCAN_TAB_REF);
95  addRecSignal(GSN_DIH_SCAN_TAB_CONF, &Suma::execDIH_SCAN_TAB_CONF);
96  addRecSignal(GSN_DIH_SCAN_GET_NODES_CONF, &Suma::execDIH_SCAN_GET_NODES_CONF);
97  addRecSignal(GSN_CHECKNODEGROUPSCONF, &Suma::execCHECKNODEGROUPSCONF);
98  addRecSignal(GSN_GCP_PREPARE, &Suma::execGCP_PREPARE);
99 
103  addRecSignal(GSN_SCAN_HBREP, &Suma::execSCAN_HBREP);
104  addRecSignal(GSN_TRANSID_AI, &Suma::execTRANSID_AI);
105  addRecSignal(GSN_KEYINFO20, &Suma::execKEYINFO20);
106  addRecSignal(GSN_SCAN_FRAGREF, &Suma::execSCAN_FRAGREF);
107  addRecSignal(GSN_SCAN_FRAGCONF, &Suma::execSCAN_FRAGCONF);
108 #if 0
109  addRecSignal(GSN_SUB_SYNC_CONTINUE_REF,
110  &Suma::execSUB_SYNC_CONTINUE_REF);
111 #endif
112  addRecSignal(GSN_SUB_SYNC_CONTINUE_CONF,
113  &Suma::execSUB_SYNC_CONTINUE_CONF);
114 
118  addRecSignal(GSN_TRIG_ATTRINFO, &Suma::execTRIG_ATTRINFO);
119  addRecSignal(GSN_FIRE_TRIG_ORD, &Suma::execFIRE_TRIG_ORD);
120  addRecSignal(GSN_FIRE_TRIG_ORD_L, &Suma::execFIRE_TRIG_ORD_L);
121 
122  addRecSignal(GSN_CREATE_TRIG_IMPL_REF, &Suma::execCREATE_TRIG_IMPL_REF);
123  addRecSignal(GSN_CREATE_TRIG_IMPL_CONF, &Suma::execCREATE_TRIG_IMPL_CONF);
124  addRecSignal(GSN_DROP_TRIG_IMPL_REF, &Suma::execDROP_TRIG_IMPL_REF);
125  addRecSignal(GSN_DROP_TRIG_IMPL_CONF, &Suma::execDROP_TRIG_IMPL_CONF);
126 
127  addRecSignal(GSN_SUB_GCP_COMPLETE_REP,
129 
130  addRecSignal(GSN_CREATE_NODEGROUP_IMPL_REQ,
131  &Suma::execCREATE_NODEGROUP_IMPL_REQ);
132 
133  addRecSignal(GSN_DROP_NODEGROUP_IMPL_REQ,
134  &Suma::execDROP_NODEGROUP_IMPL_REQ);
135 
136  c_current_seq = 0;
137  c_outstanding_drop_trig_req = 0;
138  c_restart.m_ref = 0;
139  c_startup.m_restart_server_node_id = RNIL; // Server for my NR
140  c_shutdown.m_wait_handover = false;
141 
142 #ifdef VM_TRACE
143  m_gcp_monitor = 0;
144 #endif
145  m_missing_data = false;
146  bzero(c_subscriber_per_node, sizeof(c_subscriber_per_node));
147 
148  m_gcp_rep_cnt = getLqhWorkers();
149  m_min_gcp_rep_counter_index = 0;
150  m_max_gcp_rep_counter_index = 0;
151  bzero(m_gcp_rep_counter, sizeof(m_gcp_rep_counter));
152 }
153 
154 Suma::~Suma()
155 {
156  c_page_pool.clear();
157 }
158 
159 BLOCK_FUNCTIONS(Suma)
160