On 16.11.12 13:00, Jukka Zitting wrote:
Hi,
On Fri, Nov 16, 2012 at 2:48 PM, Michael Dürig <[email protected]> wrote:
I was having a look at KernelRootBuilder.update() which saves pending
changes down to a branch in the Microkernel after a certain threshold in the
number of changes. I was wondering if this has any effect at all. The branch
is never merged back. Or is that branch "only" used as a persistent cache?
Since there is similar logic in RootImpl already, this might also be work in
progress. If so, I suggest to disable it for the time being.
Yes, we can disable it.
I was looking into this again in order to use it for replacing the purge
logic we have in RootImpl. The nice part about this would be that higher
layers wouldn't need to care about node builders growing "too large"
since they would be backed by a branch in the Microkernel. However, I
don't see a way to integrate this with NodeStoreBranch without breaking
encapsulation.
It's mostly an incomplete experiment at seeing whether we could get
rid of the NodeStoreBranch feature entirely by pushing the existing
RootImpl purge logic down below the NodeBuilder interface. Another
rationale was to see how far we could go without having to rely on
branches, as the MongoMK didn't yet support that feature.
Since we now have branches in the Microkernel I suggest, we remove this
feature entirely. That is, remove the KernelNodeBuilder and
KernelRootBuilder classes. Unless we want to further pursue getting rid
of NodeStoreBranch, that is.
Michael
I intentionally set the update limit high enough so that the
functionality is only triggered in custom test cases and in normal use
the much lower purge limit in RootImpl takes care of branch handling.
BR,
Jukka Zitting