Hi, > Hmm I see. I came up with a similar approach loooong time ago. Even > before the Microkernel. Anyway, I think the Microkernel API does not > mandate root node versions corresponding to revisions. In fact I think > the approach you are proposing will scale better wrt. write contention > on the root node since there is no need for writing a new root node on > every write operation. However, getting a consistent journal across > cluster nodes seems more difficult here as you said.
what about consistency requirements? does the journal have to be exactly in sync with committed changes? that is, does a MK implementation have to guarantee that a commit immediately becomes available in the journal related methods? > >>> How does backup work? this is quite tricky because it is > >>> difficult to get a consistent snapshot of the distributed > >>> tree. > >> > >> MVCC should make that easy: just make a backup of the head revision at > >> that time. > > > > hmm, I'm not sure that will scale. consider a large repository > > where traversing all nodes takes a long time. > > > > I think backup should be supported at a lower level to be > > efficient. > > Hmm right, that makes sense. I was reading up on backup and how it is done in sinfonia. it basically use a transactional stop (or rather pause?) the world approach where all pending changes are saved to the disk image and all further changes are written to the forward log only, until backup is finished. regards marcel
