MB-23719: Add dynamic change of ephemeral_metadata_purge_age
[ep-engine.git] / configuration.json
1 {
2     "params": {
3         "alog_block_size": {
4             "default": "4096",
5             "descr": "Logging block size.",
6             "dynamic": false,
7             "type": "size_t",
8             "requires": {
9                 "bucket_type": "persistent"
10             }
11         },
12         "alog_path": {
13             "default": "",
14             "descr": "Path to the access log.",
15             "dynamic": false,
16             "type": "std::string",
17             "requires": {
18                 "bucket_type": "persistent"
19             }
20         },
21         "access_scanner_enabled": {
22             "default": "true",
23             "descr": "True if access scanner task is enabled",
24             "type": "bool",
25             "requires": {
26                 "bucket_type": "persistent"
27             }
28         },
29         "alog_sleep_time": {
30             "default": "1440",
31             "descr": "Number of minutes between each sweep for the access log",
32             "type": "size_t",
33             "validator": {
34                 "range": {
35                     "max": 4320,
36                     "min": 1
37                 }
38             },
39             "requires": {
40                 "bucket_type": "persistent"
41             }
42         },
43         "alog_task_time": {
44             "default": "2",
45             "descr": "Hour in GMT time when access scanner task is scheduled to run",
46             "type": "size_t",
47             "validator": {
48                 "range": {
49                     "max": 23,
50                     "min": 0
51                 }
52             },
53             "requires": {
54                 "bucket_type": "persistent"
55             }
56         },
57         "alog_resident_ratio_threshold": {
58             "default": "95",
59             "desr": "Resident ratio percentage above which we do not generate access log",
60             "dynamic": false,
61             "type": "size_t",
62             "validator": {
63                 "range": {
64                     "max": 100,
65                     "min": 0
66                 }
67             },
68             "requires": {
69                 "bucket_type": "persistent"
70             }
71         },
72         "alog_max_stored_items": {
73             "default": "1024",
74             "desr": "The maximum number of items the Access Scanner will hold in memory before commiting them to disk",
75             "type": "size_t",
76             "dynamic": false,
77             "validator": {
78                 "range": {
79                     "min": 1
80                 }
81             },
82             "requires": {
83                 "bucket_type": "persistent"
84             }
85         },
86         "backend": {
87             "default": "couchdb",
88             "dynamic": false,
89             "type": "std::string",
90             "validator": {
91                 "enum": [
92                     "couchdb",
93                     "forestdb"
94                 ]
95             }
96         },
97         "backfill_mem_threshold": {
98             "default": "96",
99             "desr": "Percentage of memory that backfill task is allowed to consume",
100             "type": "size_t",
101             "validator": {
102                 "range": {
103                     "max": 100,
104                     "min": 0
105                 }
106             }
107         },
108         "bg_fetch_delay": {
109             "default": "0",
110             "type": "size_t",
111             "validator": {
112                 "range": {
113                     "max": 900,
114                     "min": 0
115                 }
116             }
117         },
118         "bfilter_enabled": {
119             "default": "true",
120             "desr": "Enable or disable the bloom filter",
121             "type": "bool"
122         },
123         "bfilter_key_count": {
124             "default": "10000",
125             "desr": "Bloomfilter: Estimated key count per vbucket",
126             "type": "size_t",
127             "validator": {
128                 "range": {
129                     "min": 1
130                 }
131             }
132         },
133         "bfilter_fp_prob": {
134             "default": "0.01",
135             "desr": "Bloomfilter: Allowed probability for false positives",
136             "type": "float"
137         },
138         "bfilter_residency_threshold": {
139             "default": "0.1",
140             "desr" : "If resident ratio (during full eviction) were found less than this threshold, compaction will include all items into bloomfilter",
141             "type" : "float",
142             "validator": {
143                 "range": {
144                     "max": 1.0,
145                     "min": 0.0
146                 }
147             }
148         },
149         "bucket_type": {
150             "default": "persistent",
151             "descr": "Bucket type in the couchbase server",
152             "dynamic": false,
153             "type": "std::string",
154             "validator": {
155                 "enum": [
156                          "ephemeral",
157                          "persistent"
158                         ]
159             }
160         },
161         "compaction_exp_mem_threshold": {
162             "default": "85",
163             "desr": "Memory usage threshold after which compaction will not queue expired items for deletion",
164             "type": "size_t",
165             "validator": {
166                 "range": {
167                     "max": 100,
168                     "min": 0
169                 }
170             }
171         },
172         "chk_max_items": {
173             "default": "500",
174             "type": "size_t"
175         },
176         "chk_period": {
177             "default": "5",
178             "type": "size_t"
179         },
180         "chk_remover_stime": {
181             "default": "5",
182             "type": "size_t"
183         },
184         "collections_prototype_enabled" : {
185             "default": "false",
186             "descr": "Enable the collections functionality. Warning breaks upgrades and compatibility with legacy clients",
187             "type": "bool"
188         },
189         "compaction_write_queue_cap": {
190             "default": "10000",
191             "desr" : "Disk write queue threshold after which compaction tasks will be made to snooze, if there are already pending compaction tasks",
192             "type" : "size_t",
193             "validator": {
194                 "range": {
195                     "min": 1
196                 }
197             }
198         },
199         "config_file": {
200             "default": "",
201             "dynamic": false,
202             "type": "std::string"
203         },
204         "conflict_resolution_type": {
205             "default": "seqno",
206             "dynamic": false,
207             "type": "std::string",
208             "validator": {
209                 "enum": [
210                     "seqno",
211                     "lww"
212                 ]
213             }
214         },
215         "couch_bucket": {
216             "default": "default",
217             "dynamic": false,
218             "type": "std::string"
219         },
220         "cursor_dropping_lower_mark": {
221             "default": "80",
222             "descr": "Percentage of memQuota, below which checkpoint cursor dropping will not continue",
223             "type": "size_t",
224             "validator": {
225                 "range": {
226                     "max": 100,
227                     "min": 0
228                 }
229             }
230         },
231         "cursor_dropping_upper_mark": {
232             "default": "95",
233             "descr": "Percentage of memQuota, above which checkpoint cursor dropping will commence",
234             "type": "size_t",
235             "validator": {
236                 "range": {
237                     "max": 100,
238                     "min": 0
239                 }
240             }
241         },
242         "data_traffic_enabled": {
243             "default": "true",
244             "descr": "True if we want to enable data traffic after warmup is complete",
245             "type": "bool"
246         },
247         "dbname": {
248             "default": "./test",
249             "descr": "Path to on-disk storage.",
250             "dynamic": false,
251             "type": "std::string"
252         },
253         "defragmenter_enabled": {
254             "default": "true",
255             "descr": "True if defragmenter task is enabled",
256             "type": "bool"
257         },
258         "defragmenter_interval": {
259             "default": "10",
260             "descr": "How often defragmenter task should be run (in seconds).",
261             "type": "size_t"
262         },
263         "defragmenter_age_threshold": {
264             "default": "10",
265             "descr": "How old (measured in number of defragmenter passes) must a document be to be considered for degragmentation.",
266             "type": "size_t"
267         },
268         "defragmenter_chunk_duration": {
269             "default": "20",
270             "descr": "Maximum time (in ms) defragmentation task will run for before being paused (and resumed at the next defragmenter_interval).",
271             "type": "size_t",
272             "validator": {
273                 "range": {
274                     "min": 1
275                 }
276             }
277         },
278         "enable_chk_merge": {
279             "default": "false",
280             "descr": "True if merging closed checkpoints is enabled",
281             "type": "bool"
282         },
283         "ephemeral_full_policy": {
284             "default": "auto_delete",
285             "descr": "How should an Ephemeral bucket becoming full be handled?",
286             "type": "std::string",
287             "validator": {
288                 "enum": [
289                     "auto_delete",
290                     "fail_new_data"
291                 ]
292             },
293             "requires": {
294                 "bucket_type": "ephemeral"
295             }
296         },
297         "ephemeral_metadata_purge_age": {
298             "default": "60",
299             "descr": "Age in seconds after which Ephemeral metadata is purged entirely from memory. Purging disabled if set to -1.",
300             "type": "ssize_t",
301             "requires": {
302                 "bucket_type": "ephemeral"
303             }
304         },
305         "ephemeral_metadata_purge_interval": {
306             "default": "60",
307             "descr": "Time in seconds between automatic, periodic runs of the Ephemeral metadata purge task. Periodic purging disabled if set to 0.",
308             "type": "size_t",
309             "requires": {
310                 "bucket_type": "ephemeral"
311             }
312         },
313         "exp_pager_enabled": {
314             "default": "true",
315             "descr": "True if expiry pager task is enabled",
316             "type": "bool"
317         },
318         "exp_pager_stime": {
319             "default": "3600",
320             "descr": "Number of seconds between expiry pager runs.",
321             "type": "size_t"
322         },
323         "exp_pager_initial_run_time": {
324             "default": "-1",
325             "descr": "Hour in GMT time when expiry pager can be scheduled for initial run",
326             "type": "ssize_t",
327             "validator": {
328                 "range": {
329                     "max": 23,
330                     "min": -1
331                 }
332             }
333         },
334         "failpartialwarmup": {
335             "default": "true",
336             "type": "bool"
337         },
338         "flushall_enabled": {
339             "default": "true",
340             "descr": "True if memcached flush API is enabled",
341             "type": "bool"
342         },
343         "getl_default_timeout": {
344             "default": "15",
345             "descr": "The default timeout for a getl lock in (s)",
346             "type": "size_t"
347         },
348         "getl_max_timeout": {
349             "default": "30",
350             "descr": "The maximum timeout for a getl lock in (s)",
351             "type": "size_t"
352         },
353         "hlc_drift_ahead_threshold_us": {
354             "default": "5000000",
355             "descr": "The μs threshold of drift at which we will increment a vbucket's ahead counter.",
356             "type": "size_t"
357         },
358         "hlc_drift_behind_threshold_us": {
359             "default": "5000000",
360             "descr": "The μs threshold of drift at which we will increment a vbucket's behind counter.",
361             "type": "size_t"
362         },
363         "ht_locks": {
364             "default": "47",
365             "type": "size_t"
366         },
367         "ht_size": {
368             "default": "0",
369             "type": "size_t"
370         },
371         "initfile": {
372             "default": "",
373             "type": "std::string"
374         },
375         "item_eviction_policy": {
376             "default": "value_only",
377             "descr": "Item eviction policy on cache, which is used by the item pager",
378             "type": "std::string",
379             "validator": {
380                 "enum": [
381                     "value_only",
382                     "full_eviction"
383                 ]
384             },
385             "requires": {
386                 "bucket_type": "persistent"
387             }
388         },
389         "item_num_based_new_chk": {
390             "default": "true",
391             "descr": "True if the number of items in the current checkpoint plays a role in a new checkpoint creation",
392             "type": "bool"
393         },
394         "keep_closed_chks": {
395             "default": "false",
396             "descr": "True if we want to keep the closed checkpoints for each vbucket unless the memory usage is above high water mark",
397             "type": "bool"
398         },
399         "connection_manager_interval": {
400             "default": "1",
401             "descr": "How often connection manager task should be run (in seconds).",
402             "type": "size_t",
403             "dynamic": false,
404             "validator": {
405                 "range": {
406                     "min": 1
407                 }
408             }
409         },
410         "max_checkpoints": {
411             "default": "2",
412             "type": "size_t"
413         },
414         "max_failover_entries": {
415             "default": "25",
416             "descr": "maximum number of failover log entries",
417             "type": "size_t"
418         },
419         "max_item_privileged_bytes": {
420             "default": "(1024 * 1024)",
421             "descr": "Maximum number of bytes allowed for 'privileged' (system) data for an item in addition to the max_item_size bytes",
422             "type": "size_t"
423         },
424         "max_item_size": {
425             "default": "(20 * 1024 * 1024)",
426             "descr": "Maximum number of bytes allowed for an item",
427             "type": "size_t"
428         },
429         "max_size": {
430             "default": "0",
431             "type": "size_t",
432             "aliases":["cache_size"]
433         },
434         "max_vbuckets": {
435             "default": "1024",
436             "descr": "Maximum number of vbuckets expected",
437             "dynamic": false,
438             "type": "size_t"
439         },
440         "max_threads": {
441             "default": "0",
442             "descr": "Maximum number of threads in global pool",
443             "dynamic": false,
444             "type": "size_t"
445         },
446         "max_num_shards": {
447             "default": "4",
448             "descr": "Maximum number of shards",
449             "dynamic": false,
450             "type": "size_t"
451         },
452         "max_num_workers": {
453             "default": "4",
454             "descr": "Bucket Priority relative to other buckets",
455             "dynamic": false,
456             "type": "size_t",
457             "validator": {
458                 "range": {
459                     "max": 8,
460                     "min": 1
461                 }
462             }
463         },
464         "num_reader_threads": {
465             "default": "0",
466             "descr": "Throttle max number of reader threads",
467             "dynamic": false,
468             "type": "size_t",
469             "validator": {
470                 "range": {
471                     "max": 512,
472                     "min": 0
473                 }
474             },
475             "aliases":["max_num_readers"]
476         },
477         "num_writer_threads": {
478             "default": "0",
479             "descr": "Throttle max number of writer threads",
480             "dynamic": false,
481             "type": "size_t",
482             "validator": {
483                 "range": {
484                     "max": 512,
485                     "min": 0
486                 }
487             },
488             "aliases":["max_num_writers"]
489         },
490         "num_auxio_threads": {
491             "default": "0",
492             "descr": "Throttle max number of aux io threads",
493             "dynamic": false,
494             "type": "size_t",
495             "validator": {
496                 "range": {
497                     "max": 512,
498                     "min": 0
499                 }
500             },
501             "aliases":["max_num_auxio"]
502         },
503         "num_nonio_threads": {
504             "default": "0",
505             "descr": "Throttle max number of non io threads",
506             "dynamic": false,
507             "type": "size_t",
508             "validator": {
509                 "range": {
510                     "max": 512,
511                     "min": 0
512                 }
513             },
514             "aliases":["max_num_nonio"]
515         },
516         "mem_high_wat": {
517             "default": "max",
518             "type": "size_t"
519         },
520         "mem_low_wat": {
521             "default": "max",
522             "type": "size_t"
523         },
524         "mutation_mem_threshold": {
525             "default": "93",
526             "desr": "Percentage of memory that can be used before mutations return tmpOOMs",
527             "type": "size_t",
528             "validator" : {
529                 "range" : {
530                     "max": 100,
531                     "min": 0
532                 }
533             }
534         },
535         "pager_active_vb_pcnt": {
536             "default": "40",
537             "descr": "Active vbuckets paging percentage",
538             "type": "size_t",
539             "validator": {
540                 "range": {
541                     "max": 50,
542                     "min": 0
543                 }
544             }
545         },
546         "postInitfile": {
547             "default": "",
548             "type": "std::string"
549         },
550         "tap": {
551             "default": "true",
552             "descr":"True if the TAP protocol is supported and enabled.",
553             "type": "bool",
554             "dynamic": false
555         },
556         "tap_ack_grace_period": {
557             "default": "300",
558             "type": "size_t",
559             "requires": {
560                 "tap": true
561             }
562         },
563         "tap_ack_initial_sequence_number": {
564             "default": "1",
565             "type": "size_t",
566             "requires": {
567                 "tap": true
568             }
569         },
570         "tap_ack_interval": {
571             "default": "1000",
572             "type": "size_t",
573             "requires": {
574                 "tap": true
575             }
576         },
577         "tap_ack_window_size": {
578             "default": "10",
579             "type": "size_t",
580             "requires": {
581                 "tap": true
582             }
583         },
584         "tap_backfill_resident": {
585             "default": "0.9",
586             "type": "float",
587             "requires": {
588                 "tap": true
589             }
590         },
591         "tap_backlog_limit": {
592             "default": "5000",
593             "type": "size_t",
594             "requires": {
595                 "tap": true
596             }
597         },
598         "tap_backoff_period": {
599             "default": "5.0",
600             "type": "float",
601             "requires": {
602                 "tap": true
603             }
604         },
605         "tap_bg_max_pending": {
606             "default": "500",
607             "type": "size_t",
608             "requires": {
609                 "tap": true
610             }
611         },
612         "tap_keepalive": {
613             "default": "0",
614             "type": "size_t",
615             "requires": {
616                 "tap": true
617             }
618         },
619         "tap_noop_interval": {
620             "default": "200",
621             "descr": "Number of seconds between a noop is sent on an idle connection",
622             "type": "size_t",
623             "requires": {
624                 "tap": true
625             }
626         },
627         "tap_requeue_sleep_time": {
628             "default": "0.1",
629             "type": "float",
630             "requires": {
631                 "tap": true
632             }
633         },
634         "replication_throttle_cap_pcnt": {
635             "default": "10",
636             "descr": "Percentage of total items in write queue at which we throttle tap input",
637             "type": "size_t",
638             "validator": {
639                 "range": {
640                     "max": 100,
641                     "min": 0
642                 }
643             }
644         },
645         "replication_throttle_queue_cap": {
646             "default": "-1",
647             "descr": "Max size of a write queue to throttle incoming tap input.",
648             "type": "ssize_t",
649             "validator": {
650                 "range": {
651                     "max": 100000000,
652                     "min": -1
653                 }
654             }
655         },
656         "replication_throttle_threshold": {
657             "default": "99",
658             "descr": "Percentage of max mem at which we begin NAKing tap input.",
659             "type": "size_t",
660             "validator": {
661                 "range": {
662                     "max": 100,
663                     "min": 0
664                 }
665             }
666         },
667         "uuid": {
668             "default": "",
669             "descr": "The UUID for the bucket",
670             "dynamic" : false,
671             "type": "std::string"
672         },
673         "dcp_backfill_byte_limit": {
674             "default": "20971832",
675             "descr": "Max bytes a connection can backfill into memory",
676             "dynamic": false,
677             "type": "size_t"
678         },
679         "dcp_flow_control_policy": {
680             "default": "aggressive",
681             "descr": "Flow control policy used on consumer side buffer",
682             "type": "std::string",
683             "validator": {
684                 "enum": [
685                          "none",
686                          "static",
687                          "dynamic",
688                          "aggressive"
689                         ]
690             }
691         },
692         "dcp_conn_buffer_size": {
693             "default": "10485760",
694             "descr": "Size in bytes of an dcp consumer connection buffer",
695             "dynamic": false,
696             "type": "size_t"
697         },
698         "dcp_conn_buffer_size_max": {
699             "default": "52428800",
700             "descr": "Max size in bytes of an dcp consumer connection buffer",
701             "dynamic": false,
702             "type": "size_t"
703         },
704         "dcp_conn_buffer_size_perc": {
705             "default": "1",
706             "descr": "Percentage of memQuota for a dcp consumer connection buffer in dynamic flow ctl policy",
707             "type": "size_t",
708             "dynamic": false,
709             "validator": {
710                 "range": {
711                     "max": 10,
712                     "min": 1
713                 }
714             }
715         },
716         "dcp_conn_buffer_size_aggr_mem_threshold": {
717             "default": "10",
718             "descr": "Aggr mem usage by all dcp conns (as percentage of memQuota) after which only dcp_conn_buffer_size is allocated",
719             "type": "size_t",
720             "dynamic": false,
721             "validator": {
722                 "range": {
723                     "max": 20,
724                     "min": 1
725                 }
726             }
727         },
728         "dcp_conn_buffer_size_aggressive_perc": {
729             "default": "5",
730             "descr": "Percentage of memQuota for all dcp consumer connection buffers in aggressive flow ctl policy",
731             "type": "size_t",
732             "dynamic": false,
733             "validator": {
734                 "range": {
735                     "max": 20,
736                     "min": 1
737                 }
738             }
739         },
740         "dcp_enable_noop": {
741             "default": "true",
742             "descr": "Whether or not dcp connections should use no-ops",
743             "dynamic": false,
744             "type": "bool"
745         },
746         "dcp_value_compression_enabled": {
747             "default": "false",
748             "desr": "Whether or not dcp producer should compress value before transmitting",
749             "dynamic": false,
750             "type": "bool"
751         },
752         "dcp_min_compression_ratio": {
753             "default": "0.85",
754             "desr": "Compression ratio to be achieved above which producer will ship documents as is",
755             "type": "float",
756             "validator": {
757                 "range": {
758                     "min": 0.0
759                 }
760             }
761         },
762         "dcp_idle_timeout": {
763             "default": "360",
764             "descr": "The maximum number of seconds between dcp messages before a connection is disconnected",
765             "type": "size_t"
766         },
767         "dcp_noop_tx_interval": {
768             "default": "1",
769             "descr": "The time interval in seconds between noop messages being sent to the consumer",
770             "type": "size_t",
771             "validator": {
772                 "range": {
773                     "max" : 360,
774                     "min" : 1
775                 }
776             }
777         },
778         "dcp_max_unacked_bytes": {
779             "default": "524288",
780             "descr": "Amount of processed bytes before an ack is required",
781             "dynamic": false,
782             "type": "size_t"
783         },
784         "dcp_scan_byte_limit": {
785             "default": "4194304",
786             "descr": "Max bytes that can be read in a single disk scan",
787             "dynamic": false,
788             "type": "size_t"
789         },
790         "dcp_scan_item_limit": {
791             "default": "4096",
792             "descr": "Max items that can be read in a single disk scan",
793             "dynamic": false,
794             "type": "size_t"
795         },
796         "dcp_takeover_max_time": {
797             "default": "60",
798             "descr": "Max amount of time for takeover send (in seconds) after which front end ops would return ETMPFAIL",
799             "dynamic": false,
800             "type": "size_t"
801         },
802         "dcp_producer_snapshot_marker_yield_limit": {
803             "default": "10",
804             "descr": "The number of snapshots before ActiveStreamCheckpointProcessorTask::run yields.",
805             "type": "size_t",
806             "validator": {
807                 "range": {
808                     "max": 100000000,
809                     "min": 1
810                 }
811             }
812         },
813         "dcp_consumer_process_buffered_messages_yield_limit" : {
814             "default": "10",
815             "descr": "The number of processBufferedMessages iterations before forcing the task to yield.",
816             "type": "size_t",
817             "validator": {
818                 "range": {
819                     "max": 100000000,
820                     "min": 1
821                 }
822             }
823         },
824         "dcp_consumer_process_buffered_messages_batch_size" : {
825             "default": "10",
826             "descr": "The maximum number of items stream->processBufferedMessages will consume.",
827             "type": "size_t",
828             "validator": {
829                 "range": {
830                     "max": 100000000,
831                     "min": 1
832                 }
833             }
834         },
835         "time_synchronization": {
836             "default": "disabled",
837             "descr": "No longer supported. This config parameter has no effect.",
838             "type": "std::string",
839             "validator": {
840                 "enum": [
841                     "disabled",
842                     "enabled_without_drift",
843                     "enabled_with_drift"
844                 ]
845             }
846         },
847         "vb0": {
848             "default": "false",
849             "type": "bool"
850         },
851         "waitforwarmup": {
852             "default": "false",
853             "type": "bool"
854         },
855         "warmup": {
856             "default": "true",
857             "type": "bool"
858         },
859         "warmup_batch_size": {
860             "default": "10000",
861             "descr": "The size of each batch loaded during warmup.",
862             "dynamic": false,
863             "type": "size_t",
864             "validator": {
865                 "range": {
866                     "max": 100000000,
867                     "min": 1
868                 }
869             }
870         },
871         "warmup_min_memory_threshold": {
872             "default": "100",
873             "descr": "Percentage of max mem warmed up before we enable traffic.",
874             "type": "size_t",
875             "validator": {
876                 "range": {
877                     "max": 100,
878                     "min": 0
879                 }
880             }
881         },
882         "warmup_min_items_threshold": {
883             "default": "100",
884             "descr": "Percentage of total items warmed up before we enable traffic.",
885             "type": "size_t",
886             "validator": {
887                 "range": {
888                     "max": 100,
889                     "min": 0
890                 }
891             }
892         }
893     }
894 }