cruzdb/zlog

remove serial application of view updates assumption

dotnwat opened this issue · 2 comments

in the view refresher it appears that views need to be applied in order to avoid proposing a new sequencer, having the views updated but seq unchanged, then reading a newer view and having this fail: new_view->seq_config->epoch == it->first. and if this happened on the first epoch, then the code could try to reference a nullptr view when assuming that we've seen the view update before and have a view with a sequencer.

the solution here is allow the newest sequencer state to define a new sequencer as long as it hasn't already been defined. so we can read the latest epoch even if it isn't the epoch in which the seq initialiation took place, as long as we haven't already created the sequencer we can go ahead and initialize in memory.

append should not propose new sequencer