Details
-
Task
-
Resolution: Unresolved
-
Major
-
None
-
7.1.1
-
None
-
1
Description
I noticed that indexing writes to the /indexing/settings/config key. When I brought up a new KV-only cluster, the config key looked like this:
$ curl -s -u Administrator:asdasd localhost:9000/diag/eval -d 'ns_config:search({metakv, <<"/indexing/settings/config">>})'
|
{value,<<"{\"indexer.settings.compaction.days_of_week\":\"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday\",\"indexer.settings.rebalance.redistribute_indexes\":false,\"indexer.settings.compaction.interval\":\"00:00,00:00\",\"indexer.settings.compaction.compaction_mode\":\"circular\",\"indexer.settings.log_level\":\"info\",\"indexer.settings.persisted_snapshot.interval\":5000,\"indexer.settings.compaction.min_frag\":30,\"indexer.settings.inmemory_snapshot.interval\":200,\"indexer.settings.enable_page_bloom_filter\":false,\"indexer.settings.max_cpu_percent\":0,\"indexer.settings.storage_mode\":\"plasma\",\"indexer.settings.recovery.max_rollbacks\":2,\"indexer.settings.num_replica\":0,\"indexer.settings.memory_quota\":268435456,\"indexer.settings.compaction.abort_exceed_interval\":false}">>}
|
Later, I added an index node and after some seconds I noticed this:
$ curl -s -u Administrator:asdasd localhost:9000/diag/eval -d 'ns_config:search({metakv, <<"/indexing/settings/config">>})'
|
{value,<<"{\"indexer.plasma.backIndex.enableInMemoryCompression\":true,\"indexer.plasma.backIndex.enablePageBloomFilter\":false,\"indexer.plasma.mainIndex.enableInMemoryCompression\":true,\"indexer.settings.allow_large_keys\":true,\"indexer.settings.bufferPoolBlockSize\":16384,\"indexer.settings.build.batch_size\":5,\"indexer.settings.compaction.abort_exceed_interval\":false,\"indexer.settings.compaction.check_period\":30,\"indexer.settings.compaction.compaction_mode\":\"circular\",\"indexer.settings.compaction.days_of_week\":\"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday\",\"indexer.settings.compaction.interval\":\"00:00,00:00\",\"indexer.settings.compaction.min_frag\":30,\"indexer.settings.compaction.min_size\":524288000,\"indexer.settings.compaction.plasma.manual\":false,\"indexer.settings.compaction.plasma.optional.decrement\":5,\"indexer.settings.compaction.plasma.optional.min_frag\":20,\"indexer.settings.compaction.plasma.optional.quota\":25,\"indexer.settings.corrupt_index_num_backups\":1,\"indexer.settings.cpuProfDir\":\"\",\"indexer.settings.cpuProfile\":false,\"indexer.settings.eTagPeriod\":240,\"indexer.settings.enable_corrupt_index_backup\":false,\"indexer.settings.enable_page_bloom_filter\":false,\"indexer.settings.fast_flush_mode\":true,\"indexer.settings.gc_percent\":100,\"indexer.settings.inmemory_snapshot.fdb.interval\":200,\"indexer.settings.inmemory_snapshot.interval\":200,\"indexer.settings.inmemory_snapshot.moi.interval\":10,\"indexer.settings.largeSnapshotThreshold\":200,\"indexer.settings.log_level\":\"info\",\"indexer.settings.maxVbQueueLength\":0,\"indexer.settings.max_array_seckey_size\":10240,\"indexer.settings.max_cpu_percent\":0,\"indexer.settings.max_seckey_size\":4608,\"indexer.settings.max_writer_lock_prob\":20,\"indexer.settings.memProfDir\":\"\",\"indexer.settings.memProfile\":false,\"indexer.settings.memory_quota\":268435456,\"indexer.settings.minVbQueueLength\":250,\"indexer.settings.moi.debug\":false,\"indexer.settings.moi.persistence_threads\":6,\"indexer.settings.moi.recovery.max_rollbacks\":2,\"indexer.settings.moi.recovery_threads\":12,\"indexer.settings.num_replica\":0,\"indexer.settings.persisted_snapshot.fdb.interval\":5000,\"indexer.settings.persisted_snapshot.interval\":5000,\"indexer.settings.persisted_snapshot.moi.interval\":600000,\"indexer.settings.persisted_snapshot_init_build.fdb.interval\":5000,\"indexer.settings.persisted_snapshot_init_build.interval\":5000,\"indexer.settings.persisted_snapshot_init_build.moi.interval\":600000,\"indexer.settings.plasma.recovery.max_rollbacks\":2,\"indexer.settings.rebalance.redistribute_indexes\":false,\"indexer.settings.recovery.max_rollbacks\":2,\"indexer.settings.scan_getseqnos_retries\":30,\"indexer.settings.scan_timeout\":120000,\"indexer.settings.send_buffer_size\":1024,\"indexer.settings.sliceBufSize\":2400,\"indexer.settings.smallSnapshotThreshold\":30,\"indexer.settings.snapshotListeners\":6,\"indexer.settings.snapshotRequestWorkers\":6,\"indexer.settings.statsLogDumpInterval\":60,\"indexer.settings.storage_mode\":\"plasma\",\"indexer.settings.storage_mode.disable_upgrade\":false,\"indexer.settings.wal_size\":4096,\"projector.settings.log_level\":\"info\",\"queryport.client.settings.backfillLimit\":5120,\"queryport.client.settings.minPoolSizeWM\":1000,\"queryport.client.settings.poolOverflow\":30,\"queryport.client.settings.poolSize\":5000,\"queryport.client.settings.relConnBatchSize\":100}">>}
|
So, clearly indexing is overwriting the settings with its version of the configuration. As far as I can tell this doesn't seem to happen in 6.6 or 7.0.
This seems like it's potentially problematic as perhaps we can get into a situation where it's not clear who owns each config setting – is it ns_server or indexing? It seems it's possible this situation will cause problems at some point.
I think it would be good to get answers to the following questions:
- Has this always been happening (and I goofed up my test on 7.0 and 6.6)?
- If it's a change in 7.1 or more recently, why was this change made and what's the thinking behind which component should be responsible for updating config settings?