Github user danny0405 commented on the issue:
https://github.com/apache/storm/pull/2618
I am inclined to choose option 3 because:
1. We now have already made an RPC request for killing/starting-worker from
master to supervisors as soon as we the event happens on master. So the
supervisor can inform the AsyncLocalizer [or AsyncLocalizer fetch it locally]
which topology/blobs have already been removed.
2. We can request local supervisor every time before update blobs for the
little probability that AsyncLocalizer still get overdue keys.
But another situation is for the user archives and normal blob files, the
model is: master make a event and AsyncLocalizer sync it at fixed interval,
this model is too simple to handle this. I think there should be sync inform of
PRC about add/remove events between blob-server/blob-client. Just make
AsyncLocalizer sync it at fixed interval is ok, but we should not decide if
blobs are remove based on KeyNotFoundException.
---