I have a SolrCloud cluster (version 6.5.1) with around 3300 cores per instance. I've been investigating what is driving heap utilization since it is higher than I expected. I took a heap dump and found the largest driver of heap utilization is the array of VersionBucket objects in the org.apache.solr.update.VersionInfo class. The array is size 65536 and there is one per SolrCore instance. Each instance of the array is 1.8MB so the aggregate size is 6GB in heap.
I understand from reading the discussion in SOLR-6820 that 65536 is the recommended default for this setting now because it results in higher document write rates than the old default of 256. I would like to reduce my heap utilization and I'm OK with somewhat slower document writing throughput. My question is, it is safe to reduce the value of numVersionBuckets on all of my existing cores without reindexing my data? My solrconfig.xml contains this for all of my collections: <updateHandler class="solr.DirectUpdateHandler2"> <updateLog> <str name="dir">${solr.ulog.dir:}</str> <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int> </updateLog> </updateHandler> Assuming it is safe to change, can I just add a vm arg to the Solr process like "-Dsolr.ulog.numVersionBuckets=256" to override the value for all cores at once? Or do I have to change and re-upload the solrconfig.xml files and reload the cores? Thanks