Writes
Support for COMMIT_WAIT
is
experimental and requires careful tuning of the time-synchronization protocol, such as NTP
(Network Time Protocol). Its use in production environments is discouraged.
Recommendation
If external consistency is a requirement and you decide to use COMMIT_WAIT
, the time-synchronization protocol
needs to be tuned carefully. Each transaction will wait 2x the maximum clock error at the
time of execution, which is usually in the 100 msec. to 1 sec. range with the default
settings, maybe more. Thus, transactions would take at least 200 msec. to 2 sec. to
complete when using the default settings and may even time out.
-
A local server should be used as a time server. We have performed experiments using the default NTP time source available in a Google Compute Engine data center and were able to obtain a reasonable tight max error bound, usually varying between 12-17 milliseconds.
-
The following parameters should be adjusted in
/etc/ntp.conf
to tighten the maximum error:-
server my_server.org iburst minpoll 1 maxpoll 8
-
tinker dispersion 500
-
tinker allan 0
-