On Wednesday 17 December 2008 15:19, Daniel Cheng wrote:
> This is just some rant, you may ignore this. We have put too many
> effect in db4o already -- I don't think we should change it now.
> However, in case if you (anybody reading this list) are planning to
> db4o for a new project, please consider something else.
> IMO, relational (sql) database work better then it.
> 
> 1. Activation / Deactivation Hell
>     -- if you use "complex" object like the freenet db4o project does,
>        you have to activate / deactivate object manually

True. It saves a huge amount of memory to do it this way though. The only real 
alternative would be to automatically activate/deactivate using code 
morphing.
> 
>     -- if you use it in the relational-like way (just like what xmlspider 
do)
>        miss "join" select.

Not sure I follow, you can set the query depth however you like.
> 
> 2. no "GC" of object
>     When you delete object, you have to delete (and reference count)
>     its children.

Yes, this is a pain, agreed. This is because db4o is a query-oriented OODBMS; 
Perst for example has garbage collection, but you have to maintain your own 
indexes, although they provide very good objects for doing that.
> 
> 3. no aggregated query
>     COUNT(*) --> query all object
>     MIN/MAX() --> query all object, sort them (cause all object activated)

Everything gets instantiated yeah. :|
> 
> 4. No "unique" constrain or trigger
>     Duplicated object have to check manually

There is actually support for creating unique field indexes.
> 
> 5. No Index for arrays, comparable, etc..
>     index only for the string and primitivies.

Yes, very annoying. db4o indexes strings by value, ints etc by value, and 
everything else by pointer. There is no way to index any type of object by 
value with a comparator.
> 
> 6. no ObjectManager for 7.x
> 
> 7. unusbale subversion repository
>    the subversion repository have many access limit,
>    unreadable logs, etc... it's unusable.
> 
Yes, db4o.com is not as OSS-friendly as we might hope.

> 8. development version moving too fast
>     moving too fast, no stability at all.
> 
> 9. LAZY / SNAPSHOT mode are broken.
>     see below

Isn't this covered in the documentation for them?
> 
> On Wed, Dec 17, 2008 at 2:14 PM, Daniel Cheng <j16sdiz+freenet at gmail.com> 
wrote:
> > On Wed, Dec 17, 2008 at 2:10 PM,  <j16sdiz at freenetproject.org> wrote:
> >> Author: j16sdiz
> >> Date: 2008-12-17 06:10:29 +0000 (Wed, 17 Dec 2008)
> >> New Revision: 24414
> >>
> >> Modified:
> >>   trunk/plugins/XMLSpider/XMLSpider.java
> >> Log:
> >> aruuugh! i am going crazy
> >>
> >> Modified: trunk/plugins/XMLSpider/XMLSpider.java
> >> ===================================================================
> >> --- trunk/plugins/XMLSpider/XMLSpider.java      2008-12-17 06:05:30 UTC 
(rev 24413)
> >> +++ trunk/plugins/XMLSpider/XMLSpider.java      2008-12-17 06:10:29 UTC 
(rev 24414)
> >> @@ -1052,6 +1052,7 @@
> >>                query.descend("status").constrain(status);
> >>                query.descend("lastChange").orderDescending();
> >
> > in snapshot mode:
> >  set.size() works only if I sort with lastChange .
> >  afaik this cause all object activated.
> >
> > in lazy mode:
> >   set.size() always work.. but it return much small value then the
> > current count.
> >
> >>
> >> +               ObjectSet<Page> set = query.execute();
> >>                return set.size();
> >>        }
> >>
> >>
> >> _______________________________________________
> >> cvs mailing list
> >> cvs at freenetproject.org
> >> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >>
> >
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20081217/997fd689/attachment.pgp>

Reply via email to