[Chandler-dev] [Sum] The Great Architecture Discussion of 2007
D John Anderson
john at osafoundation.org
Wed Oct 10 09:17:58 PDT 2007
I think we are better off to evolve the existing repository rather
than completely replace it with and object relational mapping on top
of SQL at this stage of Chandler's life.
I say this is because I believe such a replacement is a very large
task with an uncertain outcome. I'd rather work on eliminating extra
unnecessary notifications which I think will give us improved
performance with less work.
Personally I'm more excited about the prospect of getting more users
and making them happy than doing a major rewrite -- but I'm still in
favor of incremental architectural improvements.
John
On Oct 9, 2007, at 10:39 PM, Andi Vajda wrote:
>
> On Tue, 9 Oct 2007, Phillip J. Eby wrote:
>
>> The thing is, once you look at this from the app layering
>> perspective, the mismatch between the relatively simple things the
>> app is trying to do, and the very powerful generality of the
>> repository, becomes more apparent.
>
> So, I ask again to the general readership of this list - Phillip, I
> think
> your opinion is pretty clear - do we want to compile Chandler into a
> "relatively simple" app like Mail.app or do we want to keep the
> "powerful
> generality" part of the vision and implementation of Chandler when
> I joined
> the project in 2003 ?
>
>>> If that's the route we'd like to take Chandler to, fine. That
>>> should be clearly stated.
>>
>> I believe Katie has already stated it, even as far back as the
>> creation of the schema API. But I imagine she will clarify it
>> again if needed.
>
> Katie, I certainly missed your earlier statement in this direction.
> What is your take on this ? Where do you stand on this ?
>
> Phillip's opinions in this area are not news to me. I even offered
> him my repository job shortly after he joined OSAF when we had a
> similar conversations. For various reasons, he didn't take it then.
> I'm ready to
> make the same offer again as we're ready - it seems - to abandon
> another -
> major this time - part of the early vision.
>
>> I mean that by implementing a skiplist *inside* of BerkeleyDB
>> rather than using a native BerkeleyDB structure, we're adding an
>> "interpretation" layer there.
>
> What is the native Berkeley DB structure that corresponds to a
> skiplist ?
> A skiplist is just a fatter ref collection (fatter because of longer
> reaching links between nodes). Are ref collections also duplicating an
> existing Berkeley DB structure ?
>
>> Yes. The key distinction vis-a-vis relational vs. repository, is
>> that we
>> would now be adding another Python layer, in addition to the those
>> that
>> already exist. Whereas, if we used a Python ORM, we would have
>> just the
>> mapping and an all-C backend that we don't have to maintain. In
>> fact, the
>> mapping layer might also be maintained by someone else, if we use
>> one of the
>> many O-R mappers for Python such as SQLObject, Storm, Axiom, DejaVu,
>> SQLAlchemy, Mother,... and probably others I've forgotten about.
>
> The repository back-end is already mostly C. Many of the places
> where the
> repository code was spending time were moved to C. There is more C
> code than
> python code in the repository by now. Most of the time today is
> spent in
> firing thousands of useless notifications. Loading and committing
> items is
> pretty fast in comparison. (Merging items is still pretty slow,
> though)
> I don't know where you're getting that the repository is slow in
> doing its
> persistence job. It slows down in its mapping layer, in the layer
> between
> the persistence layer and the app. We have so many sorted indexes
> because of
> the generality of the Sidebar that whenever a trivial change is
> made in an
> attribute, they all have to be indexed. I don't see where this work
> comes
> for free, either code-wise, or perf-wise, in a relational model. If
> you
> cache the results of sorted queries then you have to maintain these
> caches
> there as well.
>
> By killing Chandler's use of the existing powerful/general
> repository you can
> also kill some of Chandler's powerful/general features, thereby
> fixing the
> perceived performance problems that plague it today. This is
> certainly a
> way to solve the problem.
>
> OSAF management and developers, is this what we want ?
>
> Andi..
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "chandler-dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/chandler-dev
More information about the chandler-dev
mailing list