The rare thing is that happends when the cluster status is red (thats why i
think the client is the problem).
This is my code
ElasticResponse response;
try{
if(category != null && !category.isEmpty()){
SearchRequestBuilder searchQuery = client.prepareSearch(ConfigFactory.load
().getString("elasticsearch.updater.index"))
.setSearchType(SearchType.QUERY_THEN_FETCH).setSize(numberOfAds);
BoolQueryBuilder qb = QueryBuilders
.boolQuery();
FunctionScoreQueryBuilder functionQueryBuilder = createFunctionScore(
external, qb);
List<Map<String, Object>> ads = new ArrayList<Map<String, Object>>();
String categPath = Category.getCategoryIdPath(category);
Deque<SearchCategory> categories = new LinkedList<ElasticSearch.
SearchCategory>();
for(String category : categPath.split("_")){
categories.addFirst(new SearchCategory(category,false, categPath));
}
functionQueryBuilder = functionQueryBuilder.boostMode(CombineFunction.MULT
);
functionQueryBuilder = functionQueryBuilder.scoreMode("max");
fillWithFunctions(functionQueryBuilder,categories,INITIAL_BOOST);
SearchResponse searchResponse = searchQuery.setTypes(categPath.split("_")[
0]).setQuery(functionQueryBuilder).execute().actionGet(50, TimeUnit.
MILLISECONDS);
SearchHits hits = searchResponse.getHits();
Iterator<SearchHit> it = hits.iterator();
int count = 0;
while(it.hasNext() && count < numberOfAds){
Map<String, Object> sourceAsMap = it.next().sourceAsMap();
ads.add(sourceAsMap);
count++;
}
if(ads.isEmpty()){
Logger.info("ES - No ads found. Category: " + category);
response = new ElasticResponse(NO_CONTENT);
}else{
response = new ElasticResponse(ads,OK, position);
}
}else{
Logger.info("ES - No category sent.");
response = new ElasticResponse(BAD_REQUEST);
}
}catch(ElasticsearchTimeoutException e){
Logger.info("ES - Timeout.", e);
MetricsManager.getElasticsearchMetrics().incrementTimeoutCounter();
response = new ElasticResponse(REQUEST_TIMEOUT);
}catch(Exception e){
Logger.error("Searching in elasticsearch",e);
response = new ElasticResponse(INTERNAL_SERVER_ERROR);
}
In the code you can see we define a timeout when executing *actionGet*.
This works fine when the cluster is OK (we have a limited SLA) but when the
ES Cluster goes down it doesn't take it into count, raising our SLA.
Thanks!
On Monday, June 23, 2014 4:07:06 PM UTC-3, Jörg Prante wrote:
>
> Most likely you have memory leaks in your app and your client memory was
> exhausted.
>
> If you can show the client code how you submit queries and process
> responses and the stack traces you receive, more help could be possible to
> offer.
>
> A general hint is to switch to Java 7.
>
> Jörg
>
>
> On Mon, Jun 23, 2014 at 8:14 PM, Santiago Ferrer Deheza <
> [email protected] <javascript:>> wrote:
>
>> Hi there!
>>
>> I'm having this exception (*'java.lang.OutOfMemoryError: GC overhead
>> limit exceeded'*) *in client* when my ES 1.1.1 cluster goes down. Im
>> having problems with the cluster (work in progress) but it doesn't seem
>> right that the client server throws *OutOfMemoryError.*
>>
>> Client Spcs:
>>
>> - Java 6u32
>> - Ubuntu 12.04 LTS
>> - Elasticsearch 1.1.1 Jar
>>
>>
>> The client is only use for searching. Any clue? If more information is
>> need just let me know.
>>
>> Thanks,
>> Santi!
>>
>> --
>> 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 [email protected] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elasticsearch/b34378cf-8f43-4f65-b8a6-e6f649150e67%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/elasticsearch/b34378cf-8f43-4f65-b8a6-e6f649150e67%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/b59e9c2a-77d3-4d52-a330-d9d20a77e6bb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.