Compose Proxy Timeouts

Compose Deployments often use proxies, such as HAproxy, to provide a more secure way of accessing the databases within the deployment. As such they manage the life cycle of connections between the server and client. We detail them here as a reference for driver writers and others who have an interest in the low-level activity of Compose database connections.

MongoDB and PostgreSQL

Setting

MongoDB

PostgreSQL

Applies

client

5m

1d

When the client is expect to acknowledge or send data.

connect

4s

4s

When a connection is being made between the proxy and the server.

server

5m

30m

When the server is expected to acknowledge or send data.

tunnel

1d

1d

When a bidirectional connection is established between a client and a server, and the connection remains inactive in both directions.

client-fin

1h

5m

When the client is expected to acknowledge or send data while one direction is already shut down.

check

5s

5s

As a secondary timeout check when a connection is being made between the proxy and the server.

Redis and MySQL

Setting

Redis

MySQL

Applies

client

5m

1d

When the client is expect to acknowledge or send data.

connect

4s

4s

When a connection is being made between the proxy and the server.

server

5m

30m

When the server is expected to acknowledge or send data.

tunnel

1d

1d

When a bidirectional connection is established between a client and a server, and the connection remains inactive in both directions.

client-fin

1h

5m

When the client is expected to acknowledge or send data while one direction is already shut down.

check

5s

5s

As a secondary timeout check when a connection is being made between the proxy and the server.

RethinkDB and Scylla

Setting

RethinkDB

Scylla

Applies

client

5m

5m

When the client is expect to acknowledge or send data.

connect

4s

4s

When a connection is being made between the proxy and the server.

server

5m

5m

When the server is expected to acknowledge or send data.

tunnel

1d

1d

When a bidirectional connection is established between a client and a server, and the connection remains inactive in both directions.

client-fin

1h

1h

When the client is expected to acknowledge or send data while one direction is already shut down.

check

5s

5s

As a secondary timeout check when a connection is being made between the proxy and the server.

RabbitMQ and etcd

Setting

RabbitMQ

etcd

Applies

client

3h

1d

When the client is expect to acknowledge or send data.

connect

10s

1m

When a connection is being made between the proxy and the server.

server

3h

1d

When the server is expected to acknowledge or send data.

tunnel

1d

When a bidirectional connection is established between a client and a server, and the connection remains inactive in both directions.

client-fin

1h

When the client is expected to acknowledge or send data while one direction is already shut down.

check

5s

1m

As a secondary timeout check when a connection is being made between the proxy and the server.

Elasticsearch

Setting

Elasticsearch

Applies

client

1m

When the client is expect to acknowledge or send data.

connect

9s

When a connection is being made between the proxy and the server.

server

2m

When the server is expected to acknowledge or send data.

tunnel

When a bidirectional connection is established between a client and a server, and the connection remains inactive in both directions.

client-fin

When the client is expected to acknowledge or send data while one direction is already shut down.

check

5s

As a secondary timeout check when a connection is being made between the proxy and the server.

http-request

5s

The maximum allowed time to wait for a complete HTTP request


Still Need Help?

If this article didn't solve things, summon a human and get some help!