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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
/* -*- mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
// vim: ft=cpp:expandtab:ts=8:sw=4:softtabstop=4:
#ident "$Id$"
/*======
This file is part of TokuDB
Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved.
TokuDBis is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2,
as published by the Free Software Foundation.
TokuDB 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 TokuDB. If not, see <http://www.gnu.org/licenses/>.
======= */
#ident "Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved."
#ifndef _TOKUDB_SYSVARS_H
#define _TOKUDB_SYSVARS_H
#if defined(TOKU_INCLUDE_OPTION_STRUCTS) && TOKU_INCLUDE_OPTION_STRUCTS
struct ha_table_option_struct {
uint row_format;
};
struct ha_index_option_struct {
bool clustering;
};
static inline bool key_is_clustering(const KEY *key) {
return (key->flags & HA_CLUSTERING) || (key->option_struct && key->option_struct->clustering);
}
#else
static inline bool key_is_clustering(const KEY *key) {
return key->flags & HA_CLUSTERING;
}
#endif // defined(TOKU_INCLUDE_OPTION_STRUCTS) && TOKU_INCLUDE_OPTION_STRUCTS
namespace tokudb {
namespace sysvars {
enum analyze_mode_t {
TOKUDB_ANALYZE_STANDARD = 0,
TOKUDB_ANALYZE_RECOUNT_ROWS = 1,
TOKUDB_ANALYZE_CANCEL = 2
};
enum empty_scan_mode_t {
TOKUDB_EMPTY_SCAN_DISABLED = 0,
TOKUDB_EMPTY_SCAN_LR = 1,
TOKUDB_EMPTY_SCAN_RL = 2,
};
enum row_format_t {
SRV_ROW_FORMAT_UNCOMPRESSED = 0,
SRV_ROW_FORMAT_ZLIB = 1,
SRV_ROW_FORMAT_SNAPPY = 2,
SRV_ROW_FORMAT_QUICKLZ = 3,
SRV_ROW_FORMAT_LZMA = 4,
SRV_ROW_FORMAT_FAST = 5,
SRV_ROW_FORMAT_SMALL = 6,
SRV_ROW_FORMAT_DEFAULT = 7
};
#define DEFAULT_TOKUDB_CLEANER_ITERATIONS 5
#define DEFAULT_TOKUDB_CLEANER_PERIOD 1
#define DEFAULT_TOKUDB_KILLED_TIME 4000 // milliseconds
#define DEFAULT_TOKUDB_LOCK_TIMEOUT 4000 // milliseconds
// globals
extern ulonglong cache_size;
extern uint cachetable_pool_threads;
extern int cardinality_scale_percent;
extern my_bool checkpoint_on_flush_logs;
extern uint checkpoint_pool_threads;
extern uint checkpointing_period;
extern ulong cleaner_iterations;
extern ulong cleaner_period;
extern uint client_pool_threads;
extern my_bool compress_buffers_before_eviction;
extern char* data_dir;
extern ulong debug;
extern my_bool directio;
extern my_bool enable_partial_eviction;
extern int fs_reserve_percent;
extern uint fsync_log_period;
extern char* log_dir;
extern ulonglong max_lock_memory;
extern uint read_status_frequency;
extern my_bool strip_frm_data;
extern char* tmp_dir;
extern uint write_status_frequency;
extern my_bool dir_per_db;
extern char* version;
#if defined(TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL) && \
TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL
extern char* gdb_path;
extern my_bool gdb_on_fatal;
#endif // defined(TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL) &&
// TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL
extern my_bool check_jemalloc;
#if defined(TOKUDB_DEBUG)
// used to control background job manager
extern my_bool debug_pause_background_job_manager;
#endif // defined(TOKUDB_DEBUG)
// session/thread
my_bool alter_print_error(THD* thd);
double analyze_delete_fraction(THD* thd);
my_bool analyze_in_background(THD* thd);
analyze_mode_t analyze_mode(THD* thd);
ulonglong analyze_throttle(THD* thd);
ulonglong analyze_time(THD* thd);
ulonglong auto_analyze(THD* thd);
uint block_size(THD* thd);
my_bool bulk_fetch(THD* thd);
my_bool commit_sync(THD* thd);
my_bool create_index_online(THD* thd);
my_bool disable_hot_alter(THD* thd);
my_bool disable_prefetching(THD* thd);
my_bool disable_slow_alter(THD* thd);
my_bool enable_fast_update(THD* thd);
my_bool enable_fast_upsert(THD* thd);
empty_scan_mode_t empty_scan(THD* thd);
uint fanout(THD* thd);
my_bool hide_default_row_format(THD* thd);
ulonglong killed_time(THD* thd);
my_bool load_save_space(THD* thd);
char* last_lock_timeout(THD* thd);
void set_last_lock_timeout(THD* thd, char* last);
ulonglong loader_memory_size(THD* thd);
ulonglong lock_timeout(THD* thd);
uint lock_timeout_debug(THD* thd);
double optimize_index_fraction(THD* thd);
const char* optimize_index_name(THD* thd);
ulonglong optimize_throttle(THD* thd);
uint pk_insert_mode(THD* thd);
void set_pk_insert_mode(THD* thd, uint mode);
my_bool prelock_empty(THD* thd);
uint read_block_size(THD* thd);
uint read_buf_size(THD* thd);
row_format_t row_format(THD *thd);
#if defined(TOKU_INCLUDE_RFR) && TOKU_INCLUDE_RFR
my_bool rpl_check_readonly(THD* thd);
my_bool rpl_lookup_rows(THD* thd);
ulonglong rpl_lookup_rows_delay(THD* thd);
my_bool rpl_unique_checks(THD* thd);
ulonglong rpl_unique_checks_delay(THD* thd);
#endif // defined(TOKU_INCLUDE_RFR) && TOKU_INCLUDE_RFR
my_bool support_xa(THD* thd);
extern st_mysql_sys_var* system_variables[];
#if TOKU_INCLUDE_OPTION_STRUCTS
extern ha_create_table_option tokudb_table_options[];
extern ha_create_table_option tokudb_index_options[];
#endif
} // namespace sysvars
} // namespace tokudb
#endif // _TOKUDB_SYSVARS_H
|