You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Michael Dürig <md...@apache.org> on 2012/04/04 14:03:20 UTC

Tree builder and transient space

Hi,

As a follow up to the recent discussion about how to implement transient 
modifications [1] I started implementing a NodeStateEditor and a 
TransientNodeState (see my commits on OAK-9). The idea is, to acquire a 
NodeStateEditor from the current connection, do modifications on it and 
commit it back to the connection when done.

The KernelNodeStateEditor uses TransientNodeState instances to track 
modifications. Currently all these modifications are kept in memory. 
However when OAK-45 is resolved alternative implementations could:

- directly write every operation through to the private working copy.
- batch write operations through to the private working copy when the
   transient space gets too big.
- spool write operations through to the private working copy on a
   background thread.

TransientNodeState is currently not exposed through the oak-core api. In 
order to make it usable from oak-jcr we should think about how to 
proceed here.

Michael

PS: There is currently hardly any comments in the code. I'll fix that soon.

[1] http://markmail.org/thread/panl3wxfekvmcfyw