DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
disableSolrFieldCacheMBeanEntryListdisableConfigSetsCreateAuthCheckssolr.circuitbreaker.errorcode
See SIP-21: Standardize system property naming
As discussed in dev-list topic "[DISCUSS] Standardizing sysprop naming".
In this document we can draft a naming structure of the form solr.<top-cat>.<sub-cat>.<prop>.<name>
Analysis of solr source code structure
Below is an analysis of the source code structure in Solr, with candidate top-cat naming.
| What | Folder name | top-cat | sub-cat | Comment |
|---|---|---|---|---|
| Modules | clustering | search | clustering | DWS: probably doesn't deserve it's own top category |
| extraction | index | update.extraction | ||
| gcs-repository | backup | gcs | ||
| hadoop-auth | security | auth.hadoop | ||
| hdfs | hdfs | |||
| jwt-auth | security | auth.jwt | ||
| langid | index | update.langid | ||
| ltr | search | ltr | ||
| opentelemetry | tracing | Right now it is tracing, this module may later also handle logging or metrics? | ||
| s3-repository | backup | s3 | ||
| scripting | index | update.scripting | Note: subject-area could expand to beyond updates | |
| sql | search | sql | ||
| SolrJ | solrj | solrj | ||
| Core | analysis | schema | analysis | |
| api | api?? | |||
| cli | cli | |||
| client | solrj | This is same as solrj? | ||
| cloud | overseer?? | Bad name, there is "overseer" and "api" below | ||
| cluster | cluster?? | These are really cluster plugins / singletons... | ||
| core | core?? | Is 'core' helpful here?This hides 'backup.repository' which overlaps with modules.. | ||
| filestore | filestore | |||
| handler | handler??? | Inside "handler" are all kinds of features, needs to be broken down on feature level | ||
| highlight | search | highlight | ||
| index | index | mergepolicy | Contains mostly merge policies | |
| internal | --- | Contains "csv" tools | ||
| jersey | api | Jax-RS related API code | ||
| legacy | --- | |||
| logging | logging | |||
| metrics | metrics | |||
packagemanager | packages | |||
| parser | search | queryparser | Query parsing | |
| pkg | --- | Related to package management | ||
| query | search | query | Contains two query impls that are in Solr and not in Lucene. "query" is perhaps a nice top-level cat | |
| request | search | request | Contains all kids of request related classes, faceting, DV, QueryRequest etc | |
| response | search | response | Response writers, json, xml csv... and transformers | |
| rest | schema | analysis | Managed resources in schema | |
| schema | schema | analysis | Field types.etc | |
| search | search | Lots of sub categories | ||
| search | facet | |||
| search | function | |||
| search | grouping | |||
| search | join | |||
| search | mlt | |||
| search | vector | |||
| search | similarities | |||
| search | stats | |||
| security | security | auth | Security could also have sub-cat for SSL etc | |
| security | audit | |||
| security | authz | |||
| servlet | --- | Jetty related | ||
| spelling | search | spellcheck | ||
| uninverting | --- | |||
| update | index | update | ||
| util | Various | |||
| circuitbreaker | ||||
| tracing | ||||
| (other) | configset | |||
| collection | ||||
| zookeeper | ||||
| adminui | ||||
| ui | Admin UI |
Analysis of currently used system property names
Using a python script with regex rules, I extracted all system property names read in the codebase, either with System.getProperty(), Boolean.getBoolean() or EnvUtils.getProp*().
Below is an alphabetical list of all discovered sysprop keys, with a proposed mapping to a normalized structure. Link to Jira issues for those props that are actually changed:
| property | proposed | comment | COMPLETED? |
|---|---|---|---|
authenticationPlugin | solr.security.auth.plugin | DONE | |
| basicauth | solr.security.auth.basicauth.credentials | DONE | |
| bootstrap_conf | ??? | Is this the legacy bootstrapping based on pre-existing config on disk? Eric: emailed dev@ to ask about eliminating this | REMOVED |
bootstrap_confdir | solr.configset.bootstrap.confdir | Eric: emailed dev@ to ask about eliminating this. | DONE |
bucketVersionLockTimeoutMs | solr.index.updatelog.bucketversionlock.timeout.ms | in <updateHandler> in solrconfig.xml. - Eric says, I didn't find it in main! | REMOVED |
cloudSolrClientMaxStaleRetries | solr.solrj.cloud.max.stale.retries | DONE | |
collection.configName | solr.configset.bootstrap.config.name | Not used as system property. Eric: This is SET as a sys prop but through weird logic | DONE |
configset.upload.enabled | solr.configset.upload.enabled | DONE | |
| createZkChroot | solr.zookeeper.chroot.create | Eric: we have no tests for this... tried in bats, but it only works with standalone zk, not embedded zk. we need it in embedded zk. | DONE |
disable.configEdit | solr.configset.edit.disabled | ERic: I went with solr.configset.edit.enabled default to true | DONE |
| disable.v2.api | solr.api.v2.disabled | Eric: I went with solr.api.v2.enabled default to true | DONE |
| disableAdminUI | solr.ui.disabled | DONE | |
disableSolrFieldCacheMBeanEntryList | solr.metrics.fieldcache.entries.disabled | DONE | |
disableSolrFieldCacheMBeanEntryListJmx | Remove this; seems redundant | DONE | |
doNotWeakenSecureRandom | in benchmarking and obscure; just leave it | ||
enable.packages | solr.packages.enabled | DONE | |
enable.update.log | solr.index.updatelog.enabled | DONE | |
| gc.log.opts | ?? | ||
hadoop.home.dir | REMOVED | ||
hadoop.security.credential.provider.path | REMOVED | ||
hadoopauth.tracehttp | solr.security.auth.hadoop.tracehttp | REMOVED | |
| host | solr.host.advertise | Jetty level, see SOLR-15442 - Getting issue details... STATUS | DONE |
| solr.jetty.host | solr.host.bind | SOLR-15442 - Getting issue details... STATUS | DONE |
solr.port.advertise | no change | ||
jetty.port | solr.port.listen | SOLR-15442 - Getting issue details... STATUS | DONE |
solr.jetty.https.port | solr.port.listen | SOLR-15442 - Getting issue details... STATUS | DONE |
java.security.auth.login.config | Jetty level | ||
javax.net.ssl.keyStorePassword | Jetty level | ||
javax.net.ssl.trustStorePassword | Jetty level | ||
javax.security.auth.useSubjectCredsOnly | Jetty level | ||
| jetty.port | Jetty level | ||
max.file.store.size | solr.filestore.filesize.max | DistribFileStore | DONE |
prepRecoveryReadTimeoutExtraWait | solr.cloud.preprecoveryreadtimeoutadditional.ms | Eric: I went with solr.cloud.prep.recovery.read.timeout.additional.ms | DONE |
| runtime.lib.size | BlobRepository | REMOVED | |
solr.allow.unsafe.resourceloading | solr.resourceloading.restricted | Invert meaning; default to true. ERic: How about solr.resourceloading.restricted.enabled=true | DONE |
solr.alwaysOnTraceId | solr.tracing.always.on.enabled | DONE | |
solr.auth.jwt.allowOutboundHttp | solr.auth.jwt.outbound.http.enabled | DONE | |
solr.authorization.superuser | solr.auth.superuser | DONE | |
solr.circuitbreaker.errorcode | solr.circuitbreaker.errorcode | Eric: no change??? | |
| solr.data.dir | |||
| solr.data.home | |||
solr.default.confdir | DONE | ||
solr.deleteUnknownCores | solr.cloud.startup.delete.unknown.cores.enabled | DONE | |
solr.disable.allowUrls | solr.requests.allow.urls | DONE | |
solr.disable.shardsWhitelist | solr.requests.allow.urls | Removed deprecated value | DONE |
solr.disableConfigSetsCreateAuthChecks | solr.configset.create.auth.checks.disabled | eric: I think this is no longer used in 10. | REMOVED |
solr.disableFingerprint | solr.index.replication.fingerprint.disabled | DONE | |
solr.disableRequestId | solr.tracing.requestid.disabled | the feature goes away in 10? | |
solr.dns.prevent.reverse.lookup | solr.admin.handler.systeminfo.dns.reverse.lookup.enabled | DONE | |
solr.enableRemoteStreaming | solr.requests.streaming.remote.enabled | DONE | |
solr.enableStreamBody | solr.requests.streaming.body.enabled | DONE | |
| solr.environment | |||
solr.facet.stream.tiered | solr.streamingexpressions.facet.tiered.enabled | DONE | |
solr.hdfs.blockcache.global | REMOVED | ||
| solr.hdfs.confdir | REMOVED | ||
| solr.hdfs.home | REMOVED | ||
solr.hdfs.sync.block | REMOVED | ||
solr.hiddenSysProps | solr.responses.hidden.sys.props | DONE | |
solr.hideStackTrace | solr.responses.stacktrace.disabled | eric: what about being solr.responses.stacktrace.enabled, and it defaults to false? | DONE |
| solr.home | In ZkCli, should it be solr.solr.home? | ||
solr.http.disableCookies | solr.http.cookies.disable | https://github.com/apache/solr/pull/3833/ | |
| solr.http1 | |||
solr.httpclient.builder.factory | |||
solr.httpclient.builder.factory | |||
solr.httpclient.config | |||
solr.httpclient.socketFactory.registry.provider | won't rename, it belongs to a client that is only used in tests and in the test-framework and we will get rid of. | ||
| solr.install.dir | |||
| solr.jaas.debug | |||
solr.jetty.https.port | |||
solr.jetty.keystore.password | |||
solr.jetty.truststore.password | |||
solr.kerberos.cookie.domain | |||
solr.kerberos.cookie.portaware | |||
solr.kerberos.delegation.token.enabled | |||
solr.kerberos.jaas.appname | |||
solr.keyStoreReload.enabled | solr.keystore.reload.enabled ??? | There is a related solr.jetty.sslContext.reload.scanInterval, what should that be? the variable it sets is keyStoreReloadIntervalSecs so maybe solr.keystore.reload.interval.secs? | DONE |
| solr.log.dir | |||
| solr.log.level | |||
solr.log.muteconsole | |||
solr.log.requestlog.enabled | solr.logs.requestlog.enabled | https://github.com/apache/solr/pull/3856 | |
solr.log.requestlog.retaindays | solr.logs.requestlog.retain.days | https://github.com/apache/solr/pull/3856 | |
| solr.modules | |||
| solr.node.roles | |||
solr.pki.acceptVersions | |||
solr.pki.sendVersion | |||
solr.placementplugin.default | |||
solr.redaction.system.pattern | |||
solr.security.aclautorepair.disable | |||
solr.shardSplit.checkDiskSpace.enabled | solr.index.shardsplit.checkdiskspace.enabled | DONE | |
| solr.solr.home | |||
solr.solrxml.required | |||
solr.ssl.checkPeerName | solr.ssl.check.peer.name.enabled ? | Also related solr.jetty.ssl.sniHostCheck, could be solr.jetty.ssl.sni.host.check.enabled | |
solr.ssl.credential.provider.chain | |||
solr.traceHostName | solr.trace.host.name? | ||
solr.traceIdHeader | solr.trace.id.header? | ||
solr.ui.headers.csp.connect-src.urls | |||
solr.use.str.intern | |||
solr.useExitableDirectoryReader | REMOVED! | ||
| solr.v2RealPath | NO LONGER EXISTS | ||
solr.zk.embedded.host | |||
solr.zookeeper.connectionStrategy | NO LONGER EXISTS | ||
solrcloud.skip.autorecovery | |||
solrConfigSetForbiddenFileTypes | solr.configset.forbidden.file.types | DONE | |
StreamingExpressionMacros | solr.streamingexpressions.macros.enabled | set to false | DONE |
| urlScheme | solr.cloud.url.scheme??? | ||
useCachedStatsBetweenGetMBeanInfoCalls | NO LONGER EXISTS | ||
| zkACLProvider | solr.zookeeper.client.credentials.acl.provider? | ||
zkCredentialsInjector | solr.zookeeper.client.credentials.injector? | ||
zkCredentialsProvider | solr.zookeeper.client.credentials.provider?? | ||
zkDigestCredentialsFile | solr.zookeeper.client.credentials.file?? | ||
| zkHost | DONE | ||
| zkRun | solr.zookeeper.server.enabled | now a boolean not a string | DONE |
| zkRunOnly | REMOVED | ||
| zkServerConfDir | solr.zookeeper.server.confdir | DONE | |
| zkServerDataDir | solr.zookeeper.server.datadir | DONE | |
zookeeper.4lw.commands.whitelist | PR opened, but really requires modifying ZK project so wont' do | WONT DO | |
waitForZk | solr.cloud.wait.for.zk.seconds | Found during code review by Smiley, was previouysly SOLR_WAIT_FOR_ZK maybe? | DONE |
solr.prs.default | solr.cloud.prs.enabled | DONE | |
zkConnectTimeout | solr.zookeeper.client.connect.timeout | (see SolrZkClientTimeout.java for more) | Done |
solr.allowPaths | solr.security.allow.paths | DONE | |
solr.allowUrls | solr.security.allow.urls | We already added the solr.security.allow.urls.enabled which controls this behavior being used. | DONE |
Test code | |||
managed.schema.mutable | solr.schema.managed.mutable | ||
solr.directoryFactory | |||
| tests.jettySsl | |||
tests.jettySsl.clientAuth | |||
tests.luceneMatchVersion | |||
| tests.seed | |||
tests.shardhandler.randomSeed | |||
| tests.src.home | |||
| tests.verbose | |||
tests.zk.limiterAction | |||
tests.zk.violationReportAction | |||
solr.tests.cloud.cm.connloss | |||
solr.tests.cloud.cm.enabled | |||
solr.tests.cloud.cm.exp | |||
solr.tests.cloud.cm.runlength | |||
solr.tests.cloud.cm.shardcount | |||
solr.tests.cloud.cm.slicecount | |||
solr.tests.EnumFieldTest.indexed | |||
solr.tests.EnumFieldType | |||
solr.tests.IntegerFieldType | |||
solr.tests.numeric.dv | |||
solr.tests.ramBufferSizeMB | |||
solr.tests.ramPerThreadHardLimitMB | |||
solr.tests.use.iptables | |||