-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Duplicate mappers consume too much heap memory #86440
Comments
Pinging @elastic/es-search (Team:Search) |
Related to #77466 |
I've looked at bit deeper at the memory usage here.
What can we do to reduce the amount of memory taken by the lookup structures as well as the
|
Would another option for frozen indices be just not to store the FieldMappers? From a quick look we would have to rework a couple of things around vector codecs and get, and the GetFieldMappings action wouldn't work, but these might be acceptable trade-offs. |
Even with recent fixes to the heap consumption of field mappers, large frozen nodes require a lot of heap memory for duplicate mappers. An example from benchmarking today's master branch shows 67 different mappings taking up only ~100kb compressed in the cluster state on a data node holding ~16k indices/shards.
On the other hand the actual
MappingLookup
instances (and thus the mapper service instances) consume 6.8G of heap.(not that these are all beats mappings, so lots of fields and many keywords but I think it's a representative use case)
In fact, in the many shards benchmark that this is extracted from (that has this data node run indexing and searching at the time the dump was taken), the
MappingLookup
instances are the single largest consumer of heap.It seems to me there's no technical reason why we should not be able to massively deduplicate objects here when all the mappings are the same. We already do a lot of deduplication via tricks like #86301 that helped bring down the consumption a lot recently but it seems we should go a little further here and tackle this at a higher level given the numbers?
Marking/suggesting this as ">bug" since it diminishes the scalability of frozen/warm/cold nodes greatly and should be somewhat straigh-forward to fix hopefully that classification is obviously debatable.
The text was updated successfully, but these errors were encountered: