I've just been trying out the MountedFileStorage product (by Anthony Baxter) with Zope 2.3. I've got it mostly working, by patching a couple of typos, and making the SubApplication class derive from Traversable before Application. I've *almost* got ZClasses defined in the root storage working in a mounted storage, but there are still a few issues there. What product is DC using for the mounted storages on zope.org? Can I get a copy of it? I don't see any undo records for objects in the mounted storage. It is a FileStorage, so I reckon they should be there. -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net
Steve Alexander wrote:
I've just been trying out the MountedFileStorage product (by Anthony Baxter) with Zope 2.3.
I've got it mostly working, by patching a couple of typos, and making the SubApplication class derive from Traversable before Application.
I've *almost* got ZClasses defined in the root storage working in a mounted storage, but there are still a few issues there.
What product is DC using for the mounted storages on zope.org? Can I get a copy of it?
http://www.zope.org/Members/hathawsh/ExternalMount ExternalMount is simpler and more flexible than MountedFileStorage. However, a feature of MountedFileStorage is that it lets you try to mount the root of a ZODB. For various reasons, that is a Bad Idea. That's why it has all the "subapplication" stuff, which ExternalMount doesn't need because it won't let you mount the root of a ZODB. Instead, you mount a subobject. The application object in Wikis.fs on zope.org contains a folder called "Wikis". That folder is what gets mounted; whatever else is in Wikis.fs (like a Control_Panel, an acl_users, etc) is ignored. I think you'll find that if you set up your mounted databases this way, you'll get the reliability you're looking for.
I don't see any undo records for objects in the mounted storage. It is a FileStorage, so I reckon they should be there.
Currently, undo and mounted databases don't mix. You can only undo transactions on the root database. Besides that, there's the problem of coordinating the undo of transactions that span multiple databases--should it be done and how? Mounted databases are interesting and, for the most part, robust, but they aren't fully integrated with some of Zope's capabilities yet. Shane
Sound interesting. Is it possible to mount a read-only database from several different Zope-clients? Regards, Johan
Johan Carlsson wrote:
Sound interesting. Is it possible to mount a read-only database from several different Zope-clients?
Yes. The database should be inside a ZEO storage server. ExternalMount can mount ZEO ClientStorages (that's how www.zope.org/Wikis works) and AFAIK you have the opportunity to provide a "read-only" parameter to the storage or the database. In fact, when you mix in ZEO you can mount the database on one client while using it as the root database on another client. That way you can get around the lack of undo. Shane
Sound interesting. Is it possible to mount a read-only database from several different Zope-clients?
Yes. The database should be inside a ZEO storage server. ExternalMount can mount ZEO ClientStorages (that's how www.zope.org/Wikis works) and AFAIK you have the opportunity to provide a "read-only" parameter to the storage or the database.
In fact, when you mix in ZEO you can mount the database on one client while using it as the root database on another client. That way you can get around the lack of undo.
Is it possible to mix a local storage (a filestorage as the root) and mount a ZEO server storage as a "mounted storage". What I really want is several independent Zope servers sharing a mounted database (containing shared resources, eg. template files, design elements etc.). If that is possible I suppose it could be either read-write or read-only. In that way all clients could share an application, for instance a webbshop or a user tracking application or a browser tracking application. Cheers, Johan Carlsson
Johan Carlsson wrote:
Is it possible to mix a local storage (a filestorage as the root) and mount a ZEO server storage as a "mounted storage".
Yes. It's pretty straightforward.
What I really want is several independent Zope servers sharing a mounted database (containing shared resources, eg. template files, design elements etc.). If that is possible I suppose it could be either read-write or read-only. In that way all clients could share an application, for instance a webbshop or a user tracking application or a browser tracking application.
Tell me how it turns out! Shane
participants (3)
-
Johan Carlsson -
Shane Hathaway -
Steve Alexander