[erlang-questions] auto-syncing mnesia after a network split
Tue Dec 2 23:22:12 CET 2008
Well, it depends. If you have complete control over the OS used by
each node in your distributed system and can insure that they are all
using the same NTP hosts and have sync, sure, relying on an existing
NTP daemon and using the system time to generate your timestamps works
fine. Basically as accurate as you need it to be.
If not, and timestamp accuracy is important, you want to make sure
that you keep an 'internal' application clock that is separate from
(though of course related to) the OS clock on each of your nodes.
Otherwise, you rely on the folks that have OS level control of your
nodes to a) have an NTP daemon running and properly configured, b) not
make manual changes to their system time that override NTP sync, and
c) maintain their NTP config correctly. I have found that these tend
to be unwarranted assumptions. ;-)
An Erlang NTP implementation might be one way to maintain an internal
application clock on a widely distributed system of nodes that avoids
reliance on system time. This is the first time i have considered the
prospect of embedding an NTP implementation in an Erlang application,
however, so take it for what its worth.
I will say that maintaining NTP on large distributed systems can be
quite a pain even when you control things at the OS level.
Vector Clocks do look interesting tho, but it is not clear that
partial ordering would be enough in some cases.
On Tue, Dec 2, 2008 at 1:59 PM, Joel Reymont <> wrote:
> On Dec 2, 2008, at 9:56 PM, Felix Hamilton wrote:
>> It would nice to
>> be able to use NTP with an Erlang app without having to deal with
>> anything at the OS level.
> I don't understand. My Mac runs the NTP demon just fine, keeping my clock
> synchronized with europe.apple.com or something like that.
> I don't see the benefit of implementing NTP in Erlang since the two are
> completely orthogonal. Am I missing something?
More information about the erlang-questions