> Maybe. Yes, multiple readers *and* a single writer > can work together > as you describe. The writer has to signal all > readers, and they all > have to rollback before a new commit by the writer > is started (any > writer, it could become another one). Rollback is a > mis-nomer > clearly, what it means in this scenario is: revert > to on-file state.
How much would the overhead be for this? I assume that the rollback is almost instant, but the writer would have to commit after each change (transaction). Does it have to walk the full tree every time or is the information cached between commits? > But the problem is that all readers have to > re-attach all their views > (well at least all those which are modified). Does this mean that if the readers had some way of knowing which views had been modified, they could limit themselves to just re-attaching the modified views? Do the views point to the raw location in the datafile or are they dependent on more metadata? > There are more avenues to explore, such as using the > "commit-extend" > mode. What this does is leave the original readers > unaffected. So > one refinement would be: > - readers open and use as needed > - a single writer opens and makes changes > - after a normal writer commit is done > - signal all readers to rollback > - force all further writes to use commit-extend > - once all reader rollbacks have been > acknowledged > - allow normal commits again > The above allows even more concurrency (readers > never lock, and the > writer need never wait for all readers to complete > their rollback), > but it does require that occasionally the datafile > gets compressed at > a time of no activity. With care, this cleanup > phase can probably > even be made to work while readers are still active. This sounds very promising. Has there been any experiments with this? BTW: The wiki would be ideal for this kind of discussion. Is there any speial reason that has been closed (read-only)? Best Regards, Arto Stimms __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _____________________________________________ Metakit mailing list - Metakit@equi4.com http://www.equi4.com/mailman/listinfo/metakit