A method and system for synchronizing objects among members of a replica
set. Objects on members of the replica set are quickly synchronized via a
join algorithm that takes advantage of version vectors. When an object is
deleted, the object is tombstoned (i.e., marked as "dead"). Tombstones
are also replicated between the connected members of the replica set.
After a period of time (e.g., a timeout), the tombstones are deleted. A
slow sync algorithm executes periodically to ensure that objects that
were not deleted via replicated tombstones are eventually deleted. An
epoque algorithm provides that members that have been offline for a long
period of time will update their objects before they participate in a
join synchronization.