Hi,

I'm curious who uses ZODB in Sage.     It's a standard package.

I don't think it is a dependency for anything except some number
theory databases I created.  Also, I think it doesn't work at all with
SageObjects, which means its of very limited use in the context of
Sage.   Does anybody actually use it?

I opened two related tickets:

   http://trac.sagemath.org/sage_trac/ticket/10352
   http://trac.sagemath.org/sage_trac/ticket/10353

Proposal: We remove it from Sage, after somebody (e.g., me)
transitions all the existing databases that use it to a different
format.

I think sqlite would be a good choice for those database. The
performance would even be better, at least, and the data in the
databases would be usable without Sage.   E.g., it is stupid that
after installing the large optional cremona database package, we have:

sage: time EllipticCurve('30001a1')
CPU times: user 0.38 s, sys: 0.35 s, total: 0.73 s
Wall time: 2.03 s
Elliptic Curve defined by y^2 + y = x^3 + x^2 - 171*x - 6408 over Rational Field
sage: time EllipticCurve('30001a1')
CPU times: user 0.01 s, sys: 0.00 s, total: 0.01 s
Wall time: 0.01 s

That should be instant, but ZODB has a big startup cost when you open
the database and it loads some indexes.  Using sqlite, the same thing
would be nearly instant.

I think even shelve (which uses dbm) would be better, but I'm too
nervous to actually use it, since shelve's backend is too platform
dependent for my taste.

Reasons to remove ZODB:

   * It's test suite fails miserably in Sage (see trac 10352)
   * It isn't the right solution for how we currently use it.
   * It's spkg is weird/hard to update, due to all the easy_install dependencies
   * Almost nobody uses it.  (?)

Reasons to keep it:

   * Several people actually use it.  (I don't know.)
   * I'm missing something and it is a dependency for some key parts of Sage.


I think these days using SQLAlchemy + sqlite (or postgresql) is
probably a better approach than ZODB.

If people want to use ZODB after we remove it, they could always do:

   sage -sh
   easy_install zodb3

Note that the ZODB spkg has a bunch of other ZOPE-related packages
inside of it, so removing it will remove some other cruft.

---

I wrote a little lecture (=Sage worksheet) about basic non-SQL
non-object databases in Sage, by the way, which ends we me concluding
ZODB is pretty useless in its current state for Sage:

http://uw.sagenb.org/home/pub/40


-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to