You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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
Modulesclusteringclustering


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

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:

propertyproposedcomment

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

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



disableSolrFieldCacheMBeanEntryListJmx



doNotWeakenSecureRandom



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

managed.schema.mutable

solr.schema.managed.mutable

max.file.store.size

solr.filestore.filesize.maxDistribFileStore

prepRecoveryReadTimeoutExtraWait



runtime.lib.size
BlobRepository

solr.allow.unsafe.resourceloading



solr.always.on.trace.id



solr.alwaysOnTraceId



solr.auth.jwt.allowOutboundHttp



solr.authorization.superuser



solr.boolean

solr.boolean.nonexist



solr.circuitbreaker.errorcode



solr.commasep

solr.data.dir

solr.data.home

solr.default.confdir



solr.deleteUnknownCores



solr.DirectoryFactory



solr.directoryFactory



solr.disable.allowUrls



solr.disable.shardsWhitelist



solr.disableConfigSetsCreateAuthChecks



solr.disableFingerprint



solr.disableRequestId



solr.dns.prevent.reverse.lookup



solr.enableRemoteStreaming



solr.enableStreamBody



solr.environment

solr.facet.stream.tiered



solr.hdfs.blockcache.global



solr.hdfs.confdir

solr.hdfs.home

solr.hdfs.sync.block



solr.hiddenSysProps



solr.hideStackTrace



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

solr.install.dir

solr.jaas.debug

solr.jetty.https.port



solr.jetty.https.port



solr.jetty.keystore.password



solr.jetty.truststore.password



solr.json.list

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

solr.log.muteconsole



solr.log.requestlog.enabled



solr.log.requestlog.retaindays



solr.LogLevel

solr.logLevel

solr.long

solr.long.nonexist



solr.modules

solr.node.roles

solr.nonexist

solr.overwrite

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

solr.solrxml.required



solr.ssl.checkPeerName



solr.ssl.credential.provider.chain



solr.ssl.key.store.password



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



solr.traceHostName



solr.traceIdHeader



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



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



solrLong

StreamingExpressionMacros



tests.jettySsl

tests.jettySsl.clientAuth



tests.luceneMatchVersion



tests.seed

tests.shardhandler.randomSeed



tests.src.home

tests.verbose

tests.zk.limiterAction



tests.zk.violationReportAction



urlScheme

useCachedStatsBetweenGetMBeanInfoCalls



zkACLProvider

zkCredentialsInjector



zkCredentialsProvider



zkDigestCredentialsFile



zkHost

zkRun

zkRunOnly

zkServerConfDir

zkServerDataDir

zookeeper.4lw.commands.whitelist



  • No labels