Re: [ZODB-Dev] undo (and storage interface) brokenness
I agree that it's handy, and that people would be upset if it disappeared. But I also agree that people trust it far more than they should, and that it's really only dependable for developers to roll back transactions -- however, for that, I think it's invaluable (i.e. very valuable). So I think *this* undo should not be in Plone's or other user-facing UI. If there is an undo facility, it should be implemented by way of application-level versioning as Hanno says. -- jean . .. //\\\oo///\\ ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] undo (and storage interface) brokenness
On 24/12/09 03:09, Martin Aspeli wrote: > Hanno Schlichting wrote: > > Unfortunately, I think the people most likely to have used it in a pinch > are less likely to be reading this list. > > If the current API is broken, we should fix it. If that means fixing > some of the UI in Zope to use a new API, that's OK too. Few people will > have customised this or relied on the "old" API. > > If we had to say you only get step-by-step undo from the most recent > transaction, then that'd probably be OK too. In this case, we should > have a UI that lets you specify a number (undo N transactions) or a > limit (undo up to and including transaction X). I think people > understand that undoing a single transaction that's not the most recent > one is error-prone anyway. > > Martin > Some of my customers are low-budget customers. They rather have me restore some content with a few minutes of work even at the cost (for them) of undoing later transactions. IOW, I'll support Martin's statement : step-by-step undo should be kept if possible. -- Godefroid Chapelle (aka __gotcha) http://bubblenet.be ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] undo (and storage interface) brokenness
On Wednesday 23 December 2009 20:26:13 Jim Fulton wrote: > Undo is broken in a number of ways. Does anyone care? Does anyone use > undo? First, a disclaimer: what I state below is from Zope 2.8-ish experiences, with its original ZODB version. I hope my mail is still on topic nevertheless. In my company, it is gradually becoming a production-server-setup step to disable (remove via monkey patch) the "undo" tab from Zope's ZMI, because it happens quite often for someone to click on it on a multi-gigabyte FileStorage via Zeo, causing the whole cluster to go down until someone restarts Zope & Zeo or a few hours pass. This is due to the backward seeking done when listing transactions to undo (disk throughput goes down to a crawl) filtered by context path (depending on the path, the given limit of transactions to display will never be reached) and with storage lock taken, effectively bringing the cluster down. So I believe that this performance issue, although being less serious than what you present as technical breakage, is a showstopper by itself in practise (unless it becomes impossible to filter transactions to undo, making the action end in a roughly constant time for a given transaction number). Maybe this would be an argument toward offline-only undo support. Finally, I believe that undo feature is miss-represented in Zope (keep above disclaimer in mind: I don't know about most recent Zopes), because most people I know who used that "undo" tab are actually interested in undoing transactions modifying context, not transaction done on context (so they actually want to use the efficient "history" tab, the one using FileStorage object version back-pointers). -- Vincent Pelletier ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] Undo alternatives
As I mentioned in another message, undo is staying, but, as many also mentioned in that thread, undo often doesn't work due to conflicts. I thought I'd mention some alternatives: - Time travel ZODB has a number of facilities for time travel: - Object history There's an API for looking at changes over time. For simple objects, recovering from a misshap can often be as simple as copying state from an old revision. Zope 2 has (or had) a built in view for this. - Time traveling database connections In ZODB 3.9, the database open method grew a optional 'at' and 'before' keyword arguments to open a connection with a view of the database as of a particular point in time. - zc.beforestorage This is a storage wrapper that provides a read-only unchanging view of a database as of a particular time. (We use it with DemoStorage for staging new releases with customer data without having to copy customer databases.) - Truncation Although there isn't an API, truncating a file-storage database as of a particular time is pretty easy: >>> import ZODB.FileStorage, ZODB.TimeStamp >>> tid = repr(ZODB.TimeStamp.TimeStamp(y, m, d, h, min, s)) >>> it = ZODB.FileStorage.FileIterator(path, tid) >>> f = open(path, 'r+b') >>> f.seek(it._pos) >>> f.truncate() This is certainly easier and more precise than restoring from a backup. Maybe FileStorage should get an API for this. I'm working on a storage implementation based on Berkeley DB and it has a truncate function, mainly because truncation isn't so easy for this implementation and I need it for some benchmarking I'm doing. Jim -- Jim Fulton ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] RFC: Drop Python 2.4 support in ZODB 3.10
I propose to drop Python 2.4 support in ZODB 3.10, mainly so I can use the with statement to clean up the code. Any objections? Jim -- Jim Fulton ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] RFC: Drop Python 2.4 support in ZODB 3.10
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Jim Fulton wrote: > I propose to drop Python 2.4 support in ZODB 3.10, mainly so I can use > the with statement to clean up the code. > > Any objections? No objections from the Zope 2 side. Andreas -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkszkeIACgkQCJIWIbr9KYyIFwCg26/ahOyTZpuvQU2INNOu4Z6E pt0AoJnECzbgeLfZkboIplwTUVRGDv79 =jDsW -END PGP SIGNATURE- <>___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev