Re: [ZODB-Dev] undo (and storage interface) brokenness

2009-12-24 Thread Jean Jordaan
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

2009-12-24 Thread Godefroid Chapelle
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

2009-12-24 Thread Vincent Pelletier
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

2009-12-24 Thread Jim Fulton
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

2009-12-24 Thread Jim Fulton
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

2009-12-24 Thread Andreas Jung
-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