202 lines
6.8 KiB
Plaintext
202 lines
6.8 KiB
Plaintext
|
|
1.4.0 (2010-09-30)
|
|
------------------
|
|
|
|
- Enabled ketama and compression in pylibmc_wrapper. Both options
|
|
are better for clusters.
|
|
|
|
- Oracle: Use a more optimal query for POSKeyError logging.
|
|
|
|
- Fixed a NameError that occurred when getting the history of an
|
|
object where transaction extended info was set.
|
|
|
|
|
|
1.4.0c4 (2010-09-17)
|
|
--------------------
|
|
|
|
- Worked around an Oracle RAC bug: apparently, in a RAC environment,
|
|
the read-only transaction mode does not isolate transactions in the
|
|
manner specified by the documentation, so Oracle users now have to
|
|
use serializable isolation like everyone else. It's slower but more
|
|
reliable.
|
|
|
|
- Use the client time instead of the database server time as a factor
|
|
in the transaction ID. RelStorage was using the database server time
|
|
to reduce the need for synchronized clocks, but in practice, that
|
|
policy broke tests and did not really avoid the need to synchronize
|
|
clocks. Also, the effect of unsynchronized clocks is predictable
|
|
and manageable: you'll get bunches of transactions with sequential
|
|
timestamps.
|
|
|
|
- If the database returns an object from the future (which should never
|
|
happen), generate a ReadConflictError, hopefully giving the application
|
|
a chance to recover. The most likely causes of this are a broken
|
|
database and threading bugs.
|
|
|
|
1.4.0c3 (2010-07-31)
|
|
--------------------
|
|
|
|
- Always update the RelStorage cache when opening a database connection for
|
|
loading, even when no ZODB Connection is using the storage. Otherwise,
|
|
code that used the storage interface directly could cause the cache
|
|
to fall out of sync; the effects would be seen in the next
|
|
ZODB.Connection.
|
|
|
|
- Added a ZODB monkey patch that passes the "force" parameter to the
|
|
sync method. This should help the poll-interval option do its job
|
|
better.
|
|
|
|
1.4.0c2 (2010-07-28)
|
|
--------------------
|
|
|
|
- Fixed a subtle bug in the cache code that could lead to an
|
|
AssertionError indicating a cache inconsistency. The inconsistency
|
|
was caused by after_poll(), which was ignoring the randomness of
|
|
the order of the list of recent changes, leading it to sometimes
|
|
put the wrong transfer ID in the "delta_after" dicts. Also expanded
|
|
the AssertionError with debugging info, since cache inconsistency
|
|
can still be caused by database misconfiguration and mismatched
|
|
client versions.
|
|
|
|
- Oracle: updated the migration notes. The relstorage_util package
|
|
is not needed after all.
|
|
|
|
1.4.0c1 (2010-06-19)
|
|
--------------------
|
|
|
|
- History-preserving storages now replace objects on restore instead of
|
|
just inserting them. This should solve problems people were
|
|
having with the zodbconvert utility.
|
|
|
|
- Oracle: call the DBMS_LOCK.REQUEST function directly instead of using
|
|
a small package named ``relstorage_util``. The ``relstorage_util``
|
|
package was designed as a secure way to access the DBMS_LOCK package,
|
|
but the package turned out to be confusing to DBAs and provided no
|
|
real security advantage. People who have already deployed
|
|
RelStorage 1.4.x on Oracle need to do the following:
|
|
|
|
GRANT EXECUTE ON DBMS_LOCK TO <zodb_user>;
|
|
|
|
You can also drop the ``relstorage_util`` package. Keep the
|
|
``relstorage_op`` package.
|
|
|
|
- Made compatible with ZODB 3.10.
|
|
|
|
- MySQL: specify the transaction isolation mode for every connection,
|
|
since the default is apparently not necessarily "read committed"
|
|
anymore.
|
|
|
|
1.4.0b3 (2010-02-02)
|
|
--------------------
|
|
|
|
- Auto-reconnect in new_oid().
|
|
|
|
1.4.0b2 (2010-01-30)
|
|
--------------------
|
|
|
|
- Include all test subpackages in setup.py.
|
|
|
|
- Raise an error if MySQL reverts to MyISAM rather than using the InnoDB
|
|
storage engine.
|
|
|
|
1.4.0b1 (2009-11-17)
|
|
--------------------
|
|
|
|
- Added the keep-history option. Set it to false to keep no history.
|
|
(Packing is still required for garbage collection and blob deletion.)
|
|
|
|
- Added the replica-conf and replica-timeout options. Set replica-conf
|
|
to a filename containing the location of database replicas. Changes
|
|
to the file take effect at transaction boundaries.
|
|
|
|
- Expanded the option documentation in README.txt.
|
|
|
|
- Revised the way RelStorage uses memcached. Minimized the number of
|
|
trips to both the cache server and the database.
|
|
|
|
- Added an in-process pickle cache that serves a function similar to the
|
|
ZEO cache.
|
|
|
|
- Added a wrapper module for pylibmc.
|
|
|
|
- Store operations now use multi-insert and multi-delete SQL
|
|
statements to reduce the effect of network latency.
|
|
|
|
- Renamed relstorage.py to storage.py to overcome import issues.
|
|
Also moved the Options class to options.py.
|
|
|
|
- Updated the patch for ZODB 3.7 and 3.8 to fix an issue with
|
|
blobs and subtransactions.
|
|
|
|
- Divided the implementation of database adapters into many small
|
|
objects, making the adapter code more modular. Added interfaces
|
|
that describe the duties of each part.
|
|
|
|
- Oracle: Sped up restore operations by sending short blobs inline.
|
|
|
|
- Oracle: Use a timeout on commit locks. This requires installation
|
|
of a small PL/SQL package that can access DBMS_LOCK. See README.txt.
|
|
|
|
- Oracle: Used PL/SQL bulk insert operations to improve write
|
|
performance.
|
|
|
|
- PostgreSQL: use the documented ALTER SEQUENCE RESTART WITH
|
|
statement instead of ALTER SEQUENCE START WITH.
|
|
|
|
- Moved MD5 sum computation to the adapters so they can choose not
|
|
to use MD5.
|
|
|
|
- Changed loadSerial to load from the store connection only if the
|
|
load connection can not provide the object requested.
|
|
|
|
- Stopped wrapping database disconnect exceptions. Now the code
|
|
catches and handles them directly.
|
|
|
|
- Use the store connection rather than the load connection for OID
|
|
allocation.
|
|
|
|
- Detect and handle backward time travel, which can happen after
|
|
failover to an out-of-date asynchronous slave database. For
|
|
simplicity, invalidate the whole ZODB cache when this happens.
|
|
|
|
- Replaced the speed test script with a separately distributed package,
|
|
``zodbshootout``.
|
|
|
|
- Added the ``zodbpack`` script.
|
|
|
|
1.3.0b1 (2009-09-04)
|
|
--------------------
|
|
|
|
- Added support for a blob directory. No BlobStorage wrapper is needed.
|
|
Cluster nodes will need to use a shared filesystem such as NFS or
|
|
SMB/CIFS.
|
|
|
|
- Added the blob-dir parameter to the ZConfig schema and README.txt.
|
|
|
|
|
|
1.2.0 (2009-09-04)
|
|
------------------
|
|
|
|
- In Oracle, trim transaction descriptions longer than 2000 bytes.
|
|
|
|
- When opening the database for the first time, don't issue a warning
|
|
about the inevitable POSKeyError on the root OID.
|
|
|
|
- If RelStorage tries to unpickle a corrupt object state during packing,
|
|
it will now report the oid and tid in the log.
|
|
|
|
|
|
1.2.0b2 (2009-05-05)
|
|
--------------------
|
|
|
|
- RelStorage now implements IMVCCStorage, making it compatible with
|
|
ZODB 3.9.0b1 and above.
|
|
|
|
- Removed two-phase commit support from the PostgreSQL adapter. The
|
|
feature turned out to be unnecessary.
|
|
|
|
- Added MySQL 5.1.34 and above to the list of supportable databases.
|
|
|
|
- Fixed minor test failures under Windows. Windows is now a supportable
|
|
platform.
|