[
https://issues.apache.org/jira/browse/COUCHDB-246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672520#action_12672520
]
Antony Blakey commented on COUCHDB-246:
---------------------------------------
I have this problem with _externals that implement lazy-view update semantics.
The problem being that the amount of work required for the _external to catchup
to the current update_seq is unknown. I experimented with a solution that
allows the external to return a keep-alive message to the server, which doesn't
return a value to the client but does stop the server killing the external.
I got distracted and didn't complete that work, but I think this is a better
solution than a fixed timeout. The problem with a timeout is that it doesn't
account for machine performance or load, or the possible highly variable amount
of work that the external needs to do on a per-request basis, whereas a
keep-alive more correctly captures what you want e.g. the external process is
making progress. Such a keep alive could specify a timeout value, so that the
external process could control the definition of failure according to how often
it will send keep-alives, but that might be an unnecessary complication.
> allow customization of external process timeout
> -----------------------------------------------
>
> Key: COUCHDB-246
> URL: https://issues.apache.org/jira/browse/COUCHDB-246
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core
> Affects Versions: 0.9
> Reporter: Robert Newson
> Priority: Blocker
> Fix For: 0.9
>
>
> If an external process takes too long to respond, it is killed. The timeout
> is quite short (a few seconds) and is not configurable from .ini files today.
> couchdb-lucene could use this ability as the first attempt to sort on a field
> in a large index is slow while it builds a cache. With the timeout, it's
> killed and the partial work is lost.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.