-
Notifications
You must be signed in to change notification settings - Fork 663
Expand file tree
/
Copy pathdefaults.conf
More file actions
466 lines (316 loc) · 19.5 KB
/
defaults.conf
File metadata and controls
466 lines (316 loc) · 19.5 KB
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
{
/******************************************************************************************************/
/* Garnet Default Configuration File */
/******************************************************************************************************/
/* Port to run server on */
"Port" : 6379,
/* Whitespace or comma separated string of IP addresses to bind server to (default: any) */
"Address" : null,
/* Port that this node advertises to other nodes to connect to for gossiping. */
"ClusterAnnouncePort" : 0,
/* IP address that this node advertises to other nodes to connect to for gossiping. */
"ClusterAnnounceIp" : null,
/* Hostname that this node advertises to other nodes to connect to for gossiping. */
"ClusterAnnounceHostname" : null,
/* Determines the endpoint type to be advertised to other nodes. (value options: ip, hostname, unknown-endpoint) */
"ClusterPreferredEndpointType" : "ip",
/* Total log memory used in bytes (rounds down to power of 2) */
"MemorySize" : "16g",
/* Size of each page in bytes (rounds down to power of 2) */
"PageSize" : "32m",
/* Size of each log segment in bytes on disk (rounds down to power of 2) */
"SegmentSize" : "1g",
/* Start size of hash index in bytes (rounds down to power of 2) */
"IndexSize" : "128m",
/* Max size of hash index in bytes (rounds down to power of 2) */
"IndexMaxSize": "",
/* Percentage of log memory that is kept mutable */
"MutablePercent" : 90,
/* Enable read cache for faster access to on-disk records */
"EnableReadCache" : false,
/* Total read cache log memory used in bytes (rounds down to power of 2) */
"ReadCacheMemorySize" : "1g",
/* Size of each read cache page in bytes (rounds down to power of 2) */
"ReadCachePageSize" : "32m",
/* Object store heap memory size in bytes (Sum of size taken up by all object instances in the heap) */
"ObjectStoreHeapMemorySize" : "",
/* Object store log memory used in bytes (Size of only the log with references to heap objects, excludes size of heap memory consumed by the objects themselves referred to from the log) */
"ObjectStoreLogMemorySize" : "32m",
/* Size of each object store page in bytes (rounds down to power of 2) */
"ObjectStorePageSize" : "4k",
/* Size of each object store log segment in bytes on disk (rounds down to power of 2) */
"ObjectStoreSegmentSize" : "32m",
/* Start size of object store hash index in bytes (rounds down to power of 2) */
"ObjectStoreIndexSize" : "16m",
/* Max size of object store hash index in bytes (rounds down to power of 2) */
"ObjectStoreIndexMaxSize": "",
/* Percentage of object store log memory that is kept mutable */
"ObjectStoreMutablePercent" : 90,
/* Enables object store read cache for faster access to on-disk records */
"EnableObjectStoreReadCache" : false,
/* Total object store read cache log memory used in bytes (rounds down to power of 2) */
"ObjectStoreReadCacheLogMemorySize" : "32m",
/* Size of each object store read cache page in bytes (rounds down to power of 2) */
"ObjectStoreReadCachePageSize" : "1m",
/* Object store read cache heap memory size in bytes (Sum of size taken up by all object instances in the heap) */
"ObjectStoreReadCacheHeapMemorySize" : "",
/* Enable tiering of records (hybrid log) to storage, to support a larger-than-memory store. Use --logdir to specify storage directory. */
"EnableStorageTier" : false,
/* When records are read from the main store's in-memory immutable region or storage device, copy them to the tail of the log. */
"CopyReadsToTail" : false,
/* When records are read from the object store's in-memory immutable region or storage device, copy them to the tail of the log. */
"ObjectStoreCopyReadsToTail" : false,
/* Storage directory for tiered records (hybrid log), if storage tiering (--storage) is enabled. Uses current directory if unspecified. */
"LogDir" : null,
/* Storage directory for checkpoints. Uses logdir if unspecified. */
"CheckpointDir" : null,
/* Recover from latest checkpoint and log, if present. */
"Recover" : false,
/* Disable pub/sub feature on server. */
"DisablePubSub" : false,
/* Enable incremental snapshots. */
"EnableIncrementalSnapshots" : false,
/* Page size of log used for pub/sub (rounds down to power of 2) */
"PubSubPageSize" : "4k",
/* Disable support for data structure objects. */
"DisableObjects" : false,
/* Enable cluster. */
"EnableCluster" : false,
/* Start with clean cluster config. */
"CleanClusterConfig" : false,
/* Number of parallel migrate tasks to spawn when SLOTS or SLOTSRANGE option is used. */
"ParallelMigrateTaskCount" : 1,
/* When migrating slots 1. write directly to network buffer to avoid unecessary copies, 2. do not wait for ack from target before sending next batch of keys. */
"FastMigrate": false,
/* Authentication mode of Garnet. This impacts how AUTH command is processed and how clients are authenticated against Garnet. Value options: NoAuth, Password, Aad, ACL*/
"AuthenticationMode" : "NoAuth",
/* Authentication string for password authentication. */
"Password" : null,
/* Username to authenticate intra-cluster communication with. */
"ClusterUsername" : null,
/* Password to authenticate intra-cluster communication with. */
"ClusterPassword" : null,
/* External ACL user file. */
"AclFile" : null,
/* The authority of AAD authentication. */
"AadAuthority" : "https://login.microsoftonline.com",
/* The audiences of AAD token for AAD authentication. Should be a comma separated string. */
"AadAudiences" : null,
/* The issuers of AAD token for AAD authentication. Should be a comma separated string. */
"AadIssuers" : null,
/* The authorized client app Ids for AAD authentication. Should be a comma separated string. */
"AuthorizedAadApplicationIds" : null,
/* Whether to validate username as ObjectId or a valid Group objectId if present in claims - meant to be used with ACL setup. */
"AadValidateUsername": false,
/* Enable write ahead logging (append-only file). */
"EnableAOF" : false,
/* Total AOF memory buffer used in bytes (rounds down to power of 2) - spills to disk after this limit */
"AofMemorySize" : "64m",
/* Size of each AOF page in bytes(rounds down to power of 2) */
"AofPageSize" : "4m",
/* AOF replication (safe tail address) refresh frequency in milliseconds. 0 = auto refresh after every enqueue. */
"AofReplicationRefreshFrequencyMs": 10,
/* Subscriber (safe tail address) refresh frequency in milliseconds (for pub-sub). 0 = auto refresh after every enqueue. */
"SubscriberRefreshFrequencyMs": 0,
/* Write ahead logging (append-only file) commit issue frequency in milliseconds. 0 = issue an immediate commit per operation, -1 = manually issue commits using COMMITAOF command */
"CommitFrequencyMs" : 0,
/* Wait for AOF to flush the commit before returning results to client. Warning: will greatly increase operation latency. */
"WaitForCommit" : false,
/* Maximum size of AOF (rounds down to power of 2) after which unsafe truncation will be applied. Left empty AOF will grow without bound unless a checkpoint is taken */
"AofSizeLimit" : "",
/* Frequency (in secs) of execution of the AutoCheckpointBasedOnAofSizeLimit background task. */
"AofSizeLimitEnforceFrequencySecs" : 5,
/* Background hybrid log compaction frequency in seconds. 0 = disabled (compaction performed before checkpointing instead) */
"CompactionFrequencySecs" : 0,
/* Frequency in seconds for the background task to perform object collection which removes expired members within object from memory. 0 = disabled. Use the HCOLLECT and ZCOLLECT API to collect on-demand. */
"ExpiredObjectCollectionFrequencySecs" : 0,
/* Hybrid log compaction type. Value options: */
/* None - no compaction */
/* Shift - shift begin address without compaction (data loss) */
/* Scan - scan old pages and move live records to tail (no data loss) */
/* Lookup - lookup each record in compaction range, for record liveness checking using hash chain (no data loss) */
"CompactionType" : "None",
/* Forcefully delete the inactive segments immediately after the compaction strategy (type) is applied. */
/* If false, take a checkpoint to actually delete the older data files from disk. */
"CompactionForceDelete": false,
/* Number of log segments created on disk before compaction triggers. */
"CompactionMaxSegments" : 32,
/* Number of object store log segments created on disk before compaction triggers. */
"ObjectStoreCompactionMaxSegments" : 32,
/* Enable Lua scripts on server. */
"EnableLua" : false,
/* Run Lua scripts as a transaction (lock keys - run script - unlock keys). */
"LuaTransactionMode" : false,
/* Percent of cluster nodes to gossip with at each gossip iteration. */
"GossipSamplePercent" : 100,
/* Cluster mode gossip protocol per node sleep (in seconds) delay to send updated config. */
"GossipDelay" : 5,
/* Cluster node timeout is the amount of seconds a node must be unreachable. */
"ClusterTimeout" : 60,
/* How frequently to flush cluster config unto disk to persist updates. =-1: never (memory only), =0: immediately (every update performs flush), >0: frequency in ms*/
"ClusterConfigFlushFrequencyMs": 0,
/* Name for the client target host when using TLS connections in cluster mode. */
"ClusterTlsClientTargetHost" : "GarnetTest",
/* Enable TLS. */
"EnableTLS" : false,
/* TLS certificate file name (example: testcert.pfx). */
"CertFileName" : null,
/* TLS certificate password (example: placeholder). */
"CertPassword" : null,
/* TLS certificate subject name. */
"CertSubjectName" : null,
/* TLS certificate refresh frequency in seconds (0 to disable). */
"CertificateRefreshFrequency" : 0,
/* Whether client TLS certificate is required by the server. */
"ClientCertificateRequired" : true,
/* Whether server TLS certificate is required by clients established on the server side, e.g., for cluster gossip and replication. */
"ServerCertificateRequired" : true,
/* Certificate revocation check mode for certificate validation (NoCheck, Online, Offline). */
"CertificateRevocationCheckMode" : "NoCheck",
/* Full path of file with issuer certificate for validation. If empty or null, validation against issuer will not be performed. */
"IssuerCertificatePath" : "",
/* Track latency of various events. */
"LatencyMonitor" : false,
/* Track per-command usage statistics (calls, failures, rejections). Exposed via INFO COMMANDSTATS. */
"CommandStatsMonitor" : false,
/* Threshold (microseconds) for logging command in the slow log. 0 to disable. */
"SlowLogThreshold": 0,
/* Maximum number of slow log entries to keep. */
"SlowLogMaxEntries": 128,
/* Metrics sampling frequency in seconds. Value of 0 disables metrics monitor task. */
"MetricsSamplingFrequency" : 0,
/* Enabling quiet mode does not print server version and text art. */
"QuietMode" : false,
/* Logging level. Value options: Trace, Debug, Information, Warning, Error, Critical, None */
"LogLevel" : "Warning",
/* Frequency (in seconds) of logging (used for tracking progress of long running operations e.g. migration) */
"LoggingFrequency" : "5",
/* Disable console logger. */
"DisableConsoleLogger" : false,
/* Enable file logger and write to the specified path. */
"FileLogger" : null,
/* Minimum worker threads in thread pool, 0 uses the system default. */
"ThreadPoolMinThreads" : 0,
/* Maximum worker threads in thread pool, 0 uses the system default. */
"ThreadPoolMaxThreads" : 0,
/* Minimum IO completion threads in thread pool, 0 uses the system default. */
"ThreadPoolMinIOCompletionThreads" : 0,
/* Maximum IO completion threads in thread pool, 0 uses the system default. */
"ThreadPoolMaxIOCompletionThreads" : 0,
/* Maximum number of simultaneously active network connections. */
"NetworkConnectionLimit" : -1,
/* Use Azure Page Blobs for storage instead of local storage. */
"UseAzureStorage" : false,
/* The connection string to use when establishing connection to Azure Blobs Storage. */
"AzureStorageConnectionString" : null,
/* The URI to use when establishing connection to Azure Blobs Storage. */
"AzureStorageServiceUri": null,
/* The managed identity to use when establishing connection to Azure Blobs Storage. */
"AzureStorageManagedIdentity": null,
/* Whether and by how much should we throttle the disk IO for checkpoints: -1 - disable throttling; >= 0 - run checkpoint flush in separate task, sleep for specified time after each WriteAsync */
"CheckpointThrottleFlushDelayMs" : 0,
/* Use FastCommit when writing AOF. */
"EnableFastCommit" : true,
/* Throttle FastCommit to write metadata once every K commits. */
"FastCommitThrottleFreq" : 1000,
/* Throttle the maximum outstanding network sends per session. */
"NetworkSendThrottleMax" : 8,
/* Whether we use scatter gather IO for MGET or a batch of contiguous GET operations - useful to saturate disk random read IO. */
"EnableScatterGatherGet" : false,
/* Whether and by how much (milliseconds) should we throttle the replica sync: 0 - disable throttling */
"ReplicaSyncDelayMs" : 5,
/* Throttle ClusterAppendLog when replica.AOFTailAddress - ReplicationOffset > ReplicationOffsetMaxLag. 0: Synchronous replay, >=1: background replay with specified lag, -1: infinite lag */
"ReplicationOffsetMaxLag" : -1,
/* Use main-memory replication model. */
"MainMemoryReplication" : false,
/* Use fast-aof-truncate replication model. */
"FastAofTruncate" : false,
/* Used with main-memory replication model. Take on demand checkpoint to avoid missing data when attaching */
"OnDemandCheckpoint" : true,
/* Whether diskless replication is enabled or not */
"ReplicaDisklessSync" : false,
/* Delay in diskless replication sync in seconds. =0: Immediately start diskless replication sync. */
"ReplicaDisklessSyncDelay" : 5,
/* Timeout in seconds for replication sync operations. */
"ReplicaSyncTimeout" : 5,
/* Timeout in seconds for replication sync operations. */
"ReplicaAttachTimeout" : 60,
/* AOF replay size threshold for diskless replication, beyond which we will perform a full sync even if a partial sync is possible. Defaults to AOF memory size if not specified. */
"ReplicaDisklessSyncFullSyncAofThreshold" : "",
/* With main-memory replication, use null device for AOF. Ensures no disk IO, but can cause data loss during replication. */
"UseAofNullDevice" : false,
/* DEPRECATED: use DeviceType of Native instead. */
"UseNativeDeviceLinux" : false,
/* Device type. Value options: */
/* Default - Let the system choose the device type (Native on Windows, RandomAccess elsewhere) */
/* Native - Native device */
/* RandomAccess - Device based on .NET RandomAccess */
/* FileStream - Device bsaed on .NET FileStream */
/* AzureStorage - Device based on Azure Storage */
/* Null - Null device */
"DeviceType" : "Default",
/* #,#,...,#: For the main store, the sizes of records in each revivification bin, in order of increasing size. Supersedes the default --enable-reviv; cannot be used with --reviv-in-chain-only */
"RevivBinRecordSizes" : null,
/* #,#,...,#: For the main store, the number of records in each bin: Default (not specified): If reviv-bin-record-sizes is specified, each bin is 256 records # (one value): If reviv-bin-record-sizes is specified, then all bins have this number of records, else error #,#,...,# (multiple values): If reviv-bin-record-sizes is specified, then it must be the same size as that array, else error Supersedes the default --enable-reviv; cannot be used with --reviv-in-chain-only */
"RevivBinRecordCounts" : null,
/* #: Fraction of mutable in-memory log space, from the highest log address down to the read-only region, that is eligible for revivification. Applies to both main and object store. */
"RevivifiableFraction" : 1.0,
/* A shortcut to specify revivification with default power-of-2-sized bins. This default can be overridden by --reviv-in-chain-only or by the combination of reviv-bin-record-sizes and reviv-bin-record-counts. */
"EnableRevivification" : false,
/* Search this number of next-higher bins if the search cannot be satisfied in the best-fitting bin. Requires --enable-reviv or the combination of rconeviv-bin-record-sizes and reviv-bin-record-counts */
"RevivNumberOfBinsToSearch" : 0,
/* Number of records to scan for best fit after finding first fit. Requires --enable-reviv or the combination of reviv-bin-record-sizes and reviv-bin-record-counts 0: Use first fit #: Limit scan to this many records after first fit, up to the record count of the bin */
"RevivBinBestFitScanLimit" : 0,
/* Revivify tombstoned records in tag chains only (do not use free list). Cannot be used with reviv-bin-record-sizes or reviv-bin-record-counts. Propagates to object store by default. */
"RevivInChainOnly" : false,
/* Number of records in the single free record bin for the object store. The Object store has only a single bin, unlike the main store. Ignored unless the main store is using the free record list. */
"RevivObjBinRecordCount" : 256,
/* Limit of items to return in one iteration of *SCAN command */
"ObjectScanCountLimit" : 1000,
/* Enable DEBUG command for clients - no/local/yes */
"EnableDebugCommand": "no",
/* Enable DEBUG command for clients - no/local/yes */
"EnableModuleCommand": "no",
/* Protected mode */
"ProtectedMode": "yes",
/* List of directories on server from which custom command binaries can be loaded by admin users */
"ExtensionBinPaths": null,
/* Allow loading custom commands from digitally unsigned assemblies (not recommended) */
"ExtensionAllowUnsignedAssemblies": false,
/* Index resize check frequency in seconds */
"IndexResizeFrequencySecs": 60,
/* Overflow bucket count over total index size in percentage to trigger index resize */
"IndexResizeThreshold": 50,
/* List of module paths to be loaded at startup */
"LoadModuleCS": null,
/* Fails if encounters error during AOF replay or checkpointing */
"FailOnRecoveryError": false,
/* Lua uses the default, unmanaged and untracked, allocator */
"LuaMemoryManagementMode": "Native",
/* Lua memory limits are ignored for Native, but can be set for other modes */
"LuaScriptMemoryLimit": null,
/* Impose no timeout on Lua scripts by default */
"LuaScriptTimeoutMs": 0,
/* Allow redis.log(...) to write to the Garnet logs */
"LuaLoggingMode": "Enable",
/* Allow all built in and redis.* functions by default */
"LuaAllowedFunctions": null,
/* Unix socket address path to bind the server to */
"UnixSocketPath": null,
/* Unix socket permissions in octal (Unix platforms only) */
"UnixSocketPermission": 0,
/* Max number of logical databases allowed in a single Garnet server instance */
"MaxDatabases": 16,
/* Frequency of background scan for expired key deletion, in seconds */
"ExpiredKeyDeletionScanFrequencySecs": -1,
/* Maximum frequency cluster Replicas will attempt to re-establish replicating their Primaries, in seconds */
"ClusterReplicationReestablishmentTimeout": 0,
/* If a Cluster Replica has on disk checkpoints or AOF, if that data should be loaded on restart instead of waiting for a Primary to sync with */
"ClusterReplicaResumeWithData": false,
/* Enable Vector Sets (preview) - this feature (and associated commands) are incomplete, unstable, and subject to change while still in preview */
"EnableVectorSetPreview": false,
/* Configure how many replay tasks are used to replay VectorSet operations at the replica (default: 0 uses the machine CPU count) */
"VectorSetReplayTaskCount": 0,
/* Configure how many quantization tasks are used to optimize Vector Set operations (default: 0 uses the machine CPU count) */
"VectorSetQuantizationTaskCount": 0
}