[dna-dev] Several interesting InfoQ articles about JCR

Randall Hauch rhauch at redhat.com
Thu Jun 12 21:21:23 EDT 2008


I saw this within my first tests of Jackrabbit.  I created several  
load tests to create wide, deep, and wide+deep trees (of varying  
sizes).  Once I new my tests worked correctly, I cranked up the sizes  
and waited.  And waited.  And waited some more.  The times for the  
even moderately wide trees were unimpressive.

Sometimes its nice to not be first - we're very lucky to be able to  
learn from their mistakes. :-)


On Jun 12, 2008, at 8:15 PM, Michael Neale wrote:

> Thats great ! Yes jackrabbit has some serious limitations in its
> persistence. It seems to work OK for deep trees, but even so, there
> are architectural challenges with this.
>
> It sounds ilke you guys have seen this and are tacklilng it head on -
> which is great news ! keep up the good work !
>
> On Fri, Jun 13, 2008 at 10:46 AM, Randall Hauch <rhauch at redhat.com>  
> wrote:
>> DNA is specially addressing this in a couple of ways.  First, the  
>> core
>> interfaces inside the federation engine address this by using  
>> iterators, and
>> providing certain guarantees about using those iterators (e.g.,  
>> within the
>> same transaction).  This means that the federation engine will not  
>> require
>> all children to be in memory.  We may also provide more optimized  
>> behaviors,
>> such as an explicit paging mechanism for accessing the children of  
>> a node.
>>
>> Second, we'll be developing a connector
>> (http://jira.jboss.org/jira/browse/DNA-40) that stores its  
>> information in a
>> relational database, and this will not be storing all children in  
>> one chunk.
>> (Jackrabbit does this, so if you add a 1001st child node, the whole  
>> list of
>> 1001 children has to be written to the store.  Unfortunately for  
>> them, this
>> is designed into the foundation for their persistence layer.)
>>
>> On Jun 12, 2008, at 6:45 PM, Michael Neale wrote:
>>
>>> I guess I am thinking of the case of a large volume of small
>>> "children" nodes - specifically. As you say, it can be a problem -
>>> will DNA help with this at all?
>>>
>>> On Fri, Jun 13, 2008 at 3:58 AM, Randall Hauch <rhauch at redhat.com>  
>>> wrote:
>>>>
>>>> You're right that JCR handles heterogeneous data better than almost
>>>> anything
>>>> else, especially when the information structure changes/evolves  
>>>> over
>>>> time.
>>>>
>>>> And I thought the InfoQ architecture was brilliant - use multiple
>>>> independent JCRs for infrequently changing data, eliminating the  
>>>> need to
>>>> create/maintain/scale a cluster.  Very elegant and simple  
>>>> solution.  And
>>>> in
>>>> this particular case, it doesn't really matter if there is a slight
>>>> difference in content among the different machines during the  
>>>> push of new
>>>> information to the independent repositories.
>>>>
>>>> But can you elaborate on your thought that JCR might not be  
>>>> useful for
>>>> transactional data?
>>>>
>>>> IMO, JCR is useful in a lot of situations, and of course it is  
>>>> limited in
>>>> others.  Right now, the implementations don't do clustering or  
>>>> very large
>>>> repositories well.  Most impls also seem to be limited in the  
>>>> efficient
>>>> handling of large numbers of children for any given node.   
>>>> Incorporation
>>>> of
>>>> information outside of JCR is also difficult, as it has to be  
>>>> done above
>>>> JCR
>>>> - although DNA will change this.  But I'm not sure that frequently
>>>> changing
>>>> data is universally a limitation.  Perhaps frequent additions of  
>>>> large
>>>> volumes of data are a problem because you quickly get to volumes  
>>>> of data
>>>> that are too large.  Or frequent changes to data may be a problem  
>>>> if
>>>> versioning is used, as it could quickly lead to unusable numbers of
>>>> versions.
>>>>
>>>>
>>>> On Jun 10, 2008, at 9:45 PM, Michael Neale wrote:
>>>>
>>>>> JCR seems to have a lot of traction I have noticed. Certainly  
>>>>> seems to
>>>>> be the default choice now for heterogenous data. And data is
>>>>> increasingly heterogenous.
>>>>>
>>>>> I guess my only thoughts on it are its limitations: should JCR  
>>>>> *not*
>>>>> be used for transactional data - ie feeds of incoming data that  
>>>>> change
>>>>> often?
>>>>>
>>>>> On Wed, Jun 11, 2008 at 12:11 PM, Randall Hauch  
>>>>> <rhauch at redhat.com>
>>>>> wrote:
>>>>>>
>>>>>> There have been a couple of recent articles on InfoQ about JCR  
>>>>>> and/or
>>>>>> REST.
>>>>>> In case you haven't seen them, they're all worth a good read.
>>>>>>
>>>>>> Interview with David Nuescheler, from Day Software:
>>>>>> http://www.infoq.com/articles/nuescheler-jcr-rest
>>>>>> InfoQ architecture and use of JCR:
>>>>>> http://www.infoq.com/presentations/design-and-architecture-of-infoq
>>>>>>
>>>>>> Best regards,
>>>>>> Randall
>>>>>> _______________________________________________
>>>>>> dna-dev mailing list
>>>>>> dna-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/dna-dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Michael D Neale
>>>>> home: www.michaelneale.net
>>>>> blog: michaelneale.blogspot.com
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Michael D Neale
>>> home: www.michaelneale.net
>>> blog: michaelneale.blogspot.com
>>
>>
>
>
>
> -- 
> Michael D Neale
> home: www.michaelneale.net
> blog: michaelneale.blogspot.com




More information about the dna-dev mailing list