Question about performance of has_child filter


(Josh F) #1

Hey all,

I am running a 5 node ES cluster (version 0.90.4) and recently experienced
an OutOfMemory issue where all nodes simultaneously went out of memory.
I am wondering if this could be related to my use of the has_child filter.

I have two document types: 'Item' and 'ItemInList'. There is a parent child
relationship here, ItemInList is a child of Item. Any item can be in
several lists.
There are around 300,000 Item documents at 21 million ItemInList documents.

I frequently execute a has_child filter (maybe around 200-400 per minute),
to retrieve a list (i.e. get all the items which have an ItemInList child
which contains a given listId)

in Java this looks like: FilterBuilders.hasChildFilter("ItemInList",
FilterBuilders.termFilter("ListId", listId));

Are there any known performance issues with doing this? Is the has_child
filter cached by default? Does anyone have any tips to prevent out of
memory issues with these type of queries?

Thanks for any advice,
Josh

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/e3c01918-de5a-4525-b4a3-a56cde670835%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(David Pilato) #2

As far as I remember, some memory improvements have been done since.
I would suggest to upgrade to 0.90.10.

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 18 janv. 2014 à 13:29, Josh F jofo90@gmail.com a écrit :

Hey all,

I am running a 5 node ES cluster (version 0.90.4) and recently experienced an OutOfMemory issue where all nodes simultaneously went out of memory.
I am wondering if this could be related to my use of the has_child filter.

I have two document types: 'Item' and 'ItemInList'. There is a parent child relationship here, ItemInList is a child of Item. Any item can be in several lists.
There are around 300,000 Item documents at 21 million ItemInList documents.

I frequently execute a has_child filter (maybe around 200-400 per minute), to retrieve a list (i.e. get all the items which have an ItemInList child which contains a given listId)

in Java this looks like: FilterBuilders.hasChildFilter("ItemInList",
FilterBuilders.termFilter("ListId", listId));

Are there any known performance issues with doing this? Is the has_child filter cached by default? Does anyone have any tips to prevent out of memory issues with these type of queries?

Thanks for any advice,
Josh

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/e3c01918-de5a-4525-b4a3-a56cde670835%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/5F8B6362-D300-4B96-A87A-35B24324B248%40pilato.fr.
For more options, visit https://groups.google.com/groups/opt_out.


(Josh F) #3

I will upgrade, I didn't really see anything relating to this in the
release notes, though - except possibly this one:

Thanks

On Saturday, January 18, 2014 1:36:03 PM UTC, David Pilato wrote:

As far as I remember, some memory improvements have been done since.
I would suggest to upgrade to 0.90.10.

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 18 janv. 2014 à 13:29, Josh F <jof...@gmail.com <javascript:>> a
écrit :

Hey all,

I am running a 5 node ES cluster (version 0.90.4) and recently experienced
an OutOfMemory issue where all nodes simultaneously went out of memory.
I am wondering if this could be related to my use of the has_child filter.

I have two document types: 'Item' and 'ItemInList'. There is a parent
child relationship here, ItemInList is a child of Item. Any item can be in
several lists.
There are around 300,000 Item documents at 21 million ItemInList documents.

I frequently execute a has_child filter (maybe around 200-400 per minute),
to retrieve a list (i.e. get all the items which have an ItemInList child
which contains a given listId)

in Java this looks like: FilterBuilders.hasChildFilter("ItemInList",
FilterBuilders.termFilter("ListId", listId));

Are there any known performance issues with doing this? Is the has_child
filter cached by default? Does anyone have any tips to prevent out of
memory issues with these type of queries?

Thanks for any advice,
Josh

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearc...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/e3c01918-de5a-4525-b4a3-a56cde670835%40googlegroups.com
.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/2361be06-81dd-4b36-88a9-9e751cc91b19%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(system) #4