Relstorage

Latest version: v4.1.1

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

Scan your dependencies

Page 4 of 14

3.3.2

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

- Fix an ``UnboundLocalError`` in case a store connection could not be
opened. This error shadowed the original error opening the
connection. See :issue:`421`.

3.3.1

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

- Manylinux wheels: Do not specify the C++ standard to use when
compiling. This seemed to result in an incompatibility with
manylinux1 systems that was not caught by ``auditwheel``.

3.3.0

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

- The "MySQLdb" driver didn't properly use server-side cursors when
requested. This would result in unexpected increased memory usage
for things like packing and storage iteration.

- Make RelStorage instances implement
``IStorageCurrentRecordIteration``. This lets both
history-preserving and history-free storages work with
``zodbupdate``. See :issue:`389`.

- RelStorage instances now pool their storage connection. Depending on
the workload and ZODB configuration, this can result in requiring
fewer storage connections. See :issue:`409` and :pr:`417`.

There is a potential semantic change: Under some circumstances, the
``loadBefore`` and ``loadSerial`` methods could be used to load
states from the future (not visible to the storage's load
connection) by using the store connection. This ability has been
removed.

- Add support for Python 3.9.

- Drop support for Python 3.5.

- Build manylinux x86-64 and macOS wheels on Travis CI as part of the
release process. These join the Windows wheels in being
automatically uploaded to PyPI.

3.2.1

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

- Improve the speed of loading large cache files by reducing the cost
of cache validation.

- The timing metrics for ``current_object_oids`` are always collected,
not just sampled. MySQL and PostgreSQL will only call this method
once at startup during persistent cache validation. Other databases
may call this method once during the commit process.

- Add the ability to limit how long persistent cache validation will
spend polling the database for invalid OIDs. Set the environment
variable ``RS_CACHE_POLL_TIMEOUT`` to a number of seconds before
importing RelStorage to use this.

- Avoid an ``AttributeError`` if a persistent ``zope.component`` site
manager is installed as the current site, it's a ghost, and we're
making a load query for the first time in a particular connection.
See :issue:`411`.

- Add some DEBUG level logging around forced invalidations of
persistent object caches due to exceeding the cache MVCC limits. See
:issue:`338`.

3.2.0

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

- Make the ``gevent psycopg2`` driver support critical sections. This
reduces the amount of gevent switches that occur while database
locks are held under a carefully chosen set of circumstances that
attempt to balance overall throughput against latency. See
:issue:`407`.

- Source distributions: Fix installation when Cython isn't available.
Previously it incorrectly assumed a '.c' extension which lead to
compiler errors. See :issue:`405`.

- Improve various log messages.

3.1.2

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

- Fix the psycopg2cffi driver inadvertently depending on the
``psycopg2`` package. See :issue:`403`.
- Make the error messages for unavailable drivers include more
information on underlying causes.
- Log a debug message when an "auto" driver is successfully resolved.
- Add a ``--debug`` argument to the ``zodbconvert`` command line tool
to enable DEBUG level logging.
- Add support for pg8000 1.16. Previously, a ``TypeError`` was raised.

Page 4 of 14

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.