Relstorage

Latest version: v4.0.0

Safety actively analyzes 634697 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 13 of 14

1.4.0c3

====================

- 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

====================

- 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

====================

- 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

Not secure
====================

- Auto-reconnect in new_oid().

1.4.0b2

Not secure
====================

- 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

Not secure
====================

- 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.

Page 13 of 14

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.