Working primarily from this blog post I have managed to get replication working between two test servers. The master/server are supposedly set up to do streaming replication, with WAL archiving as a backup if streaming replication falls too far behind. This is mostly consistent with the documentation itself.
Now, because these are test servers, there isn't a bunch of data being pushed into the master. Literally just me entering queries with psql to test that it works. When I first got it up and running the slave seemed to replicate instantaneously, but if I restart the master server, I end up where it only replicates after my archive_timeout.
It's not clear to me why this timeout is coming into play. Has streaming replication broke as soon as I restart the server and it's falling back entirely on the wal-shipping replication method?
In the postgreSQL docs for the archive_timeout parameter it says:
...if your server generates little WAL traffic (or has slack periods where it does so), there could be a long delay between the completion of a transaction and its safe recording in archive storage. ... You should consider using streaming replication, instead of archiving, if you want data to be copied off the master server more quickly than that.
Now, in production my servers should have plenty of WAL traffic, but what concerns me is that my servers are supposed to be set up with streaming replication and the docs don't seem to tell me to do anything I haven't done already to set it up.
So why am I only seeing replication to the slave after the archive_timeout?
edit - This is PostgreSQL 9.3 running on Ubuntu 13.04 on both machines