forked from mysql/mysql-docker
-
Notifications
You must be signed in to change notification settings - Fork 7
/
config.ini
135 lines (111 loc) · 5.19 KB
/
config.ini
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
[NDBD DEFAULT]
DataDir=/srv/hops/mysql-cluster/log
FileSystemPath=/srv/hops/mysql-cluster/ndb_data
FileSystemPathDD=/srv/hops/mysql-cluster/ndb_disk_columns
BackupDataDir=/srv/hops/mysql-cluster/ndb/backups
# RonDB default configuration is intended for execution in Cloud VMs with
# around 8 GB per VCPU. In this case it is sufficient to set nothing since
# AutomaticThreadConfig=true is default and also AutomaticMemoryConfig=true
# is default. The memory settings in this environment ensures that RonDB
# doesn't hit any memory boundaries in normal cases and at the same time
# providing large space for in-memory tables.
#
# In the Docker Compose environment we expect all nodes to execute in
# their own docker container on the same host. Thus we need to create a
# setting which works also in more limited memory environment.
#
# We set the TotalMemoryConfig to limit the amount of memory used in this
# environment. We set it to 2.5GB of memory which replicated becomes
# 5 GB of memory for data nodes.
#
# In addition the other containers will use a bit more than 1 GB.
#
# The NumCPUs provides input to the AutomaticThreadConfig on how many
# threads to use. This will affect also memory usage, thus increasing
# this number requires also increasing the TotalMemoryConfig and
# potentially also other parameters will require changes.
#
# In a default setup the data node will run such that it uses all memory
# and all CPU available in the machine. This is the case since the default
# setup is aiming at a Cloud VM running only one data node. MySQL Servers
# and MGM servers are running in separate VMs as well.
#
# To run a benchmark on a high-end desktop with e.g. 32 CPUs one can
# set NumCPUs to 6 and increase TotalMemoryConfig a bit, for sysbench
# increasing to 4 GB of TotalMemoryConfig should be sufficient. For
# DBT2 each warehouse consumes an extra 100-200MB of memory. So running
# with e.g. 64 warehouses requires a machine with a bit more memory,
# it should work on a machine with 64 GB of memory.
# These are actually true by default anyways
AutomaticThreadConfig=true
AutomaticMemoryConfig=true
# Setting NumCPUs to 4 or some other number influences the number of
# threads of various types that we configure. In a development environment
# it is ok to set this larger than the number of actual CPUs (and smaller
# as well). In an environment where we own the entire VM it is desirable
# to not set NumCPUs such that the data node can figure out the appropriate
# number of threads according to the HW and even lock the threads to
# specific CPUs.
#
# These are exceptions to the automatic memory configuration.
# NumCPUs impacts both thread configuration and memory configuration. Thus
# raising NumCPUs means more memory is required in the data node.
NumCPUs=%s
TotalMemoryConfig=%s
MaxNoOfTables=%s
MaxNoOfAttributes=%s
MaxNoOfTriggers=%s
TransactionMemory=%s
SharedGlobalMemory=%s
RedoBuffer=16M
ReservedConcurrentOperations=%s
## Uncomment this for RonDB 22.10 and reduce TotalMemoryConfig by 250M
# ReplicationMemory=50M
# SchemaMemory=200M
# Decrease the REDO log files from 64GB to 2GB
# Size of the REDO log is NoOfFragmentLogParts * NoOfFragmentLogFiles * FragmentLogFileSize
# A smaller REDO log means one will have to be more active in checkpointing and at really high loads
# one needs a larger REDO log, but in development 2 GB should be quite sufficient. In production
# 64 GB is more or less always enough.
NoOfFragmentLogFiles=8
FragmentLogFileSize=%s
#Number of replicas
NoOfReplicas=%s
# Setting this parameter to TRUE or 1 binds IP_ADDR_ANY so that connections can be made from anywhere (for autogenerated connections). The default is FALSE (0).
TcpBind_INADDR_ANY=FALSE
MaxNoOfConcurrentOperations=%s
MaxDMLOperationsPerTransaction=32K
MaxNoOfConcurrentScans=500
#The maximum time in ms that is permitted to lapse between operations in the same transaction before the transaction is aborted.
TransactionInactiveTimeout=5000
TransactionDeadlockDetectionTimeout=5000
#0: Disables locking. This is the default value.
#1: Performs the lock after allocating memory for the process.
#2: Performs the lock before memory for the process is allocated.
# Needs root privileges
LockPagesInMainMemory=0
#SpinMethod in cloud setups the default gives better latency.
#In shared environments like this it is better to avoid spinnning.
SpinMethod=StaticSpinning
# Savings of up to 50% over noncompressed LCPs and backups
CompressedLCP=0
CompressedBackup=1
BackupLogBufferSize= 16M
# The maximum size of the memory unit to use when allocating memory for tables
MaxAllocate=32M
# Needs root privileges
ODirect=0
Numa=1
# Move this to another drive if you have a high number of ops/sec
InitialLogFileGroup=name=lg_1;undo_buffer_size=32M;undo_log_0.log:1G
# Move this to another drive to store small files in HopsFS
InitialTablespace=name=ts_1;extent_size=16M;ts_1_data_file_0.dat:2G
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
OverloadLimit=0
# Without this flag, ndbds could not start up if not all containers
# listed in the config.ini were running. E.g. the ndbds would try to
# to resolve the hostname "bench_1", whereby the container "bench_1" has
# been stopped. The ndbd would not find anything, and then fail.
AllowUnresolvedHostnames=true