[ https://issues.apache.org/jira/browse/SOLR-9454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shalin Shekhar Mangar updated SOLR-9454: ---------------------------------------- Attachment: HashMapNode_Allocations.png HashMapNodeArray_Allocations.png Screenshots from the java flight recorder showing allocations for HashMap$Node and HashMap$Node[]. > Reduce object allocation during indexing because of > JavaBinCodec.writeExternString() > ------------------------------------------------------------------------------------ > > Key: SOLR-9454 > URL: https://issues.apache.org/jira/browse/SOLR-9454 > Project: Solr > Issue Type: Improvement > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrCloud, update > Reporter: Shalin Shekhar Mangar > Labels: difficulty-medium, impact-medium > Fix For: master (7.0), 6.3 > > Attachments: HashMapNodeArray_Allocations.png, > HashMapNode_Allocations.png, SOLR-9454.patch > > > I setup Java Flight Recorder to profile indexing a 650MB JSON file using > bin/post on 2 shard, 2 replica setup. It shows that the > JavaBinCodec.writeExternString(String) method contributes a lot of garbage > during indexing in SolrCloud. More specifically, it contributes ~1GB of > HashMap$Node objects and ~450MB of HashMap$Node[] objects. > Most of this allocation is because every request is serialized using a new > instance of JavaBinUpdateRequestCodec which internally allocates a new > HashMap for storing the extern strings. > We should explore keeping a global extern string map to eliminate redundant > allocations. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org