The purpose of the replication timeout was not to control the purgatory
size but rather to bound the time you block on replication to other servers.

We discussed making it a server-side config but the rationale for making a
client configuration is that these timeouts are fundamentally about how
long the client app is willing to wait which isn't something the server can
know, and isn't something which has a single value for all apps using a
topic.

Personally I don't think this rationale still makes sense and I don't think
we should change it.

I think the question is whether we can just set this timeout automatically
off whatever higher level timeout the client configures, at least as a
default.

-Jay

On Tue, May 26, 2015 at 4:46 PM, Jiangjie Qin <j...@linkedin.com.invalid>
wrote:

> Hi,
>
> I am updating the wiki for KIP-19 and wondering why we have a replication
> timeout on producer side and in producer request?
>
> From what I understand this is a server side setting and the reasons we
> need this replication timeout is because we want to control the purgatory
> size. If that is the case should we just have the replication timeout as a
> broker configuration?
> The downside of having it on server side might be that producer could have
> a request timeout/socket timeout smaller than replication timeout. In this
> case we can put request timeout in producer request and if the request
> timeout is smaller than replication timeout on server side, we return a
> mis-cofiguration exception.
>
> So we can have a producer request V1 which removes ack timeout but adds
> request timeout. This will give user a cleaner timeout configurations on
> producer side as well.
>
> What do people think about this?
>
> Thanks,
>
> Jiangjie (Becket) Qin
>
>

Reply via email to