Return-Path: X-Original-To: apmail-hc-dev-archive@www.apache.org Delivered-To: apmail-hc-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 85443E98E for ; Mon, 11 Feb 2013 14:55:16 +0000 (UTC) Received: (qmail 33570 invoked by uid 500); 11 Feb 2013 14:55:16 -0000 Delivered-To: apmail-hc-dev-archive@hc.apache.org Received: (qmail 33428 invoked by uid 500); 11 Feb 2013 14:55:14 -0000 Mailing-List: contact dev-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list dev@hc.apache.org Received: (qmail 33362 invoked by uid 99); 11 Feb 2013 14:55:12 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Feb 2013 14:55:12 +0000 Date: Mon, 11 Feb 2013 14:55:12 +0000 (UTC) From: "Francois-Xavier Bonnet (JIRA)" To: dev@hc.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HTTPCLIENT-1310) Allow background validation to optionally back off after a number of failed requests MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HTTPCLIENT-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575818#comment-13575818 ] Francois-Xavier Bonnet commented on HTTPCLIENT-1310: ---------------------------------------------------- Martin, Did you test if this patch improves the performance of the cache in the case when the remote server is down? From the client point of view, as re-validation is done in the background, I guess it should not make any difference. In addition there is a way for the code using the HttpClient to see that there was an issue: by checking the "Warning" header that is set accordingly to the specification: http://tools.ietf.org/html/rfc5861 Francois-Xavier > Allow background validation to optionally back off after a number of failed requests > ------------------------------------------------------------------------------------ > > Key: HTTPCLIENT-1310 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1310 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: Cache > Reporter: Martin Meinhold > Attachments: 0001-HTTPCLIENT-1310-Allow-clients-to-change-the-used-sch.patch > > > We are successfully using the background validation to asynchronously update cache entries while returning a stale document (stale-while-revalidate cache control header). Also in case an error has happened, the stale document is used (stale-if-error cache control header). Works perfectly. Guys - great work you made this happen. > Now the tricky part: as soon there is an issue like e.g. the remote server is down, the stale-if-error header prevent the cache from being updated (which of course is the intention of that header). But this also means, that code using the HttpClient has no way to discover that there was an issue. So every following request will get that stale document but also trigger a background revalidation. > As an improvement it should be possible that the background validation backs off after a certain amount of failed requests. This should be optional and not the default. > I want to contribute some code we already have working on a 4.2 branch. The central idea is to vary the scheduling strategy the AsynchronousValidation uses to estimate _when_ the background validation of a certain request should happen. Of course, the default would be immediately. > In fact this would move code currently submitting tasks to the executor from the AsynchronousValidation into a separate class. Thus the AsynchronousValidation would become kind of a director role by simply enqueuing next requests and keeping track which of them failed and which were successful. A strategy could - based on the failure count - execute them immediately or later. Again, to clarify: the default behaviour would be to execute every incoming background validation request immediately regardless of the error count. > What do you think? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional commands, e-mail: dev-help@hc.apache.org