[tahoe-lafs-trac-stream] [tahoe-lafs] #1767: update Announcement "timestamp": sequence number?
tahoe-lafs
trac at tahoe-lafs.org
Sat Mar 16 08:01:22 UTC 2013
#1767: update Announcement "timestamp": sequence number?
-------------------------+-------------------------------------------------
Reporter: warner | Owner: warner
Type: | Status: assigned
enhancement | Milestone: 1.10.0
Priority: major | Version: 1.9.1
Component: code- | Keywords: forward-compatibility introduction
network | time blocker
Resolution: |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Comment (by warner):
Hm. If we increment the counter with each announcement, we could still get
into the same trap:
* announce (0,storage,X)
* announce (1,grid-control,Y)
* rewind to a backup
* restart
* announce (0,storage,Z) [ignored by others: seqnum not newer]
* announce (1,grid-control,Y) [ignored by others]
* hear back the earlier (1,grid-control,Y)
* looks just like our recent announcement, so don't provoke a retransmit
Also I think we'd need to store (at least in RAM) a separate counter for
each service, so we could recognize when announcements are newer than
anything we've ever created. Ideally we want the very first message from
our previous life to trigger re-encodings of everything we might publish.
I'm +1 on one-counter-per-node. I think I'm +1 on using the same counter
value for all announcements (i.e. every time we update any service, we
increment the counter, write it to disk, then publish a full set of
announcements for all services, all using the same counter value). Then if
we hear back any announcement with a higher counter value, or an equal
counter but different contents, we trigger new announcements with the next
higher counter. I *think* that will let any single message-from-the-future
trigger an update, and will also correctly ignore echoes of any current
message. I'm also +1 on adding a nonce to each announcement (created when
we encode the message, stored in RAM only, not persistent), so we can
distinguish messages from two different reboots that happen to otherwise
contain the same contents.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1767#comment:14>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list