swift/releasenotes/notes/2_17_0_release-bd35f18c41c5...

120 lines
4.1 KiB
YAML

---
features:
- |
Added symlink objects support.
Symlink objects reference one other object. They are created by
creating an empty object with an X-Symlink-Target header. The value of
the header is of the format <container>/<object>, and the target does
not need to exist at the time of symlink creation. Cross-account
symlinks can be created by including the
X-Symlink-Target-Account header.
GET and HEAD requests to a symlink will operate on the
referenced object and require appropriate permission in the
target container. DELETE and PUT requests will operate on the
symlink object itself. POST requests are not forwarded to the
referenced object. POST requests sent to a symlink will result
in a 307 Temporary Redirect response.
- |
Added support for inline data segments in SLO manifests.
Upgrade impact -- during a rolling upgrade, an updated proxy server
may write a manifest that an out-of-date proxy server will not be
able to read. This will resolve itself once the upgrade completes
on all nodes.
- |
The tempurl digest algorithm is now configurable, and Swift added
support for both SHA-256 and SHA-512. Supported tempurl digests
are exposed to clients in ``/info``. Additionally, tempurl signatures
can now be base64 encoded.
- |
Object expiry improvements
- Disallow X-Delete-At header values equal to the X-Timestamp header.
- X-Delete-At computation now uses X-Timestamp instead of
system time. This prevents clock skew causing inconsistent
expiry data.
- Deleting an expiring object will now cause less work in the system.
The number of async pending files written has been reduced for all
objects and greatly reduced for erasure-coded objects. This
dramatically reduces the burden on container servers.
- Stopped logging tracebacks when receiving an unexpected response.
- Allow the expirer to gracefully move past updating stale work items.
- |
When the object auditor examines an object, it will now add any
missing metadata checksums.
- |
``swift-ring-builder`` improvements
- Save the ring when dispersion improves, even if balance
doesn't improve.
- Improved the granularity of the ring dispersion metric so that
small improvements after a rebalance can show changes in the
dispersion number. Dispersion in existing and new rings can be
recalculated using the new ``--recalculate`` option to
``swift-ring-builder``.
- Display more info on empty rings.
- |
Fixed rare socket leak on range requests to erasure-coded objects.
- |
The number of container updates on object PUTs (ie to update listings)
has been recomputed to be far more efficient while maintaining
durability guarantees. Specifically, object PUTs to erasure-coded
policies will now normally result in far fewer container updates.
- |
Moved Zuul v3 tox jobs into the Swift code repo.
- |
Changed where liberasurecode-devel for CentOS 7 is referenced and
installed as a dependency.
- |
Added container/object listing with prefix to InternalClient.
- |
Added ``--swift-versions`` to ``swift-recon`` CLI to compare installed
versions in the cluster.
- |
Stop logging tracebacks in the ``object-replicator`` when it runs
out of handoff locations.
- |
Send ETag header in 206 Partial Content responses to SLO reads.
- |
Now ``swift-recon-cron`` works with conf.d configs.
- |
Improved ``object-updater`` stats logging. It now tells you all of
its stats (successes, failures, quarantines due to bad pickles,
unlinks, and errors), and it tells you incremental progress every
five minutes. The logging at the end of a pass remains and has
been expanded to also include all stats.
- |
If a proxy server is configured to autocreate accounts and the
account create fails, it will now return a server error (500)
instead of Not Found (404).
- |
Fractional replicas are no longer allowed for erasure code policies.
- |
Various other minor bug fixes and improvements.