Hi, can take some of those questions:
> Lifecycle management > I have seen that it is not implemented in Oak while specified by the JCR. > Is there any plan to implement it ? I don’t think there is a plan to implement them. Most of the LC functionality can be implemented on application level. If you can specify your use case we can maybe advise how to do that. > Observation > How does it scale ? > I need to have some custom operations executed on node creation, move, > deletion, ... > I guess Observation is the way to go, but I wonder how this scale in case I > need to be able to handle several billions nodes ? Observation scalability depends on 3 factors: number of writes per cluster, number of cluster nodes and number of observation listeners that listen to external events on each cluster node. For example, if you have many cluster nodes and many writes on each of those, but your observation listeners discard all external events then your application would only be bound by the listener speed for processing local events. If you have many cluster nodes which many writes on each of them you should be careful and not register non-local event listeners. btw: observation works on repository state diffs. Therefore the total size of the repo is not relevant afaik. > JCR vs RDBMS > I come from the RDBMS world and I am pretty new to JCR so I apologize if > these are dumb questions: > > * So far, I have manipulated the JCR API (node, properties, events, > ...) and was able to cover my basic use cases. > > But, in a real application, I need to have OO modelisation and, therefore, at > some point, have a way to map my business model to JCR nodes (something like > an ORM). > > I found Jackrabbit > OCM<http://jackrabbit.apache.org/5-with-jackrabbit-ocm.html> but nothing in > Oak. > > Is there something in the pipe ? The typical ORM usage where RDB columns are auto-mapped onto Java objects has shown to be less useful (or needed) in JCR. Hence, I believe all OCM projects have not been advanced much lately. For many (even large scale applications) it is totally fine to work on JCR’s API directly. In cases, where more complex node structures are needed to model a business entity you can create that object as a POJO, which in turn uses JCR (without having to add the complexity of auto-mapping properties). > * What are the strategies and tooling for data migration ? > > I mean if I have millions of nodes of a certain type and need to do some > modification in this type definition (adding a mandatory property or node, > changing a property type, ....); in this case how should I proceed ? Unlike in RDB (where you cannot store anything unless you have created structure) in JCR it is usually recommended to delay creating structure until you really need it. See [1], rule 1. So, you should start out by using nt:unstructured nodes which can easily be migrated. But also be aware of [1], rule 2: designing a good hierarchy for your use case is essential. HTH Michael [1] http://wiki.apache.org/jackrabbit/DavidsModel On 13 Oct 2014, at 09:55, TALHAOUI Mohamed <[email protected]> wrote: > Hi, > > I have some questions regarding the POC I am working on: > > Lifecycle management > I have seen that it is not implemented in Oak while specified by the JCR. > Is there any plan to implement it ? > > Observation > How does it scale ? > I need to have some custom operations executed on node creation, move, > deletion, ... > I guess Observation is the way to go, but I wonder how this scale in case I > need to be able to handle several billions nodes ? > > ACL > How does it scale ? > If I query a large repo for nodes and only have access to few ones, how does > the filtering work ? > > JCR vs RDBMS > I come from the RDBMS world and I am pretty new to JCR so I apologize if > these are dumb questions: > > * So far, I have manipulated the JCR API (node, properties, events, > ...) and was able to cover my basic use cases. > > But, in a real application, I need to have OO modelisation and, therefore, at > some point, have a way to map my business model to JCR nodes (something like > an ORM). > > I found Jackrabbit > OCM<http://jackrabbit.apache.org/5-with-jackrabbit-ocm.html> but nothing in > Oak. > > Is there something in the pipe ? > > * What are the strategies and tooling for data migration ? > > I mean if I have millions of nodes of a certain type and need to do some > modification in this type definition (adding a mandatory property or node, > changing a property type, ....); in this case how should I proceed ? > > Thanks in advance for your answers, > Mohamed
