After a little while they got out of sync and connection timeouts occured.
This is due to the way Azure handles TCP connections. All VMs are NATted 1:1 and TCP connections are silently dropped (no TCP RST) after 4 minutes of inactivity.
Dynomite respects Linux tcp keepalive values. But these keepalive probes start after 4 hrs of inactivity. So the connection drops after 4 minutes and Dynomite gets a read timeout after 30 seconds and drops the packets.
To fix it I changed the tcp keepalive settings on the linux vm to the following:
This took a while to figure out.
DC 1 is a VM on Azure. DC 2 is an on-prem VM.
After a little while they got out of sync and connection timeouts occured.
This is due to the way Azure handles TCP connections. All VMs are NATted 1:1 and TCP connections are silently dropped (no TCP RST) after 4 minutes of inactivity.
Dynomite respects Linux tcp keepalive values. But these keepalive probes start after 4 hrs of inactivity. So the connection drops after 4 minutes and Dynomite gets a read timeout after 30 seconds and drops the packets.
To fix it I changed the tcp keepalive settings on the linux vm to the following:
This seems to have remediated the issue.