Michael Primeaux

Parallel and Distributed Systems


Update Sequence Numbers

A colleague and I discussed the value in using a 64 bit Update Sequence Number (USN) versus a 128 bit USN. Here are my thoughts assuming 64-bits.

To provide a bit of context, we were considering a solution space that incremented the USN value for each write operation for a specific set of protected data. The USN is 64 bits, and is advanced for each update on a given server. At 100 writes per second, the USN will roll over in 58,494,241,735 years (approximately).

On a very busy server performing 10,000 writes per second it will roll over much sooner, in 584,942,417 years. Either way, the sun will burn out or go nova first, making USN’s moot (for this astronomical neighborhood anyway).

Just using 128 bits for USNs would give us a few more millennia breathing room. Now for the good news. In point of fact, since USN’s from different servers are never compared, all that is required is detecting rollover of the USN on a given server, for which algorithms are available. See RFC 1982 for a discussion.