Zope + Ape + Subversion (was: RE: [Zope-dev] Using a truely r evis ion based storage for Zope ?)

Kapil Thangavelu hazmat at objectrealms.net
Sun Apr 18 02:26:15 EDT 2004


On Wed, 2004-04-14 at 19:14, Shane Hathaway wrote:
> On Wed, 14 Apr 2004 Jean-Francois.Doyon at CCRS.NRCan.gc.ca wrote:
> 
> > My initial, uneducated thoughts on the topic were simplistic, but then I'm a
> > big K.I.S.S. fan: simply pickle the entire object back and forth as one
> > entity.  This means for each object, there is one file on the fs.  The
> > benefit is greater simplicity ... the downside is that you couldn't check
> > those files out of subversion and interact with them.  I also have to
> > imagine the former is faster ?
> 
> If you store pickles, you can't merge, you can't store properties, in fact
> you can't even store folders as directories or keep track of references
> between objects.  At that point, you'd do much better to just use
> FileStorage--KISS, after all.  Ape's real utility is in breaking objects
> apart for storage.  If you don't need that, you don't need Ape.  But I
> like to think it makes the job of breaking objects apart for storage
> relatively simple.
> 
> > But if usnig the latter, then I'd think that in SVN there would be only 1
> > file, written by a specific mapper for a specific content type, say image.
> > the data written to the file is such that if checked out, the file "works",
> > so I can open it in photoshop or something.
> > 
> > I however, would simply put everything else in properties, if that makes
> > sense at all. Zope properties, security information, and so on.  1 porperty,
> > 1 piece of data. No need for reading/writing multi-line text.
> 
> That's fine, although you'll need to distinguish Zope properties from 
> other kinds of properties.  For example, if some object has a class_name 
> Zope property, you'd be in trouble if the system mixed that up with the 
> class_name key of the object classification.

i don't think needs to much worrying about, just prefix zope properties
with 'zope:' much the same way svn does with its properties
'svn:externals'

> 
> > The only thing I'm not so sure about is this "remainder" ... Though if it
> > really is a base64 encoded string, there's no reason not to put that in a
> > property as well.
> 
> That's correct, it's always base64 encoded (with some comments.)
> 
> > The benefits I see:
> > 
> > - The filesystem reflects the object structure, no extra files lying around.
> 
> Definitely.
> 
> > - a more consistent way to setup mappers/gateways: there's "data", and
> > there's everything else. Have a common/defined/smart way of handling
> > "everything else".
> 
> I would recommend you defer this for a while.  Lots objects don't
> easily fit this model.  For example, what is the "data" of a CMF tool?  
> We can make plenty of progress on Subversion without thinking about 
> changing the way mappers are defined.
> 
> > - with the use of the properties related svn funtions, we better leverage
> > SVN's features.
> 
> Yup.
> 

another thing to keep in mind here, svn is basically a versioned fs, and
in addition to node/content history tracking and it has
facilities/functions for apply deltas to content, and recieving delta
diffs back etc, but these apply to node/content bodies and not to
properties. ie. there are no facilties for diffing properties, and this
would need to be implemented in python.

-kapil




More information about the Zope-Dev mailing list