forked from mysql/mysql-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathha_ndb_index_stat.h
74 lines (61 loc) · 2.46 KB
/
ha_ndb_index_stat.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
Copyright (c) 2011, 2023, Oracle and/or its affiliates.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2.0,
as published by the Free Software Foundation.
This program is also distributed with certain software (including
but not limited to OpenSSL) that is licensed under separate terms,
as designated in a particular file or component or in included license
documentation. The authors of MySQL hereby grant you an additional
permission to link the program and your derivative works with the
separately licensed software that they have included with MySQL.
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, version 2.0, 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef HA_NDB_INDEX_STAT_H
#define HA_NDB_INDEX_STAT_H
#include "ndb_component.h"
#include <mysql/psi/mysql_thread.h>
class Ndb_index_stat_thread : public Ndb_component
{
// Someone is waiting for stats
bool client_waiting;
mysql_mutex_t LOCK_client_waiting;
mysql_cond_t COND_client_waiting;
public:
Ndb_index_stat_thread();
virtual ~Ndb_index_stat_thread();
/*
protect stats entry lists where needed
protect and signal changes in stats entries
*/
mysql_mutex_t stat_mutex;
mysql_cond_t stat_cond;
// Wake thread up to fetch stats or do other stuff
void wakeup();
/* are we setup */
bool is_setup_complete();
private:
virtual int do_init();
virtual void do_run();
virtual int do_deinit();
// Wakeup for stop
virtual void do_wakeup();
int check_or_create_systables(struct Ndb_index_stat_proc& pr);
int check_or_create_sysevents(struct Ndb_index_stat_proc& pr);
void drop_ndb(struct Ndb_index_stat_proc& pr);
int start_listener(struct Ndb_index_stat_proc& pr);
int create_ndb(struct Ndb_index_stat_proc& pr,
Ndb_cluster_connection* connection);
void stop_listener(struct Ndb_index_stat_proc& pr);
};
/* free entries from share or at end */
void ndb_index_stat_free(NDB_SHARE*, int iudex_id, int index_version);
void ndb_index_stat_free(NDB_SHARE*);
void ndb_index_stat_end();
#endif