MySQL 8.4.0
Source Code Documentation
xcom_profile.h
Go to the documentation of this file.
1/* Copyright (c) 2017, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef XCOM_CONFIG_H
25#define XCOM_CONFIG_H
26
27/* Use global node set to decide if proposal should be sent */
28/* #define PROPOSE_IF_LEADER */
29
30/* Always use the full three phase Paxos protocol */
31/* #define ALWAYS_THREEPHASE */
32
33/* Make node 0 the default arbitrator */
34/* #define NODE_0_IS_ARBITRATOR */
35
36/* On first propose, wait for all nodes, not just majority */
37/* #define WAIT_FOR_ALL_FIRST */
38
39/* Do not delay termination of xcom */
40/* #define NO_DELAYED_TERMINATION */
41#define TERMINATE_DELAY 3.0
42
43/* Set max number of acceptors */
44/* #define MAXACCEPT 5 */
45
46/* Impose upper limit on delivery time? */
47/* #define DELIVERY_TIMEOUT */
48
49/* Time until we suspect failed delivery */
50#define BUILD_TIMEOUT 0.5
51
52/* #define IGNORE_LOSERS */
53
54/* #define ACCEPT_SITE_TEST */
55
56/* Define this to enable the binary event logger */
57/* #define TASK_EVENT_TRACE */
58
59/* Size of binary event logger cache */
60#define MAX_TASK_EVENT 20000
61
62/* Make sweeper task run more often */
63#define AGGRESSIVE_SWEEP
64
65/* Turn automatic batching on or off */
66#define AUTOBATCH 1
67
68enum {
71 MAX_BATCH_SIZE = 0x3fffffff, /* Limit batch size to sensible ? amount */
72 MAX_BATCH_APP_DATA = 5000, /* Limit nr. of batched elements */
74 PROPOSERS = 10, /* The number of proposers on one node */
75 MIN_CACHE_SIZE = 250000, /* Minimum cache size */
76 DEFAULT_CACHE_LIMIT = 1000000000UL /* Reasonable initial cache limit */
77};
78
79/* How long to wait for snapshots when trying to find the best node to recover
80 * from */
81#define SNAPSHOT_WAIT_TIME 3.0
82
83/* Disable test to see if we should handle need_boot */
84#define ALWAYS_HANDLE_NEED_BOOT 0
85
86/* Disable test to see if we should handle prepare and accept */
87#define ALWAYS_HANDLE_CONSENSUS 0
88
89/* Force IPv4 */
90/* #define FORCE_IPV4 */
91
92/* Define this if xcom should suppress delivery of duplicate global views */
93#define SUPPRESS_DUPLICATE_VIEWS
94
95/* Define this to use the default event horizon if we have no config */
96/* #define PERMISSIVE_EH_ACTIVE_CONFIG */
97
98/* Define this to 0 if you always have address:port, 1 if not */
99#define NO_PORT_IN_ADDRESS 0
100
101/* Let the executor_task be more aggressive in proposing `no_op` for
102 missing messages */
103/* #define EXECUTOR_TASK_AGGRESSIVE_NO_OP */
104
105#endif
@ MAX_BATCH_APP_DATA
Definition: xcom_profile.h:72
@ MIN_CACHE_SIZE
Definition: xcom_profile.h:75
@ EVENT_HORIZON_MIN
Definition: xcom_profile.h:69
@ MAX_DEAD
Definition: xcom_profile.h:73
@ MAX_BATCH_SIZE
Definition: xcom_profile.h:71
@ PROPOSERS
Definition: xcom_profile.h:74
@ EVENT_HORIZON_MAX
Definition: xcom_profile.h:70
@ DEFAULT_CACHE_LIMIT
Definition: xcom_profile.h:76