Skip to content

Commit

Permalink
Clean up readme.
Browse files Browse the repository at this point in the history
  • Loading branch information
sallner committed May 13, 2020
1 parent 3cd4194 commit cbe8905
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 111 deletions.
70 changes: 70 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
CHANGES
=======

0.6 (unreleased)
----------------

- Add support for Python 3.5 till 3.8.

- Drop support for Python 3.3 and 3.4.

- Fix a long-standing bug in loadBefore´. The bug was revealed by
testing against ZODB 5, for which loadBefore plays a bigger role.


0.5.1 (2013-10-25)
------------------

- Fix broken release


0.5.0 (2013-10-25)
------------------

Added ZODB4 and Python 3 support.


0.4.0 (2010-12-09)
------------------

Added a "before-from-file" option that can be used if the application wants to
preserve beforestorage state between application restarts.

0.3.2 (2008-12-05)
------------------

Updated to work with both ZODB 3.8 and 3.9.

0.3.1 (2008-12-01)
------------------

Renamed lastTid to getTid to conform to the ZEO.interfaces.IServeable
interface.


0.3.0 (2008-12-01)
------------------

Added Blob support.

0.2.0 (2008-03-05)
------------------

Added support for "now" and "startup" values to the before option when
using ZConfig. The "now" value indicates that the before storage should
provide a view of the base storage as of the time the storage is created.
The "startup" value indicates that the before storage should provide a
view of the base stoage as of process startup time. The later is
especially useful when setting up more than once before storage in a
single application, as it allows you to arrange that all of the
storages provide consistent views without having to specify a time.

0.1.1 (2008-02-07)
------------------

Fixed a packaging bug that caused some files to be omitted.

0.1 (2008-01-??)
----------------

Initial release.
39 changes: 38 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
See src/zc/beforestorage/README.txt
==============
Before Storage
==============

ZODB storages typically store multiple object revisions to support
features such as multi-version concurrency control and undo. In the
case of the mod popular storage implementation, old revisions aren't
discarded until a pack. This feature has often been exploited to
perform time travel, allowing one to look at a database as it existed
in at some point in time. In the past, this has been possible with
file storage by specifying a time at which to open the file
storage. This works fairly well, but is very slow for large databases
because existing index files can't easily be used. Time travel is
also supported for individual objects through the ZODB history
mechanism.

The introduction of multi-version concurrency control provided new
opertunities for time travel. Using the storage loadBefore method,
one can load transaction records written before a given time. ZODB
3.9 will provide an option to the database open method for opening
connections as of a point in time.

Demo storage can be quite useful for testing, and especially staging
applications. In a common configuration, they allow for storing
changes to a base database without changing the underlying database.
Zope functional testing frameworks leverage demo storages to easily
roll-back database state after a test to a non-empty state before a
test. A significant limitation of demo storages is that they can't be
used with base storages that change. This means that they generaly
can't be used with ZEO. It isn't enough to have a read-only
connections, if the underlying database is still being changed by
other clients.

The "before" storage provides another way to leverage the loadBefore
method to support time travel and a means to provide an unchanging
view into a ZEO server. A before storage is a database adapter that
provides a read-only view of an underlying storage as of a particular
point in time.
20 changes: 16 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
from setuptools import setup, find_packages
import os

name, version = 'zc.beforestorage', '0.6.dev0'
name = 'zc.beforestorage'
version = '0.6.dev0'


def read(rname):
Expand All @@ -25,9 +26,12 @@ def read(rname):
entry_points = """
"""

long_description = (
read('src/zc/beforestorage/README.txt')
)
long_description = '\n\n'.join([
read('README.rst'),
'.. contents::',
read('src/zc/beforestorage/README.rst'),
read('CHANGES.rst'),
])

tests_require = ['zope.testing']

Expand All @@ -44,6 +48,14 @@ def read(rname):
packages=find_packages('src'),
namespace_packages=['zc'],
package_dir={'': 'src'},
python_requires=', '.join([
'>=2.7',
'!=3.0.*',
'!=3.1.*',
'!=3.2.*',
'!=3.3.*',
'!=3.4.*',
]),
install_requires=['setuptools', 'ZODB'],
zip_safe=False,
entry_points=entry_points,
Expand Down
106 changes: 0 additions & 106 deletions src/zc/beforestorage/README.rst
Original file line number Diff line number Diff line change
@@ -1,109 +1,3 @@
==============
Before Storage
==============

ZODB storages typically store multiple object revisions to support
features such as multi-version concurrency control and undo. In the
case of the mod popular storage implementation, old revisions aren't
discarded until a pack. This feature has often been exploited to
perform time travel, allowing one to look at a database as it existed
in at some point in time. In the past, this has been possible with
file storage by specifying a time at which to open the file
storage. This works fairly well, but is very slow for large databases
because existing index files can't easily be used. Time travel is
also supported for individual objects through the ZODB history
mechanism.

The introduction of multi-version concurrency control provided new
opertunities for time travel. Using the storage loadBefore method,
one can load transaction records written before a given time. ZODB
3.9 will provide an option to the database open method for opening
connections as of a point in time.

Demo storage can be quite useful for testing, and especially staging
applications. In a common configuration, they allow for storing
changes to a base database without changing the underlying database.
Zope functional testing frameworks leverage demo storages to easily
roll-back database state after a test to a non-empty state before a
test. A significant limitation of demo storages is that they can't be
used with base storages that change. This means that they generaly
can't be used with ZEO. It isn't enough to have a read-only
connections, if the underlying database is still being changed by
other clients.

The "before" storage provides another way to leverage the loadBefore
method to support time travel and a means to provide an unchanging
view into a ZEO server. A before storage is a database adapter that
provides a read-only view of an underlying storage as of a particular
point in time.

Change history
==============

0.5.2 (unreleased)
------------------

- Fix a long-standing bug in loadBefore´. The bug was revealed by
testing against ZODB 5, for which loadBefore plays a bigger role.


0.5.1 (2013-10-25)
------------------

- Fix broken release


0.5.0 (2013-10-25)
------------------

Added ZODB4 and Python 3 support.


0.4.0 (2010-12-09)
------------------

Added a "before-from-file" option that can be used if the application wants to
preserve beforestorage state between application restarts.

0.3.2 (2008-12-05)
------------------

Updated to work with both ZODB 3.8 and 3.9.

0.3.1 (2008-12-01)
------------------

Renamed lastTid to getTid to conform to the ZEO.interfaces.IServeable
interface.


0.3.0 (2008-12-01)
------------------

Added Blob support.

0.2.0 (2008-03-05)
------------------

Added support for "now" and "startup" values to the before option when
using ZConfig. The "now" value indicates that the before storage should
provide a view of the base storage as of the time the storage is created.
The "startup" value indicates that the before storage should provide a
view of the base stoage as of process startup time. The later is
especially useful when setting up more than once before storage in a
single application, as it allows you to arrange that all of the
storages provide consistent views without having to specify a time.

0.1.1 (2008-02-07)
------------------

Fixed a packaging bug that caused some files to be omitted.

0.1 (2008-01-??)
----------------

Initial release.

Using ZConfig to configure Before storages
==========================================

Expand Down

0 comments on commit cbe8905

Please sign in to comment.