[Zope-dev] AdaptableStorage
Shane, AdaptableStorage is insane and beautiful - congratulations :-) It could fit a possible project we have coming up where a requirement is to store content in an XML format inside MS SQL Server. Do you have a TODO list? Are there any particularly alpha parts? I would need to get an idea of the risk I was taking on, but if the list is sufficiently small, I love to help mature and extend the product. Seb ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AdaptableStorage
On Wed, Jan 15, 2003 at 05:30:58PM +, seb bacon wrote: Shane, AdaptableStorage is insane and beautiful - congratulations :-) It seems to inspire insanity :) kosh and i got into a discussion on #zope about using AdaptableStorage with reiserfs4, mapping zope properties to reiserfs4 properties... finally, a fully really transparent unix filesystem - ZODB solution that isn't a half-assed version of either! didn't get into detail but it seems like it should be doable. -- Paul Winkler http://www.slinkp.com Look! Up in the sky! It's THE BUTTERY THIGH! (courtesy of isometric.spaceninja.com) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AdaptableStorage
Paul Winkler wrote: On Wed, Jan 15, 2003 at 05:30:58PM +, seb bacon wrote: Shane, AdaptableStorage is insane and beautiful - congratulations :-) It seems to inspire insanity :) kosh and i got into a discussion on #zope about using AdaptableStorage with reiserfs4, mapping zope properties to reiserfs4 properties... finally, a fully really transparent unix filesystem - ZODB solution that isn't a half-assed version of either! didn't get into detail but it seems like it should be doable. That's not insanity, it's just discovering that what was nasty and difficult before is now doable. :-) I really didn't appreciate the elegance of Mac resource forks until I created the .properties files. I understand NTFS has multiple named forks and other filesystems like ReiserFS are developing similar capabilities. Neat. Let's use them! Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AdaptableStorage
Solaris 9 also has extended Fileattributes From whats new in Solaris 9 The UFS, NFS, and TMPFS file systems have been enhanced to include extended file attributes, which enable application developers to associate specific attributes to a file. For example, a developer of a file management application for a windowing system might choose to associate a display icon with a file. man (5) on fsattr http://docs.sun.com/db/doc/816-0220/6m6nkorp9?a=view See ya Tim On Thu, 2003-01-16 at 03:47, Shane Hathaway wrote: Paul Winkler wrote: On Wed, Jan 15, 2003 at 05:30:58PM +, seb bacon wrote: Shane, AdaptableStorage is insane and beautiful - congratulations :-) It seems to inspire insanity :) kosh and i got into a discussion on #zope about using AdaptableStorage with reiserfs4, mapping zope properties to reiserfs4 properties... finally, a fully really transparent unix filesystem - ZODB solution that isn't a half-assed version of either! didn't get into detail but it seems like it should be doable. That's not insanity, it's just discovering that what was nasty and difficult before is now doable. :-) I really didn't appreciate the elegance of Mac resource forks until I created the .properties files. I understand NTFS has multiple named forks and other filesystems like ReiserFS are developing similar capabilities. Neat. Let's use them! Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope ) DISCLAIMER: This email, including any attachments, is intended only for use by the addressee(s) and may contain confidential and/or personal information and may also be the subject of legal privilege. Any personal information contained in this email is not to be used or disclosed for any purpose other than the purpose for which you have received it. If you are not the intended recipient, you must not disclose or use the information contained in it. In this case, please let me know by return email, delete the message permanently from your system and destroy any copies. Emails and their attachments may be interfered with, may contain computer viruses or other defects and may not be successfully replicated on other systems. All attachments are opened at the recipient's risk. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] AdaptableStorage status update
I've been holding off status updates on the AdaptableStorage project until I could say I'm confident that the approach will work and it's easy enough to write your own serialization components. After numerous refactorings, I'm pleased to say that it actually works and does everything I hoped! AdaptableStorage lets you store ZODB objects in your own database and in your format, *without* using special content classes. You can use a filesystem directory, a relational database, or whatever kind of database you might have as a ZODB. This is very different from all previous solutions. LocalFS, ExtFile, CMF directory views, and other similar products require you to use special content classes that store themselves outside the ZODB. OracleStorage and CVSFile store all objects as pickles. Other solutions have similar issues. AdaptableStorage, however, reuses as much of ZODB as possible to achieve orthogonal persistence to arbitrary databases and formats. This is only a status report, not an announcement that it's finished, so the documentation is not done yet. But there are interfaces, unit tests, and a basic diagram. You can use DBTab to mount an AdaptableStorage instance. As a test, I have successfully used AdaptableStorage to create a CMF site on both the filesystem and in a Postgres database. Here's a way to get a preview. (It may not work in MS Windows yet.) Get a very recent version of Zope 2.6 (or perhaps even the HEAD). Then check out AdaptableStorage and DBTab from CVS: cvs -d :pserver:[EMAIL PROTECTED]:/cvs-repository co Products/AdaptableStorage cvs -d :pserver:[EMAIL PROTECTED]:/cvs-repository co Products/DBTab Move the two products to the Products directory of your Zope instance. Create a dbtab.conf file in your Zope directory with the following: [Storage: FS] type=Zope2FSStorage basepath=%(CLIENT_HOME)s/myfs volatile=1 [Database: FS] class=Zope2FSDatabase mount_paths=/fs auto_create=1 Don't forget to create the directory myfs like this: mkdir var/myfs Start Zope and choose Add DBTab Mount Point in the management UI. You should get a checkbox next to the /fs mount. Create that mount point. Now visit /fs and add stuff. Watch var/myfs/fs, which will contain all the objects you create. You can't yet copy/paste, import, or export, but you can add just about any kind of object. The files under var/myfs/fs currently contain pickles, but that's only because AdaptableStorage doesn't have a mapper registered for most kinds of objects and it falls back to the default mappers. But AdaptableStorage does know about Folders and it creates a directory for them. It also works the other way around: if you create a directory on the filesystem, you'll see it in Zope as a Folder. If you're adventurous, you can also set up a SQL connection using psycopg and the following dbtab.conf entries: [Storage: Postgres] type=Zope2SQLStorage params= table_prefix=zodb volatile=1 [Database: Postgres] class=Zope2SQLDatabase mount_paths=/sql auto_create=1 You might observe that it's a little less responsive than regular ZODB. Edit dbtab.conf, changing volatile=1 to volatile=0, to get the full benefits of the ZODB cache. The downside is that changes you make on the filesystem won't be reflected immediately, but in a lot of environments, that is acceptable. The AdaptableStorage I presented at the O'Reilly Open Source conference was specific to Zope 2. This version is not. In fact, most of it isn't even specific to ZODB. Its core is a general serialization framework with pattern names drawn from Martin Fowler's book. Let me know if you run into troubles. I've been testing it with the Zope HEAD on Python 2.2.2. This is the product of many months of inspiration and perspiration. :-) It's not perfect, but the basic concepts and interfaces are in good shape. Comments welcome. Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )