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.

WhatFolder nametop-catsub-catComment
ModulesclusteringsearchclusteringDWS: probably doesn't deserve it's own top category

extractionindexupdate.extraction

gcs-repositorybackupgcs

hadoop-authsecurityauth.hadoop

hdfshdfs


jwt-authsecurityauth.jwt

langidindexupdate.langid

ltrsearchltr

opentelemetrytracing
Right now it is tracing, this module may later also handle logging or metrics?

s3-repositorybackups3

scriptingindexupdate.scriptingNote: subject-area could expand to beyond updates

sqlsearchsql
SolrJsolrjsolrj

Coreanalysisschemaanalysis

apiapi??


clicli


clientsolrj
This is same as solrj?

cloudoverseer??
Bad name, there is "overseer" and "api" below

clustercluster??
These are really cluster plugins / singletons...

corecore??
Is 'core' helpful here?This hides 'backup.repository' which overlaps with modules..

filestorefilestore


handlerhandler???
Inside "handler" are all kinds of features, needs to be broken down on feature level

highlightsearchhighlight

indexindexmergepolicyContains mostly merge policies

internal---
Contains "csv" tools

jerseyapi
Jax-RS related API code

legacy---


logginglogging


metricsmetrics


packagemanager

packages




parsersearchqueryparserQuery parsing

pkg---
Related to package management

querysearchqueryContains two query impls that are in Solr and not in Lucene. "query" is perhaps a nice top-level cat

requestsearchrequestContains all kids of request related classes, faceting, DV, QueryRequest etc 

responsesearchresponseResponse writers, json, xml csv... and transformers

restschemaanalysisManaged resources in schema

schemaschemaanalysisField types.etc

searchsearch
Lots of sub categories


searchfacet


searchfunction


searchgrouping


searchjoin


searchmlt


searchvector


searchsimilarities


searchstats

securitysecurityauthSecurity could also have sub-cat for SSL etc


securityaudit


securityauthz

servlet---
Jetty related

spellingsearchspellcheck

uninverting---


updateindexupdate

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:

propertyproposedcommentJIRA

authenticationPlugin

solr.security.auth.plugin

basicauthsolr.security.auth.basicauth.credentials

bootstrap_conf???Is this the legacy bootstrapping based on pre-existing config on disk?

bootstrap_confdir

???

bucketVersionLockTimeoutMs

solr.index.updatelog.bucketversionlock.timeout.msin <updateHandler> in solrconfig.xml

cloudSolrClientMaxStaleRetries

solr.solrj.cloud.max.stale.retries

collection.configName

solr.collection.config.nameNot used as system property

configset.upload.enabled

solr.configset.upload.enabled

createZkChrootsolr.zookeeper.chroot.create

disable.configEdit

solr.configset.edit.disabled

disable.v2.apisolr.api.v2.disabled

disableAdminUIsolr.ui.disabled

disableSolrFieldCacheMBeanEntryList

solr.metrics.fieldcache.entries.disabled

disableSolrFieldCacheMBeanEntryListJmx


Remove this; seems redundant

doNotWeakenSecureRandom


in benchmarking and obscure; just leave it

enable.packages

solr.packages.enabled

enable.update.log

solr.index.updatelog.enabled

gc.log.opts??

hadoop.home.dir




hadoop.security.credential.provider.path




hadoopauth.tracehttp

solr.security.auth.hadoop.tracehttp

hosthostJetty level

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.maxDistribFileStore

prepRecoveryReadTimeoutExtraWait

solr.cloud.preprecoveryreadtimeoutadditional.ms

runtime.lib.size
BlobRepository

solr.allow.unsafe.resourceloading

solr.resourceloading.restrictedInvert meaning; default to true

solr.alwaysOnTraceId

solr.tracing.always.on.enabled

solr.auth.jwt.allowOutboundHttp

solr.auth.jwt.outbound.http.enabled

solr.authorization.superuser

solr.auth.superuser

solr.circuitbreaker.errorcode

solr.circuitbreaker.errorcode

solr.data.dir


solr.data.home


solr.default.confdir




solr.deleteUnknownCores

solr.cloud.startup.delete.unknown.cores.enabled

solr.disable.allowUrls

solr.requests.allow.urls

solr.disable.shardsWhitelist


(deprecated; lets remove from main)

solr.disableConfigSetsCreateAuthChecks

solr.configset.create.auth.checks.disabled

solr.disableFingerprint

solr.index.replication.fingerprint.disabled

solr.disableRequestId

solr.tracing.requestid.disabledthe feature goes away in 10?

solr.dns.prevent.reverse.lookup

solr.admin.handler.systeminfo.dns.prevent.reverse.lookup.enabled

solr.enableRemoteStreaming

solr.requests.streaming.remote.enabled

solr.enableStreamBody

solr.requests.streaming.body.enabled

solr.environment


solr.facet.stream.tiered

solr.streamingexpressions.facet.tiered.enabled

solr.hdfs.blockcache.global




solr.hdfs.confdir


solr.hdfs.home


solr.hdfs.sync.block




solr.hiddenSysProps

solr.responses.hidden.sys.props

solr.hideStackTrace

solr.responses.stacktrace.disabled

solr.home
In ZkCli, should it be solr.solr.home?

solr.http.disableCookies




solr.http1


solr.httpclient.builder.factory




solr.httpclient.builder.factory




solr.httpclient.config




solr.httpclient.socketFactory.registry.provider




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.log.dir


solr.log.level


solr.log.muteconsole




solr.log.requestlog.enabled




solr.log.requestlog.retaindays




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.solr.home


solr.solrxml.required




solr.ssl.checkPeerName




solr.ssl.credential.provider.chain




solr.traceHostName




solr.traceIdHeader




solr.ui.headers.csp.connect-src.urls




solr.use.str.intern




solr.useExitableDirectoryReader




solr.v2RealPath


solr.zk.embedded.host




solr.zookeeper.connectionStrategy




solrcloud.skip.autorecovery




solrConfigSetForbiddenFileTypes




StreamingExpressionMacros




urlScheme


useCachedStatsBetweenGetMBeanInfoCalls




zkACLProvider


zkCredentialsInjector




zkCredentialsProvider




zkDigestCredentialsFile




zkHost


zkRun


zkRunOnly


zkServerConfDir


zkServerDataDir


zookeeper.4lw.commands.whitelist








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




  • No labels